onbarclose为什么会在刚开盘执行
我的程序都是写在onbarclose里的,每120分钟一根K线,设置了timePoint=[0.1459,0.2259];SetTriggerBarClose(timePoint);按说应该有3个执行时间点,分别是22:59, 11:15, 14:59,但是有个单子在晚上21点执行了,不知道什么原因。并且特别奇怪的是,图表上并没有交易信号。监视器里当时也看不到这个 不同步的单子,后来把自动执行关掉,重新启动自动交易后,能看到这个不同步的单。怀疑,是不是在集合竞价时执行了
如果不设置SetTriggerBarClose,他的执行时间不是临近收盘,而是开盘
SetTriggerBarClose(timePoint); 你set后onbarclose会提前操作啊然后指令要用图表的,就不会出现下单问题
回复:提前操作,也不应该是刚刚开盘就操作吧?运行的K线是2小时的我运行的是你给的这个代码,里面没有A函数://------------------------------------------------------------------------// 简称: test_0511_2023// 名称:// 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------Params//此处添加参数Vars Array<Numeric> timePoint;//此处添加变量Defs//此处添加公式函数Events//此处实现事件函数//初始化事件函数,策略运行期间,首先运行且只有一次OnReady(){}//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组onbarclose(ArrayRef<Integer> indexs){buy(1,close);print(text(SystemDateTime));}晚上开盘时候执行了……就应该这样吗?
你的公式有A函数下单吗我测试结果首先图表用onbarclose交易是没有问题的设置提前触发,第二天再触发,只是再执行一下上个bar,不会重复下单那么如果有A函数或者读写数据库逻辑的话 可能会有混乱所以我最近的课上依旧建议围绕onbar操作,onbarclose我建议纯图表
回复:如果写到onbar里,如果不用系统时间,怎么实现在在临近收盘时候进行判断和操作?我能想到的办法:再增加一根1分钟线的数据源,但这个周期太小了,大周期一根线对应了120根线,不太方便看。老师还有更好的办法吗?
你是否是图表交易可以写个简单的程序测试//------------------------------------------------------------------------// 简称: test_0511_2023// 名称: // 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------Params //此处添加参数Vars //此处添加变量Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 onbarclose(ArrayRef<Integer> indexs) { buy(1,close); print(text(SystemDateTime)); }//------------------------------------------------------------------------// 编译版本 2023/05/11 095104// 版权所有 wangkaiming// 更改声明 TradeBlazer Software保留对TradeBlazer平台// 每一版本的TradeBlazer公式修改和重写的权利//------------------------------------------------------------------------
回复:运行了您发的这段代码,同时运行了4个品种。data0是120分钟,data1是日线。在策略交易里运行的,应该也是图表交易吧?下面的截图是从策略交易窗口,点开K线图,看到的打印结果建仓时间是在还没开盘,刚开始运行程序的时候。打印的系统时间是刚开盘的时间。
建议你再好好看看onbarclose的驱动机制或者直接发代码这样子描述分析不了
回复:运行了您发的这段代码,同时运行了4个品种。在策略交易里运行的,应该也是图表交易吧?下面的截图是从策略交易窗口,点开K线图,看到的打印结果建仓时间是在还没开盘,刚开始运行程序的时候。打印的系统时间是刚开盘的时间。