vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 46
声望: 2

我是刚刚开始接触vnpy的小白,有些问题还没捋顺,希望老师不要嫌我麻烦哈。

    atr_array = am.atr(self.atr_length, array=True)
    self.atr_value = atr_array[-1]
    self.atr_ma = atr_array[-self.atr_ma_length:].mean()

过滤趋势的一个条件是 波动率大于前10个单位波动率的均值 if self.atr_value > self.atr_ma: , 各个指标的计算代码如上↑。

那么,如果需要用到成交量过滤的话,写法是否可以和上面的类似呢? ↓
volume_array = am.volume(self.volume_length, array=True)
self.volume_value = volume_array[-1]
self.volume_ma = volume_array[-self.volume_ma_length:].mean()

现在有一个疑问是,成交量的写法中好像只有一个(self),没有需要填入的参数,那么成交量是怎么计算出来的呢?
@property
def volume(self):
"""
Get trading volume time series.
"""
return self.volume_array

那么假设交易逻辑中的一个条件是:当根K线的成交量 >= 前10根K线成交量均值 (就是类似于self.atr_value > self.atr_ma 这种),请问这个代码应该怎么写呢?

还有一个问题是关于K线实体部分的写法, “ K线的实体部分占总波动的50%以上(算上跳空的情况) ” 。在文华8中的写法是 ABS( C-O) / (MAX (REF(C,1),H)-MIN(REF(C,1),L)) >= 0.5。那么请问一下,在vnpy中,我的这种写法是对的吗?
self.abs( c-o) / max(bar.close_price[-2],bar.high_price) - min(bar.close_price[-2],bar.low_price)。
这种K线实体部分占总波动百分比的过滤条件应该怎样写呢?

Administrator
avatar
加入于:
帖子: 4122
声望: 229
volume_array = am.volume(self.volume_length, array=True)
self.volume_value = volume_array[-1]
self.volume_ma = volume_array[-self.volume_ma_length:].mean()

这个写法是对的

后面文华的这个写法,你不妨直接基于BarData来写,反而简单一些

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3