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

 
Alex:

Благодарю за ответы  и терпение.


Владимир, я наверное уже замучил Вас:) Но что то очень тяжко идет движение по основам основ. Попробовал сделать тестовую задачу с функциями Copy... Индикатор не рисуется, хотя в Printe числа есть... Ничего не понимаю.


Один и тот же массив UpBar идет на два буфера: 0 и 1.

И по индексам, по которым не хотите задавать значения, записывайте пустые значения.

И, насколько я понял, Вы пишите значения с 3 по Histori бары. Это значит, что будут записаны самые ранние значения, а не самые последние (порядок нумерация отличается от нумерации в mql4).

 
Alex:

Благодарю за ответы  и терпение.


Владимир, я наверное уже замучил Вас:) Но что то очень тяжко идет движение по основам основ. Попробовал сделать тестовую задачу с функциями Copy... Индикатор не рисуется, хотя в Printe числа есть... Ничего не понимаю.


//+------------------------------------------------------------------+
//|                                                        PBars.mq5 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot UpBar
#property indicator_label1  "UpBar"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrGreen
#property indicator_style1  STYLE_SOLID
#property indicator_width1  6
////--- plot DnBar
//#property indicator_label2  "DnBar"
//#property indicator_type2   DRAW_HISTOGRAM
//#property indicator_color2  clrRed
//#property indicator_style2  STYLE_SOLID
//#property indicator_width2  6
//--- input parameters
input int   Histori=30;
input ENUM_TIMEFRAMES TimeFrame=0;
input string  Simvol="EURUSD";
//--- indicator buffers
double         UpBar[];
//double         DnBar[];
double         O_Price[];
double         C_Price[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBar,INDICATOR_DATA);
//SetIndexBuffer(1,UpBar,INDICATOR_DATA);
   SetIndexBuffer(1,O_Price,INDICATOR_CALCULATIONS);
   SetIndexBuffer(2,C_Price,INDICATOR_CALCULATIONS);
//---
   ArraySetAsSeries(O_Price,true);
   ArraySetAsSeries(C_Price,true);
   ArraySetAsSeries(UpBar,true);
   ArrayInitialize(UpBar,0.0);
//---
   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[])
  {
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(close,true);

   if(prev_calculated==0)
     {
      ArrayInitialize(UpBar,0.0);
      ArrayInitialize(O_Price,0.0);
      ArrayInitialize(C_Price,0.0);
      Print(__FUNCTION__);
      ResetLastError();
      if(CopyOpen(Simvol,TimeFrame,0,Histori,O_Price)==-1)
         Print("Error CopyOpen #",GetLastError());
      ResetLastError();
      if(CopyClose(Simvol,TimeFrame,0,Histori,C_Price)==-1)
         Print("Error CopyClose #",GetLastError());
      for(int t=3; t<Histori; t++)
        {
         UpBar[t]=MathAbs(NormalizeDouble((O_Price[t]-C_Price[t]),Digits()));
         Print(IntegerToString(t)," ",DoubleToString(UpBar[t],Digits()));
         int g=0;
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

И результат:

Результат

 
Karputov Vladimir:

И результат:


Вновь огромное спасибо.
 
Alex:
Вновь огромное спасибо.
Пожалуйста. Обращайтесь, если будут вопросы по MQL5.
 

Подскажите пожалуйста, есть ли в MQL4 функции, которые выдают максимальное\минимальное значения цена за указанное количество баров?

Вот кажется, что была такая, но найти не могу...

 
-Aleks-:

Подскажите пожалуйста, есть ли в MQL4 функции, которые выдают максимальное\минимальное значения цена за указанное количество баров?

Вот кажется, что была такая, но найти не могу...

https://docs.mql4.com/ru/series/ihighest

https://docs.mql4.com/ru/series/ilowest 

iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
iHighest - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Да-да спасибо - я плохо искал - уже нашел сам.
 
-Aleks-:
Да-да спасибо - я плохо искал - уже нашел сам.
Функции совместимые с mql5 CopyHigh и CopyLow потом в полученном массиве  ArrayMaximum и ArrayMinimum
 
Верно ли утверждение, что для каждого набора переменных, из которых составлена торговая система, характерно случайное распределение прибылей и убытков?
 
Евгений:
Верно ли утверждение, что для каждого набора переменных, из которых составлена торговая система, характерно случайное распределение прибылей и убытков?

Встречный вопрос.

Как Вы думаете - движение по любой валютной паре: график, цены бид и аск и прочее, зависят от набора Ваших переменных?

Причина обращения: