hikyuu 2.6.2__py3-none-win_amd64.whl → 2.6.5__py3-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/__init__.py +1 -1
- hikyuu/__init__.pyi +28 -13
- hikyuu/analysis/__init__.pyi +20 -0
- hikyuu/analysis/analysis.pyi +21 -1
- hikyuu/core.pyi +22 -2
- hikyuu/cpp/core310.pyd +0 -0
- hikyuu/cpp/core310.pyi +499 -50
- hikyuu/cpp/core311.pyd +0 -0
- hikyuu/cpp/core311.pyi +499 -50
- hikyuu/cpp/core312.pyd +0 -0
- hikyuu/cpp/core312.pyi +499 -50
- hikyuu/cpp/core313.pyd +0 -0
- hikyuu/cpp/core313.pyi +499 -50
- hikyuu/cpp/core39.pyd +0 -0
- hikyuu/cpp/core39.pyi +499 -50
- hikyuu/cpp/hikyuu.dll +0 -0
- hikyuu/cpp/hikyuu.lib +0 -0
- hikyuu/data/common.py +1 -1
- hikyuu/data/common_mysql.py +19 -0
- hikyuu/data/common_pytdx.py +2 -0
- hikyuu/data/common_sqlite3.py +1 -0
- hikyuu/data/hku_config_template.py +14 -0
- hikyuu/data/mysql_upgrade/0028.sql +95 -0
- hikyuu/data/pytdx_to_h5.py +53 -13
- hikyuu/data/pytdx_to_mysql.py +42 -9
- hikyuu/data/pytdx_to_taos.py +736 -0
- hikyuu/data/sqlite_upgrade/0028.sql +97 -0
- hikyuu/draw/__init__.pyi +1 -1
- hikyuu/draw/drawplot/__init__.pyi +1 -1
- hikyuu/draw/drawplot/bokeh_draw.pyi +24 -9
- hikyuu/draw/drawplot/echarts_draw.pyi +24 -9
- hikyuu/draw/drawplot/matplotlib_draw.py +26 -4
- hikyuu/draw/drawplot/matplotlib_draw.pyi +24 -9
- hikyuu/draw/kaufman.py +2 -2
- hikyuu/draw/kaufman.pyi +2 -2
- hikyuu/examples/notebook/001-overview.ipynb +65 -100
- hikyuu/examples/notebook/004-IndicatorOverview.ipynb +34 -32
- hikyuu/examples/notebook/007-SystemDetails.ipynb +64 -50
- hikyuu/examples/notebook/010-Portfolio.ipynb +120 -124
- hikyuu/extend.py +1 -1
- hikyuu/extend.pyi +24 -9
- hikyuu/fetcher/stock/zh_block_em.py +349 -5
- hikyuu/fetcher/stock/zh_stock_a_pytdx.py +2 -1
- hikyuu/gui/HikyuuTDX.py +47 -24
- hikyuu/gui/data/ImportBlockInfoTask.py +1 -1
- hikyuu/gui/data/ImportHistoryFinanceTask.py +48 -44
- hikyuu/gui/data/ImportPytdxTimeToH5Task.py +3 -1
- hikyuu/gui/data/ImportPytdxToH5Task.py +4 -2
- hikyuu/gui/data/ImportPytdxTransToH5Task.py +3 -1
- hikyuu/gui/data/ImportWeightToSqliteTask.py +2 -1
- hikyuu/gui/data/ImportZhBond10Task.py +1 -1
- hikyuu/gui/data/MainWindow.py +123 -106
- hikyuu/gui/data/UsePytdxImportToH5Thread.py +7 -3
- hikyuu/gui/data/UseQmtImportToH5Thread.py +1 -0
- hikyuu/gui/data/UseTdxImportToH5Thread.py +2 -1
- hikyuu/hub.pyi +6 -6
- hikyuu/include/hikyuu/Block.h +20 -0
- hikyuu/include/hikyuu/KQuery.h +8 -0
- hikyuu/include/hikyuu/MarketInfo.h +6 -0
- hikyuu/include/hikyuu/Stock.h +1 -1
- hikyuu/include/hikyuu/StockManager.h +6 -0
- hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +35 -0
- hikyuu/include/hikyuu/indicator/Indicator.h +5 -0
- hikyuu/include/hikyuu/indicator/IndicatorImp.h +8 -3
- hikyuu/include/hikyuu/indicator/build_in.h +1 -0
- hikyuu/include/hikyuu/indicator/crt/BARSLASTCOUNT.h +33 -0
- hikyuu/include/hikyuu/indicator/crt/INSUM.h +5 -10
- hikyuu/include/hikyuu/indicator/crt/RSI.h +2 -18
- hikyuu/include/hikyuu/indicator/imp/IBarsLastCount.h +27 -0
- hikyuu/include/hikyuu/plugin/backtest.h +3 -2
- hikyuu/include/hikyuu/plugin/device.h +6 -3
- hikyuu/include/hikyuu/plugin/extind.h +150 -0
- hikyuu/include/hikyuu/plugin/interface/BackTestPluginInterface.h +2 -1
- hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +1 -0
- hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +26 -0
- hikyuu/include/hikyuu/plugin/interface/TMReportPluginInterface.h +80 -0
- hikyuu/include/hikyuu/plugin/interface/plugins.h +4 -0
- hikyuu/include/hikyuu/strategy/BrokerTradeManager.h +7 -5
- hikyuu/include/hikyuu/strategy/Strategy.h +22 -9
- hikyuu/include/hikyuu/trade_manage/OrderBrokerBase.h +11 -4
- hikyuu/include/hikyuu/trade_manage/Performance.h +17 -9
- hikyuu/include/hikyuu/trade_manage/PositionExtInfo.h +92 -0
- hikyuu/include/hikyuu/trade_manage/PositionRecord.h +7 -1
- hikyuu/include/hikyuu/trade_manage/TradeManager.h +8 -5
- hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +66 -5
- hikyuu/include/hikyuu/trade_manage/TradeRecord.h +9 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +8 -5
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_EqualWeight.h +4 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICIRWeight.h +4 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_ICWeight.h +4 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/crt/MF_Weight.h +4 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +2 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +2 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +2 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_Optimal.h +8 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalEvaluateSelector.h +28 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/optimal/OptimalSelectorBase.h +1 -0
- hikyuu/include/hikyuu/trade_sys/system/TradeRequest.h +7 -4
- hikyuu/include/hikyuu/trade_sys/system/imp/WalkForwardTradeManager.h +17 -13
- hikyuu/include/hikyuu/utilities/DllLoader.h +226 -0
- hikyuu/include/hikyuu/utilities/datetime/Datetime.h +20 -0
- hikyuu/include/hikyuu/utilities/datetime/TimeDelta.h +6 -0
- hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +10 -10
- hikyuu/include/hikyuu/utilities/thread/{MQStealThreadPool.h → GlobalMQStealThreadPool.h} +12 -12
- hikyuu/include/hikyuu/utilities/thread/GlobalMQThreadPool.h +271 -0
- hikyuu/include/hikyuu/utilities/thread/{StealThreadPool.h → GlobalStealThreadPool.h} +11 -10
- hikyuu/include/hikyuu/utilities/thread/GlobalThreadPool.h +224 -0
- hikyuu/include/hikyuu/utilities/thread/InterruptFlag.h +16 -0
- hikyuu/include/hikyuu/utilities/thread/MQThreadPool.h +40 -77
- hikyuu/include/hikyuu/utilities/thread/ThreadPool.h +31 -59
- hikyuu/include/hikyuu/utilities/thread/ThreadSafeQueue.h +4 -0
- hikyuu/include/hikyuu/utilities/thread/algorithm.h +9 -9
- hikyuu/include/hikyuu/utilities/thread/thread.h +4 -0
- hikyuu/include/hikyuu/version.h +4 -4
- hikyuu/plugin/backtest.dll +0 -0
- hikyuu/plugin/dataserver.dll +0 -0
- hikyuu/plugin/device.dll +0 -0
- hikyuu/plugin/extind.dll +0 -0
- hikyuu/plugin/import2hdf5.dll +0 -0
- hikyuu/plugin/tmreport.dll +0 -0
- hikyuu/trade_manage/__init__.pyi +23 -8
- hikyuu/trade_manage/broker.py +8 -8
- hikyuu/trade_manage/broker.pyi +4 -4
- hikyuu/trade_manage/broker_easytrader.py +3 -3
- hikyuu/trade_manage/broker_easytrader.pyi +2 -2
- hikyuu/trade_manage/broker_mail.py +2 -2
- hikyuu/trade_manage/broker_mail.pyi +2 -2
- hikyuu/trade_manage/trade.pyi +23 -8
- hikyuu/util/singleton.pyi +1 -1
- {hikyuu-2.6.2.dist-info → hikyuu-2.6.5.dist-info}/METADATA +4 -3
- {hikyuu-2.6.2.dist-info → hikyuu-2.6.5.dist-info}/RECORD +136 -121
- {hikyuu-2.6.2.dist-info → hikyuu-2.6.5.dist-info}/LICENSE +0 -0
- {hikyuu-2.6.2.dist-info → hikyuu-2.6.5.dist-info}/WHEEL +0 -0
- {hikyuu-2.6.2.dist-info → hikyuu-2.6.5.dist-info}/entry_points.txt +0 -0
- {hikyuu-2.6.2.dist-info → hikyuu-2.6.5.dist-info}/top_level.txt +0 -0
hikyuu/cpp/core313.pyi
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
import numpy
|
|
3
3
|
import typing
|
|
4
|
-
__all__ = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', 'AF_FixedWeight', 'AF_FixedWeightList', 'AF_MultiFactor', 'ALIGN', 'AMA', 'ASIN', 'ATAN', 'ATR', 'AVEDEV', 'AllocateFundsBase', 'BACKSET', 'BARSCOUNT', 'BARSLAST', 'BARSSINCE', 'BARSSINCEN', 'BETWEEN', 'BLOCKSETNUM', 'BUSINESS', 'Block', 'BlockInfoDriver', 'BorrowRecord', 'BrokerPositionRecord', 'CEILING', 'CN_Bool', 'CN_OPLine', 'CONTEXT', 'CONTEXT_K', 'CORR', 'COS', 'COST', 'COUNT', 'CROSS', 'CVAL', 'CYCLE', 'C_AMO', 'C_CLOSE', 'C_HIGH', 'C_KDATA', 'C_LOW', 'C_OPEN', 'C_VOL', 'ConditionBase', 'Constant', 'CostRecord', 'DATE', 'DAY', 'DEBUG', 'DECLINE', 'DEVSQ', 'DIFF', 'DIRECT', 'DISCARD', 'DMA', 'DOWNNDAY', 'DROPNA', 'DataDriverFactory', 'Datetime', 'DatetimeList', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'HHV', 'HHVBARS', 'HKUException', 'HOUR', 'HSL', 'Hours', 'IC', 'ICIR', 'IF', 'INBLOCK', 'INDEXA', 'INDEXADV', 'INDEXC', 'INDEXDEC', 'INDEXH', 'INDEXL', 'INDEXO', 'INDEXV', 'INFO', 'INSUM', 'INTPART', 'IR', 'ISINF', 'ISINFA', 'ISLASTBAR', 'ISNA', 'IndParam', 'Indicator', 'IndicatorImp', 'JUMPDOWN', 'JUMPUP', 'KALMAN', 'KDATA_PART', 'KData', 'KDataDriver', 'KDataToHdf5Importer', 'KRecord', 'KRecordList', 'LAST', 'LASTVALUE', 'LIUTONGPAN', 'LLV', 'LLVBARS', 'LN', 'LOG', 'LOG_LEVEL', 'LONGCROSS', 'LoanRecord', 'MA', 'MACD', 'MAX', 'MDD', 'MF_EqualWeight', 'MF_ICIRWeight', 'MF_ICWeight', 'MF_Weight', 'MIN', 'MINUTE', 'MM_FixedCapital', 'MM_FixedCapitalFunds', 'MM_FixedCount', 'MM_FixedCountTps', 'MM_FixedPercent', 'MM_FixedRisk', 'MM_FixedUnits', 'MM_Nothing', 'MM_WilliamsFixedRisk', 'MOD', 'MONTH', 'MRR', 'MarketInfo', 'Microseconds', 'Milliseconds', 'Minutes', 'MoneyManagerBase', 'MultiFactorBase', 'NDAY', 'NOT', 'OFF', 'OrderBrokerBase', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Performance', 'Portfolio', 'PositionRecord', 'PositionRecordList', 'ProfitGoalBase', 'Query', 'RECOVER_BACKWARD', 'RECOVER_EQUAL_BACKWARD', 'RECOVER_EQUAL_FORWARD', 'RECOVER_FORWARD', 'REF', 'REPLACE', 'RESULT', 'REVERSE', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'ROUND', 'ROUNDDOWN', 'ROUNDUP', 'RSI', 'SAFTYLOSS', 'SE_Fixed', 'SE_MaxFundsOptimal', 'SE_MultiFactor', 'SE_PerformanceOptimal', 'SE_Signal', 'SGN', 'SG_Add', 'SG_AllwaysBuy', 'SG_And', 'SG_Band', 'SG_Bool', 'SG_Buy', 'SG_Cross', 'SG_CrossGold', 'SG_Cycle', 'SG_Div', 'SG_Flex', 'SG_Mul', 'SG_OneSide', 'SG_Or', 'SG_Sell', 'SG_Single', 'SG_Single2', 'SG_Sub', 'SIN', 'SLICE', 'SLOPE', 'SMA', 'SPEARMAN', 'SP_FixedPercent', 'SP_FixedValue', 'SQRT', 'STDEV', 'STDP', 'ST_FixedPercent', 'ST_Indicator', 'ST_Saftyloss', 'SUM', 'SUMBARS', 'SYS_Simple', 'SYS_WalkForward', 'ScoreRecord', 'ScoreRecordList', 'Seconds', 'SelectorBase', 'SignalBase', 'SlippageBase', 'SpotRecord', 'Stock', 'StockManager', 'StockTypeInfo', 'StockWeight', 'StockWeightList', 'StoplossBase', 'Strategy', 'StrategyContext', 'System', 'SystemPart', 'SystemWeight', 'SystemWeightList', 'TAN', 'TA_ACCBANDS', 'TA_ACOS', 'TA_AD', 'TA_ADD', 'TA_ADOSC', 'TA_ADX', 'TA_ADXR', 'TA_APO', 'TA_AROON', 'TA_AROONOSC', 'TA_ASIN', 'TA_ATAN', 'TA_ATR', 'TA_AVGDEV', 'TA_AVGPRICE', 'TA_BBANDS', 'TA_BETA', 'TA_BOP', 'TA_CCI', 'TA_CDL2CROWS', 'TA_CDL3BLACKCROWS', 'TA_CDL3INSIDE', 'TA_CDL3LINESTRIKE', 'TA_CDL3OUTSIDE', 'TA_CDL3STARSINSOUTH', 'TA_CDL3WHITESOLDIERS', 'TA_CDLABANDONEDBABY', 'TA_CDLADVANCEBLOCK', 'TA_CDLBELTHOLD', 'TA_CDLBREAKAWAY', 'TA_CDLCLOSINGMARUBOZU', 'TA_CDLCONCEALBABYSWALL', 'TA_CDLCOUNTERATTACK', 'TA_CDLDARKCLOUDCOVER', 'TA_CDLDOJI', 'TA_CDLDOJISTAR', 'TA_CDLDRAGONFLYDOJI', 'TA_CDLENGULFING', 'TA_CDLEVENINGDOJISTAR', 'TA_CDLEVENINGSTAR', 'TA_CDLGAPSIDESIDEWHITE', 'TA_CDLGRAVESTONEDOJI', 'TA_CDLHAMMER', 'TA_CDLHANGINGMAN', 'TA_CDLHARAMI', 'TA_CDLHARAMICROSS', 'TA_CDLHIGHWAVE', 'TA_CDLHIKKAKE', 'TA_CDLHIKKAKEMOD', 'TA_CDLHOMINGPIGEON', 'TA_CDLIDENTICAL3CROWS', 'TA_CDLINNECK', 'TA_CDLINVERTEDHAMMER', 'TA_CDLKICKING', 'TA_CDLKICKINGBYLENGTH', 'TA_CDLLADDERBOTTOM', 'TA_CDLLONGLEGGEDDOJI', 'TA_CDLLONGLINE', 'TA_CDLMARUBOZU', 'TA_CDLMATCHINGLOW', 'TA_CDLMATHOLD', 'TA_CDLMORNINGDOJISTAR', 'TA_CDLMORNINGSTAR', 'TA_CDLONNECK', 'TA_CDLPIERCING', 'TA_CDLRICKSHAWMAN', 'TA_CDLRISEFALL3METHODS', 'TA_CDLSEPARATINGLINES', 'TA_CDLSHOOTINGSTAR', 'TA_CDLSHORTLINE', 'TA_CDLSPINNINGTOP', 'TA_CDLSTALLEDPATTERN', 'TA_CDLSTICKSANDWICH', 'TA_CDLTAKURI', 'TA_CDLTASUKIGAP', 'TA_CDLTHRUSTING', 'TA_CDLTRISTAR', 'TA_CDLUNIQUE3RIVER', 'TA_CDLUPSIDEGAP2CROWS', 'TA_CDLXSIDEGAP3METHODS', 'TA_CEIL', 'TA_CMO', 'TA_CORREL', 'TA_COS', 'TA_COSH', 'TA_DEMA', 'TA_DIV', 'TA_DX', 'TA_EMA', 'TA_EXP', 'TA_FLOOR', 'TA_HT_DCPERIOD', 'TA_HT_DCPHASE', 'TA_HT_PHASOR', 'TA_HT_SINE', 'TA_HT_TRENDLINE', 'TA_HT_TRENDMODE', 'TA_IMI', 'TA_KAMA', 'TA_LINEARREG', 'TA_LINEARREG_ANGLE', 'TA_LINEARREG_INTERCEPT', 'TA_LINEARREG_SLOPE', 'TA_LN', 'TA_LOG10', 'TA_MA', 'TA_MACD', 'TA_MACDEXT', 'TA_MACDFIX', 'TA_MAMA', 'TA_MAVP', 'TA_MAX', 'TA_MAXINDEX', 'TA_MEDPRICE', 'TA_MFI', 'TA_MIDPOINT', 'TA_MIDPRICE', 'TA_MIN', 'TA_MININDEX', 'TA_MINMAX', 'TA_MINMAXINDEX', 'TA_MINUS_DI', 'TA_MINUS_DM', 'TA_MOM', 'TA_MULT', 'TA_NATR', 'TA_OBV', 'TA_PLUS_DI', 'TA_PLUS_DM', 'TA_PPO', 'TA_ROC', 'TA_ROCP', 'TA_ROCR', 'TA_ROCR100', 'TA_RSI', 'TA_SAR', 'TA_SAREXT', 'TA_SIN', 'TA_SINH', 'TA_SMA', 'TA_SQRT', 'TA_STDDEV', 'TA_STOCH', 'TA_STOCHF', 'TA_STOCHRSI', 'TA_SUB', 'TA_SUM', 'TA_T3', 'TA_TAN', 'TA_TANH', 'TA_TEMA', 'TA_TRANGE', 'TA_TRIMA', 'TA_TRIX', 'TA_TSF', 'TA_TYPPRICE', 'TA_ULTOSC', 'TA_VAR', 'TA_WCLPRICE', 'TA_WILLR', 'TA_WMA', 'TC_FixedA', 'TC_FixedA2015', 'TC_FixedA2017', 'TC_TestStub', 'TC_Zero', 'TIME', 'TIMELINE', 'TIMELINEVOL', 'TR', 'TRACE', 'TURNOVER', 'TimeDelta', 'TimeLineList', 'TimeLineRecord', 'TradeCostBase', 'TradeManager', 'TradeRecord', 'TradeRecordList', 'TradeRequest', 'TransList', 'TransRecord', 'UPNDAY', 'VAR', 'VARP', 'VIGOR', 'WARN', 'WEAVE', 'WEEK', 'WINNER', 'WMA', 'YEAR', 'ZHBOND10', 'ZONGGUBEN', 'ZSCORE', 'active_device', 'backtest', 'batch_calculate_inds', 'can_upgrade', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'constant', 'crtBrokerTM', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'fetch_trial_license', 'find_optimal_system', 'find_optimal_system_multi', 'get_block', 'get_business_name', 'get_data_from_buffer_server', 'get_date_range', 'get_kdata', 'get_last_version', 'get_log_level', 'get_stock', 'get_system_part_enum', 'get_system_part_name', 'get_version', 'get_version_git', 'get_version_with_build', 'hikyuu_init', 'inner_analysis_sys_list', 'inner_combinate_ind_analysis', 'inner_combinate_ind_analysis_with_block', 'isinf', 'isnan', 'open_ostream_to_python', 'open_spend_time', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'set_log_level', 'set_python_in_interactive', 'set_python_in_jupyter', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'toPriceList', 'view_license']
|
|
4
|
+
__all__ = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', 'AF_FixedWeight', 'AF_FixedWeightList', 'AF_MultiFactor', 'ALIGN', 'AMA', 'ASIN', 'ATAN', 'ATR', 'AVEDEV', 'AllocateFundsBase', 'BACKSET', 'BARSCOUNT', 'BARSLAST', 'BARSLASTCOUNT', 'BARSSINCE', 'BARSSINCEN', 'BETWEEN', 'BLOCKSETNUM', 'BUSINESS', 'Block', 'BlockInfoDriver', 'BorrowRecord', 'BrokerPositionRecord', 'CEILING', 'CN_Bool', 'CN_OPLine', 'CONTEXT', 'CONTEXT_K', 'CORR', 'COS', 'COST', 'COUNT', 'CROSS', 'CVAL', 'CYCLE', 'C_AMO', 'C_CLOSE', 'C_HIGH', 'C_KDATA', 'C_LOW', 'C_OPEN', 'C_VOL', 'ConditionBase', 'Constant', 'CostRecord', 'DATE', 'DAY', 'DEBUG', 'DECLINE', 'DEVSQ', 'DIFF', 'DIRECT', 'DISCARD', 'DMA', 'DOWNNDAY', 'DROPNA', 'DataDriverFactory', 'Datetime', 'DatetimeList', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'HHV', 'HHVBARS', 'HKUException', 'HOUR', 'HSL', 'Hours', 'IC', 'ICIR', 'IF', 'INBLOCK', 'INDEXA', 'INDEXADV', 'INDEXC', 'INDEXDEC', 'INDEXH', 'INDEXL', 'INDEXO', 'INDEXV', 'INFO', 'INSUM', 'INTPART', 'IR', 'ISINF', 'ISINFA', 'ISLASTBAR', 'ISNA', 'IndParam', 'Indicator', 'IndicatorImp', 'JUMPDOWN', 'JUMPUP', 'KALMAN', 'KDATA_PART', 'KData', 'KDataDriver', 'KDataToHdf5Importer', 'KRecord', 'KRecordList', 'LAST', 'LASTVALUE', 'LIUTONGPAN', 'LLV', 'LLVBARS', 'LN', 'LOG', 'LOG_LEVEL', 'LONGCROSS', 'LoanRecord', 'MA', 'MACD', 'MAX', 'MDD', 'MF_EqualWeight', 'MF_ICIRWeight', 'MF_ICWeight', 'MF_Weight', 'MIN', 'MINUTE', 'MM_FixedCapital', 'MM_FixedCapitalFunds', 'MM_FixedCount', 'MM_FixedCountTps', 'MM_FixedPercent', 'MM_FixedRisk', 'MM_FixedUnits', 'MM_Nothing', 'MM_WilliamsFixedRisk', 'MOD', 'MONTH', 'MRR', 'MarketInfo', 'Microseconds', 'Milliseconds', 'Minutes', 'MoneyManagerBase', 'MultiFactorBase', 'NDAY', 'NOT', 'OFF', 'OrderBrokerBase', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Performance', 'Portfolio', 'PositionRecord', 'PositionRecordList', 'ProfitGoalBase', 'Query', 'RANK', 'RECOVER_BACKWARD', 'RECOVER_EQUAL_BACKWARD', 'RECOVER_EQUAL_FORWARD', 'RECOVER_FORWARD', 'REF', 'REPLACE', 'RESULT', 'REVERSE', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'ROUND', 'ROUNDDOWN', 'ROUNDUP', 'RSI', 'SAFTYLOSS', 'SE_EvaluateOptimal', 'SE_Fixed', 'SE_MaxFundsOptimal', 'SE_MultiFactor', 'SE_PerformanceOptimal', 'SE_Signal', 'SGN', 'SG_Add', 'SG_AllwaysBuy', 'SG_And', 'SG_Band', 'SG_Bool', 'SG_Buy', 'SG_Cross', 'SG_CrossGold', 'SG_Cycle', 'SG_Div', 'SG_Flex', 'SG_Mul', 'SG_OneSide', 'SG_Or', 'SG_Sell', 'SG_Single', 'SG_Single2', 'SG_Sub', 'SIN', 'SLICE', 'SLOPE', 'SMA', 'SPEARMAN', 'SP_FixedPercent', 'SP_FixedValue', 'SQRT', 'STDEV', 'STDP', 'ST_FixedPercent', 'ST_Indicator', 'ST_Saftyloss', 'SUM', 'SUMBARS', 'SYS_Simple', 'SYS_WalkForward', 'ScoreRecord', 'ScoreRecordList', 'Seconds', 'SelectorBase', 'SignalBase', 'SlippageBase', 'SpotRecord', 'Stock', 'StockManager', 'StockTypeInfo', 'StockWeight', 'StockWeightList', 'StoplossBase', 'Strategy', 'StrategyContext', 'System', 'SystemPart', 'SystemWeight', 'SystemWeightList', 'TAN', 'TA_ACCBANDS', 'TA_ACOS', 'TA_AD', 'TA_ADD', 'TA_ADOSC', 'TA_ADX', 'TA_ADXR', 'TA_APO', 'TA_AROON', 'TA_AROONOSC', 'TA_ASIN', 'TA_ATAN', 'TA_ATR', 'TA_AVGDEV', 'TA_AVGPRICE', 'TA_BBANDS', 'TA_BETA', 'TA_BOP', 'TA_CCI', 'TA_CDL2CROWS', 'TA_CDL3BLACKCROWS', 'TA_CDL3INSIDE', 'TA_CDL3LINESTRIKE', 'TA_CDL3OUTSIDE', 'TA_CDL3STARSINSOUTH', 'TA_CDL3WHITESOLDIERS', 'TA_CDLABANDONEDBABY', 'TA_CDLADVANCEBLOCK', 'TA_CDLBELTHOLD', 'TA_CDLBREAKAWAY', 'TA_CDLCLOSINGMARUBOZU', 'TA_CDLCONCEALBABYSWALL', 'TA_CDLCOUNTERATTACK', 'TA_CDLDARKCLOUDCOVER', 'TA_CDLDOJI', 'TA_CDLDOJISTAR', 'TA_CDLDRAGONFLYDOJI', 'TA_CDLENGULFING', 'TA_CDLEVENINGDOJISTAR', 'TA_CDLEVENINGSTAR', 'TA_CDLGAPSIDESIDEWHITE', 'TA_CDLGRAVESTONEDOJI', 'TA_CDLHAMMER', 'TA_CDLHANGINGMAN', 'TA_CDLHARAMI', 'TA_CDLHARAMICROSS', 'TA_CDLHIGHWAVE', 'TA_CDLHIKKAKE', 'TA_CDLHIKKAKEMOD', 'TA_CDLHOMINGPIGEON', 'TA_CDLIDENTICAL3CROWS', 'TA_CDLINNECK', 'TA_CDLINVERTEDHAMMER', 'TA_CDLKICKING', 'TA_CDLKICKINGBYLENGTH', 'TA_CDLLADDERBOTTOM', 'TA_CDLLONGLEGGEDDOJI', 'TA_CDLLONGLINE', 'TA_CDLMARUBOZU', 'TA_CDLMATCHINGLOW', 'TA_CDLMATHOLD', 'TA_CDLMORNINGDOJISTAR', 'TA_CDLMORNINGSTAR', 'TA_CDLONNECK', 'TA_CDLPIERCING', 'TA_CDLRICKSHAWMAN', 'TA_CDLRISEFALL3METHODS', 'TA_CDLSEPARATINGLINES', 'TA_CDLSHOOTINGSTAR', 'TA_CDLSHORTLINE', 'TA_CDLSPINNINGTOP', 'TA_CDLSTALLEDPATTERN', 'TA_CDLSTICKSANDWICH', 'TA_CDLTAKURI', 'TA_CDLTASUKIGAP', 'TA_CDLTHRUSTING', 'TA_CDLTRISTAR', 'TA_CDLUNIQUE3RIVER', 'TA_CDLUPSIDEGAP2CROWS', 'TA_CDLXSIDEGAP3METHODS', 'TA_CEIL', 'TA_CMO', 'TA_CORREL', 'TA_COS', 'TA_COSH', 'TA_DEMA', 'TA_DIV', 'TA_DX', 'TA_EMA', 'TA_EXP', 'TA_FLOOR', 'TA_HT_DCPERIOD', 'TA_HT_DCPHASE', 'TA_HT_PHASOR', 'TA_HT_SINE', 'TA_HT_TRENDLINE', 'TA_HT_TRENDMODE', 'TA_IMI', 'TA_KAMA', 'TA_LINEARREG', 'TA_LINEARREG_ANGLE', 'TA_LINEARREG_INTERCEPT', 'TA_LINEARREG_SLOPE', 'TA_LN', 'TA_LOG10', 'TA_MA', 'TA_MACD', 'TA_MACDEXT', 'TA_MACDFIX', 'TA_MAMA', 'TA_MAVP', 'TA_MAX', 'TA_MAXINDEX', 'TA_MEDPRICE', 'TA_MFI', 'TA_MIDPOINT', 'TA_MIDPRICE', 'TA_MIN', 'TA_MININDEX', 'TA_MINMAX', 'TA_MINMAXINDEX', 'TA_MINUS_DI', 'TA_MINUS_DM', 'TA_MOM', 'TA_MULT', 'TA_NATR', 'TA_OBV', 'TA_PLUS_DI', 'TA_PLUS_DM', 'TA_PPO', 'TA_ROC', 'TA_ROCP', 'TA_ROCR', 'TA_ROCR100', 'TA_RSI', 'TA_SAR', 'TA_SAREXT', 'TA_SIN', 'TA_SINH', 'TA_SMA', 'TA_SQRT', 'TA_STDDEV', 'TA_STOCH', 'TA_STOCHF', 'TA_STOCHRSI', 'TA_SUB', 'TA_SUM', 'TA_T3', 'TA_TAN', 'TA_TANH', 'TA_TEMA', 'TA_TRANGE', 'TA_TRIMA', 'TA_TRIX', 'TA_TSF', 'TA_TYPPRICE', 'TA_ULTOSC', 'TA_VAR', 'TA_WCLPRICE', 'TA_WILLR', 'TA_WMA', 'TC_FixedA', 'TC_FixedA2015', 'TC_FixedA2017', 'TC_TestStub', 'TC_Zero', 'TIME', 'TIMELINE', 'TIMELINEVOL', 'TR', 'TRACE', 'TURNOVER', 'TimeDelta', 'TimeLineList', 'TimeLineRecord', 'TradeCostBase', 'TradeManager', 'TradeRecord', 'TradeRecordList', 'TradeRequest', 'TransList', 'TransRecord', 'UPNDAY', 'UTCOffset', 'VAR', 'VARP', 'VIGOR', 'WARN', 'WEAVE', 'WEEK', 'WINNER', 'WITHDAY', 'WITHHALFYEAR', 'WITHHOUR', 'WITHHOUR2', 'WITHHOUR4', 'WITHKTYPE', 'WITHMIN', 'WITHMIN15', 'WITHMIN30', 'WITHMIN5', 'WITHMIN60', 'WITHMONTH', 'WITHQUARTER', 'WITHWEEK', 'WITHYEAR', 'WMA', 'YEAR', 'ZHBOND10', 'ZONGGUBEN', 'ZSCORE', 'active_device', 'backtest', 'batch_calculate_inds', 'can_upgrade', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'constant', 'crtBrokerTM', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'fetch_trial_license', 'find_optimal_system', 'find_optimal_system_multi', 'get_block', 'get_business_name', 'get_data_from_buffer_server', 'get_date_range', 'get_kdata', 'get_last_version', 'get_log_level', 'get_stock', 'get_system_part_enum', 'get_system_part_name', 'get_version', 'get_version_git', 'get_version_with_build', 'hikyuu_init', 'inner_analysis_sys_list', 'inner_combinate_ind_analysis', 'inner_combinate_ind_analysis_with_block', 'is_valid_license', 'isinf', 'isnan', 'open_ostream_to_python', 'open_spend_time', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'set_log_level', 'set_python_in_interactive', 'set_python_in_jupyter', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'toPriceList', 'view_license']
|
|
5
5
|
class AllocateFundsBase:
|
|
6
6
|
"""
|
|
7
7
|
资产分配算法基类, 子类接口:
|
|
@@ -210,6 +210,8 @@ class Block:
|
|
|
210
210
|
@staticmethod
|
|
211
211
|
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
212
212
|
...
|
|
213
|
+
def __eq__(self, arg0: Block) -> bool:
|
|
214
|
+
...
|
|
213
215
|
def __getitem__(self, arg0: str) -> Stock:
|
|
214
216
|
"""
|
|
215
217
|
__getitem__(self, market_code)
|
|
@@ -219,6 +221,8 @@ class Block:
|
|
|
219
221
|
"""
|
|
220
222
|
def __getstate__(self) -> tuple:
|
|
221
223
|
...
|
|
224
|
+
def __hash__(self) -> int:
|
|
225
|
+
...
|
|
222
226
|
@typing.overload
|
|
223
227
|
def __init__(self) -> None:
|
|
224
228
|
...
|
|
@@ -234,6 +238,8 @@ class Block:
|
|
|
234
238
|
"""
|
|
235
239
|
包含的证券数量
|
|
236
240
|
"""
|
|
241
|
+
def __ne__(self, arg0: Block) -> bool:
|
|
242
|
+
...
|
|
237
243
|
def __repr__(self) -> str:
|
|
238
244
|
...
|
|
239
245
|
def __setstate__(self, arg0: tuple) -> None:
|
|
@@ -290,6 +296,12 @@ class Block:
|
|
|
290
296
|
|
|
291
297
|
:param func filter: 输入参数为 stock, 返回 True | False 的过滤函数
|
|
292
298
|
"""
|
|
299
|
+
def is_null(self) -> bool:
|
|
300
|
+
"""
|
|
301
|
+
is_null(self)
|
|
302
|
+
|
|
303
|
+
是否为null值
|
|
304
|
+
"""
|
|
293
305
|
@typing.overload
|
|
294
306
|
def remove(self, arg0: Stock) -> bool:
|
|
295
307
|
"""
|
|
@@ -919,6 +931,16 @@ class Datetime:
|
|
|
919
931
|
兼容oracle用后7个字节表示的datetime
|
|
920
932
|
"""
|
|
921
933
|
@staticmethod
|
|
934
|
+
def from_timestamp(arg0: int) -> Datetime:
|
|
935
|
+
"""
|
|
936
|
+
从时间戳(微秒)创建Datetime对象
|
|
937
|
+
"""
|
|
938
|
+
@staticmethod
|
|
939
|
+
def from_timestamp_utc(arg0: int) -> Datetime:
|
|
940
|
+
"""
|
|
941
|
+
从时间戳(微秒)创建Datetime对象,并加上本地UTC时间偏差
|
|
942
|
+
"""
|
|
943
|
+
@staticmethod
|
|
922
944
|
def max() -> Datetime:
|
|
923
945
|
"""
|
|
924
946
|
获取支持的最大日期, Datetime(9999, 12, 31)
|
|
@@ -1121,6 +1143,14 @@ class Datetime:
|
|
|
1121
1143
|
"""
|
|
1122
1144
|
返回年度起始日期
|
|
1123
1145
|
"""
|
|
1146
|
+
def timestamp(self) -> int:
|
|
1147
|
+
"""
|
|
1148
|
+
返回时间戳(微妙级别)
|
|
1149
|
+
"""
|
|
1150
|
+
def timestamp_utc(self) -> int:
|
|
1151
|
+
"""
|
|
1152
|
+
返回时间戳(微妙级别), 并扣除本地 UTC 偏差时间
|
|
1153
|
+
"""
|
|
1124
1154
|
@property
|
|
1125
1155
|
def day(self) -> int:
|
|
1126
1156
|
"""
|
|
@@ -1795,6 +1825,15 @@ class Indicator:
|
|
|
1795
1825
|
"""
|
|
1796
1826
|
克隆操作
|
|
1797
1827
|
"""
|
|
1828
|
+
def contains(self, arg0: str) -> bool:
|
|
1829
|
+
"""
|
|
1830
|
+
contains(self, name)
|
|
1831
|
+
|
|
1832
|
+
获取指标公式中是否包含指定名称的指标
|
|
1833
|
+
|
|
1834
|
+
:param str name: 指定的指标名称
|
|
1835
|
+
:rtype: bool
|
|
1836
|
+
"""
|
|
1798
1837
|
def empty(self) -> bool:
|
|
1799
1838
|
"""
|
|
1800
1839
|
是否为空
|
|
@@ -2047,6 +2086,8 @@ class IndicatorImp:
|
|
|
2047
2086
|
...
|
|
2048
2087
|
def clone(self) -> IndicatorImp:
|
|
2049
2088
|
...
|
|
2089
|
+
def contains(self, arg0: str) -> bool:
|
|
2090
|
+
...
|
|
2050
2091
|
def get_ind_param(self, arg0: str) -> ...:
|
|
2051
2092
|
...
|
|
2052
2093
|
def get_param(self, arg0: str) -> any:
|
|
@@ -3123,9 +3164,9 @@ class OrderBrokerBase:
|
|
|
3123
3164
|
...
|
|
3124
3165
|
def __str__(self) -> str:
|
|
3125
3166
|
...
|
|
3126
|
-
def _buy(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart) -> None:
|
|
3167
|
+
def _buy(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart, arg8: str) -> None:
|
|
3127
3168
|
"""
|
|
3128
|
-
_buy(self, datetime, market, code, price, num, stoploss, goal_price, part_from)
|
|
3169
|
+
_buy(self, datetime, market, code, price, num, stoploss, goal_price, part_from, remark)
|
|
3129
3170
|
|
|
3130
3171
|
【子类接口】执行买入操作
|
|
3131
3172
|
|
|
@@ -3136,7 +3177,8 @@ class OrderBrokerBase:
|
|
|
3136
3177
|
:param float num: 买入数量
|
|
3137
3178
|
:param float stoploss: 计划止损价
|
|
3138
3179
|
:param float goal_price: 计划盈利目标价
|
|
3139
|
-
:param SystemPart part_from:
|
|
3180
|
+
:param SystemPart part_from: 信号来源,
|
|
3181
|
+
:param str remark: 订单备注
|
|
3140
3182
|
"""
|
|
3141
3183
|
def _get_asset_info(self) -> str:
|
|
3142
3184
|
"""
|
|
@@ -3158,9 +3200,9 @@ class OrderBrokerBase:
|
|
|
3158
3200
|
:return: 以字符串(json格式)方式返回当前资产信息
|
|
3159
3201
|
:rtype: str
|
|
3160
3202
|
"""
|
|
3161
|
-
def _sell(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart) -> None:
|
|
3203
|
+
def _sell(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart, arg8: str) -> None:
|
|
3162
3204
|
"""
|
|
3163
|
-
_sell(self, datetime, market, code, price, num, stoploss, goal_price, part_from)
|
|
3205
|
+
_sell(self, datetime, market, code, price, num, stoploss, goal_price, part_from, remark)
|
|
3164
3206
|
|
|
3165
3207
|
【子类接口】执行卖出操作
|
|
3166
3208
|
|
|
@@ -3172,8 +3214,9 @@ class OrderBrokerBase:
|
|
|
3172
3214
|
:param float stoploss: 计划止损价
|
|
3173
3215
|
:param float goal_price: 计划盈利目标价
|
|
3174
3216
|
:param SystemPart part_from: 信号来源
|
|
3217
|
+
:param str remark: 订单备注
|
|
3175
3218
|
"""
|
|
3176
|
-
def buy(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart) -> None:
|
|
3219
|
+
def buy(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart, arg8: str) -> None:
|
|
3177
3220
|
"""
|
|
3178
3221
|
详情见子类实现接口: _buy
|
|
3179
3222
|
"""
|
|
@@ -3181,7 +3224,7 @@ class OrderBrokerBase:
|
|
|
3181
3224
|
"""
|
|
3182
3225
|
详情见子类实现接口: _get_asset_info
|
|
3183
3226
|
"""
|
|
3184
|
-
def sell(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart) -> None:
|
|
3227
|
+
def sell(self, arg0: Datetime, arg1: str, arg2: str, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart, arg8: str) -> None:
|
|
3185
3228
|
"""
|
|
3186
3229
|
详情见子类实现接口: _sell
|
|
3187
3230
|
"""
|
|
@@ -3261,9 +3304,6 @@ class Performance:
|
|
|
3261
3304
|
def _pybind11_conduit_v1_(*args, **kwargs):
|
|
3262
3305
|
...
|
|
3263
3306
|
@staticmethod
|
|
3264
|
-
def exist(arg0: str) -> bool:
|
|
3265
|
-
...
|
|
3266
|
-
@staticmethod
|
|
3267
3307
|
def to_df(per):
|
|
3268
3308
|
"""
|
|
3269
3309
|
将 Performance 统计结果转换为 DataFrame 格式
|
|
@@ -3277,20 +3317,21 @@ class Performance:
|
|
|
3277
3317
|
"""
|
|
3278
3318
|
def __init__(self) -> None:
|
|
3279
3319
|
...
|
|
3320
|
+
def exist(self, arg0: str) -> bool:
|
|
3321
|
+
...
|
|
3280
3322
|
def names(self) -> list[str]:
|
|
3281
3323
|
"""
|
|
3282
3324
|
names(self)
|
|
3283
3325
|
|
|
3284
3326
|
获取所有统计项名称
|
|
3285
3327
|
"""
|
|
3286
|
-
def report(self
|
|
3328
|
+
def report(self) -> str:
|
|
3287
3329
|
"""
|
|
3288
|
-
report(self
|
|
3330
|
+
report(self)
|
|
3289
3331
|
|
|
3290
3332
|
简单的文本统计报告,用于直接输出打印
|
|
3333
|
+
只有运行 statistics 后或 Performance 本身为从 TM 获取的结果时才生效
|
|
3291
3334
|
|
|
3292
|
-
:param TradeManager tm: 指定的交易管理实例
|
|
3293
|
-
:param Datetime datetime: 统计截止时刻
|
|
3294
3335
|
:rtype: str
|
|
3295
3336
|
"""
|
|
3296
3337
|
def reset(self) -> None:
|
|
@@ -3308,6 +3349,8 @@ class Performance:
|
|
|
3308
3349
|
:param TradeManager tm: 指定的交易管理实例
|
|
3309
3350
|
:param Datetime datetime: 统计截止时刻
|
|
3310
3351
|
"""
|
|
3352
|
+
def to_dict(self) -> dict:
|
|
3353
|
+
...
|
|
3311
3354
|
def values(self) -> list[float]:
|
|
3312
3355
|
"""
|
|
3313
3356
|
values(self)
|
|
@@ -5123,6 +5166,16 @@ class StockManager:
|
|
|
5123
5166
|
|
|
5124
5167
|
:rtype: StringList
|
|
5125
5168
|
"""
|
|
5169
|
+
def get_market_stock(self, arg0: str) -> ...:
|
|
5170
|
+
"""
|
|
5171
|
+
get_market_stock(self, market)
|
|
5172
|
+
|
|
5173
|
+
获取指定市场的代表指数(可能为空)
|
|
5174
|
+
|
|
5175
|
+
:param string market: 指定的市场标识(市场简称)
|
|
5176
|
+
:return: 相应的市场代表指数,如果相应的市场信息不存在,则返回Null<Stock>()
|
|
5177
|
+
:rtype: Stock
|
|
5178
|
+
"""
|
|
5126
5179
|
def get_plugin_path(self) -> str:
|
|
5127
5180
|
"""
|
|
5128
5181
|
get_plugin_path(self)
|
|
@@ -5622,20 +5675,52 @@ class Strategy:
|
|
|
5622
5675
|
:param str name: 策略名称
|
|
5623
5676
|
:param str config: 配置文件名称(如需要使用独立的配置文件,否则为空时使用默认的hikyuu配置文件)
|
|
5624
5677
|
"""
|
|
5625
|
-
def buy(self, stock: Stock, price: float, num: float, stoploss: float = 0.0, goal_price: float = 0.0, part: SystemPart =
|
|
5678
|
+
def buy(self, stock: Stock, price: float, num: float, stoploss: float = 0.0, goal_price: float = 0.0, part: SystemPart = ..., remark: str = '') -> TradeRecord:
|
|
5626
5679
|
...
|
|
5627
5680
|
def get_kdata(self, stk: Stock, start_date: Datetime, end_date: Datetime, ktype: str, recover_type: Query.RecoverType = ...) -> KData:
|
|
5628
|
-
|
|
5681
|
+
"""
|
|
5682
|
+
get_kdata(self, stk, start_date, end_date, ktype, recover_type)
|
|
5683
|
+
|
|
5684
|
+
获取指定证券指定日期范围内的K线数据(为保证实盘和回测一致,请使用本方法获取K线数据)
|
|
5685
|
+
:param Stock stk: 指定的证券
|
|
5686
|
+
:param Datetime start_date: 开始日期
|
|
5687
|
+
:param Datetime end_date: 结束日期
|
|
5688
|
+
:param KQuery.KType ktype: K线类型
|
|
5689
|
+
:param KQuery.RecoverType recover_type: 恢复方式
|
|
5690
|
+
:return: K线数据
|
|
5691
|
+
:rtype: KData
|
|
5692
|
+
"""
|
|
5629
5693
|
@typing.overload
|
|
5630
5694
|
def get_last_kdata(self, stk: Stock, start_date: Datetime, ktype: str, recover_type: Query.RecoverType = ...) -> KData:
|
|
5631
5695
|
...
|
|
5632
5696
|
@typing.overload
|
|
5633
5697
|
def get_last_kdata(self, stk: Stock, lastnum: int, ktype: str, recover_type: Query.RecoverType = ...) -> KData:
|
|
5634
|
-
|
|
5698
|
+
"""
|
|
5699
|
+
get_last_kdata(self, stk, start_date, ktype, recover_type)
|
|
5700
|
+
|
|
5701
|
+
获取指定证券从指定日期开始到当前时间的对应K线数据(为保证实盘和回测一致,请使用本方法获取K线数据)
|
|
5702
|
+
|
|
5703
|
+
或 指定当前能获取到的最后 last_num 条 K线数据(为保证实盘和回测一致,请使用本方法获取K线数据)
|
|
5704
|
+
|
|
5705
|
+
:param Stock stk: 指定的证券
|
|
5706
|
+
:param Datetime start_date: 开始日期 (或为 int 类型,表示从当前日期往前推多少个交易日)
|
|
5707
|
+
:param KQuery.KType ktype: K线类型
|
|
5708
|
+
:param KQuery.RecoverType recover_type: 恢复方式
|
|
5709
|
+
:return: K线数据
|
|
5710
|
+
:rtype: KData
|
|
5711
|
+
"""
|
|
5635
5712
|
def next_datetime(self) -> Datetime:
|
|
5636
|
-
|
|
5713
|
+
"""
|
|
5714
|
+
next_datetime(self)
|
|
5715
|
+
|
|
5716
|
+
下一交易时间点(回测使用)
|
|
5717
|
+
"""
|
|
5637
5718
|
def now(self) -> Datetime:
|
|
5638
|
-
|
|
5719
|
+
"""
|
|
5720
|
+
now(self)
|
|
5721
|
+
|
|
5722
|
+
获取当前时间(使用该方法而不是 Datatime.now(), 以便回测和实盘一直)
|
|
5723
|
+
"""
|
|
5639
5724
|
def on_change(self, arg0: typing.Any) -> None:
|
|
5640
5725
|
"""
|
|
5641
5726
|
onchang(self, func)
|
|
@@ -5652,6 +5737,24 @@ class Strategy:
|
|
|
5652
5737
|
|
|
5653
5738
|
:param func: 可调用对象如普通函数, func(stg: Strategy, revTime: Datetime)
|
|
5654
5739
|
"""
|
|
5740
|
+
def order(self, stock: Stock, num: float, remark: str = '') -> TradeRecord:
|
|
5741
|
+
"""
|
|
5742
|
+
order(self, stk, num, remark='')
|
|
5743
|
+
|
|
5744
|
+
按数量下单(正数为买入,负数为卖出)
|
|
5745
|
+
:param Stock stk: 指定的证券
|
|
5746
|
+
:param int num: 下单数量
|
|
5747
|
+
:param str remark: 下单备注
|
|
5748
|
+
"""
|
|
5749
|
+
def order_value(self, stock: Stock, price: float, remark: str = '') -> TradeRecord:
|
|
5750
|
+
"""
|
|
5751
|
+
order_value(self, stk, value, remark='')
|
|
5752
|
+
|
|
5753
|
+
按预期的证劵市值下单,即希望买入多少钱的证券(正数为买入,负数为卖出)
|
|
5754
|
+
:param Stock stk: 指定的证券
|
|
5755
|
+
:param float value: 投入买入资金
|
|
5756
|
+
:param str remark: 下单备注
|
|
5757
|
+
"""
|
|
5655
5758
|
def run_daily(self, func: typing.Any, time: TimeDelta, market: str = 'SH', ignore_market: bool = False) -> None:
|
|
5656
5759
|
"""
|
|
5657
5760
|
run_daily(self, func)
|
|
@@ -5674,7 +5777,7 @@ class Strategy:
|
|
|
5674
5777
|
:param TimeDelta time: 执行时刻,如每日15点:TimeDelta(0, 15)
|
|
5675
5778
|
:param ignore_holiday: 节假日不执行
|
|
5676
5779
|
"""
|
|
5677
|
-
def sell(self, stock: Stock, price: float, num: float, stoploss: float = 0.0, goal_price: float = 0.0, part: SystemPart =
|
|
5780
|
+
def sell(self, stock: Stock, price: float, num: float, stoploss: float = 0.0, goal_price: float = 0.0, part: SystemPart = ..., remark: str = '') -> TradeRecord:
|
|
5678
5781
|
...
|
|
5679
5782
|
def start(self, auto_recieve_spot: bool = True) -> None:
|
|
5680
5783
|
"""
|
|
@@ -5685,7 +5788,11 @@ class Strategy:
|
|
|
5685
5788
|
:param bool auto_recieve_spot: 是否自动接收行情数据
|
|
5686
5789
|
"""
|
|
5687
5790
|
def today(self) -> Datetime:
|
|
5688
|
-
|
|
5791
|
+
"""
|
|
5792
|
+
today(self)
|
|
5793
|
+
|
|
5794
|
+
获取当前交易日日期(使用该方法而不是 Datatime.today(), 以便回测和实盘一直)
|
|
5795
|
+
"""
|
|
5689
5796
|
@property
|
|
5690
5797
|
def context(self) -> StrategyContext:
|
|
5691
5798
|
"""
|
|
@@ -6821,9 +6928,9 @@ class TradeManager:
|
|
|
6821
6928
|
...
|
|
6822
6929
|
def borrow_stock(self, arg0: Datetime, arg1: Stock, arg2: float, arg3: float) -> bool:
|
|
6823
6930
|
...
|
|
6824
|
-
def buy(self, datetime: Datetime, stock: Stock, real_price: float, num: float, stoploss: float = 0.0, goal_price: float = 0.0, plan_price: float = 0.0, part: SystemPart =
|
|
6931
|
+
def buy(self, datetime: Datetime, stock: Stock, real_price: float, num: float, stoploss: float = 0.0, goal_price: float = 0.0, plan_price: float = 0.0, part: SystemPart = ..., remark: str = '') -> TradeRecord:
|
|
6825
6932
|
"""
|
|
6826
|
-
buy(self, datetime, stock, real_price, number[, stoploss=0.0, goal_price=0.0, plan_price=0.0, part=System.INVALID])
|
|
6933
|
+
buy(self, datetime, stock, real_price, number[, stoploss=0.0, goal_price=0.0, plan_price=0.0, part=System.INVALID, remark=""])
|
|
6827
6934
|
|
|
6828
6935
|
买入操作
|
|
6829
6936
|
|
|
@@ -6835,9 +6942,10 @@ class TradeManager:
|
|
|
6835
6942
|
:param float goal_price: 目标价格
|
|
6836
6943
|
:param float plan_price: 计划买入价格
|
|
6837
6944
|
:param SystemPart part: 交易指示来源
|
|
6945
|
+
:param string remark: 备注信息
|
|
6838
6946
|
:rtype: TradeRecord
|
|
6839
6947
|
"""
|
|
6840
|
-
def buy_short(self, arg0: Datetime, arg1: Stock, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart) -> TradeRecord:
|
|
6948
|
+
def buy_short(self, arg0: Datetime, arg1: Stock, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart, arg8: str) -> TradeRecord:
|
|
6841
6949
|
...
|
|
6842
6950
|
def cash(self, datetime: Datetime, ktype: str = 'DAY') -> float:
|
|
6843
6951
|
"""
|
|
@@ -6883,8 +6991,15 @@ class TradeManager:
|
|
|
6883
6991
|
"""
|
|
6884
6992
|
克隆(深复制)实例
|
|
6885
6993
|
"""
|
|
6886
|
-
def fetch_asset_info_from_broker(self,
|
|
6887
|
-
|
|
6994
|
+
def fetch_asset_info_from_broker(self, broker: OrderBrokerBase, date: Datetime = ...) -> None:
|
|
6995
|
+
"""
|
|
6996
|
+
fetch_asset_info_from_broker(self, date)
|
|
6997
|
+
|
|
6998
|
+
从Broker同步当前时刻的资产信息,必须按时间顺序被调用
|
|
6999
|
+
|
|
7000
|
+
:param broker 订单代理实例
|
|
7001
|
+
:param datetime 同步时,通常为当前时间(Null),也可以强制为指定的时间点
|
|
7002
|
+
"""
|
|
6888
7003
|
def getParam(self, arg0: str) -> any:
|
|
6889
7004
|
"""
|
|
6890
7005
|
get_param(self, name)
|
|
@@ -6955,6 +7070,16 @@ class TradeManager:
|
|
|
6955
7070
|
:param Query.KType ktype: K线类型
|
|
6956
7071
|
:rtype: FundsList
|
|
6957
7072
|
"""
|
|
7073
|
+
def get_history_position_ext_info_list(self, ktype: str = 'DAY', trade_mode: int = 0) -> list[...]:
|
|
7074
|
+
"""
|
|
7075
|
+
get_history_position_ext_info_list(self, ktype=Query.DAY, trade_mode=0) -> list[PositionExtInfo])
|
|
7076
|
+
|
|
7077
|
+
获取账户历史持仓扩展详情(已平仓记录)
|
|
7078
|
+
|
|
7079
|
+
:param Query.KType ktype: k线类型
|
|
7080
|
+
:param int trade_mode: 交易模式,影响部分统计项: 0-收盘时交易, 1-下一开盘时交易
|
|
7081
|
+
:return: 持仓扩展详情列表
|
|
7082
|
+
"""
|
|
6958
7083
|
def get_history_position_list(self) -> PositionRecordList:
|
|
6959
7084
|
"""
|
|
6960
7085
|
get_history_position_list(self)
|
|
@@ -6975,6 +7100,26 @@ class TradeManager:
|
|
|
6975
7100
|
"""
|
|
6976
7101
|
def get_margin_rate(self, arg0: Datetime, arg1: Stock) -> float:
|
|
6977
7102
|
...
|
|
7103
|
+
def get_max_pull_back(self, date: Datetime = ..., ktype: str = 'DAY') -> float:
|
|
7104
|
+
"""
|
|
7105
|
+
get_max_pull_back(self, date, ktype=Query.DAY) -> float
|
|
7106
|
+
|
|
7107
|
+
获取指定时刻时账户的最大回撤百分比(负数)
|
|
7108
|
+
|
|
7109
|
+
:param Datetime date: 指定日期(包含该时刻)
|
|
7110
|
+
:param Query.KType ktype: k线类型
|
|
7111
|
+
:return: 最大回撤百分比
|
|
7112
|
+
"""
|
|
7113
|
+
def get_performance(self, datetime: Datetime = ..., ktype: str = 'DAY') -> ...:
|
|
7114
|
+
"""
|
|
7115
|
+
get_performance(self[, datetime=Datetime.now(), ktype=Query.DAY]) -> Performance)
|
|
7116
|
+
|
|
7117
|
+
获取账户指定时刻的账户表现
|
|
7118
|
+
|
|
7119
|
+
:param Datetime datetime: 指定时刻
|
|
7120
|
+
:param Query.KType ktype: K线类型
|
|
7121
|
+
:return: 账户表现
|
|
7122
|
+
"""
|
|
6978
7123
|
def get_position(self, arg0: Datetime, arg1: Stock) -> PositionRecord:
|
|
6979
7124
|
"""
|
|
6980
7125
|
get_position(self, date, stock)
|
|
@@ -6985,6 +7130,17 @@ class TradeManager:
|
|
|
6985
7130
|
:param Stock stock: 指定的证券
|
|
6986
7131
|
:rtype: PositionRecord
|
|
6987
7132
|
"""
|
|
7133
|
+
def get_position_ext_info_list(self, current_time: Datetime, ktype: str = 'DAY', trade_mode: int = 0) -> list[...]:
|
|
7134
|
+
"""
|
|
7135
|
+
get_position_ext_info_list(self, current_time, ktype=Query.DAY, trade_mode=0) -> list[PositionExtInfo])
|
|
7136
|
+
|
|
7137
|
+
获取账户最后交易时刻之后指定时间的持仓详情(未平常记录)
|
|
7138
|
+
|
|
7139
|
+
:param Datetime current_time: 当前时刻(需大于等于最后交易时刻)
|
|
7140
|
+
:param Query.KType ktype: k线类型
|
|
7141
|
+
:param int trade_mode: 交易模式,影响部分统计项: 0-收盘时交易, 1-下一开盘时交易
|
|
7142
|
+
:return: 持仓扩展详情列表
|
|
7143
|
+
"""
|
|
6988
7144
|
def get_position_list(self) -> PositionRecordList:
|
|
6989
7145
|
"""
|
|
6990
7146
|
get_position_list(self)
|
|
@@ -7014,6 +7170,24 @@ class TradeManager:
|
|
|
7014
7170
|
:return: 收益曲线
|
|
7015
7171
|
:rtype: PriceList
|
|
7016
7172
|
"""
|
|
7173
|
+
def get_profit_percent_monthly(self, datetime: Datetime = ...) -> list[tuple[Datetime, float]]:
|
|
7174
|
+
"""
|
|
7175
|
+
get_profit_percent_monthly(self, datetime=Datetime.now()) -> list[tuple[Datetime, double]])
|
|
7176
|
+
|
|
7177
|
+
获取账户指定截止时刻的账户收益百分比(月度)
|
|
7178
|
+
|
|
7179
|
+
:param Datetime datetime: 指定截止时刻
|
|
7180
|
+
:return: 账户收益百分比(月度)
|
|
7181
|
+
"""
|
|
7182
|
+
def get_profit_percent_yearly(self, datetime: Datetime = ...) -> list[tuple[Datetime, float]]:
|
|
7183
|
+
"""
|
|
7184
|
+
get_profit_percent_yearly(self, datetime=Datetime.now()) -> list[tuple[Datetime, double]])
|
|
7185
|
+
|
|
7186
|
+
获取账户指定截止时刻的账户收益百分比(年度)
|
|
7187
|
+
|
|
7188
|
+
:param Datetime datetime: 指定截止时刻
|
|
7189
|
+
:return: 账户收益百分比(年度)
|
|
7190
|
+
"""
|
|
7017
7191
|
def get_return_cash_cost(self, arg0: Datetime, arg1: Datetime, arg2: float) -> CostRecord:
|
|
7018
7192
|
...
|
|
7019
7193
|
def get_return_stock_cost(self, arg0: Datetime, arg1: Datetime, arg2: Stock, arg3: float, arg4: float) -> CostRecord:
|
|
@@ -7085,9 +7259,9 @@ class TradeManager:
|
|
|
7085
7259
|
...
|
|
7086
7260
|
def return_stock(self, arg0: Datetime, arg1: Stock, arg2: float, arg3: float) -> bool:
|
|
7087
7261
|
...
|
|
7088
|
-
def sell(self, datetime: Datetime, stock: Stock, real_price: float, num: float = 1.7976931348623157e+308, stoploss: float = 0.0, goal_price: float = 0.0, plan_price: float = 0.0, part: SystemPart =
|
|
7262
|
+
def sell(self, datetime: Datetime, stock: Stock, real_price: float, num: float = 1.7976931348623157e+308, stoploss: float = 0.0, goal_price: float = 0.0, plan_price: float = 0.0, part: SystemPart = ..., remark: str = '') -> TradeRecord:
|
|
7089
7263
|
"""
|
|
7090
|
-
sell(self, datetime, stock, realPrice[, number=constant.max_double, stoploss=0.0, goal_price=0.0, plan_price=0.0, part=System.INVALID])
|
|
7264
|
+
sell(self, datetime, stock, realPrice[, number=constant.max_double, stoploss=0.0, goal_price=0.0, plan_price=0.0, part=System.INVALID, remark=""])
|
|
7091
7265
|
|
|
7092
7266
|
卖出操作
|
|
7093
7267
|
|
|
@@ -7099,9 +7273,10 @@ class TradeManager:
|
|
|
7099
7273
|
:param float goal_price: 新的目标价格
|
|
7100
7274
|
:param float plan_price: 原计划卖出价格
|
|
7101
7275
|
:param SystemPart part: 交易指示来源
|
|
7276
|
+
:param string remark: 交易备注
|
|
7102
7277
|
:rtype: TradeRecord
|
|
7103
7278
|
"""
|
|
7104
|
-
def sell_short(self, arg0: Datetime, arg1: Stock, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart) -> TradeRecord:
|
|
7279
|
+
def sell_short(self, arg0: Datetime, arg1: Stock, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float, arg7: SystemPart, arg8: str) -> TradeRecord:
|
|
7105
7280
|
...
|
|
7106
7281
|
def set_param(self, arg0: str, arg1: any) -> None:
|
|
7107
7282
|
"""
|
|
@@ -7282,6 +7457,14 @@ class TradeRecord:
|
|
|
7282
7457
|
def real_price(self, arg0: float) -> None:
|
|
7283
7458
|
...
|
|
7284
7459
|
@property
|
|
7460
|
+
def remark(self) -> str:
|
|
7461
|
+
"""
|
|
7462
|
+
备注
|
|
7463
|
+
"""
|
|
7464
|
+
@remark.setter
|
|
7465
|
+
def remark(self, arg0: str) -> None:
|
|
7466
|
+
...
|
|
7467
|
+
@property
|
|
7285
7468
|
def stock(self) -> Stock:
|
|
7286
7469
|
"""
|
|
7287
7470
|
股票(Stock)
|
|
@@ -7906,6 +8089,20 @@ def BARSLAST(arg0: float) -> Indicator:
|
|
|
7906
8089
|
:rtype: Indicator
|
|
7907
8090
|
"""
|
|
7908
8091
|
@typing.overload
|
|
8092
|
+
def BARSLASTCOUNT() -> Indicator:
|
|
8093
|
+
...
|
|
8094
|
+
@typing.overload
|
|
8095
|
+
def BARSLASTCOUNT(data: Indicator) -> Indicator:
|
|
8096
|
+
"""
|
|
8097
|
+
BARSLASTCOUNT([data])
|
|
8098
|
+
|
|
8099
|
+
用于统计连续满足条件的周期数
|
|
8100
|
+
BARSLASTCOUNT(X), 其中X为条件表达式。例如, BARSLASTCOUNT(CLOSE>OPEN)表示统计连续收阳的周期数
|
|
8101
|
+
|
|
8102
|
+
:param Indicator data: 条件指标
|
|
8103
|
+
:rtype: Indicator
|
|
8104
|
+
"""
|
|
8105
|
+
@typing.overload
|
|
7909
8106
|
def BARSSINCE() -> Indicator:
|
|
7910
8107
|
...
|
|
7911
8108
|
@typing.overload
|
|
@@ -8849,18 +9046,7 @@ def INSUM(block: Block, ind: Indicator, mode: int, fill_null: bool = True) -> In
|
|
|
8849
9046
|
...
|
|
8850
9047
|
@typing.overload
|
|
8851
9048
|
def INSUM(block: Block, query: Query, ind: Indicator, mode: int, fill_null: bool = True) -> Indicator:
|
|
8852
|
-
|
|
8853
|
-
INSUM(block, query, ind, mode[, fill_null=True])
|
|
8854
|
-
|
|
8855
|
-
返回板块各成分该指标相应输出按计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值.
|
|
8856
|
-
|
|
8857
|
-
:param Block block: 指定板块
|
|
8858
|
-
:param Query query: 指定范围
|
|
8859
|
-
:param Indicator ind: 指定指标
|
|
8860
|
-
:param int mode: 计算类型:0-累加,1-平均数,2-最大值,3-最小值.
|
|
8861
|
-
:param bool fill_null: 日期对齐时缺失数据填充 nan 值。
|
|
8862
|
-
:rtype: Indicator
|
|
8863
|
-
"""
|
|
9049
|
+
...
|
|
8864
9050
|
@typing.overload
|
|
8865
9051
|
def INSUM(stks: typing.Sequence, ind: Indicator, mode: int, fill_null: bool = True) -> Indicator:
|
|
8866
9052
|
...
|
|
@@ -8869,12 +9055,14 @@ def INSUM(stks: typing.Sequence, query: Query, ind: Indicator, mode: int, fill_n
|
|
|
8869
9055
|
"""
|
|
8870
9056
|
INSUM(stks, query, ind, mode[, fill_null=True])
|
|
8871
9057
|
|
|
8872
|
-
返回板块各成分该指标相应输出按计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3
|
|
9058
|
+
返回板块各成分该指标相应输出按计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值,4-降序排名,5-升序排名.
|
|
9059
|
+
|
|
9060
|
+
注意: INSUM使用模式4/5时相当于RANK功能, 但不适合在MF中使用, 在 MF 中使用时计算量为 N x N 级别, 计算缓慢。如果希望在 MF 中使用,建议直接使用 RANK[VIP] 指标。
|
|
8873
9061
|
|
|
8874
9062
|
:param Sequence stks: stock list
|
|
8875
9063
|
:param Query query: 指定范围
|
|
8876
9064
|
:param Indicator ind: 指定指标
|
|
8877
|
-
:param int mode: 计算类型:0-累加,1-平均数,2-最大值,3
|
|
9065
|
+
:param int mode: 计算类型:0-累加,1-平均数,2-最大值,3-最小值,4-降序排名(指标值最高的排名为1), 5-升序排名(指标值越高排名值越高)
|
|
8878
9066
|
:param bool fill_null: 日期对齐时缺失数据填充 nan 值。
|
|
8879
9067
|
:rtype: Indicator
|
|
8880
9068
|
"""
|
|
@@ -9298,7 +9486,7 @@ def MDD(arg0: Indicator) -> Indicator:
|
|
|
9298
9486
|
def MF_EqualWeight() -> MultiFactorBase:
|
|
9299
9487
|
...
|
|
9300
9488
|
@typing.overload
|
|
9301
|
-
def MF_EqualWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, spearman: bool = True) -> MultiFactorBase:
|
|
9489
|
+
def MF_EqualWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, spearman: bool = True, mode: int = 0, save_all_factors: bool = False) -> MultiFactorBase:
|
|
9302
9490
|
"""
|
|
9303
9491
|
MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5])
|
|
9304
9492
|
|
|
@@ -9310,13 +9498,15 @@ def MF_EqualWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, r
|
|
|
9310
9498
|
:param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
|
|
9311
9499
|
:param int ic_n: 默认 IC 对应的 N 日收益率
|
|
9312
9500
|
:param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
|
|
9501
|
+
:param int mode: 获取截面数据时排序模式: 0-降序, 1-升序, 2-不排序
|
|
9502
|
+
:param bool save_all_factors: 是否保存所有因子值,影响 get_actor/get_all_factors 方法
|
|
9313
9503
|
:rtype: MultiFactorBase
|
|
9314
9504
|
"""
|
|
9315
9505
|
@typing.overload
|
|
9316
9506
|
def MF_ICIRWeight() -> MultiFactorBase:
|
|
9317
9507
|
...
|
|
9318
9508
|
@typing.overload
|
|
9319
|
-
def MF_ICIRWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, ic_rolling_n: int = 120, spearman: bool = True) -> MultiFactorBase:
|
|
9509
|
+
def MF_ICIRWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, ic_rolling_n: int = 120, spearman: bool = True, mode: int = 0, save_all_factors: bool = False) -> MultiFactorBase:
|
|
9320
9510
|
"""
|
|
9321
9511
|
MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5, ic_rolling_n=120])
|
|
9322
9512
|
|
|
@@ -9329,13 +9519,15 @@ def MF_ICIRWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, re
|
|
|
9329
9519
|
:param int ic_n: 默认 IC 对应的 N 日收益率
|
|
9330
9520
|
:param int ic_rolling_n: IC 滚动周期
|
|
9331
9521
|
:param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
|
|
9522
|
+
:param int mode: 获取截面数据时排序模式: 0-降序, 1-升序, 2-不排序
|
|
9523
|
+
:param bool save_all_factors: 是否保存所有因子值,影响 get_actor/get_all_factors 方法
|
|
9332
9524
|
:rtype: MultiFactorBase
|
|
9333
9525
|
"""
|
|
9334
9526
|
@typing.overload
|
|
9335
9527
|
def MF_ICWeight() -> MultiFactorBase:
|
|
9336
9528
|
...
|
|
9337
9529
|
@typing.overload
|
|
9338
|
-
def MF_ICWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, ic_rolling_n: int = 120, spearman: bool = True) -> MultiFactorBase:
|
|
9530
|
+
def MF_ICWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, ic_rolling_n: int = 120, spearman: bool = True, mode: int = 0, save_all_factors: bool = False) -> MultiFactorBase:
|
|
9339
9531
|
"""
|
|
9340
9532
|
MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5, ic_rolling_n=120])
|
|
9341
9533
|
|
|
@@ -9348,13 +9540,15 @@ def MF_ICWeight(inds: typing.Sequence, stks: typing.Sequence, query: Query, ref_
|
|
|
9348
9540
|
:param int ic_n: 默认 IC 对应的 N 日收益率
|
|
9349
9541
|
:param int ic_rolling_n: IC 滚动周期
|
|
9350
9542
|
:param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
|
|
9543
|
+
:param int mode: 获取截面数据时排序模式: 0-降序, 1-升序, 2-不排序
|
|
9544
|
+
:param bool save_all_factors: 是否保存所有因子值,影响 get_actor/get_all_factors 方法
|
|
9351
9545
|
:rtype: MultiFactorBase
|
|
9352
9546
|
"""
|
|
9353
9547
|
@typing.overload
|
|
9354
9548
|
def MF_Weight() -> MultiFactorBase:
|
|
9355
9549
|
...
|
|
9356
9550
|
@typing.overload
|
|
9357
|
-
def MF_Weight(inds: typing.Sequence, stks: typing.Sequence, weights: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, spearman: bool = True) -> MultiFactorBase:
|
|
9551
|
+
def MF_Weight(inds: typing.Sequence, stks: typing.Sequence, weights: typing.Sequence, query: Query, ref_stk: typing.Any = None, ic_n: int = 5, spearman: bool = True, mode: int = 0, save_all_factors: bool = False) -> MultiFactorBase:
|
|
9358
9552
|
"""
|
|
9359
9553
|
MF_EqualWeight(inds, stks, query, ref_stk[, ic_n=5])
|
|
9360
9554
|
|
|
@@ -9367,6 +9561,8 @@ def MF_Weight(inds: typing.Sequence, stks: typing.Sequence, weights: typing.Sequ
|
|
|
9367
9561
|
:param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
|
|
9368
9562
|
:param int ic_n: 默认 IC 对应的 N 日收益率
|
|
9369
9563
|
:param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
|
|
9564
|
+
:param int mode: 获取截面数据时排序模式: 0-降序, 1-升序, 2-不排序
|
|
9565
|
+
:param bool save_all_factors: 是否保存所有因子值,影响 get_actor/get_all_factors 方法
|
|
9370
9566
|
:rtype: MultiFactorBase
|
|
9371
9567
|
"""
|
|
9372
9568
|
@typing.overload
|
|
@@ -9702,6 +9898,24 @@ def PRICELIST(data: typing.Any = None, discard: int = 0, align_dates: typing.Any
|
|
|
9702
9898
|
:rtype: Indicator
|
|
9703
9899
|
"""
|
|
9704
9900
|
@typing.overload
|
|
9901
|
+
def RANK(block: Block, ref_ind: Indicator, mode: int = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
|
|
9902
|
+
...
|
|
9903
|
+
@typing.overload
|
|
9904
|
+
def RANK(stks: typing.Sequence, ref_ind: Indicator, mode: int = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
|
|
9905
|
+
"""
|
|
9906
|
+
RANK(stks, ref_ind, mode = 0, fill_null = true, market = 'SH')
|
|
9907
|
+
|
|
9908
|
+
计算指标值在指定板块中的排名
|
|
9909
|
+
|
|
9910
|
+
:param stks: 指定证券列表 或 Block
|
|
9911
|
+
:param ref_ind: 参考指标
|
|
9912
|
+
:param mode: 排序方式: 0-降序排名(指标值最高值排名为1), 1-升序排名(指标值越大排名值越大), 2-降序排名百分比, 3-升序排名百分比
|
|
9913
|
+
:param fill_null: 是否填充缺失值
|
|
9914
|
+
:param market: 板块所属市场
|
|
9915
|
+
:return: 指标值在指定板块中的排名
|
|
9916
|
+
:rtype: Indicator
|
|
9917
|
+
"""
|
|
9918
|
+
@typing.overload
|
|
9705
9919
|
def RECOVER_BACKWARD() -> Indicator:
|
|
9706
9920
|
...
|
|
9707
9921
|
@typing.overload
|
|
@@ -10028,6 +10242,14 @@ def SAFTYLOSS(data: Indicator, n1: Indicator, n2: Indicator, p: Indicator) -> In
|
|
|
10028
10242
|
:param float|Indicator|IndParam p: 噪音系数
|
|
10029
10243
|
:rtype: Indicator
|
|
10030
10244
|
"""
|
|
10245
|
+
def SE_EvaluateOptimal(arg0: typing.Any) -> SelectorBase:
|
|
10246
|
+
"""
|
|
10247
|
+
SE_EvaluateOptimal(evalulate_func)
|
|
10248
|
+
|
|
10249
|
+
使用自定义函数进行寻优的选择器
|
|
10250
|
+
|
|
10251
|
+
:param func: 一个可调用对象,接收参数为 (sys, lastdate),返回一个 float 数值
|
|
10252
|
+
"""
|
|
10031
10253
|
@typing.overload
|
|
10032
10254
|
def SE_Fixed(weight: float = 1.0) -> SelectorBase:
|
|
10033
10255
|
...
|
|
@@ -12753,6 +12975,14 @@ def UPNDAY(data: Indicator, n: Indicator) -> Indicator:
|
|
|
12753
12975
|
:param int|Indicator|IndParam n: 时间窗口
|
|
12754
12976
|
:rtype: Indicator
|
|
12755
12977
|
"""
|
|
12978
|
+
def UTCOffset() -> TimeDelta:
|
|
12979
|
+
"""
|
|
12980
|
+
UTCOffset()
|
|
12981
|
+
|
|
12982
|
+
获取当前系统 UTC 偏移量
|
|
12983
|
+
|
|
12984
|
+
:rtype: TimeDelta
|
|
12985
|
+
"""
|
|
12756
12986
|
@typing.overload
|
|
12757
12987
|
def VAR(n: int = 10) -> Indicator:
|
|
12758
12988
|
...
|
|
@@ -12875,6 +13105,217 @@ def WINNER(arg0: float) -> Indicator:
|
|
|
12875
13105
|
该函数仅对日线分析周期有效,且仅对存在流通盘权息数据的证券有效,对指数、基金等无效。
|
|
12876
13106
|
"""
|
|
12877
13107
|
@typing.overload
|
|
13108
|
+
def WITHDAY(fill_null: bool = False) -> Indicator:
|
|
13109
|
+
...
|
|
13110
|
+
@typing.overload
|
|
13111
|
+
def WITHDAY(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13112
|
+
"""
|
|
13113
|
+
WITHDAY([ind, fill_null])
|
|
13114
|
+
|
|
13115
|
+
将指标数据转换到日线
|
|
13116
|
+
|
|
13117
|
+
:param Indicator ind: 指标数据
|
|
13118
|
+
:param bool fill_null: 是否填充空值
|
|
13119
|
+
:rtype: Indicator
|
|
13120
|
+
"""
|
|
13121
|
+
@typing.overload
|
|
13122
|
+
def WITHHALFYEAR(fill_null: bool = False) -> Indicator:
|
|
13123
|
+
...
|
|
13124
|
+
@typing.overload
|
|
13125
|
+
def WITHHALFYEAR(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13126
|
+
"""
|
|
13127
|
+
WITHHALFYEAR([ind, fill_null])
|
|
13128
|
+
|
|
13129
|
+
将指标数据转换到半年线
|
|
13130
|
+
|
|
13131
|
+
:param Indicator ind: 指标数据
|
|
13132
|
+
:param bool fill_null: 是否填充空值
|
|
13133
|
+
:rtype: Indicator
|
|
13134
|
+
"""
|
|
13135
|
+
@typing.overload
|
|
13136
|
+
def WITHHOUR(fill_null: bool = False) -> Indicator:
|
|
13137
|
+
...
|
|
13138
|
+
@typing.overload
|
|
13139
|
+
def WITHHOUR(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13140
|
+
"""
|
|
13141
|
+
WITHHOUR([ind, fill_null])
|
|
13142
|
+
|
|
13143
|
+
将指标数据转换到60分钟线
|
|
13144
|
+
|
|
13145
|
+
:param Indicator ind: 指标数据
|
|
13146
|
+
:param bool fill_null: 是否填充空值
|
|
13147
|
+
:rtype: Indicator
|
|
13148
|
+
"""
|
|
13149
|
+
@typing.overload
|
|
13150
|
+
def WITHHOUR2(fill_null: bool = False) -> Indicator:
|
|
13151
|
+
...
|
|
13152
|
+
@typing.overload
|
|
13153
|
+
def WITHHOUR2(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13154
|
+
"""
|
|
13155
|
+
WITHHOUR2([ind, fill_null])
|
|
13156
|
+
|
|
13157
|
+
将指标数据转换到2小时线
|
|
13158
|
+
|
|
13159
|
+
:param Indicator ind: 指标数据
|
|
13160
|
+
:param bool fill_null: 是否填充空值
|
|
13161
|
+
:rtype: Indicator
|
|
13162
|
+
"""
|
|
13163
|
+
@typing.overload
|
|
13164
|
+
def WITHHOUR4(fill_null: bool = False) -> Indicator:
|
|
13165
|
+
...
|
|
13166
|
+
@typing.overload
|
|
13167
|
+
def WITHHOUR4(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13168
|
+
"""
|
|
13169
|
+
WITHHOUR4([ind, fill_null])
|
|
13170
|
+
|
|
13171
|
+
将指标数据转换到4小时线
|
|
13172
|
+
|
|
13173
|
+
:param Indicator ind: 指标数据
|
|
13174
|
+
:param bool fill_null: 是否填充空值
|
|
13175
|
+
:rtype: Indicator
|
|
13176
|
+
"""
|
|
13177
|
+
@typing.overload
|
|
13178
|
+
def WITHKTYPE(ktype: str, fill_null: bool = False) -> Indicator:
|
|
13179
|
+
...
|
|
13180
|
+
@typing.overload
|
|
13181
|
+
def WITHKTYPE(ind: Indicator, ktype: str, fill_null: bool = False) -> Indicator:
|
|
13182
|
+
"""
|
|
13183
|
+
WITHKTYPE([ind, ktype, fill_null])
|
|
13184
|
+
|
|
13185
|
+
将指标数据转换到指定周期
|
|
13186
|
+
|
|
13187
|
+
:param Indicator ind: 指标数据
|
|
13188
|
+
:param KQuery.KType ktype: 指标周期
|
|
13189
|
+
:param bool fill_null: 是否填充空值
|
|
13190
|
+
:rtype: Indicator
|
|
13191
|
+
"""
|
|
13192
|
+
@typing.overload
|
|
13193
|
+
def WITHMIN(fill_null: bool = False) -> Indicator:
|
|
13194
|
+
...
|
|
13195
|
+
@typing.overload
|
|
13196
|
+
def WITHMIN(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13197
|
+
"""
|
|
13198
|
+
WITHMIN([ind, fill_null])
|
|
13199
|
+
|
|
13200
|
+
将指标数据转换到分钟线
|
|
13201
|
+
|
|
13202
|
+
:param Indicator ind: 指标数据
|
|
13203
|
+
:param bool fill_null: 是否填充空值
|
|
13204
|
+
:rtype: Indicator
|
|
13205
|
+
"""
|
|
13206
|
+
@typing.overload
|
|
13207
|
+
def WITHMIN15(fill_null: bool = False) -> Indicator:
|
|
13208
|
+
...
|
|
13209
|
+
@typing.overload
|
|
13210
|
+
def WITHMIN15(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13211
|
+
"""
|
|
13212
|
+
WITHMIN15([ind, fill_null])
|
|
13213
|
+
|
|
13214
|
+
将指标数据转换到15分钟线
|
|
13215
|
+
|
|
13216
|
+
:param Indicator ind: 指标数据
|
|
13217
|
+
:param bool fill_null: 是否填充空值
|
|
13218
|
+
:rtype: Indicator
|
|
13219
|
+
"""
|
|
13220
|
+
@typing.overload
|
|
13221
|
+
def WITHMIN30(fill_null: bool = False) -> Indicator:
|
|
13222
|
+
...
|
|
13223
|
+
@typing.overload
|
|
13224
|
+
def WITHMIN30(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13225
|
+
"""
|
|
13226
|
+
WITHMIN30([ind, fill_null])
|
|
13227
|
+
|
|
13228
|
+
将指标数据转换到30分钟线
|
|
13229
|
+
|
|
13230
|
+
:param Indicator ind: 指标数据
|
|
13231
|
+
:param bool fill_null: 是否填充空值
|
|
13232
|
+
:rtype: Indicator
|
|
13233
|
+
"""
|
|
13234
|
+
@typing.overload
|
|
13235
|
+
def WITHMIN5(fill_null: bool = False) -> Indicator:
|
|
13236
|
+
...
|
|
13237
|
+
@typing.overload
|
|
13238
|
+
def WITHMIN5(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13239
|
+
"""
|
|
13240
|
+
WITHMIN5([ind, fill_null])
|
|
13241
|
+
|
|
13242
|
+
将指标数据转换到5分钟线
|
|
13243
|
+
|
|
13244
|
+
:param Indicator ind: 指标数据
|
|
13245
|
+
:param bool fill_null: 是否填充空值
|
|
13246
|
+
:rtype: Indicator
|
|
13247
|
+
"""
|
|
13248
|
+
@typing.overload
|
|
13249
|
+
def WITHMIN60(fill_null: bool = False) -> Indicator:
|
|
13250
|
+
...
|
|
13251
|
+
@typing.overload
|
|
13252
|
+
def WITHMIN60(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13253
|
+
"""
|
|
13254
|
+
WITHMIN60([ind, fill_null])
|
|
13255
|
+
|
|
13256
|
+
将指标数据转换到60分钟线
|
|
13257
|
+
|
|
13258
|
+
:param Indicator ind: 指标数据
|
|
13259
|
+
:param bool fill_null: 是否填充空值
|
|
13260
|
+
:rtype: Indicator
|
|
13261
|
+
"""
|
|
13262
|
+
@typing.overload
|
|
13263
|
+
def WITHMONTH(fill_null: bool = False) -> Indicator:
|
|
13264
|
+
...
|
|
13265
|
+
@typing.overload
|
|
13266
|
+
def WITHMONTH(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13267
|
+
"""
|
|
13268
|
+
WITHMONTH([ind, fill_null])
|
|
13269
|
+
|
|
13270
|
+
将指标数据转换到月线
|
|
13271
|
+
|
|
13272
|
+
:param Indicator ind: 指标数据
|
|
13273
|
+
:param bool fill_null: 是否填充空值
|
|
13274
|
+
:rtype: Indicator
|
|
13275
|
+
"""
|
|
13276
|
+
@typing.overload
|
|
13277
|
+
def WITHQUARTER(fill_null: bool = False) -> Indicator:
|
|
13278
|
+
...
|
|
13279
|
+
@typing.overload
|
|
13280
|
+
def WITHQUARTER(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13281
|
+
"""
|
|
13282
|
+
WITHQUARTER([ind, fill_null])
|
|
13283
|
+
|
|
13284
|
+
将指标数据转换到季线
|
|
13285
|
+
|
|
13286
|
+
:param Indicator ind: 指标数据
|
|
13287
|
+
:param bool fill_null: 是否填充空值
|
|
13288
|
+
:rtype: Indicator
|
|
13289
|
+
"""
|
|
13290
|
+
@typing.overload
|
|
13291
|
+
def WITHWEEK(fill_null: bool = False) -> Indicator:
|
|
13292
|
+
...
|
|
13293
|
+
@typing.overload
|
|
13294
|
+
def WITHWEEK(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13295
|
+
"""
|
|
13296
|
+
WITHWEEK([ind, fill_null])
|
|
13297
|
+
|
|
13298
|
+
将指标数据转换到周线
|
|
13299
|
+
|
|
13300
|
+
:param Indicator ind: 指标数据
|
|
13301
|
+
:param bool fill_null: 是否填充空值
|
|
13302
|
+
:rtype: Indicator
|
|
13303
|
+
"""
|
|
13304
|
+
@typing.overload
|
|
13305
|
+
def WITHYEAR(fill_null: bool = False) -> Indicator:
|
|
13306
|
+
...
|
|
13307
|
+
@typing.overload
|
|
13308
|
+
def WITHYEAR(ind: Indicator, fill_null: bool = False) -> Indicator:
|
|
13309
|
+
"""
|
|
13310
|
+
WITHYEAR([ind, fill_null])
|
|
13311
|
+
|
|
13312
|
+
将指标数据转换到年线
|
|
13313
|
+
|
|
13314
|
+
:param Indicator ind: 指标数据
|
|
13315
|
+
:param bool fill_null: 是否填充空值
|
|
13316
|
+
:rtype: Indicator
|
|
13317
|
+
"""
|
|
13318
|
+
@typing.overload
|
|
12878
13319
|
def WMA(n: int = 22) -> Indicator:
|
|
12879
13320
|
...
|
|
12880
13321
|
@typing.overload
|
|
@@ -12969,10 +13410,10 @@ def active_device(arg0: str) -> None:
|
|
|
12969
13410
|
:param str active_code: 授权码
|
|
12970
13411
|
"""
|
|
12971
13412
|
@typing.overload
|
|
12972
|
-
def backtest(context: StrategyContext, on_bar: typing.Any, tm: TradeManager, start_date: Datetime, end_date: Datetime = ..., ktype: str = 'DAY', ref_market: str = 'SH', mode: int = 0) -> None:
|
|
13413
|
+
def backtest(context: StrategyContext, on_bar: typing.Any, tm: TradeManager, start_date: Datetime, end_date: Datetime = ..., ktype: str = 'DAY', ref_market: str = 'SH', mode: int = 0, support_short: bool = False, sp: SlippageBase = None) -> None:
|
|
12973
13414
|
...
|
|
12974
13415
|
@typing.overload
|
|
12975
|
-
def backtest(on_bar: typing.Any, tm: TradeManager, start_date: Datetime, end_date: Datetime = ..., ktype: str = 'DAY', ref_market: str = 'SH', mode: int = 0) -> None:
|
|
13416
|
+
def backtest(on_bar: typing.Any, tm: TradeManager, start_date: Datetime, end_date: Datetime = ..., ktype: str = 'DAY', ref_market: str = 'SH', mode: int = 0, support_short: bool = False, sp: SlippageBase = None) -> None:
|
|
12976
13417
|
"""
|
|
12977
13418
|
backtest([context], on_bar, tm, start_date, end_date, ktype, ref_market, mode)
|
|
12978
13419
|
|
|
@@ -12989,6 +13430,8 @@ def backtest(on_bar: typing.Any, tm: TradeManager, start_date: Datetime, end_dat
|
|
|
12989
13430
|
:param Query.KType ktype: K线类型(按该类型逐 Bar 执行测试)
|
|
12990
13431
|
:param str ref_market: 所属市场
|
|
12991
13432
|
:param mode 模式 0: 当前bar收盘价执行买卖操作; 1: 下一bar开盘价执行买卖操作
|
|
13433
|
+
:param support_short: 是否支持卖空
|
|
13434
|
+
:param Slippage sp: 滑点算法
|
|
12992
13435
|
"""
|
|
12993
13436
|
def batch_calculate_inds(arg0: typing.Sequence, arg1: KData) -> list:
|
|
12994
13437
|
"""
|
|
@@ -13194,6 +13637,12 @@ def inner_combinate_ind_analysis(arg0: Stock, arg1: Query, arg2: TradeManager, a
|
|
|
13194
13637
|
...
|
|
13195
13638
|
def inner_combinate_ind_analysis_with_block(arg0: Block, arg1: Query, arg2: TradeManager, arg3: System, arg4: typing.Sequence, arg5: typing.Sequence, arg6: int) -> dict:
|
|
13196
13639
|
...
|
|
13640
|
+
def is_valid_license() -> bool:
|
|
13641
|
+
"""
|
|
13642
|
+
is_valid_license()
|
|
13643
|
+
|
|
13644
|
+
查看当前设备是否授权
|
|
13645
|
+
"""
|
|
13197
13646
|
def isinf(arg0: float) -> bool:
|
|
13198
13647
|
"""
|
|
13199
13648
|
是否是无穷大或无穷小
|