vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 20
声望: 0

假设第一天持有1手多单,并提前下了止损单。
然后第一天收盘关闭软件。

第二天开盘前10分钟开启软件。
开盘前已经发现会低开触发止损价格。
那么这个止损单会在开盘的一瞬间生效吗,还是说要先等X分钟的Bargenerator生成X分钟K线,然后推送并触发X分钟的ONBAR函数,再执行X分钟onbar回调函数下的止损逻辑send stop order? 如果是这样的话就等于是延迟X分钟才会发单了。

所以是否有内置函数可以储存之前的订单以供第二天使用?

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

再有一个问题就是第一天有持仓,第二天的话实际上除非自己维护记录,否则不会知道第一天的入场价格了。

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

乌拉龟 wrote:

再有一个问题就是第一天有持仓,第二天的话实际上除非自己维护记录,否则不会知道第一天的入场价格了。

这个要看你有的是哪个版本, 新版的程序, 策略好像已经有可以保存策略变量的功能了,
把策略的持仓, 开仓价格, 等需要保存的东西, 设为策略变量, 在停止策略的时候,CTA引擎会将策略的变量保存到 json格式的文件中, 程序重新加载策略的时候会读回文件中保存的内容.

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

乌拉龟 wrote:

假设第一天持有1手多单,并提前下了止损单。
然后第一天收盘关闭软件。

第二天开盘前10分钟开启软件。
开盘前已经发现会低开触发止损价格。
那么这个止损单会在开盘的一瞬间生效吗,还是说要先等X分钟的Bargenerator生成X分钟K线,然后推送并触发X分钟的ONBAR函数,再执行X分钟onbar回调函数下的止损逻辑send stop order? 如果是这样的话就等于是延迟X分钟才会发单了。

所以是否有内置函数可以储存之前的订单以供第二天使用?

这个问题吧, 程序停止单当然是在本地机器内存了,程序关了, 当然是失效了. 程序重启之后当然要重新设置停损
不知你用的是哪个版本的程序.
这个问题可也以解决, 把你需要保存的内容,比如持仓, 停损位置, 等,设为策略变量, 引擎会在停止策略时保存到本地文件中, 重启后会重新读回, 然后,当你重新初始化策略的时候,
onbar会被执行, onbar里面, 要在pos不等于0的执行路径里面,重新设置停损单(当然这样的话,每次onbar都会设停损单, 当然每次进入onbar也先要全部撤掉所有本地停止单, 以免多次重复设停损单)

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

Onbar的止损单会在比如9:00开盘的一瞬间执行吗,还是说形成1min bar的9:01才会执行呢。

感觉这个机制相当的麻烦额。。。不知道商业软件一般是如何做到的。

330815977 wrote:

这个问题吧, 程序停止单当然是在本地机器内存了,程序关了, 当然是失效了. 程序重启之后当然要重新设置停损
不知你用的是哪个版本的程序.
这个问题可也以解决, 把你需要保存的内容,比如持仓, 停损位置, 等,设为策略变量, 引擎会在停止策略时保存到本地文件中, 重启后会重新读回, 然后,当你重新初始化策略的时候,
onbar会被执行, onbar里面, 要在pos不等于0的执行路径里面,重新设置停损单(当然这样的话,每次onbar都会设停损单, 当然每次进入onbar也先要全部撤掉所有本地停止单, 以免多次重复设停损单)

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

沪公网安备 31011502017034号