Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 394

 

Здравствуйте.

Помогите, пожалуйста, раскрасить zigzag.

Хочу сделать так чтобы если расстояние от впадины до вершины >=100 пунктов, окрасить отрезок в зелёный цвет.

 
Dimitry-1983:

Здравствуйте!

Уже всю голову сломал. Как проверить есть или нет определённая цена в массиве double?

Я написал так для теста:



11, 22, 33, 44 -- скрипт находит без проблем (такие ордера есть в терминале). А вот если он обрабатывает цену 45, например, то всё равно выдаёт 3 (позицию цены 44 в массиве).

Всё что мне нужно, это по сути bool -- если есть цена обрабатываемого ордера в массиве, чтобы возвращало true, если нет, то false. Но такой функции в языке я пока не нашёл.

Функция возвращает индекс первого найденного элемента в первом измерении массива, но если искомое значение не найдено, то возвращает индекс ближайшего меньшего по значению из элементов, между которыми расположено искомое значение. Поэтому, для этой задачи надо ещё проверить на равенство искомого значения и найденного. Результат сравнения и будет true или fakse

 
STARIJ:

А зачем из индикатора чего-то печатать? На экране же все - на то он и индикатор. Когда нужна таблица - запускаю скрипт с iCustom()


Что Вы тут написали, я ничего не понял. У нас речь шла о том, что у меня создается файл, который всегда почему-то пустой. Никак не получается массив данных сгрузить в файл.

Мне нужно, чтобы данные сохранялись в файл. Если индикатор прикреплен к графику 1 год, чтобы были все записи его показаний за год!

 
Alekseu Fedotov:

Как то интересно вы его вшиваете

А по ошибке попробуйте так  


Спасибо! Но я так уже пробовал, и не помогло.

 

Подскажите, люди добрые, почему ошибки вылезают?

//--- input parameters
input int      MyLevel=100; // установка уровня (отступ) выше (ниже) текущей цены;
//--- indicator buffers
double         Label1Buffer[];
double         Label2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer);
   SetIndexBuffer(1,Label2Buffer);
   double R1 = 0; // служеные переменные принимаются равными 0;
   double R2 = 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[])
  {
//---

   double i=Bid; // переменной i присваивается значение текущего курса;

   if(i>=R1) // если текущий курс >= служебной переменной R1;
     {
      R1=i+(MyLevel*Point); // то присваиваем R1 новое значение равное текущему курсу + отступ,
      R2=i-(MyLevel*Point); // также присваиваем R2 новое значение = текущий курс - отступ;
     }
   else
     {
      break;  // иначе, выходим из оператора
     }
   if(i<=R2) // если текущий курс <= служебной переменной R2;
     {
      R1=i+(MyLevel*Point); // то присваиваем R1 новое значение равное текущему курсу + отступ,
      R2=i-(MyLevel*Point); // также присваиваем R2 новое значение = текущий курс - отступ;
     }
   else
     {
      break; // иначе выходим
     }

   Label1Buffer [0] = R1; // заносим в буфер данные R1
   Label2Buffer [0] = R2; // и R2

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

Ошибки:

'R1' - undeclared identifier Mylevel.mq4 61 10

possible loss of data due to type conversion Mylevel.mq4 63 9

'R2' - undeclared identifier Mylevel.mq4 64 7

';' - 'break' must be used within some loop or switch statement Mylevel.mq4 68 12

';' - 'break' must be used within some loop or switch statement Mylevel.mq4 77 12


 
YarTrade:

Подскажите, люди добрые, почему ошибки вылезают?

Ошибки:

'R1' - undeclared identifier Mylevel.mq4 61 10

possible loss of data due to type conversion Mylevel.mq4 63 9

'R2' - undeclared identifier Mylevel.mq4 64 7

';' - 'break' must be used within some loop or switch statement Mylevel.mq4 68 12

';' - 'break' must be used within some loop or switch statement Mylevel.mq4 77 12


R1, R2 объявлены внутри функции, соответственно - там только и видны - они локальные.
break используется в циклах и swith
 

Всем привет.Подскажите кто в курсе,есть ли программа для объединения отчетов тестирования аналогичная  reportmanager для мт5, а то reportmanager не открывает их.

 
iv1986:

Всем привет.Подскажите кто в курсе,есть ли программа для объединения отчетов тестирования аналогичная  reportmanager для мт5, а то reportmanager не открывает их.

Проще переписать код, и сделать мультивалютное тестирование в мт5. У вас однозначно неправильные результаты при тестировании в платформе мт4, и итоговый результат будет критически искажён, и анализировать его не имеет смысла.

Вот один из тестов по 23 символам, всё ясно и почти наглядно


 

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

Vitaly Muzichenko:

Проще переписать код, и сделать мультивалютное тестирование в мт5. У вас однозначно неправильные результаты при тестировании в платформе мт4, и итоговый результат будет критически искажён, и анализировать его не имеет смысла.

Вот один из тестов по 23 символам, всё ясно и почти наглядно


А если у меня для каждого инструмента различные стратегии и соответственно код, разве можно сделать такой советник?

 
iv1986:

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

А если у меня для каждого инструмента различные стратегии и соответственно код, разве можно сделать такой советник?

Можно написать мультивалютный советник, он будет в одном файле. Можно для тестера совмещать стратегии по разным парам в одном файле, а также можно ним торговать онлайн на одном графике, но можно для онлайна и разделить, чтоб каждая стратегия торговала по символу, на который брошен эксперт. Возможности неограничены

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