初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1273

 

在Mql5中,代码会是什么样子

if (Close[1]-Open[1]>visota*Point)

{

....

}

 
Dmitriywelcome:

在Mql5中,代码会是什么样子

它看起来像这样

   MqlRates rates[2]; 
   int copied = CopyRates(NULL, 0, 0, 2, rates);
   if(rates[0].close-rates[0].open > visota*_Point)
     {
      /******************/
     }
自己拧上必要的检查。
 
Dmitriywelcome:

在Mql5中代码会是怎样的

你也可以这样做

if(iClose(NULL,0,1)-iOpen(NULL,0,1)>visota*_Point)
 

你也可以这样做。

#define  Close(shift) iClose(NULL,0,shift)
#define  Open(shift)  iOpen(NULL,0,shift)
....
if (Close(1) - Open(1) > visota*_Point)
 

44

你好。我想写一个条件,但我做错了什么。请帮助我解决这个问题。

当价格从下往上越过指标线时,我就开出一个买入头寸。

我正试图 为同一个酒吧开出一个条件

如果当前蜡烛的收盘价高于指标线,并且随后任何一个柱子的买入价都高于指标线 - ...条件1

如何正确操作?

if (m_position.Select(_Symbol))         //проверка на наличие позиции
   { 
    Print ("Позиция открыта");
    if(m_position.PositionType()==POSITION_TYPE_BUY)
    {
     Print ("Открыта на покупку");
     if (close_1 > Sig_Up[0])   //цена закрытия текущей свечи выше линии индикатора 
       {
        int cl = 4;
     if (cl && Bid > Sig_Up[0])  // Bid больше линии индикатора
       {
        ....
     }
     }                        
     }                                                           
     }
 
Igor Makanu:

你可以这样做。

不要对酒吧的编号做任何处理。那么,从四的代码与五的第一条也会有第一条没有编号颠倒?

 
Valeriy Yastremskiy:

并且不对条形图的编号做任何处理。也就是说,从四条到五条的代码也会与第一条没有编号颠倒?

从文件中可以看出

移位

[in] 要获得的时间序列值的索引(相对于当前条形图,向后移了指定的条形图数量)。


相对于当前栏位的移位为0,将是当前栏位。而如果是1,就会是前一个。

 
Igor Makanu:

你可以这样做。

Close[shift]有方括号,失败。

Alexey Viktorov:

从文件中可以看出

相对于当前栏位,移到0,就会成为当前栏位。而如果是1,就会是前一个。

我的理解是否正确,5中的时间序列编号与4中的相同?

 
Valeriy Yastremskiy:

Close[shift]有方括号,失败。

它成功了,这是来自@fxsaber 的代码

// Позволяет, как в MT4, работать с таймсериями: Open[Pos], High[Pos], Low[Pos], Close[Pos], Time[Pos], Volume[Pos].
// А так же задает привычные MT4-функции: iOpen, iHigh, iLow, iClose, iTime, iVolume.
#define  DEFINE_TIMESERIE(NAME,FUNC,T)                                                                         \
  class CLASS##NAME                                                                                           \
  {                                                                                                           \
  public:                                                                                                     \
    static T Get(const string Symb,const int TimeFrame,const int iShift) \
    {                                                                                                         \
      T tValue[];                                                                                             \
      return((Copy##FUNC((Symb == NULL) ? _Symbol : Symb, _Period, iShift, 1, tValue) > 0) ? tValue[0] : -1); \
    }                                                                                                         \
    T operator[](const int iPos) const                                                                     \
    {                                                                                                         \
      return(CLASS##NAME::Get(_Symbol, _Period, iPos));                                                       \
    }                                                                                                         \
  };                                                                                                          \
  CLASS##NAME  NAME;                                                                                           \
  T i##NAME(const string Symb,const int TimeFrame,const int iShift) \
  {                                                                                                           \
    return(CLASS##NAME::Get(Symb,  TimeFrame, iShift));                                                        \
  }
//+------------------------------------------------------------------+
DEFINE_TIMESERIE(Volume, TickVolume, long)
DEFINE_TIMESERIE(Time, Time, datetime)
DEFINE_TIMESERIE(Open, Open, double)
DEFINE_TIMESERIE(High, High, double)
DEFINE_TIMESERIE(Low, Low, double)
DEFINE_TIMESERIE(Close, Close, double)
//+------------------------------------------------------------------+

你现在可以写Close[1] >Close[2]。

[删除]  
Sergey:


你好。我想写一个条件,但我做错了什么。请帮助我解决这个问题。

当价格从下往上越过指标线时,我就开出一个买入头寸。

我正试图 为同一个酒吧开出一个条件

如果当前蜡烛的收盘价高于指标线,并且随后任何一个柱子的买入价都高于指标线 - ...条件1

如何正确操作?

终端有一个Moving Average.mq5的样本。

如果我理解正确的话,你需要这样做?

图片来源