我正在尝试编写一个具有2个移动平均线的Ea,并且希望它们在交叉时发送指令。 卖单看起来不错,但是对于1分钟图表中的买单,我用来发送定单的卖价不在蜡烛价格范围内。实际上,我在OrderEntry函数之前和OrderSend()之后执行了Print(“ Ask =”,Ask)。它们等于蜡烛价格-[最高价]和先前蜡烛价格-[收盘价]之上的某种价格方式 但是,当我尝试较高的时间范围时,它会更接近蜡烛,并且在每日时间范围内,订单的要价将在蜡烛范围内(高-低)。有人知道为什么会这样吗?
void CheckForMaTrade(){
double PreviousFast = iMA(NULL,0,FastMaPeriod,FastMaShift,FastMaMethod,FastMaAppliedTo,2);
double CurrentFast = iMA(NULL,0,FastMaPeriod,FastMaShift,FastMaMethod,FastMaAppliedTo,1);
double PreviousSlow = iMA(NULL,0,SlowMaPeriod,SlowMaShift,SlowMaMethod,SlowMaAppliedTo,2);
double CurrentSlow = iMA(NULL,0,SlowMaPeriod,SlowMaShift,SlowMaMethod,SlowMaAppliedTo,1);
if(PreviousFast<PreviousSlow && CurrentFast>CurrentSlow)
OrderEntry(0);
if(PreviousFast>PreviousSlow && CurrentFast<CurrentSlow)
OrderEntry(1);
}
void OrderEntry(int direction){
if(direction == 0){
double bsl=0;
double btp=0;
if(StopLoss != 0)
bsl = Ask-(StopLoss*pips);
if(TakeProfit != 0)
btp = Ask+(TakeProfit*pips);
if(OpenOrdersThisPair(Symbol()) < 10 )
OrderSend(NULL,OP_BUY,LotSize,Ask,0,bsl,btp,NULL,MagicNumber,0,Gold);
}
答案 0 :(得分:0)
在MT4中,蜡烛仅按买入价绘制。 ASK价格未考虑在内。因此有可能Ask>最高出价。