OnBar(ArrayRef<Integer> indexs) 这个函数的内容,是不是只有BAR更新的时候才会执行,且只执行一次呀?如果我的策略加载的是1小时周期的K线,想在BAR周期内按最新价触发条件成交,怎么办
你先用全局变量控制下,保证执行一次,然后把这个stop和return先去掉
这个只能调试,看不出
当我调高参数直接触发的时候,它可以马上按要求以涨跌停价发出委托单平仓,但是我设置参数临近触发,等待行情触发的时候,就不行,行情价格到位了,甚至超过触发价了,也没见反应,这个问题有点诡异
把stop和return去掉也不行,设置过高的参数直接触发就可以,设置过低的参数等待触发就不行,行情走到触发点了,没反映,但是打开K线图就有警报了
老师们,能不能就这个功能整个完整的模块代码出来呀,估计有些人想要这个功能
老师们,能不能就这个功能整个完整的模块代码出来呀,估计不少人想要这个功能
先试试不要用这个stop呢
先检查这个a_sender的发单结果是不是正确
这组代码是用来实现涨跌停提前发单出局的,但是运行时发现价位触发时没反应,不发单,可是如果打开K线的话,就能看到代码后面的输出提示,求解。
Param
...
Vars
...
Events
OnInit()
{
SubscribeTick(RelativeSymbol()); // 订阅主力合约的tick
Tick myTick;
GetTick(RelativeSymbol(),myTick); // 读取主力合约的tick
LmtUp = myTick.limitUp; // 读取tick中的涨停板价
LmtDn = myTick.limitDown; // 读取tick中的跌停板价
tickprice=myTick.last; // 读取最新价
}
OnBar(ArrayRef<Integer> indexs)
{
......
//距离涨停或跌停价1/1000时,以涨停价或跌停价发单平仓。并报警
If(BarStatus == 2 and sendCount<1
and tickprice<LmtDn*(1+limitdd/1000) )
{
OrderRequest request;
request.side = Enum_Sell;
request.combOffset = Enum_Exit;
request.createSource = A_GetOrderCreateSource;
request.price = LmtDn;
request.symbol = zhuli;
request.theoryPrice = LmtDn;
request.userNote = "跌停跑路";
request.volume = lotsexit;
Print("request:" + request.toString());
Array<Integer> orders;
//账户下单操作
Bool ret = A_SendOrderEx(request, orders);
Print("跌停跑路:" + IIFString(ret, "True", "False") + "," + TextArray(orders));
if(ret)
{
sendCount = sendCount + 1;
}
plotstring("1",zhuli+"主力跌停,注意查看持仓风险",low-2*(h-l),Yellow);
PlayWavSound("D:\TBQuant\baojing.wav");
Alert(zhuli+"主力跌停,注意查看持仓风险");
Stop();k2exit=2;
Return;
}
}
实时最新BAR每tick都会触发,多试试就知道了