全局变量写法 在买多的情况下正确,卖空时错误,请问为什么 [开拓者 TB]
- 咨询内容:
小米,求帮助!
我写了段程序,想以 建仓第二天的开盘价为我的止盈止损参考价。
我以同样的写法在买多止盈止损上都没有问题,唯独卖空止损总是 开平仓同时出现, 明显出现错误。而且我也用过entryprice去代替 openafter, 所有的止损止盈都没有问题。
查了好久也没有查到原因,请小米救救5555!
if (MACD<0)
sellshort(position,close);
if (GetGlobalVar(0)==InvalidNumeric) SetGlobalVar(0,0);
if (barssinceentry==1)
{
openafter=open;
SetGlobalVar(0,openafter); //设建仓后第二天的开盘价为openafter, 定义为全局变量。
}
else if (barssinceentry>=1)
openafter=GetGlobalVar(0);
If( barssinceentry <=1)
{
HighestAfterEntry = Close;
LowestAfterEntry = Close;
If(MarketPosition <> 0)
{
HighestAfterEntry = Max(HighestAfterEntry,openafter); // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
LowestAfterEntry = Min(LowestAfterEntry,openafter); // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
}
}else if (barssinceentry>1)
{
HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
LowestAfterEntry = Min(LowestAfterEntry,Low); // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
}
if (MarketPosition==-1) //如空仓
{
if ( high>= openafter*(1.05) and buytocovercondition1==false )
{ myexitprice= openafter*(1.05);
If( date<>entrydate and Open>MyExitPrice) MyExitPrice = Open;//挑空低开就取开盘价
BuyToCover(0, myexitprice);}
else if (buytocovercondition1)
{
BuyToCover(0,Open);
}
}
END - TB技术人员: 没细看,开仓那个bar: LowestAfterEntry = Min(LowestAfterEntry,openafter);,openafter为0,lowestafterentry后面一直为0
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容