我的程序都是写在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线图,看到的打印结果
建仓时间是在还没开盘,刚开始运行程序的时候。
打印的系统时间是刚开盘的时间。