476 lines
7.3 KiB
Markdown
476 lines
7.3 KiB
Markdown
# 指标计算函数
|
|
|
|
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线数据重新取样,如下所示:
|
|
|
|
```python3
|
|
# 判断实盘trading状态,只有策略启动之后才进行输出
|
|
df: pd.DataFrame = hm.to_dataframe()
|
|
resampled_df: pd.DataFrame = resample_data(df, "5min")
|
|
```
|