A函数与事件驱动8 -TICK数据其二|课间代码

代码如下,逻辑循环已做好实时环境下单再另外测一次//------------------------------------------------------------------------ // 简称: ttlesson_0220_2025 // 名称: // 类别: 指标应用 // 类型: 用户应用 // 输出: Void //------------------------------------------------------------------------ Params //此处添加参数 Vars //此处添加变量 global Numeric my_sw(0);// 0表示没仓,1是开仓过了 global Numeric mindiff; global Array<Integer> ordid; global Numeric g_tick(0); global Numeric first_tick(0); Defs //此处添加策略函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { //SubscribeBar(Symbol , "tick", BeginDateTime); //SubscribeBar(Symbol , "tick", BeginDateTime); } OnReady() { mindiff = minmove * PriceScale * BigPointValue; print("mindiff="+text(mindiff)); } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { tick a; if(CurrentBar%10 == 9) { GetTick(a); Numeric askv_sum = a.bidask1.askV + a.bidask2.askV + a.bidask3.askv + a.bidask4.askV +a.bidask5.askv; Numeric bidv_sum = a.bidask1.bidv + a.bidask2.bidv + a.bidask3.bidv + a.bidask4.bidv +a.bidask5.bidv; // a.bidask1.askP 卖一 // a.bidask1.bidP 买一 if(BarStatus !=2 ) { buy(1, open); //A_Buy(Symbol,1,open,ordid); } else if(BarStatus == 2 and my_sw==0) { if(a.bidask1.askP - a.bidask1.bidP > mindiff ) { //buy(1 , a.bidask1.bidP + mindiff ); A_Buy(Symbol,1,a.bidask1.bidP + mindiff,ordid); if(first_tick == 0)//0表示还没开仓 first_tick = g_tick;//有值,代表有下单 } else if(askv_sum*5 < a.bidask1.bidv)//追的 { //buy(1 , a.bidask5.askP ); A_Buy(Symbol,1,a.bidask5.askP,ordid); if(first_tick == 0) first_tick = g_tick; } Else//例外 { //buy(1, open); A_Buy(Symbol,1,open,ordid); if(first_tick == 0) first_tick = g_tick; } my_sw = 1; } } if(BarStatus ==2 ) { g_tick = g_tick +1; if(first_tick + 30 < g_tick and my_sw == 1) { print("超时"); order tem_ord; A_GetOrder(ordid[0],tem_ord); if(tem_ord.status == Enum_Filled) { print("全部成交"); } else if(tem_ord.status == Enum_Declared) { print("还在挂"); A_DeleteOrderEx(ordid[0]); } first_tick = 0; my_sw = 0; } print("g_tick="+text(g_tick)); print("first_tick="+text(first_tick)); print("my_sw="+text(my_sw)); print("CurrentBar%10="+text(CurrentBar%10)); } } OnOrder(OrderRef ord) { } //------------------------------------------------------------------------ // 编译版本 2025/2/20 151848 // 版权所有 wangkaiming // 更改声明 TradeBlazer Software保留对TradeBlazer平台 // 每一版本的TradeBlazer策略修改和重写的权利 //------------------------------------------------------------------------