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

multi_signal_strategy的前3个信号生成类很容易明白,但最后那个MultiSignalStrategy没看懂下单逻辑,
我估计是三个set_signal_pos都为1的时候下单,但看TargetPosTemplate的源码真的很蒙圈。。。。。

谢谢

Member
avatar
加入于:
帖子: 17
声望: 2

希望可以讲讲TargetPosTemplate 这个模板的用法, 基础CtaTemplate算是了解了, 不过一换模板,又有点晕

Administrator
avatar
加入于:
帖子: 4028
声望: 221

这里主要用到了一个策略信号(Signal)和交易执行(Execution)隔离的模式,TargetPosTemplate就是通过找个目标仓位的差分值来执行交易。

Member
avatar
加入于:
帖子: 46
声望: 0

用Python的交易员 wrote:

这里主要用到了一个策略信号(Signal)和交易执行(Execution)隔离的模式,TargetPosTemplate就是通过找个目标仓位的差分值来执行交易。

是不是意味着TargetPosTemplate 可以用来调整仓位到需要的水平?这样的话,如果实现网格策略,第n个网格,跳转到第n+2个网格,直接调用TargetPosTemplate的set_target_pos就可以实现仓位变动?

Member
avatar
加入于:
帖子: 526
声望: 24

TargetPosTemplate 就是根据设定的target_pos和策略持仓的差值进行下单来使仓位达到target_pos的。可以自己试试看

Member
avatar
加入于:
帖子: 46
声望: 0

xiaohe wrote:

TargetPosTemplate 就是根据设定的target_pos和策略持仓的差值进行下单来使仓位达到target_pos的。可以自己试试看

建了一个类 TestGrid(TargetPosTemplate),然后在on_tick 里面写网格策略,只成交了首次减仓;分别在on_tick 里面super(TestGrid,self).on_tick(tick),on_bar里面 super(TestGrid,self).on_bar(bar),这样能实现tick数据更新吗,还是需要在TestGrid里面在价格Bargenerater更新tick,bar数据?如果不能实现,怎么写才能获取推送的数据呢?

Member
avatar
加入于:
帖子: 526
声望: 24

tick应用可参考https://www.vnpy.com/forum/topic/86-shi-yong-targetpostemplatemo-ban-hui-ce-hui-ce-ji-lu-li-zhi-you-kai-cang-mei-you-ping-cang
要想知道数据有没有更新,print一下就知道了

Member
avatar
加入于:
帖子: 46
声望: 0

xiaohe wrote:

tick应用可参考https://www.vnpy.com/forum/topic/86-shi-yong-targetpostemplatemo-ban-hui-ce-hui-ce-ji-lu-li-zhi-you-kai-cang-mei-you-ping-cang

print看着在tick里面有不断更新数据,但仓位不更新;然后把策略写入 on_bar 测试setTargetPos 依然改变不了仓位,在settargetpos里面打印,是有接受新仓位的,但仓位最终没变;然后新建class newtargetPosTemplate,重新定义settargetpos 的sendneworder,全部改成stop单依然没有改变仓位;网格搞定了,最后就差这个仓位变动实现不了

Member
avatar
加入于:
帖子: 46
声望: 0

1.set_singal_pos(),跑回测时候,都是开仓,实盘里面,如果仓位为1,set_singal_pos(0),应该是平仓吧?

  1. 如果条件是开盘高开开仓,写在on_bar 里面,用set_singal_pos()开仓1手,实盘成交应该是第一分钟内成交,还是等第1根k走完成交?模拟盘都是第一k走完成交;如果想开盘立即成交,应该怎么写呢?
Member
avatar
加入于:
帖子: 526
声望: 24

第一条K线吧。如果要知道开盘高开不就得走完第一根K线吗?

Member
avatar
加入于:
帖子: 46
声望: 0

不需要啊,只需要获取开盘价就可以判断高开了;感觉只能是在tick里面获取第一个tickopen,然后在on——tick里面成交

Member
avatar
加入于:
帖子: 526
声望: 24

对呀,on_tick就是下一个tick,on_bar就是下一个bar呀

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