指标计算函数

VeighNa Elite Trader的CTA策略模块内置了以下计算函数供策略调用:

sma :简单移动平均

  • 入参

    • close: np.ndarray

    • time_period: int=30

  • 出参

    • sma_array: np.ndarray

ema :指数滑动平均

  • 入参

    • close: np.ndarray

    • time_period: int=30

  • 出参

    • ema_array: np.ndarray

kama :适应性移动平均

  • 入参

    • close: np.ndarray

    • time_period: int=30

  • 出参

    • atr_array: np.ndarray

wma :加权移动平均

  • 入参

    • close: np.ndarray

    • time_period: int=30

  • 出参

    • wma_array: np.ndarray

apo:绝对价格振荡器

  • 入参

    • close: np.ndarray

    • fast_period: int=12

    • slow_period: int=26

    • matype: int=0

  • 出参

    • apo_array: np.ndarray

请注意,matype分别对应:0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3

cmo:钱德动量摆动指标

  • 入参

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • cmo_array: np.ndarray

mom:上升动向值

  • 入参

    • close: np.ndarray

    • time_period: int=10

  • 出参

    • mom_array: np.ndarray

ppo:价格震荡百分比指数

  • 入参

    • close: np.ndarray

    • fast_period: int=12

    • slow_period: int=26

    • matype: int=0

  • 出参

    • ppo_array: np.ndarray

roc:变动率指标

  • 入参

    • close: np.ndarray

    • time_period: int=10

  • 出参

    • roc_array: np.ndarray

rocr:变动率比率

  • 入参

    • close: np.ndarray

    • time_period: int=10

  • 出参

    • rocr_array: np.ndarray

rocp:变动率百分比

  • 入参

    • close: np.ndarray

    • time_period: int=10

  • 出参

    • rocp_array: np.ndarray

trix:三次平滑EMA的一天变化率

  • 入参

    • close: np.ndarray

    • time_period: int=30

  • 出参

    • trix_array: np.ndarray

stddev:标准偏差

  • 入参

    • close: np.ndarray

    • time_period: int=5

    • nbdev: float=1

  • 出参

    • stddev_array: np.ndarray

std:标准偏差

  • 入参

    • close: np.ndarray

    • time_period: int=5

    • nbdev: float=1

  • 出参

    • std_array: np.ndarray

obv:能量潮

  • 入参

    • close: np.ndarray

    • volume: np.ndarray

  • 出参

    • obv_array: np.ndarray

cci:顺势指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • cci_array: np.ndarray

atr:真实波动幅度均值

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • atr_array: np.ndarray

natr:归一化波动幅度均值

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • natr_array: np.ndarray

rsi:相对强弱指数

  • 入参

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • rsi_array: np.ndarray

macd:平均异同移动平均线

  • 入参

    • close: np.ndarray

    • fast_period: int=12

    • slow_period: int=26

    • signal_period: int=9

  • 出参

    • macd_array: np.ndarray

    • macdsignal_array: np.ndarray

    • macdhist_array: np.ndarray

adx:平均趋向指数

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • adx_array: np.ndarray

adxr:平均趋向指数的趋向指数

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • adxr_array: np.ndarray

minus_di:负趋向指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • minusdi_array: np.ndarray

plus_di:正趋向指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • plusdi_array: np.ndarray

willr:威廉指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=14

  • 出参

    • willr_array: np.ndarray

ultosc:终极波动指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • time_period: int=7

    • time_period2: int=14

    • time_period3: int=28

  • 出参

    • ultosc_array: np.ndarray

trange:真实波幅

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

  • 出参

    • trange_array: np.ndarray

aroon:阿隆指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • time_period: int=14

  • 出参

    • aroonup_array: np.ndarray

    • aroondown_array: np.ndarray

aroonosc:阿隆震荡

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • time_period: int=14

  • 出参

    • aroonosc_array: np.ndarray

minus_dm:负趋向变动值

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • time_period: int=14

  • 出参

    • minusdm_array: np.ndarray

plus_dm:正趋向变动值

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • time_period: int=14

  • 出参

    • plusdm_array: np.ndarray

mfi:资金流量指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • volume: np.ndarray

    • time_period: int=14

  • 出参

    • mfi_array: np.ndarray

ad:平衡交易量指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • volume: np.ndarray

  • 出参

    • ad_array: np.ndarray

adosc:震荡指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • volume: np.ndarray

    • fast_period: int=3

    • slow_period: int=10

  • 出参

    • adosc_array: np.ndarray

bop:均势指标

  • 入参

    • open: np.ndarray

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

  • 出参

    • bop_array: np.ndarray

stoch:随机指标

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • fastk_period: int=5

    • slowk_period: int=3

    • slowk_matype: int=0

    • slowd_period: int=3

    • slowd_matype: int=0

  • 出参

    • slowk_array: np.ndarray

    • slowd_array: np.ndarray

boll:布林通道

  • 入参

    • data: np.ndarray

    • window: int

    • dev: float

  • 出参

    • bollup_array: np.ndarray

    • bolldown_array: np.ndarray

keltner:肯特纳通道

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • close: np.ndarray

    • window: int

    • dev: float

  • 出参

    • kkup_array: np.ndarray

    • kkdown_array: np.ndarray

donchian:唐奇安通道

  • 入参

    • high: np.ndarray

    • low: np.ndarray

    • window: int

  • 出参

    • donchianup_array: np.ndarray

    • donchiandown_array: np.ndarray

cross_over:上穿

  • 入参

    • data: np.ndarray

    • level: float

若data上一个值小于等于level以及data最新值大于level,则返回True。

  • 出参

    • cross_over: bool

cross_below:下穿

  • 入参

    • data: np.ndarray

    • level: float

  • 出参

    • cross_below: bool

若data上一个值大于等于level以及data最新值小于level,则返回True。

check_increasing:检查序列单调上升

  • 入参

    • data: np.ndarray

  • 出参

    • increasing: bool

check_decreasing:检查序列单调下降

  • 入参

    • data: np.ndarray

  • 出参

    • decreasing: bool

resample_data:对K线数据重新取样

  • 入参

    • df: pd.DataFrame

    • rule: str

  • 出参

    • resampled_df: pd.DataFrame

  • 示例

若想要测试resample_data函数的效果,可以在策略的on_history函数收到hm推送的时候先获取K线DataFrame,再调用resample_data函数对K线数据重新取样,如下所示:

# 判断实盘trading状态,只有策略启动之后才进行输出
df: pd.DataFrame = hm.to_dataframe()
resampled_df: pd.DataFrame = resample_data(df, "5min")