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

(1)如果同时持有多空,pos是单向的,该怎么处理? 例如:如果持有1手多单,sell卖平的委托没有成交,紧接着的short卖开的单子成交了,pos 是几呢 ?
(2)假如策略下了1手多单,人通过Vntrader下了1手多单,pos 是几 ?
(3)假如策略下了2手多单,人通过Vntrader平仓1手,pos 是几 ?
(4)两个策略都在跑同一个代码,应该是各自有各自的pos 吧 ?
(5) 框架对pos值的更新,是在onTrade 和 onOrder推送动作前,还是推送动作后?

Administrator
avatar
加入于:
帖子: 1711
声望: 80

对于CTA策略模块来说,策略的持仓,是基于策略本身发出去的委托成交维护的逻辑持仓(而非账户底层的实际持仓):

  1. pos会为0
  2. 人手工下的单子无影响
  3. 人手工下的单子无影响
  4. 对的,这两个逻辑持仓互相无关
  5. onTrade推送前更新,保证策略收到onTrade回调的时候,pos已经是最新数据
Member
avatar
加入于:
帖子: 22
声望: 0

用Python的交易员 wrote:

对于CTA策略模块来说,策略的持仓,是基于策略本身发出去的委托成交维护的逻辑持仓(而非账户底层的实际持仓):

  1. pos会为0
  2. 人手工下的单子无影响
  3. 人手工下的单子无影响
  4. 对的,这两个逻辑持仓互相无关
  5. onTrade推送前更新,保证策略收到onTrade回调的时候,pos已经是最新数据
    那就是某个策略的pos,Vntrader前端是没法干预的
    第3条,如果策略持有2手多单,人工在Vntrader平仓1手,策略遇到自己的平仓逻辑触发平仓2手的话,委托推送就会返回 “拒单” ,是这样的吧 ?
    谢谢群主
Administrator
avatar
加入于:
帖子: 1711
声望: 80

没错,策略持仓数据在程序退出后会保存在MongoDB数据库里,你可以在其中进行修改,下次启动程序时策略持仓就会变成你修改后的。

但是在VnTrader运行的过程中,你是不能修改的,确实也不应该改。

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

用Python的交易员 wrote:

没错,策略持仓数据在程序退出后会保存在MongoDB数据库里,你可以在其中进行修改,下次启动程序时策略持仓就会变成你修改后的。

但是在VnTrader运行的过程中,你是不能修改的,确实也不应该改。

谢谢~~Thanks♪(・ω・)ノ

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

用Python的交易员 wrote:

对于CTA策略模块来说,策略的持仓,是基于策略本身发出去的委托成交维护的逻辑持仓(而非账户底层的实际持仓):

  1. pos会为0
  2. 人手工下的单子无影响
  3. 人手工下的单子无影响
  4. 对的,这两个逻辑持仓互相无关
  5. onTrade推送前更新,保证策略收到onTrade回调的时候,pos已经是最新数据
    为什么不基于 账户底层的实际持仓来更新仓位呢? 这样策略和真实账户一直是一致的。
Administrator
avatar
加入于:
帖子: 1711
声望: 80

杨切 wrote:

用Python的交易员 wrote:

对于CTA策略模块来说,策略的持仓,是基于策略本身发出去的委托成交维护的逻辑持仓(而非账户底层的实际持仓):

  1. pos会为0
  2. 人手工下的单子无影响
  3. 人手工下的单子无影响
  4. 对的,这两个逻辑持仓互相无关
  5. onTrade推送前更新,保证策略收到onTrade回调的时候,pos已经是最新数据
    为什么不基于 账户底层的实际持仓来更新仓位呢? 这样策略和真实账户一直是一致的。

因为单个合约上可能跑多个策略

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