7.3 KiB
指标计算函数
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")