int MA0; // variable for storing the handle of the iMA indicator//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
MA0 = iMA(o_symbol.Name(), Period(), PeriodMA, ShiftMA, MethodMA, PriceMA);
//--- if the handle is not createdif(handle_iMA==INVALID_HANDLE)
{
//--- tell about the failure and output the error codePrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
m_symbol.Name(),
EnumToString(Period()),
GetLastError());
//--- the indicator is stopped earlyreturn(INIT_FAILED);
}
//---
大家下午好,我需要一个提示,如何将代码从MT4翻译到MT5...
MT4上的函数 - 使用MA返回真或假。
需要将其转移到MT5
问题是在时间序列Low[i]和High[i]中,我不明白如何转换它们。
大家下午好,我需要一个提示,如何将代码从MT4翻译到MT5...
MT4上的函数 - 使用MA返回真或假。
需要将其转移到MT5
问题是在时间序列Low[i]和High[i]中,我不明白如何转换它们。
你必须只创建一次指标手柄。这是在OnInit中完成的。创建实例:iMA
2.第一个固定点1。
1.指标手柄必须创建一次。这是在OnInit中完成的。创建实例:iMA
2.第一个正确的项目1。
以下是你得到的东西。
这就是我得到的东西。
现在告诉我,为什么你需要这样一个巨大的周期--跨越所有的酒吧?
这是非常不理性的。
用你自己的话描述一下这个逻辑。
现在告诉我,为什么你需要这样一个巨大的周期--跨越所有的酒吧?
这是非常不理性的。
用你自己的话描述一下这个逻辑。
条件 - 价格在MinDist(30点) 处远离中线,如果发生这种情况,那么当它回到中线并达到OpenDev(10点)时 - 有一个信号可以打开一个买入订单。(它总是买在平均线的顶端)
条件是价格远离MinDist(30 点)上的平均线,如果发生这种情况,那么当价格回到平均线并达到OpenDev(10点)时 - 有一个信号,可以打开一个买入订单。(它总是买在平均线的顶端)
我们应该在什么时候检查 "MinDist(30 pips) "和 "OpenDev(10 pips)"--在每个tick 还是只在一个新条形图打开的时刻?
在EA启动后立即开仓 的原因是什么?
不符合开仓条件,但开仓了
在EA启动后立即开仓 的原因是什么?
开仓的条件没有满足,但开仓了
平均数的数值是在哪里和如何获得的?你到底有没有得到它们呢?如果数值是正常获得的,你是否注意到平均数阵列中的索引?
平均值在哪里以及如何获得?他们到底有没有得到?如果这些数值是正常获得的,你是否注意到平均数数组中的索引?
以下是代码
{ double MovingAverage1[], MovingAverage2[]; //задаем два массиса для МА int MovingAverageIndic1 = iMA(_Symbol,0,20,0,MODE_EMA,PRICE_CLOSE); int MovingAverageIndic2 = iMA(_Symbol,0,200,0,MODE_EMA,PRICE_CLOSE); ArraySetAsSeries(MovingAverage1,true); ArraySetAsSeries(MovingAverage2,true); CopyBuffer(MovingAverageIndic1,0,0,3,MovingAverage1); CopyBuffer(MovingAverageIndic2,0,0,3,MovingAverage2); if( (MovingAverage1[0]<MovingAverage2[0]) && (MovingAverage1[1]>MovingAverage2[1]) ) { if(PositionsTotal()==0) trade.Sell(0.1); } if( (MovingAverage1[0]>MovingAverage2[0]) && (MovingAverage1[1]<MovingAverage2[1]) ) { if(PositionsTotal()==1) trade.PositionClose(_Symbol); } }以下是代码
指标句柄必须被创建一次。这是在OnInit中完成的。创建实例:iMA