hikyuu 2.1.1__cp38-none-win_amd64.whl → 2.1.2__cp38-none-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hikyuu/cpp/boost_date_time-mt.dll +0 -0
- hikyuu/cpp/boost_serialization-mt.dll +0 -0
- hikyuu/cpp/boost_wserialization-mt.dll +0 -0
- hikyuu/cpp/core38.pyd +0 -0
- hikyuu/cpp/hikyuu.dll +0 -0
- hikyuu/cpp/sqlite3.dll +0 -0
- hikyuu/examples/notebook/006-TradeManager.ipynb +41 -39
- hikyuu/examples/notebook/008-Pickle.ipynb +27 -35
- hikyuu/fetcher/stock/zh_stock_a_qmt.py +49 -0
- hikyuu/gui/HikyuuTDX.py +2 -1
- hikyuu/gui/data/MainWindow.py +126 -126
- hikyuu/gui/spot_server.py +16 -7
- hikyuu/gui/start_qmt.py +36 -0
- hikyuu/include/hikyuu/Stock.h +1 -1
- hikyuu/include/hikyuu/StrategyContext.h +7 -2
- hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h +2 -2
- hikyuu/include/hikyuu/doc.h +2 -2
- hikyuu/include/hikyuu/global/GlobalSpotAgent.h +1 -0
- hikyuu/include/hikyuu/global/GlobalTaskGroup.h +4 -2
- hikyuu/include/hikyuu/global/SpotRecord.h +52 -0
- hikyuu/include/hikyuu/global/agent/SpotAgent.h +14 -41
- hikyuu/include/hikyuu/hikyuu.h +1 -0
- hikyuu/include/hikyuu/strategy/{AccountTradeManager.h → BrokerTradeManager.h} +98 -98
- hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h +36 -0
- hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +37 -0
- hikyuu/include/hikyuu/strategy/Strategy.h +174 -0
- hikyuu/include/hikyuu/trade_manage/FundsRecord.h +8 -8
- hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +66 -14
- hikyuu/include/hikyuu/trade_manage/PositionRecord.h +12 -12
- hikyuu/include/hikyuu/trade_manage/TradeManager.h +9 -0
- hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +19 -0
- hikyuu/include/hikyuu/utilities/TimerManager.h +23 -9
- hikyuu/include/hikyuu/utilities/arithmetic.h +2 -2
- hikyuu/include/hikyuu/utilities/datetime/Datetime.h +1 -0
- hikyuu/include/hikyuu/utilities/exception.h +15 -17
- hikyuu/include/hikyuu/utilities/http_client/HttpClient.h +1 -1
- hikyuu/include/hikyuu/utilities/mo/moFileReader.h +1 -1
- hikyuu/include/hikyuu/version.h +4 -4
- hikyuu/interactive.py +42 -137
- hikyuu/strategy/__init__.py +0 -1
- hikyuu/strategy/strategy_demo1.py +53 -0
- hikyuu/strategy/strategy_demo2.py +47 -0
- hikyuu/strategy/strategy_demo3.py +24 -0
- hikyuu/trade_manage/broker.py +27 -11
- hikyuu/trade_manage/broker_easytrader.py +52 -6
- hikyuu/trade_manage/broker_mail.py +17 -20
- {hikyuu-2.1.1.dist-info → hikyuu-2.1.2.dist-info}/METADATA +1 -1
- {hikyuu-2.1.1.dist-info → hikyuu-2.1.2.dist-info}/RECORD +52 -46
- {hikyuu-2.1.1.dist-info → hikyuu-2.1.2.dist-info}/top_level.txt +0 -1
- hikyuu/include/hikyuu/strategy/StrategyBase.h +0 -156
- hikyuu/strategy/demo/__init__.py +0 -3
- hikyuu/strategy/strategy.py +0 -27
- {hikyuu-2.1.1.dist-info → hikyuu-2.1.2.dist-info}/LICENSE +0 -0
- {hikyuu-2.1.1.dist-info → hikyuu-2.1.2.dist-info}/WHEEL +0 -0
- {hikyuu-2.1.1.dist-info → hikyuu-2.1.2.dist-info}/entry_points.txt +0 -0
|
@@ -4,7 +4,7 @@ hikyuu/core.py,sha256=Klrql0sAosOoyXNSU2prSxvnsdDWiCUwkPIUzALWslc,587
|
|
|
4
4
|
hikyuu/deprecated.py,sha256=hmYDN2jMM5otVk42JeGqKogDK7wQ7RkPFYwx-s4bHD0,17129
|
|
5
5
|
hikyuu/extend.py,sha256=pHAWvUvjvpdBg4TiJ3VBYxo5FNWAQ1zcn4pIXaiIO1A,13898
|
|
6
6
|
hikyuu/hub.py,sha256=XzovT2W028wVaetPuhnN0UnAJGL9lx3Zl6t19E6QAr0,23074
|
|
7
|
-
hikyuu/interactive.py,sha256=
|
|
7
|
+
hikyuu/interactive.py,sha256=gqK_76jj3wcTokiFj445YJkhcfZ8IwUlT8ZImc0MuNU,13468
|
|
8
8
|
hikyuu/puppet.py,sha256=AkEe6_u01aNMvCm8WoGKwAtoGz1pFYe-bCgO2J2ddSU,12674
|
|
9
9
|
hikyuu/setup.py,sha256=lTOmlSqiAGVDLfbAi1Jt0Ek8ab8VvlymO6RmY0_lGPo,4413
|
|
10
10
|
hikyuu/sqlite3.dll,sha256=F98hPpveNjgb_O08Zr20H8jtMAWZpU3cFoCa--nv6VM,1088512
|
|
@@ -20,12 +20,12 @@ hikyuu/config/block/hybk.ini,sha256=ngsM-qeawJC8XSYg2cYP2xjnRGmnlFLkDnzy8PvUgZs,
|
|
|
20
20
|
hikyuu/config/block/self.ini,sha256=LUJBZ6HzEY3VmEjjFIpl87zdGvbk2i4ycmPPZjJYRoA,225
|
|
21
21
|
hikyuu/config/block/zsbk.ini,sha256=w23yV7pLbmSUZJPAqX8A9EZCQGZd_pj6D2ovdGG_Pfo,657541
|
|
22
22
|
hikyuu/cpp/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
23
|
-
hikyuu/cpp/boost_date_time-mt.dll,sha256=
|
|
24
|
-
hikyuu/cpp/boost_serialization-mt.dll,sha256=
|
|
25
|
-
hikyuu/cpp/boost_wserialization-mt.dll,sha256=
|
|
23
|
+
hikyuu/cpp/boost_date_time-mt.dll,sha256=7LN0Yx0k8NmnMICaHiU5NDGtdUnxL8i3WH4CoM3E7To,9728
|
|
24
|
+
hikyuu/cpp/boost_serialization-mt.dll,sha256=Cri8ElVb5vbEgeSPEBU9gIs_2d2sDEs8DFraTlNwE0I,218112
|
|
25
|
+
hikyuu/cpp/boost_wserialization-mt.dll,sha256=AtPBMT3u3PhlvtgAf6YzWT_vLrOCPEI1MRwEmPKspS0,156672
|
|
26
26
|
hikyuu/cpp/concrt140.dll,sha256=eCkQsj-KZexHf4hve8vcZxAzVK8mO9MMDcyrv7xQa6E,317320
|
|
27
|
-
hikyuu/cpp/core38.pyd,sha256=
|
|
28
|
-
hikyuu/cpp/hikyuu.dll,sha256=
|
|
27
|
+
hikyuu/cpp/core38.pyd,sha256=tTLlEeNGWcGHQXu9EYkliBh922Sg8QdQt1eOD030CxM,3395584
|
|
28
|
+
hikyuu/cpp/hikyuu.dll,sha256=0sTMdVyK2BdgNLhLANnGtWLuwuCAwMndfhgRmJ5uagg,6804480
|
|
29
29
|
hikyuu/cpp/hku_hdf5.dll,sha256=WhPTtLT9eAaOcLthBLArv_ps-A5xiTXrYAwXHsbKeDI,3434496
|
|
30
30
|
hikyuu/cpp/hku_hdf5_cpp.dll,sha256=KL7R_MmydRnNi6X1vrkCOPJ6x027J8IEb6vCbTrV60E,301056
|
|
31
31
|
hikyuu/cpp/hku_hdf5_hl.dll,sha256=bPgCUWb9eppYXjqL846IiLeWiB9QvRF_syGHTlqpImI,119808
|
|
@@ -38,7 +38,7 @@ hikyuu/cpp/msvcp140_1.dll,sha256=fVIjj_Wnr29KXiKbGnRlog_BfitAHaXakhWjBzvyOMI,255
|
|
|
38
38
|
hikyuu/cpp/msvcp140_2.dll,sha256=7iKzQDJoy6w_KA8aSaf6KFwNAdpgH2kU1v5qrEMGjvo,187312
|
|
39
39
|
hikyuu/cpp/msvcp140_atomic_wait.dll,sha256=qUuIolfmRRSn4Zu-xSI5Hyg4rJMH1ZetstPq-I-FTeM,57224
|
|
40
40
|
hikyuu/cpp/msvcp140_codecvt_ids.dll,sha256=FPlDVH0f2xJQWe6537FGWXr5bKrD6pkCV4WV6bDHH7Q,21392
|
|
41
|
-
hikyuu/cpp/sqlite3.dll,sha256=
|
|
41
|
+
hikyuu/cpp/sqlite3.dll,sha256=Iq2f3q2JynIh_Zo-_beStzaPorrLXtqNOMD9abPnV98,1088512
|
|
42
42
|
hikyuu/cpp/vcruntime140.dll,sha256=1mw7Rwkc6z-NPMFlpD0oWukZIRoMD8t0SR7ldNjUZPg,98736
|
|
43
43
|
hikyuu/cpp/vcruntime140_1.dll,sha256=F1gIWmFSe0J8Q4DwyXbSmovuiJ8qxIDDVqPxZkM79w4,38304
|
|
44
44
|
hikyuu/data/__init__.py,sha256=ugyuFliEqtAwQmH4sTlc16YXKYbFWDmfyk87fErB8-8,21
|
|
@@ -128,9 +128,9 @@ hikyuu/examples/notebook/002-HowToGetStock.ipynb,sha256=gDPk3EP-5bgWOULxMQ1qc0hK
|
|
|
128
128
|
hikyuu/examples/notebook/003-HowToGetKDataAndDraw.ipynb,sha256=RUEJ8OoDtDO6HfIL1BWlkpTlGbiTaCDHOEZZrBnOm4U,241565
|
|
129
129
|
hikyuu/examples/notebook/004-IndicatorOverview.ipynb,sha256=vhPwUwuIb6mkPLDzCIaVm9Jh64P6qgF9I0HfKDcKhmQ,238803
|
|
130
130
|
hikyuu/examples/notebook/005-Drawplot.ipynb,sha256=sc-4-LTbg_RGPkgI4kWSjxWom_5Ofidww-RbCPpDS8I,1136372
|
|
131
|
-
hikyuu/examples/notebook/006-TradeManager.ipynb,sha256=
|
|
131
|
+
hikyuu/examples/notebook/006-TradeManager.ipynb,sha256=Lh-6i1D7-mccLVbgNCl93-7tCpllCqgi7X_Dm7UvUAs,13925
|
|
132
132
|
hikyuu/examples/notebook/007-SystemDetails.ipynb,sha256=ikd5rULeHanosArR5Whuws2ORYurwLhi7AUxR7RrQAQ,734512
|
|
133
|
-
hikyuu/examples/notebook/008-Pickle.ipynb,sha256=
|
|
133
|
+
hikyuu/examples/notebook/008-Pickle.ipynb,sha256=VdkxzUCf4q8In1yxUIgthnPUB53KeVnx6WFAzIwSuRA,57227
|
|
134
134
|
hikyuu/examples/notebook/009-RealData.ipynb,sha256=PFMbp-rv6ODZ-InQOHrh0kRQFUgCzCSG2FUf1E8BeKQ,3103
|
|
135
135
|
hikyuu/examples/notebook/010-Portfolio.ipynb,sha256=ZgIJ4RtKaAAA3-YFskPYItBPdjl20bqRO_PSe0Lnf58,548609
|
|
136
136
|
hikyuu/examples/notebook/011-PyechartsDrawplot.ipynb,sha256=Zkx5l8rG5AR7DwUxo87s0RRSOi8f9yMRCg-g8uCGrU8,1005878
|
|
@@ -152,16 +152,18 @@ hikyuu/fetcher/stock/__init__.py,sha256=iMNvK8LArpRoNU0w3ef7SKslAgjMnI83n8aO0bu9
|
|
|
152
152
|
hikyuu/fetcher/stock/zh_block_em.py,sha256=O98NeQzWpE5MC2oezBWvrEeNGRHxF2ZtT5q0BR8KLKA,4327
|
|
153
153
|
hikyuu/fetcher/stock/zh_stock_a_huatai.py,sha256=Lg4Pp1kOxR-6niX27lwEBJu4oEltDSALzsgiYmEUm2Q,1991
|
|
154
154
|
hikyuu/fetcher/stock/zh_stock_a_pytdx.py,sha256=kSj6N-ON3ofJI6YOEtkQiX5ARu-UB4cScsApQCDihI8,3711
|
|
155
|
+
hikyuu/fetcher/stock/zh_stock_a_qmt.py,sha256=RR30RzMOCtOrJkctA_CLmkwgbc2AOXwYIgoQtXqz2Do,1712
|
|
155
156
|
hikyuu/fetcher/stock/zh_stock_a_sina_qq.py,sha256=3TszhEQi_4Oc1Tzihq4NI7K3z7irVDJPpOU3DRuDMTA,9004
|
|
156
157
|
hikyuu/flat/Spot.py,sha256=dEzyxegOv_RRN0N0DH-xxeNMFOe66XBcORqYVFie5dU,13842
|
|
157
158
|
hikyuu/flat/SpotList.py,sha256=3dcxae0WGxboa_R8YMSJsrP3RvgARuUk4rQZhR5bMzc,2163
|
|
158
159
|
hikyuu/flat/__init__.py,sha256=4Z3H_wiaqb2M5zTRqA3FPY3X7SgJ80MMK9UPmUKmkog,69
|
|
159
|
-
hikyuu/gui/HikyuuTDX.py,sha256=
|
|
160
|
+
hikyuu/gui/HikyuuTDX.py,sha256=heWYkHMKKFoGsWmumiVmhm2MA5T2eb_ruJAyomgst2A,41792
|
|
160
161
|
hikyuu/gui/__init__.py,sha256=ugyuFliEqtAwQmH4sTlc16YXKYbFWDmfyk87fErB8-8,21
|
|
161
162
|
hikyuu/gui/hikyuu.ico,sha256=C3PmufT23qdCyE0FfIkofUIwT-zyhCgjwLH6HMclqPk,9662
|
|
162
163
|
hikyuu/gui/importdata.py,sha256=ceNoyh0q4mYuaAuTpxakn8zJaOy0aalnB8-16zES0Ak,6073
|
|
163
|
-
hikyuu/gui/spot_server.py,sha256=
|
|
164
|
+
hikyuu/gui/spot_server.py,sha256=3pLjXbL0B4Y4uc0ILPSHsAvjZL-3uCpRPH7hOdgcF8E,11916
|
|
164
165
|
hikyuu/gui/start_huatai_insight.py,sha256=AsP6UlLWErXHx8TnxS82uBIw6XXfSkItiVTzTrzwulQ,22833
|
|
166
|
+
hikyuu/gui/start_qmt.py,sha256=_HeHnpTIBGcMq0UXhlr2sumz_rullC4PdurcJtpFO8k,925
|
|
165
167
|
hikyuu/gui/data/CollectSpotThread.py,sha256=TpckaMvm58hnPOXjDdGa7WznaMfEpcNo9g9axGXOgLo,1758
|
|
166
168
|
hikyuu/gui/data/CollectToMemThread.py,sha256=xgBn5Nno6oLCqlbie6wTtcyMPmMTRoclz2-E1UZGUcQ,5153
|
|
167
169
|
hikyuu/gui/data/CollectToMySQLThread.py,sha256=Xmj5igTSw8R9ZfaVH87zXESeLJKxaw7SlZmXcTIGK-U,7387
|
|
@@ -174,7 +176,7 @@ hikyuu/gui/data/ImportPytdxTransToH5Task.py,sha256=7ZN6JwqDtfSs0JUCQL0bBuU7Svx0j
|
|
|
174
176
|
hikyuu/gui/data/ImportTdxToH5Task.py,sha256=lQeGGD-wxtTX3td39w-_xzwFiXP0FsbO3zPkG_mYRzI,4635
|
|
175
177
|
hikyuu/gui/data/ImportWeightToSqliteTask.py,sha256=BgmxkS6Pl-34dtayjkIb2Km7Hy9ORaE_4gyk7NI5HJc,5523
|
|
176
178
|
hikyuu/gui/data/ImportZhBond10Task.py,sha256=JxPdWW4egjZK0kspHt5RPe9uMltw-dYQhSBilQsKX1Q,1661
|
|
177
|
-
hikyuu/gui/data/MainWindow.py,sha256=
|
|
179
|
+
hikyuu/gui/data/MainWindow.py,sha256=YlRFcCnyyEVoi0uZOet8nV6kNM6oGDn6npEudZyxMT4,51192
|
|
178
180
|
hikyuu/gui/data/SchedImportThread.py,sha256=8BmGwgxowjMWWbrB_D-iTSkW0cYLZhCjWNALUD6rBfI,1935
|
|
179
181
|
hikyuu/gui/data/UsePytdxImportToH5Thread.py,sha256=6qw7sofMJ0zjRohCjNaxRvFaTbLDKw-KW-Eg-5HZ4eo,16600
|
|
180
182
|
hikyuu/gui/data/UseTdxImportToH5Thread.py,sha256=qmjyHJVbSvxCJDTM2g26S8ao1TQXbIaUxLdQYk84ngI,7047
|
|
@@ -190,21 +192,21 @@ hikyuu/include/hikyuu/KDataImp.h,sha256=KJ-g_n36fw-cdZxAmc49_YQTBbQ4L-2iFufIuAS8
|
|
|
190
192
|
hikyuu/include/hikyuu/KQuery.h,sha256=kd9CgjKOkTQMLdJoLNznMkt3Zw32m3zPCrGw0fdjjSo,8439
|
|
191
193
|
hikyuu/include/hikyuu/KRecord.h,sha256=-UkqjGoP78HMqYGqHvubaIWJXxfLlvqa2ETpVgLXalE,2334
|
|
192
194
|
hikyuu/include/hikyuu/MarketInfo.h,sha256=gEhFa43Z6eMA7fbl1TaOSaSTINcpaG0kMUIkJCZounI,3578
|
|
193
|
-
hikyuu/include/hikyuu/Stock.h,sha256=
|
|
195
|
+
hikyuu/include/hikyuu/Stock.h,sha256=KwlDQQDxC4FFTKI-ifCdazeQT_aS1UGIsWTXY1QUpz0,11361
|
|
194
196
|
hikyuu/include/hikyuu/StockManager.h,sha256=Ow5G_2iPmL1lwnONWplm391zA-mlK7Sn_uDgDXdPkF4,10975
|
|
195
197
|
hikyuu/include/hikyuu/StockMapIterator.h,sha256=9lqU1KN09DgwOIAGWJ7brDYtRgOU-IFUPXuEoUtksko,1705
|
|
196
198
|
hikyuu/include/hikyuu/StockTypeInfo.h,sha256=NOQtj1wj_BWQ13aGueANskO2RMSFf4Bon_AbzQXN1O4,3466
|
|
197
199
|
hikyuu/include/hikyuu/StockWeight.h,sha256=MCWd1e5aDlmUs0d5IyuNSSuQa6bnzRCSmjtnmxd6B1o,3910
|
|
198
|
-
hikyuu/include/hikyuu/StrategyContext.h,sha256=
|
|
200
|
+
hikyuu/include/hikyuu/StrategyContext.h,sha256=iFQPea3Ioq5Fdaan-3rRU60N9G8xCtOki6bhuebVIog,1713
|
|
199
201
|
hikyuu/include/hikyuu/TimeLineRecord.h,sha256=zcKqiz5wW19v4HeQeBMDJJvr6j_wHGeHZgFk__3PzRM,1419
|
|
200
202
|
hikyuu/include/hikyuu/TransRecord.h,sha256=Bp4RrjopwyUVPejDG8r0j63e5CPojEre88kS0qdIjsI,1714
|
|
201
203
|
hikyuu/include/hikyuu/ZhBond10.h,sha256=q7-J4pwrQt0xnqidoSdypKb5rkJ7eDk1XAY8X7zyCnA,657
|
|
202
204
|
hikyuu/include/hikyuu/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
203
205
|
hikyuu/include/hikyuu/config.h,sha256=coJ3wAfuxysJy-rqWJUBHFBsALuRhrwpcUkqb5JrYuU,1158
|
|
204
206
|
hikyuu/include/hikyuu/debug.h,sha256=r54YJUkujUt5D9Xj11fpIw9c93kZsqU3ykljXBsqxo0,843
|
|
205
|
-
hikyuu/include/hikyuu/doc.h,sha256=
|
|
206
|
-
hikyuu/include/hikyuu/hikyuu.h,sha256=
|
|
207
|
-
hikyuu/include/hikyuu/version.h,sha256=
|
|
207
|
+
hikyuu/include/hikyuu/doc.h,sha256=QAqJBj2S7vvo8ML6e7zJsbUJwM7vxU76xSGPHP2bGHI,6966
|
|
208
|
+
hikyuu/include/hikyuu/hikyuu.h,sha256=i0W3K6SbPrcJQN3p7um6trPs00XPM7ubp31vDvbJZOw,1100
|
|
209
|
+
hikyuu/include/hikyuu/version.h,sha256=Wy2UEkZjABxSd-6OzRZXfxTm4MDg7zmduf28bnkX7fI,508
|
|
208
210
|
hikyuu/include/hikyuu/analysis/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
209
211
|
hikyuu/include/hikyuu/analysis/analysis_sys.h,sha256=gPnCrNP9Qt2g9JH04F9Y9Q1XzpwPtg4ibAvPJ9pIlbs,1709
|
|
210
212
|
hikyuu/include/hikyuu/analysis/combinate.h,sha256=--OhYTVLQ8bUNgl47V0uNO0IjSULxu7bXhYWbjNY4Ig,4196
|
|
@@ -221,7 +223,7 @@ hikyuu/include/hikyuu/data_driver/base_info/mysql/__init__.py,sha256=frcCV1k9oG9
|
|
|
221
223
|
hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h,sha256=-1dxUffmxS0aJV1ogZtIBhWVZgtAazO3wzIaMUWV2oA,1984
|
|
222
224
|
hikyuu/include/hikyuu/data_driver/base_info/sqlite/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
223
225
|
hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceFieldTable.h,sha256=T0np64kLtrVngDyzd-O0qSZ8k2hvvnpk_AIy6BZm9Us,330
|
|
224
|
-
hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h,sha256
|
|
226
|
+
hikyuu/include/hikyuu/data_driver/base_info/table/HistoryFinanceTable.h,sha256=D0DSb6cvZslRkp9Q1YPuRkNJK7o-a_dOrV0D6kV_MJA,503
|
|
225
227
|
hikyuu/include/hikyuu/data_driver/base_info/table/HolidayTable.h,sha256=MVV1_ZVXCSBqu0Ci_PNDbP-tEO8H5cydXDy8uLZFAos,586
|
|
226
228
|
hikyuu/include/hikyuu/data_driver/base_info/table/MarketInfoTable.h,sha256=3R1mQsif9Kibnal1G_A-DkVf2PS4-uqpWdgCeC41CQQ,3594
|
|
227
229
|
hikyuu/include/hikyuu/data_driver/base_info/table/StockTable.h,sha256=ZSGT6ZZg-UOAaSYp7FJd4cDGoW-XWHhn4jAvwLQmGyw,1792
|
|
@@ -250,11 +252,12 @@ hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h,sha256=8OK3Ak
|
|
|
250
252
|
hikyuu/include/hikyuu/data_driver/kdata/sqlite/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
251
253
|
hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h,sha256=sopmIX0A5ClMGu8trrJFJAI_sYXRzMunv2qTY4mDWxM,2157
|
|
252
254
|
hikyuu/include/hikyuu/data_driver/kdata/tdx/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
253
|
-
hikyuu/include/hikyuu/global/GlobalSpotAgent.h,sha256=
|
|
254
|
-
hikyuu/include/hikyuu/global/GlobalTaskGroup.h,sha256=
|
|
255
|
+
hikyuu/include/hikyuu/global/GlobalSpotAgent.h,sha256=XZSYx8hHcxgHvtXfj19SyqeDqQXeh5fyky9EVXO3rDw,567
|
|
256
|
+
hikyuu/include/hikyuu/global/GlobalTaskGroup.h,sha256=AcQb3Qdw6CC8VIfqoDzSpracDB71YDgdr2WWx4nKZLA,897
|
|
257
|
+
hikyuu/include/hikyuu/global/SpotRecord.h,sha256=NQBYWq_j5m3oMLuRRzelBt9WgjYJVQa26Mevn7onXYE,1798
|
|
255
258
|
hikyuu/include/hikyuu/global/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
256
259
|
hikyuu/include/hikyuu/global/sysinfo.h,sha256=b2_7iDTbsOt8-RkQejEZxWgZl350rZlcPpF9Bo3O3Lw,1476
|
|
257
|
-
hikyuu/include/hikyuu/global/agent/SpotAgent.h,sha256=
|
|
260
|
+
hikyuu/include/hikyuu/global/agent/SpotAgent.h,sha256=BL_gN4fKlyC0cJqBbeF3sU0VT4yMNwO5BalpKSfJ31w,4145
|
|
258
261
|
hikyuu/include/hikyuu/global/agent/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
259
262
|
hikyuu/include/hikyuu/global/agent/spot_generated.h,sha256=SA_D9SUB1aPPcETFAuHeAWdpo-KI-N9OJpm4SgcZDd4,17059
|
|
260
263
|
hikyuu/include/hikyuu/global/agent/hikyuu/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
@@ -467,19 +470,21 @@ hikyuu/include/hikyuu/serialization/TimeLineRecord_serialization.h,sha256=25Ujub
|
|
|
467
470
|
hikyuu/include/hikyuu/serialization/TransRecord_serialization.h,sha256=tsr6UlOEg0_fIbe_EH4IrrINTWzNq6U6EpQnc7wN418,1206
|
|
468
471
|
hikyuu/include/hikyuu/serialization/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
469
472
|
hikyuu/include/hikyuu/serialization/all.h,sha256=uTBNEsxWp7PFut0_F2eVV2YmFWr4ajv3IM26il0-FVg,681
|
|
470
|
-
hikyuu/include/hikyuu/strategy/
|
|
471
|
-
hikyuu/include/hikyuu/strategy/
|
|
473
|
+
hikyuu/include/hikyuu/strategy/BrokerTradeManager.h,sha256=YeCiZhX7KFYoOHfdj5JxynG7eC8d_lWtvpBh-aZl7Ow,15205
|
|
474
|
+
hikyuu/include/hikyuu/strategy/RunPortfolioInStrategy.h,sha256=B8HkNILRjUL5a9j-IxdSUyN1JZVAKz2F3BUadF-9L4g,1004
|
|
475
|
+
hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h,sha256=EmrNq8gBN9egNA01HdlCdkYAek5Olm6rrKQOy4HkO54,1047
|
|
476
|
+
hikyuu/include/hikyuu/strategy/Strategy.h,sha256=OvvL7h_xg6xQXkAnweDX7CPPX1yStthMwzHR8nsyu8w,5538
|
|
472
477
|
hikyuu/include/hikyuu/strategy/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
473
478
|
hikyuu/include/hikyuu/trade_manage/BorrowRecord.h,sha256=IgfGCoazQvqo7mGdATVH2amXKNvjWUnVBAsGmG0gfGU,2608
|
|
474
479
|
hikyuu/include/hikyuu/trade_manage/CostRecord.h,sha256=-OS6sJPniotsBhJCYu_gLA0soGc7jnxp1NWkMNoxUD0,1806
|
|
475
|
-
hikyuu/include/hikyuu/trade_manage/FundsRecord.h,sha256=
|
|
480
|
+
hikyuu/include/hikyuu/trade_manage/FundsRecord.h,sha256=5jbqn1ws8GraY-IN_OcZCWfIQWwnSPSnNUZ_TelaFjw,3594
|
|
476
481
|
hikyuu/include/hikyuu/trade_manage/LoanRecord.h,sha256=z__IEsVnFW-gN2kxHuKMnjt22w5z5qHXUD5XJwip-zg,1584
|
|
477
|
-
hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h,sha256=
|
|
482
|
+
hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h,sha256=_sAfgb_hNRuiu5nGsdtp3Js0KgaMh3e4rMtxStDRAp0,6134
|
|
478
483
|
hikyuu/include/hikyuu/trade_manage/Performance.h,sha256=zARzdqOxI-qUhiEpHCqML2F0fed-RNWK1qS4PG6u0Mc,2145
|
|
479
|
-
hikyuu/include/hikyuu/trade_manage/PositionRecord.h,sha256=
|
|
484
|
+
hikyuu/include/hikyuu/trade_manage/PositionRecord.h,sha256=9-SFDHHir6wocWkkPFRUiv-lwQENAoF2HDCQQudsV5c,3748
|
|
480
485
|
hikyuu/include/hikyuu/trade_manage/TradeCostBase.h,sha256=rEnk3K1Q0d99rKsnwYhYpOxIeyfOCVpNTBjaX0qKHYA,5051
|
|
481
|
-
hikyuu/include/hikyuu/trade_manage/TradeManager.h,sha256=
|
|
482
|
-
hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h,sha256=
|
|
486
|
+
hikyuu/include/hikyuu/trade_manage/TradeManager.h,sha256=gifyYhrsg0GWqip_sU4vHHgRtZ67k5EQ-ETpfNIstlk,18906
|
|
487
|
+
hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h,sha256=_7kZWrV7rVu5cLr3pbN5LO5bvBeuJqD2kvmiWZL8JYk,26844
|
|
483
488
|
hikyuu/include/hikyuu/trade_manage/TradeRecord.h,sha256=PEnIIinP3g8BhZJ5aoPctfhASS5MtREaJixdrXm9Faw,5057
|
|
484
489
|
hikyuu/include/hikyuu/trade_manage/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
485
490
|
hikyuu/include/hikyuu/trade_manage/build_in.h,sha256=7Bcqrf3_c3U1349h9rwL7qSjL8yMcBfagbA-Zridphw,381
|
|
@@ -664,21 +669,21 @@ hikyuu/include/hikyuu/utilities/Null.h,sha256=2jP7mZ4pwX2HcLoN0jQRn3KC4r0tJHkpSt
|
|
|
664
669
|
hikyuu/include/hikyuu/utilities/Parameter.h,sha256=ZCsuj8mounWDZzGuPbpj7X3XGEs5-bUOid31DrX6dGM,21376
|
|
665
670
|
hikyuu/include/hikyuu/utilities/ResourcePool.h,sha256=33t4uqskYubYiP631nF9_0gCf_ocFY4cUHgSq_vITpk,21813
|
|
666
671
|
hikyuu/include/hikyuu/utilities/SpendTimer.h,sha256=ieNvkdpWAyFw2Di337ojRxB5zK3cVGeGQhw9f148O-A,8828
|
|
667
|
-
hikyuu/include/hikyuu/utilities/TimerManager.h,sha256=
|
|
672
|
+
hikyuu/include/hikyuu/utilities/TimerManager.h,sha256=nbujwjasS0IaQU7FwHXzYZm4a0q7SmHeU5neqLMVCk4,21018
|
|
668
673
|
hikyuu/include/hikyuu/utilities/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
669
674
|
hikyuu/include/hikyuu/utilities/any_to_string.h,sha256=LOG0E396oEcz9KPwWqflHncdmMq-va2DlW9Hi-6A6fo,3618
|
|
670
|
-
hikyuu/include/hikyuu/utilities/arithmetic.h,sha256=
|
|
675
|
+
hikyuu/include/hikyuu/utilities/arithmetic.h,sha256=Yp0VvRo3UrgwKUlNBzX-QgKCMgVRZ_hGKPY5sBsnw5A,10465
|
|
671
676
|
hikyuu/include/hikyuu/utilities/base64.h,sha256=CJuMz6X1ZqwiKDAXsudWFSOhM7COVc1tlEIbYOF2c5o,1833
|
|
672
677
|
hikyuu/include/hikyuu/utilities/config.h,sha256=ApFowqwlIqVMfU6xbx8btIRJ-kKzIid1Gv5xNkHxRi8,774
|
|
673
678
|
hikyuu/include/hikyuu/utilities/cppdef.h,sha256=JrrQBAwCwVJ7O5pI1UNh5fv_OuXQX0jvFjmace47BS0,514
|
|
674
|
-
hikyuu/include/hikyuu/utilities/exception.h,sha256=
|
|
679
|
+
hikyuu/include/hikyuu/utilities/exception.h,sha256=fEp2bMcH96s-hHU9d3qhSFgUTjgyorHrSroxXmEXLww,1082
|
|
675
680
|
hikyuu/include/hikyuu/utilities/md5.h,sha256=E_wo8gCfwT3JMyABB-FChZt20DnIUV2s39nHtOMHksc,776
|
|
676
681
|
hikyuu/include/hikyuu/utilities/os.h,sha256=77mXusCa9beMLZ-b64BxXVIrajXpFy9DoVycaA8ktz0,2672
|
|
677
682
|
hikyuu/include/hikyuu/utilities/osdef.h,sha256=h17Q_e6MzGhTgK-L56VAeumdN9VrTScw_fgSoXGyLnQ,4252
|
|
678
683
|
hikyuu/include/hikyuu/utilities/runtimeinfo.h,sha256=B5JuzFsKkJFP4YPwrekJ2KRDbD5TiWqhkmiqSSF5fgI,617
|
|
679
684
|
hikyuu/include/hikyuu/utilities/snowflake.h,sha256=tuNzUK4NNdwlkMIERF3j9-A0d4Te_NoOu_yD9KGFwIY,3557
|
|
680
685
|
hikyuu/include/hikyuu/utilities/string_view.h,sha256=87p5Sq1gEqoQc7TMC5wlDk_-opQuVewxdZEGP0Qh6ps,1471
|
|
681
|
-
hikyuu/include/hikyuu/utilities/datetime/Datetime.h,sha256=
|
|
686
|
+
hikyuu/include/hikyuu/utilities/datetime/Datetime.h,sha256=wlMqJMb--DIbrY6yZz2eodjPXMfb3oER3bFASGdyAZw,11749
|
|
682
687
|
hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h,sha256=c2ll_ODop8SojHN2aYciT_3bDaFA8cEvrfp3q9eEZzY,9852
|
|
683
688
|
hikyuu/include/hikyuu/utilities/datetime/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
684
689
|
hikyuu/include/hikyuu/utilities/db_connect/AutoTransAction.h,sha256=Lyb_A0inmq_G5GtKdDjrk59c9w0FVPC6ZXIo6OLV4uI,3071
|
|
@@ -698,7 +703,7 @@ hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h,sha256=RhLpL5d
|
|
|
698
703
|
hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h,sha256=92TirFNAFN34mMqc24gauyUxZZJ8Vmg_6S7Ohq7WrNE,2316
|
|
699
704
|
hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteUtil.h,sha256=fzJlrLsYf7B6oUMqzBWD7S4GZjFCZnTRe9Uz-nuqG5k,3526
|
|
700
705
|
hikyuu/include/hikyuu/utilities/db_connect/sqlite/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
701
|
-
hikyuu/include/hikyuu/utilities/http_client/HttpClient.h,sha256=
|
|
706
|
+
hikyuu/include/hikyuu/utilities/http_client/HttpClient.h,sha256=SrOVM078Mi6TazPOmypstB-um-mMRjlyE1V3hNBgFqc,6947
|
|
702
707
|
hikyuu/include/hikyuu/utilities/http_client/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
703
708
|
hikyuu/include/hikyuu/utilities/http_client/nng_wrap.h,sha256=FmyzuhZA32X7OxLlX3bEQ9B8YBgeEy2je__uN6lxb9k,13083
|
|
704
709
|
hikyuu/include/hikyuu/utilities/http_client/url.h,sha256=ClqmAQKpIo-qhZMT6OM9hhO0c_0x6s7wycNI8cLiuH0,411
|
|
@@ -706,7 +711,7 @@ hikyuu/include/hikyuu/utilities/ini_parser/IniParser.h,sha256=qV-CnMsFC04OFwNXR7
|
|
|
706
711
|
hikyuu/include/hikyuu/utilities/ini_parser/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
707
712
|
hikyuu/include/hikyuu/utilities/mo/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
708
713
|
hikyuu/include/hikyuu/utilities/mo/mo.h,sha256=MdFkaM4zL3bXtV8nYFP4Bo5f-yw4T5F9B5L8uHXefQU,1191
|
|
709
|
-
hikyuu/include/hikyuu/utilities/mo/moFileReader.h,sha256=
|
|
714
|
+
hikyuu/include/hikyuu/utilities/mo/moFileReader.h,sha256=Lpz2UcC3c9k5jCtdamtwgV1QRcZD24oRP3kHmqPlWac,30168
|
|
710
715
|
hikyuu/include/hikyuu/utilities/node/NodeClient.h,sha256=3k8EhjEAbLIOp9fBnz-OOeyCLjZIQonMPOUNmSTbE0M,5127
|
|
711
716
|
hikyuu/include/hikyuu/utilities/node/NodeError.h,sha256=opo9hVonI9BAhmEpG2UxIx-v551reHldLHY27vMfxUI,2171
|
|
712
717
|
hikyuu/include/hikyuu/utilities/node/NodeMessage.h,sha256=04V8_Zr2tzcn5qggiFCNCqHA6xFFI32FdCaI3GyYR5g,2039
|
|
@@ -732,9 +737,10 @@ hikyuu/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
732
737
|
hikyuu/shell/cmdserver.py,sha256=EktCYCQ5BwrrIJmiic6lmM-ZFvoFQh_y6L6uqT-2zt8,3328
|
|
733
738
|
hikyuu/shell/hkucmd.py,sha256=YrVM7LERwIu52_n7EOHi9Qkpc-_h3f9zhUlKRCpDh_8,3515
|
|
734
739
|
hikyuu/shell/hkushell.py,sha256=vMSuv1YRm01B_3HM1kvTi4-9GzZZLJOE8U2pGP5G5Qc,364
|
|
735
|
-
hikyuu/strategy/__init__.py,sha256=
|
|
736
|
-
hikyuu/strategy/
|
|
737
|
-
hikyuu/strategy/
|
|
740
|
+
hikyuu/strategy/__init__.py,sha256=5Ibac_wDXMV4h-cPFkh_nJKeyEfuB6xZzChG9ujSyvk,43
|
|
741
|
+
hikyuu/strategy/strategy_demo1.py,sha256=3yvwQ6oAMysy3UwOF_Smpf95aH5X1cjf1thgcW9KzxA,1771
|
|
742
|
+
hikyuu/strategy/strategy_demo2.py,sha256=wI32Wvtysy3J5XBKxtvSmG_CEu7i0DBXvNjs401T16M,1968
|
|
743
|
+
hikyuu/strategy/strategy_demo3.py,sha256=RLGxIrOe0FwWhdK7hv0HNoZR1pKoh3P7Bumwg_h55T4,1038
|
|
738
744
|
hikyuu/test/AllocateFunds.py,sha256=LT5NdcR78CyvocXDPbOni65bpYAepGW8P7J8nUdp3dI,503
|
|
739
745
|
hikyuu/test/Condition.py,sha256=GORqreuFhPZEkxLrNHoXlYmslxh8jcXn7Da-0_lIyJ4,3120
|
|
740
746
|
hikyuu/test/Datetime.py,sha256=JW9SStoQ6wZ8VNG5ddAhH9ZXs7c3QO_i8wMmms_YyA0,2044
|
|
@@ -762,9 +768,9 @@ hikyuu/tools/h5_data_clear.py,sha256=mbro9e9H2GTMjO_-1mDPBEbDPec8iydL6An2aOSQuAg
|
|
|
762
768
|
hikyuu/tools/mysql_clear_last_day_data.py,sha256=BYiPMHm-wMXiJdRnwEVrlDii3ohK3wNb7LbsP4n1o_s,1692
|
|
763
769
|
hikyuu/tools/update_block_info.py,sha256=WH9dMsdP8vciY3zp2RgJgZBmZoDGnBANbFoTVtjyhzg,5011
|
|
764
770
|
hikyuu/trade_manage/__init__.py,sha256=T70USQgynFJnr4oRButUBc3p3wRkzBvm4HCS9H8gRGE,1393
|
|
765
|
-
hikyuu/trade_manage/broker.py,sha256=
|
|
766
|
-
hikyuu/trade_manage/broker_easytrader.py,sha256=
|
|
767
|
-
hikyuu/trade_manage/broker_mail.py,sha256=
|
|
771
|
+
hikyuu/trade_manage/broker.py,sha256=cjozi2rRut396ICPwQLPdXo5myPg3k4KsC5HGmXs4XM,4020
|
|
772
|
+
hikyuu/trade_manage/broker_easytrader.py,sha256=nUISgaOGkwR1bCnenPz3kUsdPQLx2a1J9xF1xTOPqYA,2319
|
|
773
|
+
hikyuu/trade_manage/broker_mail.py,sha256=jdmKL_0GlLwSlMbxBxC_4DwjavIARXRbseO84A7251s,4032
|
|
768
774
|
hikyuu/trade_manage/trade.py,sha256=V0vko4zFA1UpU_gGpFoAwCSHLP71xAWTdOulVKemP4o,4281
|
|
769
775
|
hikyuu/trade_sys/__init__.py,sha256=BSAozrOrdSyuPT_3fCKN4f8SSWEQkgK4Fsu-uc_eK-Y,1223
|
|
770
776
|
hikyuu/trade_sys/trade_sys.py,sha256=UAr5war_ygFJl-K6TddLgb8nYRcENWrqACOoOGYoXJw,8219
|
|
@@ -775,9 +781,9 @@ hikyuu/util/notebook.py,sha256=zToRjn0gqrs11SC6CK3IvJUWcerBMID_byxSn255BWk,1159
|
|
|
775
781
|
hikyuu/util/singleton.py,sha256=ADnNpIUK63Q7iqkVv9XVptAPHg3iPlPGv1eYCPXjn34,793
|
|
776
782
|
hikyuu/util/slice.py,sha256=ZPvGFc7MO3USnAS4ADMnjJaPqTRFV0nXY_ssgfysxJ4,1759
|
|
777
783
|
hikyuu/util/timeout.py,sha256=n1KdeXfXgh6fJKdrxmmL5PU6zIkeuVp1LKMwll8okDo,3031
|
|
778
|
-
hikyuu-2.1.
|
|
779
|
-
hikyuu-2.1.
|
|
780
|
-
hikyuu-2.1.
|
|
781
|
-
hikyuu-2.1.
|
|
782
|
-
hikyuu-2.1.
|
|
783
|
-
hikyuu-2.1.
|
|
784
|
+
hikyuu-2.1.2.dist-info/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
|
|
785
|
+
hikyuu-2.1.2.dist-info/METADATA,sha256=Xi2472fxyXJqu3P3uNcn7l4RpW83YMzLnr2vQMTQVmA,7760
|
|
786
|
+
hikyuu-2.1.2.dist-info/WHEEL,sha256=mX3xZdJ00TXAWs7scdbAcxJ6dLW6xuvFxQI7UdfqmYc,99
|
|
787
|
+
hikyuu-2.1.2.dist-info/entry_points.txt,sha256=YSbsDH-RPGc57mPTWqwHT9VO_3aaWtXSytQbVzJX2I0,97
|
|
788
|
+
hikyuu-2.1.2.dist-info/top_level.txt,sha256=lRZUoOesNQRMIhUqwFzRZ-UnmwM6wQaMSjBRFuSbRDY,3862
|
|
789
|
+
hikyuu-2.1.2.dist-info/RECORD,,
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright(C) 2021 hikyuu.org
|
|
3
|
-
*
|
|
4
|
-
* Create on: 2021-02-16
|
|
5
|
-
* Author: fasiondog
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#pragma once
|
|
9
|
-
|
|
10
|
-
#include <future>
|
|
11
|
-
#include "../DataType.h"
|
|
12
|
-
#include "../StrategyContext.h"
|
|
13
|
-
#include "../utilities/Parameter.h"
|
|
14
|
-
#include "../utilities/thread/FuncWrapper.h"
|
|
15
|
-
#include "../utilities/thread/ThreadSafeQueue.h"
|
|
16
|
-
#include "../global/GlobalSpotAgent.h"
|
|
17
|
-
#include "../trade_sys/portfolio/Portfolio.h"
|
|
18
|
-
|
|
19
|
-
namespace hku {
|
|
20
|
-
|
|
21
|
-
class HKU_API StrategyBase {
|
|
22
|
-
PARAMETER_SUPPORT
|
|
23
|
-
|
|
24
|
-
public:
|
|
25
|
-
StrategyBase();
|
|
26
|
-
explicit StrategyBase(const string& name);
|
|
27
|
-
StrategyBase(const string& name, const string& config_file);
|
|
28
|
-
|
|
29
|
-
virtual ~StrategyBase();
|
|
30
|
-
|
|
31
|
-
const string& name() const {
|
|
32
|
-
return m_name;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
void name(const string& name) {
|
|
36
|
-
m_name = name;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
StockManager& getSM() {
|
|
40
|
-
return StockManager::instance();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
TMPtr getTM() const {
|
|
44
|
-
return m_tm;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
void setTM(const TMPtr& tm) {
|
|
48
|
-
m_tm = tm;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const StrategyContext& context() const {
|
|
52
|
-
return m_context;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
void context(const StrategyContext& context) {
|
|
56
|
-
m_context = context;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
Datetime startDatetime() const {
|
|
60
|
-
return m_context.startDatetime();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
void startDatetime(const Datetime& d) {
|
|
64
|
-
m_context.startDatetime(d);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
void setStockCodeList(vector<string>&& stockList) {
|
|
68
|
-
m_context.setStockCodeList(std::move(stockList));
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
void setStockCodeList(const vector<string>& stockList) {
|
|
72
|
-
m_context.setStockCodeList(stockList);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const vector<string>& getStockCodeList() const {
|
|
76
|
-
return m_context.getStockCodeList();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
void setKTypeList(const vector<KQuery::KType>& ktypeList) {
|
|
80
|
-
m_context.setKTypeList(ktypeList);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const vector<KQuery::KType>& getKTypeList() const {
|
|
84
|
-
return m_context.getKTypeList();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
void run() {
|
|
88
|
-
_run(false);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
void receivedSpot(const SpotRecord& spot);
|
|
92
|
-
void finishReceivedSpot(Datetime revTime);
|
|
93
|
-
|
|
94
|
-
virtual void init() {}
|
|
95
|
-
virtual void onTick() {}
|
|
96
|
-
virtual void onBar(const KQuery::KType& ktype){};
|
|
97
|
-
|
|
98
|
-
virtual void onMarketOpen() {}
|
|
99
|
-
virtual void onMarketClose() {}
|
|
100
|
-
virtual void onClock(TimeDelta detla) {}
|
|
101
|
-
|
|
102
|
-
private:
|
|
103
|
-
string m_name;
|
|
104
|
-
string m_config_file;
|
|
105
|
-
StrategyContext m_context;
|
|
106
|
-
TMPtr m_tm;
|
|
107
|
-
|
|
108
|
-
StockList m_stock_list;
|
|
109
|
-
std::unordered_map<KQuery::KType, Datetime> m_ref_last_time;
|
|
110
|
-
std::unordered_map<Stock, SpotRecord> m_spot_map;
|
|
111
|
-
|
|
112
|
-
private:
|
|
113
|
-
void _initDefaultParam();
|
|
114
|
-
|
|
115
|
-
void _addTimer();
|
|
116
|
-
void _addClockEvent(const string& enable, TimeDelta delta, TimeDelta openTime,
|
|
117
|
-
TimeDelta closeTime);
|
|
118
|
-
|
|
119
|
-
void _run(bool forTest);
|
|
120
|
-
|
|
121
|
-
private:
|
|
122
|
-
static std::atomic_bool ms_keep_running;
|
|
123
|
-
static void sig_handler(int sig);
|
|
124
|
-
|
|
125
|
-
typedef FuncWrapper event_type;
|
|
126
|
-
ThreadSafeQueue<event_type> m_event_queue; // 消息队列
|
|
127
|
-
|
|
128
|
-
/** 先消息队列提交任务后返回的对应 future 的类型 */
|
|
129
|
-
template <typename ResultType>
|
|
130
|
-
using event_handle = std::future<ResultType>;
|
|
131
|
-
|
|
132
|
-
#ifdef _MSC_VER
|
|
133
|
-
#pragma warning(push)
|
|
134
|
-
#pragma warning(disable : 4996)
|
|
135
|
-
#endif
|
|
136
|
-
|
|
137
|
-
/** 向线程池提交任务 */
|
|
138
|
-
template <typename FunctionType>
|
|
139
|
-
event_handle<typename std::result_of<FunctionType()>::type> event(FunctionType f) {
|
|
140
|
-
typedef typename std::result_of<FunctionType()>::type result_type;
|
|
141
|
-
std::packaged_task<result_type()> task(f);
|
|
142
|
-
event_handle<result_type> res(task.get_future());
|
|
143
|
-
m_event_queue.push(std::move(task));
|
|
144
|
-
return res;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
#ifdef _MSC_VER
|
|
148
|
-
#pragma warning(pop)
|
|
149
|
-
#endif
|
|
150
|
-
|
|
151
|
-
void _startEventLoop();
|
|
152
|
-
};
|
|
153
|
-
|
|
154
|
-
typedef shared_ptr<StrategyBase> StrategyPtr;
|
|
155
|
-
|
|
156
|
-
} // namespace hku
|
hikyuu/strategy/demo/__init__.py
DELETED
hikyuu/strategy/strategy.py
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/python
|
|
2
|
-
# -*- coding: utf8 -*-
|
|
3
|
-
# cp936
|
|
4
|
-
|
|
5
|
-
from hikyuu import StrategyBase, Query
|
|
6
|
-
from hikyuu import StrategyContext, StockManager
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class TestStrategy(StrategyBase):
|
|
10
|
-
def __init__(self):
|
|
11
|
-
super(self.__class__, self).__init__()
|
|
12
|
-
self.stock_list = ['sh600000', 'sz000001']
|
|
13
|
-
self.ktype_list = [Query.MIN, Query.DAY]
|
|
14
|
-
|
|
15
|
-
def init(self):
|
|
16
|
-
print("strategy init")
|
|
17
|
-
|
|
18
|
-
def on_bar(self, ktype):
|
|
19
|
-
print("on bar {}".format(ktype))
|
|
20
|
-
print("{}".format(len(StockManager.instance())))
|
|
21
|
-
for s in self.sm:
|
|
22
|
-
print(s)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if __name__ == '__main__':
|
|
26
|
-
s = TestStrategy()
|
|
27
|
-
s.run()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|