全局变量
if(Q_UpperLimit > 0 && Q_LowerLimit > 0 && BarStatus == 0) { // 初始化全局变量(共18个) SetGlobalVar(0, 0); // [0] 系统就绪标记 SetGlobalVar(3, 9999); // [3] 多单时间戳 SetGlobalVar(13, 0); // [13] 多仓标记(0/1) SetGlobalVar(17, 9999); // [17] 空单时间戳 SetGlobalVar(14, 0); // [14] 空仓标记(0/1)}因BarStatus == 0,是否每根K线切换都重新初始化?
BarStatus == 0 是第一根K线 所以是加载时候执行
回复:因我的代码是在BarStatus == 2时发单,if(BarStatus == 2 &&CanLong && GetGlobalVar(13)==0) { SetGlobalVar(13, 1); SetGlobalVar(3, NextBarDateTime); if(totalBuyLots >= 5*LotMultiple) { { for i = 0 to 4 { if (i < dremainder) { A_SendOrder(Enum_Buy, Enum_Entry, dbaseLots + 1, GetGlobalVar(5) + (i+1)*MinMove*PriceScale); } else { A_SendOrder(Enum_Buy, Enum_Entry, dbaseLots, GetGlobalVar(5) + (i+1)*MinMove*PriceScale); } } } }}发单后全局变量13,3作了标计,只有第1根k线初化,就对的,若每k线初化,标计就初化了。起不到标计作用了。
要看你代码放在哪个域如果init域就是初始化一次如果是onbaropen就是K线开始的时候初始化一次,有多少k就初始化多少次btw:涨跌停有的交易所是0有的是具体数值有的是无效值所以编码逻辑有问题
回复:看到BarStatus == 0了那就是初始化一次
回复:意思是 实盘有可能无法提取到正确的涨跌停价格 ,是吗?
回复:能娶到我看错了ASK和BID价不一定
回复:发单后全局变量13,3作了标计,只有第1根k线初化,就对的,若每k线初化,标计就初化了。起不到标计作用了。
回复:你就说一下你的诉求
回复:我的诉求就是 BarStatus == 0时初始化(第一根k线)以后的K线不要再( BarStatus == 0时初始化)因全局变量开仓标记了,只有平仓再标记0,
回复:那就直接设置个全局变量在oninit域初始化一次更简单吧
回复:有道理