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

 
makssub #:

Тогда возникает вопрос, Питон или С++? Поскольку последний более похож на MQL

На изучение MQL4 я потратил год, чтобы написать робота который будет торговать по моим правилам и индикаторам. Так как не нашёл разработчика, который бы смог написать его, не задавая вопрос и не говоря, что работает, что не работает. Холиваров много)))

Есть еще вопрос: может тогда MQL5 ?
Я начал его изучать, так как встретился в MQL4 не возможностью использовать многоядерные процессоры, но это было исправлено. Но возник другой вопрос о том, что я использую Локи при сильных неудачах для выхода из просадка, а MQL5 на сколько, я понял, не делает этого. Пройдя тестами несколько валютных пар, я понял что от части на некоторых я могу отказаться от этого. 

MetaTrader 5 уже много лет поддерживает открытие разнонаправленных позиций по одному символу. Для этого просто нужно использовать хэджинговый счёт (не неттинг как было изначально, и о чём Вы до сих пор помните и считаете, что так всё и осталось до сих пор)

 
Artyom Trishkin #:

MetaTrader 5 уже много лет поддерживает открытие разнонаправленных позиций по одному символу. Для этого просто нужно использовать хэджинговый счёт (не неттинг как было изначально, и о чём Вы до сих пор помните и считаете, что так всё и осталось до сих пор)

Спасибо. Знаком уже с этим. Но как уже писал выше, решили вопрос с многоядерными процессорами и необходимость отпала переписывать свои советники на mql5.
Но и MQL4 мне нравиться больше. Я написал себе свои блоки(функции), потипу тех что использует MQL5, и использую их.

 
Подскажите, как сделать, чтобы советник взял в Double переменную максимальную цену графика и минимальную цену графика, куда цена не доберется ещё очень долго?
 
The Vitalya #:
Подскажите, как сделать, чтобы советник взял в Double переменную максимальную цену графика и минимальную цену графика, куда цена не доберется ещё очень долго?

Читайте документацию. Там всё описано в подробностях…

 
The Vitalya #:
Подскажите, как сделать, чтобы советник взял в Double переменную максимальную цену графика и минимальную цену графика, куда цена не доберется ещё очень долго?

Я бы сделал перебор свечей на графике, например H4, сравнил их. 

макс цена = 0 
мин цена = 0
перебор свечей
если макс цена новой свечи > макс цена, то макс цена = цена новый свечи.

тоже самое мин цена.
ну так по крайне мере mql4

 
makssub #:

Спасибо. Знаком уже с этим. Но как уже писал выше, решили вопрос с многоядерными процессорами и необходимость отпала переписывать свои советники на mql5.
Но и MQL4 мне нравиться больше. Я написал себе свои блоки(функции), потипу тех что использует MQL5, и использую их.

Торговать правильнее на 5ке. С учётом Библ Сабера перевод достаточно легок. А вот тестить простые идеи легче в 4ке.
5ка гораздо ближе к реалу по настройкам торговли.
И для нс матрицы вектора начальные пакеты сделаны и делаются квотами.

Оба ЯП нужны. Главное понять логики синтаксиса, и следующие ЯП вообще легче будут заходить)))

Вообще пакетов больше на питоне, а вот питон написан на си))))

 
Есть код в МТ5 в эксперте. Как получить значения 5-го бара МА?
void OnInit()
  {
   FastHandle   = iMA(NULL, 0, Ma_Fast, 0, MODE_EMA, PRICE_CLOSE);
   MediumHandle = iMA(NULL, 0, Ma_Medium, 0, MODE_EMA, PRICE_WEIGHTED);
   SlowHandle   = iMA(NULL, 0, Ma_Slow, 0, MODE_EMA, PRICE_WEIGHTED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   double Fast[1];
// double Medium[1];
   double Slow[1];
//---
   CopyBuffer(FastHandle, 0, 0, 1, Fast);
//CopyBuffer(MediumHandle, 0, 0, 1, Medium);
   CopyBuffer(SlowHandle, 0, 0, 1, Slow);
 
Александр #:
Есть код в МТ5 в эксперте. Как получить значения 5-го бара МА?
void OnInit()
  {
   FastHandle   = iMA(NULL, 0, Ma_Fast, 0, MODE_EMA, PRICE_CLOSE);
   MediumHandle = iMA(NULL, 0, Ma_Medium, 0, MODE_EMA, PRICE_WEIGHTED);
   SlowHandle   = iMA(NULL, 0, Ma_Slow, 0, MODE_EMA, PRICE_WEIGHTED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   double Fast[6];
// double Medium[6];
   double Slow[6];
//---
   CopyBuffer(FastHandle, 0, 0, 6, Fast);
//CopyBuffer(MediumHandle, 0, 0, 6, Medium);
   CopyBuffer(SlowHandle, 0, 0, 6, Slow);

double fast_5 = Fast[6];  // 5-й бар fast
double slow_5 = Slow[6];  // 5-й бар slow

 
Alexander Sevastyanov #:
Спасибо! Самое простое ,как оказалось, использовать функцию. Спасибо создателю!
//+------------------------------------------------------------------+
double iMAGet(int handle_iMA, const int index)
  {
   double MA[1];
//--- reset error code
   ResetLastError();
//--- fill a part of the iMABuffer array with values from the indicator buffer that has 0 index
   if(CopyBuffer(handle_iMA, 0, index, 1, MA) < 0)
     {
      //--- if the copying fails, tell the error code
      PrintFormat("Failed to copy data from the iMA indicator, error code %d", GetLastError());
      //--- quit with zero result - it means that the indicator is considered as not calculated
      return(0.0);
     }
   return(MA[0]);
  }
//+------------------------------------------------------------------+
 
Мучаюсь вопросом который год. Может кто ответит. Была ли НАСТОЯТЕЛЬНАЯ необходимость коверкать МТ4 в ТАКИХ моментах как iMA  с этими хэндлами, да и пр. "штучками". Может это действительно надо было? Просто я любитель и не очень понимаю.
Причина обращения: