VN神经蛙 wrote:
单凭文字描述不太确定你的意思,方便贴一下策略吗
抱歉,几天没看,下面是trading view的一段代码,想在vnpy中实现,thx
zigzag() =>
_isUp = close >= open
_isDown = close <= open
_direction = _isUp[1] and _isDown ? -1 : _isDown[1] and _isUp ? 1 : nz(_direction[1])
_zigzag = _isUp[1] and _isDown and _direction[1] != -1 ? highest(2) : _isDown[1] and _isUp and _direction[1] != 1 ? lowest(2) : na
_ticker = useHA ? heikenashi(tickerid) : tickerid
sz = useAltTF ? (change(time(tf)) != 0 ? security(_ticker, tf, zigzag()) : na) : zigzag()
plot(sz, title='zigzag', color=black, linewidth=2)
// ||--- Pattern Recognition:
x = valuewhen(sz, sz, 4)
a = valuewhen(sz, sz, 3)
b = valuewhen(sz, sz, 2)
c = valuewhen(sz, sz, 1)
d = valuewhen(sz, sz, 0)
xab = (abs(b-a)/abs(x-a))
xad = (abs(a-d)/abs(x-a))
abc = (abs(b-c)/abs(a-b))
bcd = (abs(c-d)/abs(b-c))
VN神经蛙 wrote:
可以参考一下示例策略boll_channel_strategy的on_15min_bar函数中具体的实现逻辑。
另外直接使用自带的ArrayManager调取bar的数据信息即可,无需自己写函数。
thx,我是想测一个策略,右侧交易。等一个形态走完后确认信号,然后想获取这个形态中bar的数据信息
想实现的目的就是想获得过滤条件满足时,bar的数据信息。
找到一个func,如下:
def valuewhen(condition, source, occurrence):
return pd.Series(source) \
.reindex(pd.Series(condition[condition]).index) \
.shift(-occurrence) \
.reindex(pd.Series(source).index) \
.ffill()
但是算的过程中获得的总是Nan。
大佬们有没有func改进的建议或者有没有别的方法
xiaohe wrote:
talib.SMA(你的array, n)
thx
想要实现的是两个均线相减后的结果算sma。
目前两个均线和均线相减后的数据类型都是'numpy.ndarray',总是报错:AttributeError: 'numpy.ndarray' object has no attribute 'sma'。想问下怎么样解决?或者说怎么样实现我的目的