Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 269

 
tol64:
Тиковый и реальный объём (если есть).

а чем отличается тиковый от реального??? 

 
soroko:

а чем отличается тиковый от реального??? 

тиковый - количество сделок, реальный с учетом их размера
 
zfs:
тиковый - количество сделок, реальный с учетом их размера

тогда почему реальный везде 0 показывает ? 

 
soroko:

тогда почему реальный везде 0 показывает ? 

нет данных, на форексе реальные объемы не известны, это для других бирж, типа фортс
 
zfs:
нет данных, на форексе реальные объемы не известны, это для других бирж, типа фортс

спасибо за экономию моего времени которое я бы потратил на поиски) 

 
а как там с моим главным вопросом. повторюсь. с помощью какой функции я могу заполнить массив последними 5-ю ценами. для того что бы выяснить с какой стороны цена пересекает линию? Заранее благодарен.
 
soroko:
это я понял, а как сдвигать цену внутри массива. Функцией ArrayCopy пробовал, она передает 0,0 или тот же самый Bid. И еще меня беспокоит массивность кода, нельзя это все сделать одной функцией?
Поэлементно в цикле.
 
soroko:
а как там с моим главным вопросом. повторюсь. с помощью какой функции я могу заполнить массив последними 5-ю ценами. для того что бы выяснить с какой стороны цена пересекает линию? Заранее благодарен.
Вам надо получить базовые знания программирования.
 

Не могу получить параметры индикатора, которого нет на графике. Ниже код, в котором убрано все лишнее, строки получения параметра индикатора скопированы со справки. Сам индикатор присоединяется к часовому графику, но поработать я хочу с пятиминутным. GetLastError() выдает ошибку 4006, хотя ничего вроде криминального нет...

int m_MA_M5;

int OnInit()
  {
  
m_MA_M5 = iMA(NULL, PERIOD_M5, 12, 0, MODE_SMA, PRICE_CLOSE);

if (m_MA_M5 <=0 )
{
   Print("Error create MA");
   return (INIT_FAILED);
}
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   if (prev_calculated == rates_total)
      return (rates_total);

   
          MqlParam parameters[];
          ENUM_INDICATOR indicator_type;
          int params=IndicatorParameters(m_MA_M5,indicator_type,parameters);
          
          if (params<0)
          {
            Print("Error geted data Last Error=", GetLastError());
          }else{
          
         	 //--- заголовок сообщения
	          string par_info="Short name M5"+", type "
                          +EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
        	  //--- 
	          for(int p=0;p<params;p++)
        	    {
	             par_info+=StringFormat("parameter %d: type=%s, long_value=%d, double_value=%G,string_value=%s\r\n",
                                    p,
                                    EnumToString((ENUM_DATATYPE)parameters[p].type),
                                    parameters[p].integer_value,
                                    parameters[p].double_value,
                                    parameters[p].string_value
                                    );
        	    }
	          Print(par_info);
    
   	}
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Добрый день! У меня написан советник на мт4 можно переделать на мт5
Причина обращения: