hikyuu 2.6.8.4__py3-none-manylinux2014_x86_64.whl → 2.7.0__py3-none-manylinux2014_x86_64.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 +31 -17
- hikyuu/__init__.pyi +610 -590
- hikyuu/analysis/__init__.pyi +584 -563
- hikyuu/analysis/analysis.pyi +585 -564
- hikyuu/core.py +2 -0
- hikyuu/core.pyi +586 -565
- hikyuu/cpp/__init__.pyi +2 -2
- hikyuu/cpp/core310.pyi +501 -108
- hikyuu/cpp/core310.so +0 -0
- hikyuu/cpp/core311.pyi +495 -108
- hikyuu/cpp/core311.so +0 -0
- hikyuu/cpp/core312.pyi +495 -108
- hikyuu/cpp/core312.so +0 -0
- hikyuu/cpp/core313.pyi +501 -108
- hikyuu/cpp/core313.so +0 -0
- hikyuu/cpp/i18n/zh_CN/hikyuu.mo +0 -0
- hikyuu/cpp/libboost_charconv-mt.so +0 -0
- hikyuu/cpp/libboost_charconv-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_chrono-mt.so +0 -0
- hikyuu/cpp/libboost_chrono-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_date_time-mt.so +0 -0
- hikyuu/cpp/libboost_date_time-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_serialization-mt.so +0 -0
- hikyuu/cpp/libboost_serialization-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_system-mt.so +0 -0
- hikyuu/cpp/libboost_system-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_thread-mt.so +0 -0
- hikyuu/cpp/libboost_thread-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libboost_wserialization-mt.so +0 -0
- hikyuu/cpp/libboost_wserialization-mt.so.1.88.0 +0 -0
- hikyuu/cpp/libhikyuu.so +0 -0
- hikyuu/cpp/libsqlite3.so +0 -0
- hikyuu/data/clickhouse_upgrade/createdb.sql +105 -105
- hikyuu/data/common.py +3 -3
- hikyuu/data/common_clickhouse.py +1 -1
- hikyuu/data/download_block.py +351 -0
- hikyuu/data/em_block_to_clickhouse.py +26 -74
- hikyuu/data/em_block_to_mysql.py +25 -75
- hikyuu/data/em_block_to_sqlite.py +26 -78
- hikyuu/data/hku_config_template.py +3 -3
- hikyuu/data/pytdx_to_clickhouse.py +15 -11
- hikyuu/data/pytdx_to_h5.py +6 -2
- hikyuu/data/pytdx_to_mysql.py +5 -1
- hikyuu/data/pytdx_weight_to_clickhouse.py +1 -1
- hikyuu/data/pytdx_weight_to_mysql.py +1 -1
- hikyuu/data/pytdx_weight_to_sqlite.py +1 -1
- hikyuu/data/zh_bond10_to_clickhouse.py +1 -1
- hikyuu/draw/__init__.pyi +1 -1
- hikyuu/draw/drawplot/__init__.pyi +9 -9
- hikyuu/draw/drawplot/bokeh_draw.pyi +600 -580
- hikyuu/draw/drawplot/common.pyi +1 -1
- hikyuu/draw/drawplot/echarts_draw.pyi +602 -582
- hikyuu/draw/drawplot/matplotlib_draw.py +4 -74
- hikyuu/draw/drawplot/matplotlib_draw.pyi +612 -592
- hikyuu/draw/elder.pyi +11 -11
- hikyuu/draw/kaufman.pyi +18 -18
- hikyuu/draw/volume.pyi +10 -10
- hikyuu/examples/notebook/Demo/Demo1.ipynb +48 -33
- hikyuu/extend.py +0 -7
- hikyuu/extend.pyi +594 -573
- hikyuu/fetcher/stock/zh_block_em.py +12 -40
- hikyuu/gui/HikyuuTDX.py +99 -31
- hikyuu/gui/data/CollectSpotThread.py +1 -1
- hikyuu/gui/data/EscapetimeThread.py +8 -14
- hikyuu/gui/data/ImportBlockInfoTask.py +3 -10
- hikyuu/gui/data/MainWindow.py +1196 -717
- hikyuu/gui/data/SchedImportThread.py +2 -2
- hikyuu/gui/data/UsePytdxImportToH5Thread.py +3 -3
- hikyuu/gui/data/UseQmtImportToH5Thread.py +2 -2
- hikyuu/gui/data/UseTdxImportToH5Thread.py +3 -3
- hikyuu/gui/data/tool.py +32 -25
- hikyuu/gui/dataserver.py +5 -3
- hikyuu/gui/images/liandongxiaopu.png +0 -0
- hikyuu/hub.pyi +6 -6
- hikyuu/include/hikyuu/DataType.h +4 -16
- hikyuu/include/hikyuu/KData.h +6 -3
- hikyuu/include/hikyuu/KDataPrivatedBufferImp.h +1 -1
- hikyuu/include/hikyuu/KDataSharedBufferImp.h +1 -1
- hikyuu/include/hikyuu/KQuery.h +2 -2
- hikyuu/include/hikyuu/Stock.h +4 -1
- hikyuu/include/hikyuu/StockManager.h +13 -3
- hikyuu/include/hikyuu/data_driver/BaseInfoDriver.h +8 -0
- hikyuu/include/hikyuu/data_driver/BlockInfoDriver.h +6 -0
- hikyuu/include/hikyuu/data_driver/KDataDriver.h +26 -1
- hikyuu/include/hikyuu/data_driver/base_info/mysql/MySQLBaseInfoDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/base_info/sqlite/SQLiteBaseInfoDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/block_info/mysql/MySQLBlockInfoDriver.h +2 -1
- hikyuu/include/hikyuu/data_driver/block_info/qianlong/QLBlockInfoDriver.h +2 -1
- hikyuu/include/hikyuu/data_driver/block_info/sqlite/SQLiteBlockInfoDriver.h +2 -1
- hikyuu/include/hikyuu/data_driver/kdata/DoNothingKDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/cvs/KDataTempCsvDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/mysql/MySQLKDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/sqlite/SQLiteKDataDriver.h +1 -1
- hikyuu/include/hikyuu/data_driver/kdata/tdx/TdxKDataDriver.h +1 -1
- hikyuu/include/hikyuu/hikyuu.h +1 -1
- hikyuu/include/hikyuu/indicator/build_in.h +1 -0
- hikyuu/include/hikyuu/indicator/crt/CYCLE.h +4 -4
- hikyuu/include/hikyuu/indicator/crt/HSL.h +2 -2
- hikyuu/include/hikyuu/indicator/crt/QUANTILE_TRUNC.h +30 -0
- hikyuu/include/hikyuu/indicator/crt/TURNOVER.h +1 -0
- hikyuu/include/hikyuu/indicator/crt/ZSCORE.h +2 -2
- hikyuu/include/hikyuu/indicator/imp/IQuantileTrunc.h +25 -0
- hikyuu/include/hikyuu/misc.h +38 -0
- hikyuu/include/hikyuu/plugin/dataserver.h +2 -1
- hikyuu/include/hikyuu/plugin/device.h +10 -0
- hikyuu/include/hikyuu/plugin/extind.h +37 -0
- hikyuu/include/hikyuu/plugin/hkuextra.h +0 -18
- hikyuu/include/hikyuu/plugin/interface/DataServerPluginInterface.h +2 -2
- hikyuu/include/hikyuu/plugin/interface/DevicePluginInterface.h +2 -0
- hikyuu/include/hikyuu/plugin/interface/ExtendIndicatorsPluginInterface.h +12 -0
- hikyuu/include/hikyuu/plugin/interface/HkuExtraPluginInterface.h +0 -14
- hikyuu/include/hikyuu/plugin/interface/plugins.h +3 -1
- hikyuu/include/hikyuu/python/pybind_utils.h +1 -8
- hikyuu/include/hikyuu/strategy/RunSystemInStrategy.h +3 -0
- hikyuu/include/hikyuu/trade_manage/Performance.h +4 -4
- hikyuu/include/hikyuu/trade_manage/TradeManagerBase.h +10 -1
- hikyuu/include/hikyuu/trade_sys/moneymanager/imp/FixedCapitalFundsMM.h +0 -4
- hikyuu/include/hikyuu/trade_sys/multifactor/MultiFactorBase.h +36 -3
- hikyuu/include/hikyuu/trade_sys/multifactor/NormalizeBase.h +125 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/ScoresFilterBase.h +125 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/build_in.h +3 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/buildin_norm.h +36 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/buildin_scfilter.h +51 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/GroupSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreLessOrEqualValueSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/IgnoreNanSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/MinAmountPercentSCFilter.h +25 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/PriceSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/filter/TopNSCFilter.h +24 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/EqualWeightMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICIRMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/ICMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/imp/WeightMultiFactor.h +1 -1
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormMinMax.h +23 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantile.h +28 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormQuantileUniform.h +28 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/NormZScore.h +25 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/__init__.py +1 -0
- hikyuu/include/hikyuu/trade_sys/multifactor/normalize/quantile_trunc.h +16 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/Portfolio.h +7 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/imp/SimplePortfolio.h +7 -0
- hikyuu/include/hikyuu/trade_sys/portfolio/imp/WithoutAFPortfolio.h +7 -0
- hikyuu/include/hikyuu/trade_sys/selector/SelectorBase.h +49 -0
- hikyuu/include/hikyuu/trade_sys/selector/build_in.h +1 -0
- hikyuu/include/hikyuu/trade_sys/selector/crt/SE_MultiFactor2.h +40 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector.h +0 -3
- hikyuu/include/hikyuu/trade_sys/selector/imp/MultiFactorSelector2.h +49 -0
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorSelector.h +1 -1
- hikyuu/include/hikyuu/trade_sys/selector/imp/logic/OperatorValueSelector.h +1 -1
- hikyuu/include/hikyuu/trade_sys/signal/imp/BandSignal2.h +0 -4
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/AddValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/DivValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/MulValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorSignal.h +1 -1
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/OperatorValueSignal.h +4 -4
- hikyuu/include/hikyuu/trade_sys/signal/imp/logic/SubValueSignal.h +2 -2
- hikyuu/include/hikyuu/trade_sys/slippage/build_in.h +5 -1
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_LogNormal.h +22 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Normal.h +22 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_TruncNormal.h +25 -0
- hikyuu/include/hikyuu/trade_sys/slippage/crt/SP_Uniform.h +23 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/LogNormalSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/NormalSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/TruncNormalSlippage.h +28 -0
- hikyuu/include/hikyuu/trade_sys/slippage/imp/UniformSlippage.h +24 -0
- hikyuu/include/hikyuu/trade_sys/system/System.h +14 -1
- hikyuu/include/hikyuu/utilities/SpendTimer.h +17 -7
- hikyuu/include/hikyuu/utilities/arithmetic.h +55 -0
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLConnect.h +1 -1
- hikyuu/include/hikyuu/utilities/db_connect/mysql/MySQLStatement.h +1 -1
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteConnect.h +1 -1
- hikyuu/include/hikyuu/utilities/db_connect/sqlite/SQLiteStatement.h +1 -1
- hikyuu/include/hikyuu/utilities/plugin/PluginLoader.h +4 -1
- hikyuu/include/hikyuu/version.h +5 -5
- hikyuu/plugin/libbacktest.so +0 -0
- hikyuu/plugin/libclickhousedriver.so +0 -0
- hikyuu/plugin/libdataserver.so +0 -0
- hikyuu/{cpp/core39.so → plugin/libdataserver_parquet.so} +0 -0
- hikyuu/plugin/libdevice.so +0 -0
- hikyuu/plugin/libextind.so +0 -0
- hikyuu/plugin/libhkuextra.so +0 -0
- hikyuu/plugin/libimport2hdf5.so +0 -0
- hikyuu/plugin/libtmreport.so +0 -0
- hikyuu/trade_manage/__init__.pyi +599 -579
- hikyuu/trade_manage/broker.pyi +3 -3
- hikyuu/trade_manage/broker_easytrader.pyi +1 -1
- hikyuu/trade_manage/trade.py +0 -2
- hikyuu/trade_manage/trade.pyi +599 -579
- hikyuu/util/__init__.pyi +1 -1
- hikyuu/util/singleton.pyi +1 -1
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/METADATA +36 -32
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/RECORD +197 -164
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/top_level.txt +2 -2
- hikyuu/cpp/core39.pyi +0 -14385
- hikyuu/data_driver/__init__.py +0 -49
- hikyuu/data_driver/jqdata_data_driver.py +0 -277
- hikyuu/data_driver/pytdx_data_driver.py +0 -292
- hikyuu/fetcher/stock/zh_stock_a_huatai.py +0 -51
- hikyuu/fetcher/stock/zh_stock_a_pytdx.py +0 -129
- hikyuu/gui/data/CollectToMemThread.py +0 -123
- hikyuu/gui/data/CollectToMySQLThread.py +0 -178
- hikyuu/gui/start_huatai_insight.py +0 -510
- hikyuu/include/hikyuu/views/arrow_common.h +0 -38
- hikyuu/include/hikyuu/views/arrow_views.h +0 -117
- hikyuu/tools/update_block_info.py +0 -168
- /hikyuu/include/hikyuu/{views → trade_sys/multifactor/filter}/__init__.py +0 -0
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/WHEEL +0 -0
- {hikyuu-2.6.8.4.dist-info → hikyuu-2.7.0.dist-info}/entry_points.txt +0 -0
hikyuu/cpp/core312.pyi
CHANGED
|
@@ -3,7 +3,7 @@ import collections.abc
|
|
|
3
3
|
import numpy
|
|
4
4
|
import numpy.typing
|
|
5
5
|
import typing
|
|
6
|
-
__all__ = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', 'AF_FixedWeight', 'AF_FixedWeightList', 'AF_MultiFactor', 'AGG_COUNT', 'AGG_MAD', 'AGG_MAX', 'AGG_MEAN', 'AGG_MEDIAN', 'AGG_MIN', 'AGG_PROD', 'AGG_QUANTILE', 'AGG_STD', 'AGG_SUM', 'AGG_VAR', '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', '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', 'REFX', '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', 'dates_to_np', '
|
|
6
|
+
__all__ = ['ABS', 'ACOS', 'AD', 'ADVANCE', 'AF_EqualWeight', 'AF_FixedWeight', 'AF_FixedWeightList', 'AF_MultiFactor', 'AGG_COUNT', 'AGG_FUNC', 'AGG_MAD', 'AGG_MAX', 'AGG_MEAN', 'AGG_MEDIAN', 'AGG_MIN', 'AGG_PROD', 'AGG_QUANTILE', 'AGG_STD', 'AGG_SUM', 'AGG_VAR', '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', 'DISCARD', 'DMA', 'DOWNNDAY', 'DROPNA', 'DataDriverFactory', 'Datetime', 'DatetimeList', 'Days', 'EMA', 'ERROR', 'EVERY', 'EV_Bool', 'EV_TwoLine', 'EXIST', 'EXP', 'EnvironmentBase', 'FATAL', 'FILTER', 'FINANCE', 'FLOOR', 'FundsRecord', 'GROUP_COUNT', 'GROUP_FUNC', 'GROUP_MAX', 'GROUP_MEAN', 'GROUP_MIN', 'GROUP_PROD', 'GROUP_SUM', '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', 'NORM_MinMax', 'NORM_NOTHING', 'NORM_Quantile', 'NORM_Quantile_Uniform', 'NORM_Zscore', 'NOT', 'NormalizeBase', 'OFF', 'OrderBrokerBase', 'PF_Simple', 'PF_WithoutAF', 'PG_FixedHoldDays', 'PG_FixedPercent', 'PG_NoGoal', 'POS', 'POW', 'PRICELIST', 'Parameter', 'Performance', 'Portfolio', 'PositionRecord', 'PositionRecordList', 'ProfitGoalBase', 'QUANTILE_TRUNC', 'Query', 'RANK', 'RECOVER_BACKWARD', 'RECOVER_EQUAL_BACKWARD', 'RECOVER_EQUAL_FORWARD', 'RECOVER_FORWARD', 'REF', 'REFX', 'REPLACE', 'RESULT', 'REVERSE', 'ROC', 'ROCP', 'ROCR', 'ROCR100', 'ROUND', 'ROUNDDOWN', 'ROUNDUP', 'RSI', 'SAFTYLOSS', 'SCFilter_AmountLimit', 'SCFilter_Group', 'SCFilter_IgnoreNan', 'SCFilter_LessOrEqualValue', 'SCFilter_Price', 'SCFilter_TopN', 'SE_EvaluateOptimal', 'SE_Fixed', 'SE_MaxFundsOptimal', 'SE_MultiFactor', 'SE_MultiFactor2', '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', 'SP_LogNormal', 'SP_Normal', 'SP_TruncNormal', 'SP_Uniform', 'SQRT', 'STDEV', 'STDP', 'ST_FixedPercent', 'ST_Indicator', 'ST_Saftyloss', 'SUM', 'SUMBARS', 'SYS_Simple', 'SYS_WalkForward', 'ScoreRecord', 'ScoreRecordList', 'ScoresFilterBase', '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', 'bind_email', 'can_upgrade', 'close_ostream_to_python', 'close_spend_time', 'combinate_ind', 'combinate_index', 'constant', 'crtBrokerTM', 'crtSEOptimal', 'crtTM', 'crt_pf_strategy', 'crt_sys_strategy', 'dates_to_np', 'df_to_krecords', 'fetch_trial_license', 'find_optimal_system', 'find_optimal_system_multi', 'get_block', 'get_business_name', 'get_data_from_buffer_server', 'get_date_range', 'get_expire_date', 'get_funds_list', 'get_kdata', 'get_last_version', 'get_log_level', 'get_spot_from_buffer_server', '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', 'krecords_to_df', 'krecords_to_np', 'open_ostream_to_python', 'open_spend_time', 'parallel_run_pf', 'parallel_run_sys', 'positions_to_df', 'positions_to_np', 'register_extra_ktype', 'release_extra_ktype', 'remove_license', 'roundDown', 'roundEx', 'roundUp', 'run_in_strategy', 'scorerecords_to_df', 'scorerecords_to_np', 'set_log_level', 'set_python_in_interactive', 'set_python_in_jupyter', 'spot_agent_is_connected', 'spot_agent_is_running', 'start_data_server', 'start_spot_agent', 'stop_data_server', 'stop_spot_agent', 'systemweights_to_df', 'systemweights_to_np', 'timeline_to_df', 'timeline_to_np', 'toPriceList', 'trades_to_df', 'trades_to_np', 'translist_to_df', 'translist_to_np', 'view_license', 'weights_to_df', 'weights_to_np']
|
|
7
7
|
class AllocateFundsBase:
|
|
8
8
|
"""
|
|
9
9
|
资产分配算法基类, 子类接口:
|
|
@@ -220,7 +220,10 @@ class Block:
|
|
|
220
220
|
def __init__(self) -> None:
|
|
221
221
|
...
|
|
222
222
|
@typing.overload
|
|
223
|
-
def __init__(self,
|
|
223
|
+
def __init__(self, category: str, name: str) -> None:
|
|
224
|
+
...
|
|
225
|
+
@typing.overload
|
|
226
|
+
def __init__(self, category: str, name: str, index_code: str) -> None:
|
|
224
227
|
...
|
|
225
228
|
@typing.overload
|
|
226
229
|
def __init__(self, arg0: Block) -> None:
|
|
@@ -1175,9 +1178,6 @@ class DatetimeList:
|
|
|
1175
1178
|
@staticmethod
|
|
1176
1179
|
def to_pandas(data: DatetimeList):
|
|
1177
1180
|
...
|
|
1178
|
-
@staticmethod
|
|
1179
|
-
def to_pyarrow(data):
|
|
1180
|
-
...
|
|
1181
1181
|
def __bool__(self) -> bool:
|
|
1182
1182
|
"""
|
|
1183
1183
|
Check whether the list is nonempty
|
|
@@ -1969,8 +1969,6 @@ class Indicator:
|
|
|
1969
1969
|
"""
|
|
1970
1970
|
转化为np.array, 如果为时间序列, 则包含 datetime 日期列
|
|
1971
1971
|
"""
|
|
1972
|
-
def to_pyarrow(self) -> typing.Any:
|
|
1973
|
-
...
|
|
1974
1972
|
def value_to_df(self) -> typing.Any:
|
|
1975
1973
|
"""
|
|
1976
1974
|
转换为 DataFrame, 仅包含值
|
|
@@ -1979,8 +1977,6 @@ class Indicator:
|
|
|
1979
1977
|
"""
|
|
1980
1978
|
仅转化值为np.array, 不包含日期列
|
|
1981
1979
|
"""
|
|
1982
|
-
def value_to_pyarrow(self) -> typing.Any:
|
|
1983
|
-
...
|
|
1984
1980
|
@property
|
|
1985
1981
|
def discard(self) -> int:
|
|
1986
1982
|
"""
|
|
@@ -2293,8 +2289,6 @@ class KData:
|
|
|
2293
2289
|
"""
|
|
2294
2290
|
将 KData 转换为 NumPy 数组
|
|
2295
2291
|
"""
|
|
2296
|
-
def to_pyarrow(self) -> typing.Any:
|
|
2297
|
-
...
|
|
2298
2292
|
def tocsv(self, arg0: str) -> None:
|
|
2299
2293
|
"""
|
|
2300
2294
|
tocsv(self, filename)
|
|
@@ -2542,9 +2536,6 @@ class KRecordList:
|
|
|
2542
2536
|
@staticmethod
|
|
2543
2537
|
def to_pandas(data):
|
|
2544
2538
|
...
|
|
2545
|
-
@staticmethod
|
|
2546
|
-
def to_pyarrow(data):
|
|
2547
|
-
...
|
|
2548
2539
|
def __bool__(self) -> bool:
|
|
2549
2540
|
"""
|
|
2550
2541
|
Check whether the list is nonempty
|
|
@@ -3004,6 +2995,17 @@ class MultiFactorBase:
|
|
|
3004
2995
|
...
|
|
3005
2996
|
def __str__(self) -> str:
|
|
3006
2997
|
...
|
|
2998
|
+
def add_special_normalize(self, name: str, norm: NormalizeBase = None, category: str = '', style_inds: collections.abc.Sequence[Indicator] = []) -> None:
|
|
2999
|
+
"""
|
|
3000
|
+
add_special_normalize(self, name[, norm=None, category="", style_inds=[]])
|
|
3001
|
+
|
|
3002
|
+
对指定名称的指标应用特定的标准化/归一化、行业中性化、风格因子中性化操作。标准化操作、行业中性化、风格因子中性化彼此无关,可同时指定也可分开指定。
|
|
3003
|
+
|
|
3004
|
+
:param str name: 特殊归一化方法名称
|
|
3005
|
+
:param Normalize norm: 特殊归一化方法
|
|
3006
|
+
:param str category: 行业中性化时,指定板块类别
|
|
3007
|
+
:param list[Indicator] style_inds: 用于中性化的风格指标列表
|
|
3008
|
+
"""
|
|
3007
3009
|
def clone(self) -> MultiFactorBase:
|
|
3008
3010
|
"""
|
|
3009
3011
|
克隆操作
|
|
@@ -3025,7 +3027,14 @@ class MultiFactorBase:
|
|
|
3025
3027
|
:return: ScoreRecordList
|
|
3026
3028
|
"""
|
|
3027
3029
|
def get_all_src_factors(self) -> list[list[Indicator]]:
|
|
3028
|
-
|
|
3030
|
+
"""
|
|
3031
|
+
get_all_src_factors(self)
|
|
3032
|
+
|
|
3033
|
+
获取所有原始因子列表(如果指定了标准化、行业中性化, 返回为已处理的因子列表)
|
|
3034
|
+
|
|
3035
|
+
:rtype: list
|
|
3036
|
+
:return: list IndicatorList stks x inds
|
|
3037
|
+
"""
|
|
3029
3038
|
def get_datetime_list(self) -> DatetimeList:
|
|
3030
3039
|
"""
|
|
3031
3040
|
获取参考日期列表(由参考证券通过查询条件获得)
|
|
@@ -3101,6 +3110,14 @@ class MultiFactorBase:
|
|
|
3101
3110
|
"""
|
|
3102
3111
|
是否存在指定参数
|
|
3103
3112
|
"""
|
|
3113
|
+
def set_normalize(self, norm: NormalizeBase) -> None:
|
|
3114
|
+
"""
|
|
3115
|
+
set_normalize(self, norm)
|
|
3116
|
+
|
|
3117
|
+
设置标准化或归一化方法(影响全部因子)
|
|
3118
|
+
|
|
3119
|
+
:param NormalizeBase norm: 标准化或归一化方法实例
|
|
3120
|
+
"""
|
|
3104
3121
|
def set_param(self, arg0: str, arg1: any) -> None:
|
|
3105
3122
|
"""
|
|
3106
3123
|
set_param(self, name, value)
|
|
@@ -3151,6 +3168,71 @@ class MultiFactorBase:
|
|
|
3151
3168
|
@query.setter
|
|
3152
3169
|
def query(self, arg1: Query) -> None:
|
|
3153
3170
|
...
|
|
3171
|
+
class NormalizeBase:
|
|
3172
|
+
"""
|
|
3173
|
+
用于 MF 的截面标准化操作
|
|
3174
|
+
"""
|
|
3175
|
+
def __getstate__(self) -> tuple:
|
|
3176
|
+
...
|
|
3177
|
+
@typing.overload
|
|
3178
|
+
def __init__(self) -> None:
|
|
3179
|
+
...
|
|
3180
|
+
@typing.overload
|
|
3181
|
+
def __init__(self, arg0: NormalizeBase) -> None:
|
|
3182
|
+
...
|
|
3183
|
+
@typing.overload
|
|
3184
|
+
def __init__(self, arg0: str) -> None:
|
|
3185
|
+
"""
|
|
3186
|
+
初始化构造函数
|
|
3187
|
+
|
|
3188
|
+
:param str name: 名称
|
|
3189
|
+
"""
|
|
3190
|
+
def __repr__(self) -> str:
|
|
3191
|
+
...
|
|
3192
|
+
def __setstate__(self, arg0: tuple) -> None:
|
|
3193
|
+
...
|
|
3194
|
+
def __str__(self) -> str:
|
|
3195
|
+
...
|
|
3196
|
+
def clone(self) -> NormalizeBase:
|
|
3197
|
+
"""
|
|
3198
|
+
克隆操作
|
|
3199
|
+
"""
|
|
3200
|
+
def get_param(self, arg0: str) -> any:
|
|
3201
|
+
"""
|
|
3202
|
+
get_param(self, name)
|
|
3203
|
+
|
|
3204
|
+
获取指定的参数
|
|
3205
|
+
|
|
3206
|
+
:param str name: 参数名称
|
|
3207
|
+
:return: 参数值
|
|
3208
|
+
:raises out_of_range: 无此参数
|
|
3209
|
+
"""
|
|
3210
|
+
def have_param(self, arg0: str) -> bool:
|
|
3211
|
+
"""
|
|
3212
|
+
是否存在指定参数
|
|
3213
|
+
"""
|
|
3214
|
+
def normalize(self, arg0: collections.abc.Sequence[typing.SupportsFloat]) -> list[float]:
|
|
3215
|
+
"""
|
|
3216
|
+
【重载接口】子类计算接口
|
|
3217
|
+
"""
|
|
3218
|
+
def set_param(self, arg0: str, arg1: any) -> None:
|
|
3219
|
+
"""
|
|
3220
|
+
set_param(self, name, value)
|
|
3221
|
+
|
|
3222
|
+
设置参数
|
|
3223
|
+
|
|
3224
|
+
:param str name: 参数名称
|
|
3225
|
+
:param value: 参数值
|
|
3226
|
+
:raises logic_error: Unsupported type! 不支持的参数类型
|
|
3227
|
+
"""
|
|
3228
|
+
@property
|
|
3229
|
+
def name(self) -> str:
|
|
3230
|
+
"""
|
|
3231
|
+
名称
|
|
3232
|
+
"""
|
|
3233
|
+
@name.setter
|
|
3234
|
+
def name(self, arg1: str) -> None:
|
|
3235
|
+
...
|
|
3154
3236
|
class OrderBrokerBase:
|
|
3155
3237
|
"""
|
|
3156
3238
|
订单代理包装基类,用户可以参考自定义自己的订单代理,加入额外的处理
|
|
@@ -3414,6 +3496,10 @@ class Portfolio:
|
|
|
3414
3496
|
"""
|
|
3415
3497
|
是否存在指定参数
|
|
3416
3498
|
"""
|
|
3499
|
+
def last_suggestion(self) -> typing.Any:
|
|
3500
|
+
"""
|
|
3501
|
+
回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
|
|
3502
|
+
"""
|
|
3417
3503
|
def reset(self) -> None:
|
|
3418
3504
|
"""
|
|
3419
3505
|
复位操作
|
|
@@ -3704,8 +3790,6 @@ class PositionRecordList:
|
|
|
3704
3790
|
...
|
|
3705
3791
|
def to_pandas(self):
|
|
3706
3792
|
...
|
|
3707
|
-
def to_pyarrow(self):
|
|
3708
|
-
...
|
|
3709
3793
|
class ProfitGoalBase:
|
|
3710
3794
|
"""
|
|
3711
3795
|
盈利目标策略基类
|
|
@@ -4167,6 +4251,84 @@ class ScoreRecordList:
|
|
|
4167
4251
|
...
|
|
4168
4252
|
def to_pandas(self):
|
|
4169
4253
|
...
|
|
4254
|
+
class ScoresFilterBase:
|
|
4255
|
+
"""
|
|
4256
|
+
用于 MF 的截面标准化操作
|
|
4257
|
+
"""
|
|
4258
|
+
def __getstate__(self) -> tuple:
|
|
4259
|
+
...
|
|
4260
|
+
@typing.overload
|
|
4261
|
+
def __init__(self) -> None:
|
|
4262
|
+
...
|
|
4263
|
+
@typing.overload
|
|
4264
|
+
def __init__(self, arg0: ScoresFilterBase) -> None:
|
|
4265
|
+
...
|
|
4266
|
+
@typing.overload
|
|
4267
|
+
def __init__(self, arg0: str) -> None:
|
|
4268
|
+
"""
|
|
4269
|
+
初始化构造函数
|
|
4270
|
+
|
|
4271
|
+
:param str name: 名称
|
|
4272
|
+
"""
|
|
4273
|
+
def __or__(self, arg0: ScoresFilterBase) -> ScoresFilterBase:
|
|
4274
|
+
...
|
|
4275
|
+
def __repr__(self) -> str:
|
|
4276
|
+
...
|
|
4277
|
+
def __setstate__(self, arg0: tuple) -> None:
|
|
4278
|
+
...
|
|
4279
|
+
def __str__(self) -> str:
|
|
4280
|
+
...
|
|
4281
|
+
def _filter(self, arg0: ScoreRecordList, arg1: Datetime, arg2: Query) -> ScoreRecordList:
|
|
4282
|
+
"""
|
|
4283
|
+
【重载接口】子类计算接口
|
|
4284
|
+
"""
|
|
4285
|
+
def clone(self) -> ScoresFilterBase:
|
|
4286
|
+
"""
|
|
4287
|
+
克隆操作
|
|
4288
|
+
"""
|
|
4289
|
+
def filter(self, arg0: ScoreRecordList, arg1: Datetime, arg2: Query) -> ScoreRecordList:
|
|
4290
|
+
"""
|
|
4291
|
+
filter(self, scores, date, query)
|
|
4292
|
+
|
|
4293
|
+
截面过滤
|
|
4294
|
+
:param list scores: 截面数据
|
|
4295
|
+
:param Datetime date: 截面日期
|
|
4296
|
+
:param KQuery query: 查询参数
|
|
4297
|
+
:return: 截面数据
|
|
4298
|
+
:rtype: ScoreRecordList
|
|
4299
|
+
"""
|
|
4300
|
+
def get_param(self, arg0: str) -> any:
|
|
4301
|
+
"""
|
|
4302
|
+
get_param(self, name)
|
|
4303
|
+
|
|
4304
|
+
获取指定的参数
|
|
4305
|
+
|
|
4306
|
+
:param str name: 参数名称
|
|
4307
|
+
:return: 参数值
|
|
4308
|
+
:raises out_of_range: 无此参数
|
|
4309
|
+
"""
|
|
4310
|
+
def have_param(self, arg0: str) -> bool:
|
|
4311
|
+
"""
|
|
4312
|
+
是否存在指定参数
|
|
4313
|
+
"""
|
|
4314
|
+
def set_param(self, arg0: str, arg1: any) -> None:
|
|
4315
|
+
"""
|
|
4316
|
+
set_param(self, name, value)
|
|
4317
|
+
|
|
4318
|
+
设置参数
|
|
4319
|
+
|
|
4320
|
+
:param str name: 参数名称
|
|
4321
|
+
:param value: 参数值
|
|
4322
|
+
:raises logic_error: Unsupported type! 不支持的参数类型
|
|
4323
|
+
"""
|
|
4324
|
+
@property
|
|
4325
|
+
def name(self) -> str:
|
|
4326
|
+
"""
|
|
4327
|
+
名称
|
|
4328
|
+
"""
|
|
4329
|
+
@name.setter
|
|
4330
|
+
def name(self, arg1: str) -> None:
|
|
4331
|
+
...
|
|
4170
4332
|
class SelectorBase:
|
|
4171
4333
|
"""
|
|
4172
4334
|
选择器策略基类,实现标的、系统策略的评估和选取算法,自定义选择器策略子类接口:
|
|
@@ -4241,6 +4403,14 @@ class SelectorBase:
|
|
|
4241
4403
|
"""
|
|
4242
4404
|
子类复位操作实现
|
|
4243
4405
|
"""
|
|
4406
|
+
def add_scores_filter(self, arg0: ScoresFilterBase) -> None:
|
|
4407
|
+
"""
|
|
4408
|
+
add_scores_filter(self, filter)
|
|
4409
|
+
|
|
4410
|
+
在已有过滤基础上新增过滤, 仅适用于 SE_MultiFactor
|
|
4411
|
+
|
|
4412
|
+
:param ScoresFilter filter: 新的过滤器
|
|
4413
|
+
"""
|
|
4244
4414
|
def add_stock(self, stock: Stock, sys: ...) -> None:
|
|
4245
4415
|
"""
|
|
4246
4416
|
add_stock(self, stock, sys)
|
|
@@ -4323,6 +4493,19 @@ class SelectorBase:
|
|
|
4323
4493
|
:param value: 参数值
|
|
4324
4494
|
:raises logic_error: Unsupported type! 不支持的参数类型
|
|
4325
4495
|
"""
|
|
4496
|
+
def set_scores_filter(self, arg0: ScoresFilterBase) -> None:
|
|
4497
|
+
"""
|
|
4498
|
+
set_scores_filter(self, filter)
|
|
4499
|
+
|
|
4500
|
+
设置 ScoresFilter, 将替换现有的过滤器. 仅适用于 SE_MultiFactor
|
|
4501
|
+
|
|
4502
|
+
:param ScoresFilter filter: ScoresFilter
|
|
4503
|
+
"""
|
|
4504
|
+
@property
|
|
4505
|
+
def mf(self) -> ...:
|
|
4506
|
+
"""
|
|
4507
|
+
获取关联的 MF
|
|
4508
|
+
"""
|
|
4326
4509
|
@property
|
|
4327
4510
|
def name(self) -> str:
|
|
4328
4511
|
"""
|
|
@@ -4341,6 +4524,11 @@ class SelectorBase:
|
|
|
4341
4524
|
"""
|
|
4342
4525
|
由 PF 运行时设定的实际运行系统列表
|
|
4343
4526
|
"""
|
|
4527
|
+
@property
|
|
4528
|
+
def scfilter(self) -> ScoresFilterBase:
|
|
4529
|
+
"""
|
|
4530
|
+
获取 ScoresFilter
|
|
4531
|
+
"""
|
|
4344
4532
|
class SignalBase:
|
|
4345
4533
|
"""
|
|
4346
4534
|
信号指示器基类
|
|
@@ -5176,6 +5364,15 @@ class StockManager:
|
|
|
5176
5364
|
"""
|
|
5177
5365
|
获取当前板块信息驱动参数
|
|
5178
5366
|
"""
|
|
5367
|
+
def get_category_list(self) -> list[str]:
|
|
5368
|
+
"""
|
|
5369
|
+
get_category_list(self)
|
|
5370
|
+
|
|
5371
|
+
获取所有板块分类
|
|
5372
|
+
|
|
5373
|
+
:return: 所有板块分类
|
|
5374
|
+
:rtype: StringList
|
|
5375
|
+
"""
|
|
5179
5376
|
def get_context(self) -> StrategyContext:
|
|
5180
5377
|
"""
|
|
5181
5378
|
获取当前上下文
|
|
@@ -5524,9 +5721,6 @@ class StockWeightList:
|
|
|
5524
5721
|
@staticmethod
|
|
5525
5722
|
def to_pandas(data):
|
|
5526
5723
|
...
|
|
5527
|
-
@staticmethod
|
|
5528
|
-
def to_pyarrow(data):
|
|
5529
|
-
...
|
|
5530
5724
|
def __bool__(self) -> bool:
|
|
5531
5725
|
"""
|
|
5532
5726
|
Check whether the list is nonempty
|
|
@@ -6111,6 +6305,10 @@ class System:
|
|
|
6111
6305
|
"""
|
|
6112
6306
|
是否存在指定参数
|
|
6113
6307
|
"""
|
|
6308
|
+
def last_suggestion(self) -> typing.Any:
|
|
6309
|
+
"""
|
|
6310
|
+
回测完成后,返回最后一天交易记录,以及需要延迟的买入和卖出延迟请求
|
|
6311
|
+
"""
|
|
6114
6312
|
def ready(self) -> None:
|
|
6115
6313
|
...
|
|
6116
6314
|
def reset(self) -> None:
|
|
@@ -6711,9 +6909,6 @@ class TimeLineList:
|
|
|
6711
6909
|
@staticmethod
|
|
6712
6910
|
def to_pandas(data):
|
|
6713
6911
|
...
|
|
6714
|
-
@staticmethod
|
|
6715
|
-
def to_pyarrow(data):
|
|
6716
|
-
...
|
|
6717
6912
|
def __bool__(self) -> bool:
|
|
6718
6913
|
"""
|
|
6719
6914
|
Check whether the list is nonempty
|
|
@@ -7661,8 +7856,6 @@ class TradeRecordList:
|
|
|
7661
7856
|
...
|
|
7662
7857
|
def to_pandas(self):
|
|
7663
7858
|
...
|
|
7664
|
-
def to_pyarrow(self):
|
|
7665
|
-
...
|
|
7666
7859
|
class TradeRequest:
|
|
7667
7860
|
"""
|
|
7668
7861
|
交易请求记录。系统内部在实现延迟操作时登记的交易请求信息。暴露该结构的主要目的是用于
|
|
@@ -7743,9 +7936,6 @@ class TransList:
|
|
|
7743
7936
|
@staticmethod
|
|
7744
7937
|
def to_pandas(data):
|
|
7745
7938
|
...
|
|
7746
|
-
@staticmethod
|
|
7747
|
-
def to_pyarrow(data):
|
|
7748
|
-
...
|
|
7749
7939
|
def __bool__(self) -> bool:
|
|
7750
7940
|
"""
|
|
7751
7941
|
Check whether the list is nonempty
|
|
@@ -7983,6 +8173,26 @@ def AGG_COUNT(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit:
|
|
|
7983
8173
|
"""
|
|
7984
8174
|
聚合函数: 非空值计数, 可参考 AGG_STD 帮助
|
|
7985
8175
|
"""
|
|
8176
|
+
def AGG_FUNC(ind: Indicator, agg_func: typing.Any, ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
|
|
8177
|
+
"""
|
|
8178
|
+
AGG_FUNC(ind, agg_func[, ktype=Query.MIN, fill_null=False, unit=1]
|
|
8179
|
+
|
|
8180
|
+
使用自定函数聚合其他K线周期的指标。虽然支持python自定义函数, 但python函数需要GIL, 速度会慢。建议最好直接使用 C++ 自定义聚合函数。
|
|
8181
|
+
|
|
8182
|
+
示例, 计算日线时聚合分钟线收盘价的和:
|
|
8183
|
+
|
|
8184
|
+
>>> kdata = get_kdata('sh600000', Query(Datetime(20250101), ktype=Query.DAY))
|
|
8185
|
+
>>> ind = AGG_FUNC(CLOSE(), lambda ds, x: np.sum(x))
|
|
8186
|
+
>>> ind(k)
|
|
8187
|
+
|
|
8188
|
+
:param Indicator ind: 待计算指标
|
|
8189
|
+
:param callable agg_func: 自定义聚合函数,输入参数为 arg1: datetime list, arg2: numpy array, 返回针对list的聚合结果, 注意是单个值
|
|
8190
|
+
:param KQuery.KType ktype: 聚合的K线周期
|
|
8191
|
+
:param bool fill_null: 是否填充缺失值
|
|
8192
|
+
:param int unit: 聚合周期单位 (上下文K线分组单位, 使用日线计算分钟线聚合时, unit=2代表聚合2天的分钟线)
|
|
8193
|
+
:return: 聚合结果
|
|
8194
|
+
:rtype: Indicator
|
|
8195
|
+
"""
|
|
7986
8196
|
def AGG_MAD(ind: Indicator, ktype: str = 'MIN', fill_null: bool = False, unit: typing.SupportsInt = 1) -> Indicator:
|
|
7987
8197
|
"""
|
|
7988
8198
|
聚合函数: 平均绝对偏差, 可参考 AGG_STD 帮助
|
|
@@ -8958,6 +9168,48 @@ def FLOOR(arg0: typing.SupportsFloat) -> Indicator:
|
|
|
8958
9168
|
:param data: 输入数据
|
|
8959
9169
|
:rtype: Indicator
|
|
8960
9170
|
"""
|
|
9171
|
+
def GROUP_COUNT(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9172
|
+
"""
|
|
9173
|
+
分组累积计数
|
|
9174
|
+
"""
|
|
9175
|
+
def GROUP_FUNC(ind: Indicator, group_func: typing.Any, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9176
|
+
"""
|
|
9177
|
+
GROUP_FUNC(ind, group_func[, ktype=Query.DAY, unit=1])
|
|
9178
|
+
|
|
9179
|
+
自定义分组累积计算指标。虽然支持python自定义函数, 但python函数需要GIL, 速度较慢。建议最好直接使用 C++ 自定义分组累积函数。
|
|
9180
|
+
|
|
9181
|
+
示例, 计算日线时聚合分钟线收盘价的和:
|
|
9182
|
+
|
|
9183
|
+
>>> kdata = get_kdata('sh600000', Query(Datetime(20250101), ktype=Query.DAY))
|
|
9184
|
+
>>> ind = GROUP_FUNC(CLOSE(), lambda dates, data: data/2.0)
|
|
9185
|
+
>>> ind(k)
|
|
9186
|
+
|
|
9187
|
+
:param Indicator ind: 待计算指标
|
|
9188
|
+
:param callable group_func: 自定义分组累积函数,输入参数为 arg1: datetime list, arg2: numpy array, 返回和输入等长的累积计算结果, 类型同样须为 np.array
|
|
9189
|
+
:param KQuery.KType ktype: 分组的K线周期
|
|
9190
|
+
:param int unit: 分组周期单位 (分组的K线周期单位, 使用日线计算分钟线, unit=2代表按2天累积计算的分钟线)
|
|
9191
|
+
:rtype: Indicator
|
|
9192
|
+
"""
|
|
9193
|
+
def GROUP_MAX(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9194
|
+
"""
|
|
9195
|
+
分组累积最大值
|
|
9196
|
+
"""
|
|
9197
|
+
def GROUP_MEAN(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9198
|
+
"""
|
|
9199
|
+
分组累积平均
|
|
9200
|
+
"""
|
|
9201
|
+
def GROUP_MIN(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9202
|
+
"""
|
|
9203
|
+
分组累积最小值
|
|
9204
|
+
"""
|
|
9205
|
+
def GROUP_PROD(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9206
|
+
"""
|
|
9207
|
+
分组累积乘积
|
|
9208
|
+
"""
|
|
9209
|
+
def GROUP_SUM(ind: Indicator, ktype: str = 'DAY', unit: typing.SupportsInt = 1) -> Indicator:
|
|
9210
|
+
"""
|
|
9211
|
+
分组累积和
|
|
9212
|
+
"""
|
|
8961
9213
|
@typing.overload
|
|
8962
9214
|
def HHV(n: typing.SupportsInt = 20) -> Indicator:
|
|
8963
9215
|
...
|
|
@@ -9929,6 +10181,36 @@ def NDAY(x: Indicator, y: Indicator, n: IndParam) -> Indicator:
|
|
|
9929
10181
|
:param int|Indicator|IndParam n: 时间窗口
|
|
9930
10182
|
:rtype: Indicator
|
|
9931
10183
|
"""
|
|
10184
|
+
def NORM_MinMax() -> NormalizeBase:
|
|
10185
|
+
"""
|
|
10186
|
+
最小-最大标准化操作
|
|
10187
|
+
"""
|
|
10188
|
+
def NORM_NOTHING() -> NormalizeBase:
|
|
10189
|
+
"""
|
|
10190
|
+
无截面标准化操作
|
|
10191
|
+
"""
|
|
10192
|
+
def NORM_Quantile(quantile_min: typing.SupportsFloat = 0.01, quantile_max: typing.SupportsFloat = 0.99) -> NormalizeBase:
|
|
10193
|
+
"""
|
|
10194
|
+
分位数截面标准化操作
|
|
10195
|
+
|
|
10196
|
+
:param quantile_min: 最小分位数
|
|
10197
|
+
:param quantile_max: 最大分位数
|
|
10198
|
+
"""
|
|
10199
|
+
def NORM_Quantile_Uniform(quantile_min: typing.SupportsFloat = 0.01, quantile_max: typing.SupportsFloat = 0.99) -> NormalizeBase:
|
|
10200
|
+
"""
|
|
10201
|
+
分位数截面均匀分布标准化操作
|
|
10202
|
+
|
|
10203
|
+
:param quantile_min: 最小分位数
|
|
10204
|
+
:param quantile_max: 最大分位数
|
|
10205
|
+
"""
|
|
10206
|
+
def NORM_Zscore(out_extreme: bool = False, nsigma: typing.SupportsFloat = 3.0, recursive: bool = False) -> NormalizeBase:
|
|
10207
|
+
"""
|
|
10208
|
+
Z-score 标准化操作
|
|
10209
|
+
|
|
10210
|
+
:param out_extreme: 是否剔除异常值
|
|
10211
|
+
:param nsigma: 异常值判断倍数±3.0
|
|
10212
|
+
:param recursive: 是否递归处理异常值
|
|
10213
|
+
"""
|
|
9932
10214
|
@typing.overload
|
|
9933
10215
|
def NOT() -> Indicator:
|
|
9934
10216
|
...
|
|
@@ -10067,6 +10349,22 @@ def PRICELIST(data: typing.Any = None, discard: typing.SupportsInt = 0, align_da
|
|
|
10067
10349
|
:rtype: Indicator
|
|
10068
10350
|
"""
|
|
10069
10351
|
@typing.overload
|
|
10352
|
+
def QUANTILE_TRUNC(n: typing.SupportsInt = 60, quantial_min: typing.SupportsFloat = 0.01, quantial_max: typing.SupportsFloat = 0.99) -> Indicator:
|
|
10353
|
+
...
|
|
10354
|
+
@typing.overload
|
|
10355
|
+
def QUANTILE_TRUNC(data: Indicator, n: typing.SupportsInt = 60, quantial_min: typing.SupportsFloat = 0.01, quantial_max: typing.SupportsFloat = 0.99) -> Indicator:
|
|
10356
|
+
"""
|
|
10357
|
+
QUANTILE_TRUNC(data[, n=60, quantial_min=0.01, quantial_max=0.99])
|
|
10358
|
+
|
|
10359
|
+
对数据进行分位数截断处理。非窗口滚动。
|
|
10360
|
+
|
|
10361
|
+
:param Indicator data: 待剔除异常值数据
|
|
10362
|
+
:param int n: 时间窗口
|
|
10363
|
+
:param float quantial_min: 剔除极值时使用的百分位数下限,默认 0.01
|
|
10364
|
+
:param float quantial_max: 剔除极值时使用的百分位数上限,默认 0.99
|
|
10365
|
+
:rtype: Indicator
|
|
10366
|
+
"""
|
|
10367
|
+
@typing.overload
|
|
10070
10368
|
def RANK(stks: collections.abc.Sequence, mode: typing.SupportsInt = 0, fill_null: bool = True, market: str = 'SH') -> Indicator:
|
|
10071
10369
|
...
|
|
10072
10370
|
@typing.overload
|
|
@@ -10424,6 +10722,59 @@ def SAFTYLOSS(data: Indicator, n1: Indicator, n2: Indicator, p: Indicator) -> In
|
|
|
10424
10722
|
:param float|Indicator|IndParam p: 噪音系数
|
|
10425
10723
|
:rtype: Indicator
|
|
10426
10724
|
"""
|
|
10725
|
+
def SCFilter_AmountLimit(min_amount_percent_limit: typing.SupportsFloat = 0.1) -> ScoresFilterBase:
|
|
10726
|
+
"""
|
|
10727
|
+
SCFilter_AmountLimit([min_amount_percent_limit: float = 0.1])
|
|
10728
|
+
|
|
10729
|
+
过滤掉成交金额在评分列表末尾百分比范围内的截面
|
|
10730
|
+
|
|
10731
|
+
注意:和传入的截面评分列表顺序相关,如果是降序,过滤的是成交金额较小的系统评分记录;反之,则是金额较大的系统评分记录
|
|
10732
|
+
|
|
10733
|
+
:param double min_amount_percent_limit: 最小金额百分比限制
|
|
10734
|
+
:return: 截面过滤器
|
|
10735
|
+
:rtype: ScoresFilterPtr
|
|
10736
|
+
"""
|
|
10737
|
+
def SCFilter_Group(group: typing.SupportsInt = 10, group_index: typing.SupportsInt = 0) -> ScoresFilterBase:
|
|
10738
|
+
"""
|
|
10739
|
+
SCFilter_Group([group: int=10, group_index: int=0])
|
|
10740
|
+
|
|
10741
|
+
按截面进行分组过滤
|
|
10742
|
+
:param int group: 分组数量
|
|
10743
|
+
:param int group_index: 分组索引
|
|
10744
|
+
:return: 截面过滤器
|
|
10745
|
+
:rtype: ScoresFilterPtr
|
|
10746
|
+
"""
|
|
10747
|
+
def SCFilter_IgnoreNan() -> ScoresFilterBase:
|
|
10748
|
+
"""
|
|
10749
|
+
SCFilter_IgnoreNan() -> ScoresFilterPtr
|
|
10750
|
+
|
|
10751
|
+
忽略截面中的NAN值
|
|
10752
|
+
"""
|
|
10753
|
+
def SCFilter_LessOrEqualValue(value: typing.SupportsFloat = 0.0) -> ScoresFilterBase:
|
|
10754
|
+
"""
|
|
10755
|
+
SCFilter_LessOrEqualValue([value = 0.0])
|
|
10756
|
+
|
|
10757
|
+
过滤掉评分小于等于指定值的截面
|
|
10758
|
+
"""
|
|
10759
|
+
def SCFilter_Price(min_price: typing.SupportsFloat = 10.0, max_price: typing.SupportsFloat = 100000.0) -> ScoresFilterBase:
|
|
10760
|
+
"""
|
|
10761
|
+
SCFilter_Price([min_price = 10., max_price = 100000.])
|
|
10762
|
+
|
|
10763
|
+
仅保留价格在 [min_price, max_price] 之间的标的
|
|
10764
|
+
|
|
10765
|
+
注意:和传入的截面评分列表顺序相关,如果是降序,过滤的是价格较小的系统评分记录;反之,则是价格较大的系统评分记录
|
|
10766
|
+
|
|
10767
|
+
:param double min_price: 最小价格限制
|
|
10768
|
+
:param double max_price: 最大价格限制
|
|
10769
|
+
"""
|
|
10770
|
+
def SCFilter_TopN(topn: typing.SupportsInt = 10) -> ScoresFilterBase:
|
|
10771
|
+
"""
|
|
10772
|
+
SCFilter_TopN([topn: int=10])
|
|
10773
|
+
|
|
10774
|
+
获取评分列表中的前 topn 个
|
|
10775
|
+
|
|
10776
|
+
:param int topn: 前 topn 个
|
|
10777
|
+
"""
|
|
10427
10778
|
def SE_EvaluateOptimal(arg0: typing.Any) -> SelectorBase:
|
|
10428
10779
|
"""
|
|
10429
10780
|
SE_EvaluateOptimal(evalulate_func)
|
|
@@ -10474,6 +10825,27 @@ def SE_MultiFactor(inds: collections.abc.Sequence, topn: typing.SupportsInt = 10
|
|
|
10474
10825
|
:param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
|
|
10475
10826
|
:param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
|
|
10476
10827
|
"""
|
|
10828
|
+
@typing.overload
|
|
10829
|
+
def SE_MultiFactor2(mf: ..., filter: ScoresFilterBase = ...) -> SelectorBase:
|
|
10830
|
+
...
|
|
10831
|
+
@typing.overload
|
|
10832
|
+
def SE_MultiFactor2(inds: collections.abc.Sequence, ic_n: typing.SupportsInt = 5, ic_rolling_n: typing.SupportsInt = 120, ref_stk: typing.Any = None, spearman: bool = True, mode: str = 'MF_ICIRWeight', filter: ScoresFilterBase = ...) -> SelectorBase:
|
|
10833
|
+
"""
|
|
10834
|
+
SE_MultiFactor2([inds, ic_n, ic_rolling_n, ref_stk, spearman, mode, filter])
|
|
10835
|
+
|
|
10836
|
+
创建基于多因子评分的选择器,两种创建方式
|
|
10837
|
+
|
|
10838
|
+
- 直接指定 MF:
|
|
10839
|
+
:param MultiFactorBase mf: 直接指定的多因子合成算法
|
|
10840
|
+
|
|
10841
|
+
- 参数直接创建:
|
|
10842
|
+
:param sequense(Indicator) inds: 原始因子列表
|
|
10843
|
+
:param int ic_n: 默认 IC 对应的 N 日收益率
|
|
10844
|
+
:param int ic_rolling_n: IC 滚动周期
|
|
10845
|
+
:param Stock ref_stk: 参考证券 (未指定时,默认为 sh000300 沪深300)
|
|
10846
|
+
:param bool spearman: 默认使用 spearman 计算相关系数,否则为 pearson
|
|
10847
|
+
:param str mode: "MF_ICIRWeight" | "MF_ICWeight" | "MF_EqualWeight" 因子合成算法名称
|
|
10848
|
+
"""
|
|
10477
10849
|
def SE_PerformanceOptimal(key: str = '帐户平均年收益率%', mode: typing.SupportsInt = 0) -> SelectorBase:
|
|
10478
10850
|
"""
|
|
10479
10851
|
SE_PerformanceOptimal(key="帐户平均年收益率%", mode=0)
|
|
@@ -10884,6 +11256,48 @@ def SP_FixedValue(value: typing.SupportsFloat = 0.01) -> SlippageBase:
|
|
|
10884
11256
|
:param float p: 偏移价格
|
|
10885
11257
|
:return: 移滑价差算法实例
|
|
10886
11258
|
"""
|
|
11259
|
+
def SP_LogNormal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05) -> SlippageBase:
|
|
11260
|
+
"""
|
|
11261
|
+
SP_LogNormal([mean=0.0, stddev=0.05])
|
|
11262
|
+
|
|
11263
|
+
对数正态分布随机价格移滑价差算法, 买入和卖出操作是价格在对数正态分布[mean, stddev]范围内的随机偏移
|
|
11264
|
+
|
|
11265
|
+
:param float mean: 对数正态分布的均值
|
|
11266
|
+
:param float stddev: 对数正态分布的标准差
|
|
11267
|
+
:return: 移滑价差算法实例
|
|
11268
|
+
"""
|
|
11269
|
+
def SP_Normal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05) -> SlippageBase:
|
|
11270
|
+
"""
|
|
11271
|
+
SP_Normal([mean=0.0, stddev=0.05])
|
|
11272
|
+
|
|
11273
|
+
正态分布随机价格移滑价差算法, 买入和卖出操作是价格在正态分布[mean, stddev]范围内的随机偏移
|
|
11274
|
+
|
|
11275
|
+
:param float mean: 正态分布的均值
|
|
11276
|
+
:param float stddev: 正态分布的标准差
|
|
11277
|
+
:return: 移滑价差算法实例
|
|
11278
|
+
"""
|
|
11279
|
+
def SP_TruncNormal(mean: typing.SupportsFloat = 0.0, stddev: typing.SupportsFloat = 0.05, min_value: typing.SupportsFloat = -0.11, max_value: typing.SupportsFloat = 0.1) -> SlippageBase:
|
|
11280
|
+
"""
|
|
11281
|
+
SP_TruncNormal([mean=0.0, stddev=0.05, min_value=-0.1, max_value=0.1])
|
|
11282
|
+
|
|
11283
|
+
截断正态分布随机价格移滑价差算法, 买入和卖出操作是价格在截断正态分布[mean, stddev, min_value, max_value]范围内的随机偏移
|
|
11284
|
+
|
|
11285
|
+
:param float mean: 截断正态分布的均值
|
|
11286
|
+
:param float stddev: 截断正态分布的标准差
|
|
11287
|
+
:param float min_value: 最小截断值
|
|
11288
|
+
:param float max_value: 最大截断值
|
|
11289
|
+
:return: 移滑价差算法实例
|
|
11290
|
+
"""
|
|
11291
|
+
def SP_Uniform(min_value: typing.SupportsFloat = -0.05, max_value: typing.SupportsFloat = 0.05) -> SlippageBase:
|
|
11292
|
+
"""
|
|
11293
|
+
SP_Uniform([min_value=-0.05, max_value=0.05])
|
|
11294
|
+
|
|
11295
|
+
均匀分布随机价格移滑价差算法, 买入和卖出操作是价格在[min_value, max_value]范围内的均匀分布随机偏移
|
|
11296
|
+
|
|
11297
|
+
:param float min_value: 最小偏移价格
|
|
11298
|
+
:param float max_value: 最大偏移价格
|
|
11299
|
+
:return: 移滑价差算法实例
|
|
11300
|
+
"""
|
|
10887
11301
|
@typing.overload
|
|
10888
11302
|
def SQRT() -> Indicator:
|
|
10889
11303
|
...
|
|
@@ -13573,7 +13987,7 @@ def ZSCORE(data: Indicator, out_extreme: bool = False, nsigma: typing.SupportsFl
|
|
|
13573
13987
|
"""
|
|
13574
13988
|
ZSCORE(data[, out_extreme, nsigma, recursive])
|
|
13575
13989
|
|
|
13576
|
-
|
|
13990
|
+
对数据进行标准化(归一),可选进行极值处理
|
|
13577
13991
|
|
|
13578
13992
|
注:非窗口滚动,如需窗口滚动的标准化,直接 (x - MA(x, n)) / STDEV(x, n) 即可。
|
|
13579
13993
|
|
|
@@ -13627,6 +14041,15 @@ def batch_calculate_inds(arg0: collections.abc.Sequence, arg1: KData) -> list:
|
|
|
13627
14041
|
:return: 指标计算结果列表
|
|
13628
14042
|
:rtype: list
|
|
13629
14043
|
"""
|
|
14044
|
+
def bind_email(arg0: str, arg1: str) -> None:
|
|
14045
|
+
"""
|
|
14046
|
+
bind_email(email: str, code: str)
|
|
14047
|
+
|
|
14048
|
+
绑定邮箱和授权码
|
|
14049
|
+
|
|
14050
|
+
:param str email: 邮箱地址
|
|
14051
|
+
:param str code: 授权码
|
|
14052
|
+
"""
|
|
13630
14053
|
def can_upgrade() -> bool:
|
|
13631
14054
|
...
|
|
13632
14055
|
def close_ostream_to_python() -> None:
|
|
@@ -13687,10 +14110,6 @@ def dates_to_np(arg0: DatetimeList) -> numpy.ndarray:
|
|
|
13687
14110
|
"""
|
|
13688
14111
|
将 DatetimeList 转换为 NumPy 元组
|
|
13689
14112
|
"""
|
|
13690
|
-
def dates_to_pa(arg0: DatetimeList) -> typing.Any:
|
|
13691
|
-
"""
|
|
13692
|
-
将日期列表转换为 pyarrow.Table 对象
|
|
13693
|
-
"""
|
|
13694
14113
|
def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['datetime', 'open', 'high', 'low', 'close', 'amount', 'volume']) -> KRecordList:
|
|
13695
14114
|
"""
|
|
13696
14115
|
df_to_krecords(df: pd.DataFrame[, columns: dict]) -> KRecordList
|
|
@@ -13704,7 +14123,7 @@ def df_to_krecords(df: typing.Any, columns: collections.abc.Sequence[str] = ['da
|
|
|
13704
14123
|
def fetch_trial_license(arg0: str) -> str:
|
|
13705
14124
|
"""
|
|
13706
14125
|
fetch_trial_license(email: str)
|
|
13707
|
-
|
|
14126
|
+
|
|
13708
14127
|
获取试用授权码
|
|
13709
14128
|
|
|
13710
14129
|
:param str email: 邮箱地址
|
|
@@ -13752,38 +14171,23 @@ def get_date_range(start: Datetime, end: Datetime) -> DatetimeList:
|
|
|
13752
14171
|
:param Datetime end: 结束日期
|
|
13753
14172
|
:rtype: DatetimeList
|
|
13754
14173
|
"""
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
14174
|
+
def get_expire_date() -> Datetime:
|
|
14175
|
+
"""
|
|
14176
|
+
get_expire_date() -> Datetime
|
|
14177
|
+
|
|
14178
|
+
查看授权到期时间
|
|
13760
14179
|
"""
|
|
13761
|
-
|
|
14180
|
+
def get_funds_list(arg0: collections.abc.Sequence[TradeManager], arg1: DatetimeList) -> list[list[FundsRecord]]:
|
|
14181
|
+
"""
|
|
14182
|
+
get_funds_list(tm_list: list, ref_dates: DatetimeList) -> list[Funds])
|
|
13762
14183
|
|
|
13763
|
-
|
|
13764
|
-
|
|
13765
|
-
:param stks: 证券列表
|
|
13766
|
-
:param list[Indicator] inds: 指标列表
|
|
13767
|
-
:param Datetime date: 指定日期
|
|
13768
|
-
:param int cal_len: 计算需要的数据长度
|
|
13769
|
-
:param str ktype: k线类型
|
|
13770
|
-
:param str market: 指定行情市场(用于日期对齐)
|
|
13771
|
-
|
|
13772
|
-
方式2: 获取按指定Query查询计算的各证券的各指标结果, 结果中将包含指定 Query 包含的所有指定市场交易日日期
|
|
13773
|
-
get_inds_view(stks, inds, query, market='SH'])
|
|
14184
|
+
一次性从多个账户中获取多个指定时刻的账户资金信息
|
|
13774
14185
|
|
|
13775
|
-
|
|
13776
|
-
|
|
13777
|
-
|
|
13778
|
-
:param str market: 指定行情市场(用于日期对齐)
|
|
14186
|
+
:param list tm_list: 账户列表
|
|
14187
|
+
:param DatetimeList ref_dates: 获取时刻列表
|
|
14188
|
+
:return: 账户资金列表
|
|
13779
14189
|
"""
|
|
13780
14190
|
@typing.overload
|
|
13781
|
-
def get_inds_view_pyarrow(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], query: Query, market: str = 'SH') -> typing.Any:
|
|
13782
|
-
...
|
|
13783
|
-
@typing.overload
|
|
13784
|
-
def get_inds_view_pyarrow(stks: collections.abc.Sequence, inds: collections.abc.Sequence[Indicator], date: Datetime, cal_len: typing.SupportsInt = 100, ktype: str = 'DAY', market: str = 'SH') -> typing.Any:
|
|
13785
|
-
...
|
|
13786
|
-
@typing.overload
|
|
13787
14191
|
def get_kdata(arg0: str, arg1: Query) -> KData:
|
|
13788
14192
|
...
|
|
13789
14193
|
@typing.overload
|
|
@@ -13814,23 +14218,6 @@ def get_log_level() -> LOG_LEVEL:
|
|
|
13814
14218
|
"""
|
|
13815
14219
|
获取当前日志级别
|
|
13816
14220
|
"""
|
|
13817
|
-
def get_market_view(stks: collections.abc.Sequence, date: Datetime = ..., market: str = 'SH') -> typing.Any:
|
|
13818
|
-
"""
|
|
13819
|
-
get_market_view(stks[, date=Datetime(), market='SH']) -> pandas.DataFrame
|
|
13820
|
-
|
|
13821
|
-
获取指定股票集合在指定交易日的行情数据,不包含当日停牌无数据的股票。如未指定日期,则返回最后交易日行情数据,
|
|
13822
|
-
如同时接收了行情数据,则为实时行情。
|
|
13823
|
-
|
|
13824
|
-
注: 此函数依赖于日线数据
|
|
13825
|
-
|
|
13826
|
-
:param list[Stock] stks: 股票列表
|
|
13827
|
-
:param Datetime date: 获取指定日期的行情数据
|
|
13828
|
-
:param str market: 市场代码
|
|
13829
|
-
:return: 指定股票列表最后行情数据
|
|
13830
|
-
:rtype: pandas.DataFrame
|
|
13831
|
-
"""
|
|
13832
|
-
def get_market_view_pyarrow(stks: collections.abc.Sequence, date: Datetime = ..., market: str = 'SH') -> typing.Any:
|
|
13833
|
-
...
|
|
13834
14221
|
def get_spot_from_buffer_server(arg0: str, arg1: str, arg2: str, arg3: Datetime) -> list[SpotRecord]:
|
|
13835
14222
|
"""
|
|
13836
14223
|
get_spot_from_buffer_server(addr: str, market: str, code: str, datetime: str)
|
|
@@ -13917,16 +14304,33 @@ def krecords_to_df(arg0: KRecordList) -> typing.Any:
|
|
|
13917
14304
|
...
|
|
13918
14305
|
def krecords_to_np(arg0: KRecordList) -> numpy.ndarray:
|
|
13919
14306
|
...
|
|
13920
|
-
def krecords_to_pa(arg0: KRecordList) -> typing.Any:
|
|
13921
|
-
"""
|
|
13922
|
-
将KRecordList转换为parraw.Table
|
|
13923
|
-
"""
|
|
13924
14307
|
def open_ostream_to_python() -> None:
|
|
13925
14308
|
...
|
|
13926
14309
|
def open_spend_time() -> None:
|
|
13927
14310
|
"""
|
|
13928
14311
|
全局开启 c++ 部分耗时打印
|
|
13929
14312
|
"""
|
|
14313
|
+
def parallel_run_pf(pf_list: collections.abc.Sequence[...], query: Query, force: bool = False) -> list[list[...]]:
|
|
14314
|
+
"""
|
|
14315
|
+
parallel_run_pf(pf_list, query[, force=False])
|
|
14316
|
+
|
|
14317
|
+
并行执行多个投资组合策略, 并返回 list FundsList, 各账户对应资产(按query时间段)
|
|
14318
|
+
|
|
14319
|
+
:param list pf_list: 投资组合列表
|
|
14320
|
+
:param Query query: 查询条件
|
|
14321
|
+
:param bool force: 强制重新计算
|
|
14322
|
+
"""
|
|
14323
|
+
def parallel_run_sys(sys_list: collections.abc.Sequence[...], query: Query, reset: bool = False, reset_all: bool = False) -> list[list[...]]:
|
|
14324
|
+
"""
|
|
14325
|
+
parallel_run_sys(sys_list, query[, reset=False, reset_all=False])
|
|
14326
|
+
|
|
14327
|
+
并行运行多个系系统, 并返回 list FundsList, 各账户对应资产(按query时间段)
|
|
14328
|
+
|
|
14329
|
+
:param sys_list: 系统列表
|
|
14330
|
+
:param query: 查询条件
|
|
14331
|
+
:param bool reset: 执行前是否依据系统部件共享属性复位
|
|
14332
|
+
:param bool reset_all: 强制复位所有部件
|
|
14333
|
+
"""
|
|
13930
14334
|
def positions_to_df(arg0: PositionRecordList) -> typing.Any:
|
|
13931
14335
|
"""
|
|
13932
14336
|
positions_to_df(positions)
|
|
@@ -13945,10 +14349,6 @@ def positions_to_np(arg0: PositionRecordList) -> numpy.ndarray:
|
|
|
13945
14349
|
|
|
13946
14350
|
注意: 其中的当前市值、利润、盈亏等计算值均以日线计算, 如使用日线一下级别回测时, 对未清仓的持仓记录需要自行重新计算!
|
|
13947
14351
|
"""
|
|
13948
|
-
def positions_to_pa(arg0: PositionRecordList) -> typing.Any:
|
|
13949
|
-
"""
|
|
13950
|
-
将交易记录列表转换为 pyarrow.Table 对象
|
|
13951
|
-
"""
|
|
13952
14352
|
@typing.overload
|
|
13953
14353
|
def register_extra_ktype(ktype: str, basetype: str, minutes: typing.SupportsInt, get_phase_end: collections.abc.Callable[[Datetime], Datetime]) -> None:
|
|
13954
14354
|
...
|
|
@@ -13992,7 +14392,7 @@ def release_extra_ktype() -> None:
|
|
|
13992
14392
|
def remove_license() -> None:
|
|
13993
14393
|
"""
|
|
13994
14394
|
remove_license()
|
|
13995
|
-
|
|
14395
|
+
|
|
13996
14396
|
移除当前授权
|
|
13997
14397
|
"""
|
|
13998
14398
|
@typing.overload
|
|
@@ -14086,16 +14486,19 @@ def spot_agent_is_running() -> bool:
|
|
|
14086
14486
|
"""
|
|
14087
14487
|
判断行情数据接收代理是否在运行
|
|
14088
14488
|
"""
|
|
14089
|
-
def start_data_server(addr: str = 'tcp://0.0.0.0:9201', work_num: typing.SupportsInt =
|
|
14489
|
+
def start_data_server(addr: str = 'tcp://0.0.0.0:9201', work_num: typing.SupportsInt = 3, save_tick: bool = False, buf_tick: bool = False, parquet_path: str = '') -> None:
|
|
14090
14490
|
"""
|
|
14091
|
-
start_data_server(addr: str[, work_num: int=
|
|
14491
|
+
start_data_server(addr: str[, work_num: int=3, save_tick: bool=False, buf_tick: bool=False, parquet_path: str=''])
|
|
14092
14492
|
|
|
14093
|
-
|
|
14094
|
-
|
|
14493
|
+
启动数据缓存服务。其中save_tick 参数和 parquet_path 有关联:
|
|
14494
|
+
- 如果 save_tick=True, parquet_path 不为空时, 使用 parquet_path 保存数据;
|
|
14495
|
+
- 如果 save_tick=True, parquet_path 为空时, 则使用 clickhouse K线存储引擎保存数据(需配置使用 clickhouse K线存储引擎)
|
|
14496
|
+
|
|
14095
14497
|
:param str addr: 服务器地址
|
|
14096
14498
|
:param int work_num: 工作线程数
|
|
14097
|
-
:param bool save_tick: 是否保存tick数据至数据库(
|
|
14499
|
+
:param bool save_tick: 是否保存tick数据至数据库(如果 parquet_path 不为空时, 使用 parquet 文件进行保存;否则,需使用 clickhouse K线存储引擎)
|
|
14098
14500
|
:param bool buf_tick: 是否缓存tick数据
|
|
14501
|
+
:param str parquet_path: 保存tick数据至parquet文件路径, 仅在 save_tick=True 时有效
|
|
14099
14502
|
:return: None
|
|
14100
14503
|
"""
|
|
14101
14504
|
def start_spot_agent(print: bool = False, worker_num: typing.SupportsInt = 1, addr: str = '') -> None:
|
|
@@ -14130,10 +14533,6 @@ def timeline_to_np(arg0: TimeLineList) -> numpy.ndarray:
|
|
|
14130
14533
|
"""
|
|
14131
14534
|
将分时线记录转换为NumPy元组
|
|
14132
14535
|
"""
|
|
14133
|
-
def timeline_to_pa(arg0: TimeLineList) -> typing.Any:
|
|
14134
|
-
"""
|
|
14135
|
-
将分时线记录转换为 pyarrow.Table 对象
|
|
14136
|
-
"""
|
|
14137
14536
|
def toPriceList(arg0: collections.abc.Sequence) -> list[float]:
|
|
14138
14537
|
"""
|
|
14139
14538
|
将 python list/tuple/np.arry 对象转化为 PriceList 对象
|
|
@@ -14150,10 +14549,6 @@ def trades_to_df(arg0: TradeRecordList) -> typing.Any:
|
|
|
14150
14549
|
"""
|
|
14151
14550
|
def trades_to_np(arg0: TradeRecordList) -> numpy.ndarray:
|
|
14152
14551
|
...
|
|
14153
|
-
def trades_to_pa(arg0: TradeRecordList) -> typing.Any:
|
|
14154
|
-
"""
|
|
14155
|
-
将交易记录列表转换为 pyarrow.Table 对象
|
|
14156
|
-
"""
|
|
14157
14552
|
def translist_to_df(arg0: TransList) -> typing.Any:
|
|
14158
14553
|
"""
|
|
14159
14554
|
将分笔记录转换为 DataFrame
|
|
@@ -14162,10 +14557,6 @@ def translist_to_np(arg0: TransList) -> numpy.ndarray:
|
|
|
14162
14557
|
"""
|
|
14163
14558
|
将分笔记录转换为NumPy元组
|
|
14164
14559
|
"""
|
|
14165
|
-
def translist_to_pa(arg0: TransList) -> typing.Any:
|
|
14166
|
-
"""
|
|
14167
|
-
将分笔记录转换为 pyarrow.Table 对象
|
|
14168
|
-
"""
|
|
14169
14560
|
def view_license() -> str:
|
|
14170
14561
|
"""
|
|
14171
14562
|
view_license()
|
|
@@ -14176,10 +14567,6 @@ def weights_to_df(arg0: StockWeightList) -> typing.Any:
|
|
|
14176
14567
|
...
|
|
14177
14568
|
def weights_to_np(arg0: StockWeightList) -> numpy.ndarray:
|
|
14178
14569
|
...
|
|
14179
|
-
def weights_to_pa(arg0: StockWeightList) -> typing.Any:
|
|
14180
|
-
"""
|
|
14181
|
-
将权息记录列表转换为 pyarrow.Table 对象
|
|
14182
|
-
"""
|
|
14183
14570
|
DEBUG: LOG_LEVEL # value = <LOG_LEVEL.DEBUG: 1>
|
|
14184
14571
|
ERROR: LOG_LEVEL # value = <LOG_LEVEL.ERROR: 4>
|
|
14185
14572
|
FATAL: LOG_LEVEL # value = <LOG_LEVEL.FATAL: 5>
|