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

 
Vitaly Muzichenko #:

Написать отдельную программу в 15-20 строк кода

Это пишется ровно в 4 строчки ,две из которых это скобки
 
Maxim Kuznetsov #:

Уже сейчас - только с задержкой. Дальше будет хуже

узнать программными средствами быстро-быстро, прямо в реальном времени, что открылась сделка по сигналу и её опции - НЕЛЬЗЯ

это защита от пере-копирования сигналов. 

PS. вроде-бы касается только сделок по сигналам. Если сделка открывается руками или роботом то можно и в реальном времени

Что скрипты все с роботами отключаются,что-ли,что нельзя?
 

Помогите правильно записать код в MQL5. 

В  mql4 он выглядит так:

MaxH = High[iHighest(NULL,0,MODE_CLOSE,period,i)];                       

MinL = Low[iLowest(NULL,0,MODE_CLOSE,period,i)]; 


 Использую в индикаторе.

 
Dz Mak #:
Что скрипты все с роботами отключаются,что-ли,что нельзя?

некоторое время назад развелось тьма жуликов. С "100500 торговых сигналов", фермами, облаками и прочим.

теперь помимо орг.мер разработчики принимают сугубо технические, затрудняющие копирование сигналов (быструю детекцию сделки от сигнала в том числе)

где конкретно будет найдена "золотая середина", чтобы и копирование невозможно и обычные пользователи не сильно пострадали - пока неизвестно. 

 
sportoman #:

MaxH = High[iHighest(NULL,0,MODE_CLOSE,period,i)];                       

MinL = Low[iLowest(NULL,0,MODE_CLOSE,period,i)]; 

MaxH = high[iHighest(NULL,0,MODE_CLOSE,period,i)];                       

MinL = low[iLowest(NULL,0,MODE_CLOSE,period,i)]; 

 
Vitaly Muzichenko #:

MaxH = high[iHighest(NULL,0,MODE_CLOSE,period,i)];                       

MinL = low[iLowest(NULL,0,MODE_CLOSE,period,i)]; 

спасибо, но работает совсем не так, как в mql4

 
sportoman #:

спасибо, но работает совсем не так, как в mql4

там ещё ArraySetSeries(high,true) нужен..индексация массивов по умолчанию отличается в mt5 

 
sportoman #:

MaxH = high[iHighest(NULL,0,MODE_CLOSE,period,i)];                       

MinL = low[iLowest(NULL,0,MODE_CLOSE,period,i)];

ArraySetSeries(high,true);
ArraySetSeries(low,true);

MaxH = high[iHighest(NULL,0,MODE_CLOSE,period,i)];                       
MinL = low[iLowest(NULL,0,MODE_CLOSE,period,i)];
 

Вопрос о мультивалютности:

Есть несколько символов, нужно получить данные индикатора

Так как новая свеча открывается на некоторых символах позже, чем на основном - актуальные данные по тому символу не получим

Добавлена проверка на совпадение времени, и если на всех символах время открытия совпадает - продолжаем

Код работает и выполняет свои функции до тех пор, пока не добавим символ с ограниченной сессией, к примеру Индекс

тогда выполнение всего кода останавливается

void OnTick()
{
  bool flag=true;
  static datetime pTime;
  datetime cTime=iTime(NULL,0,1);
//--
  if(pTime!=iTime(NULL,0,1)) {
    for(int i=0; i<Sym_count; i++) {
      if(cTime!=iTime(Sym_arr[i],0,1)) { // если не прошли проверку
        flag=false; // ставим флаг
        break;
      }
      if(CopyBuffer(hRSI[i],0,1,1,buf)==-1) return;
      Ind_arr[i]=buf[0];
    }
    MinInd=ArrayMinimum(Ind_arr);
    MaxInd=ArrayMaximum(Ind_arr);
    Comment("\n",EnumToString(SelectInd)," : ",TimeCurrent(),
            "\nMaximum: ",Sym_arr[MaxInd]," = ",DoubleToString(Ind_arr[MaxInd],6),
            "\nMinimum: ",Sym_arr[MinInd]," = ",DoubleToString(Ind_arr[MinInd],6));
  }
  if(flag) { // Если всё хорошо - идём дальше
    pTime=iTime(NULL,0,1);
    Print("On = ",TimeCurrent());
  } else Print("Off = ",TimeCurrent());
}

--

Собственно вопрос:

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

Спасибо!

 
Vitaly Muzichenko время открытия совпадает на всех символах - продолжаем

Код работает и выполняет свои функции, пока мы не добавим символ с ограниченной сессией, например, Index

тогда все выполнение кода прекращается

--

Вопрос в следующем:

Как сделать так, чтобы код выполнялся для этих символов с открытой сессией, и не использовался с закрытой сессией.

Спасибо!

Проверьте информацию о рынке для каждого символа, если он не является сессионным, то исключите его.

https://www.mql5.com/en/docs/marketinformation

Documentation on MQL5: Market Info
Documentation on MQL5: Market Info
  • www.mql5.com
These are functions intended for receiving information about the market state...