# Конвертировать mq4 в mq5

Раздел: Язык программирования MQL 5
Автор темы: ksv8028
Создана: 2019-02-25 12:43
Ответов: 111 | Просмотров: 37055
Страница 3 из 6
Источник: https://forexsystemru.com/threads/88002/page-3

---

## Schüler — 2021-11-09 13:18

Уважаемые программисты прошу помощи!
Переделайте пожалуйста два индикатора  из mq4 в mq5 переписать?
Заранее благодарю!

## GannForex — 2021-11-24 07:24

Доброго дня!
Прошу по возможности перевести индикатор на mql5.
На МТ4 активно использую, теперь вот на МТ5 понадобился

## AlexeNP — 2021-11-24 10:08

> Цитата (michaetom97):
> Привет AlexeNP, сэр, можете ли вы сделать этот осциллятор стрелками на основном графике?

с индикатором не разбирался, как он работает я даже понятия не имею... стрелки перенес на основной график

## Kolumb — 2021-12-06 11:11

Большая просьба, если возможно, переделать этот советник на mql5. Это сова для парного трейдинга, на основе корреляции.  Нужно погонять в тестере. На демо тестить и оптимизировать в МТ4 очень долго. Этот код писал сам, как умел, но все работает правильно. Система прибыльная, но не без просадок конечно.. Один инструмент хеджирует другой, идея такая. Если нужно распишу подробнее.

## AlexeNP — 2021-12-06 11:57

> Цитата (Kolumb):
> Большая просьба, если возможно, переделать этот советник на mql5. Это сова для парного трейдинга, на основе корреляции.  Нужно погонять в тестере. На демо тестить и оптимизировать в МТ4 очень долго. Этот код писал сам, как умел, но все работает правильно. Система прибыльная, но не без просадок конечно.. Один инструмент хеджирует другой, идея такая. Если нужно распишу подробнее.

хорошие новости - для МТ5 есть библиотека MT4Orders
плохие новости - эксперт написан с ошибками, например при открытии позиции лот умножается на какой-то там коэффициент, а кто будет нормализовывать значение лота?

## Kolumb — 2021-12-06 12:25

> Цитата (AlexeNP):
> хорошие новости - для МТ5 есть библиотека MT4Orders
> плохие новости - эксперт написан с ошибками, например при открытии позиции лот умножается на какой-то там коэффициент, а кто будет нормализовывать значение лота?

Лот умножается только в одной паре, чтоб уровнять значение профита у обоих примерно. То есть это и есть попытка нормализировать. Если выставить ТП на графике у обоих пар 200 п. скажем, то прибыль будет разная у них. От сюда и умножение на коэффициент.  А дополнительные ордера, которые открываются при большем расхождении цен их лот умножается в 2 раза. Но оптимизация не помешала бы. Ошибки наверняка в коде есть, я не профи далеко. Но в целом все правильно работает. Про библиотеку MT4Orders не знаю. Можно переделать код автоматитески?

## flyyy09 — 2021-12-06 12:38

> Цитата (Kolumb):
> Большая просьба, если возможно, переделать этот советник на mql5. Это сова для парного трейдинга, на основе корреляции.  Нужно погонять в тестере. На демо тестить и оптимизировать в МТ4 очень долго. Этот код писал сам, как умел, но все работает правильно. Система прибыльная, но не без просадок конечно.. Один инструмент хеджирует другой, идея такая. Если нужно распишу подробнее.

какой ТФ?

## AlexeNP — 2021-12-06 12:41

> Цитата (Kolumb):
> Лот умножается только в одной паре, чтоб уровнять значение профита у обоих примерно. То есть это и есть попытка нормализировать. Если выставить ТП на графике у обоих пар 200 п. скажем, то прибыль будет разная у них. От сюда и умножение на коэффициент.  А дополнительные ордера, которые открываются при большем расхождении цен их лот умножается в 2 раза. Про библиотеку MT4Orders не знаю. Можно переделать код автоматитески?

не знаешь, найдешь...
но сначала поговорим за ошибки)
1) уравнивание... должно выполняться условие Lot1*PointValue1 = Lot2*PointValue2, где PointValue - цена пункта в валюте депозита соответствующего символа. Положим Lot1 у нас задан, тогда Lot2 = Lot1*PointValue1 / PointValue2
2) но, использовать полученное значение Lot2 использовать нельзя. У каждого символа есть минимальный лот, максимальный и шаг изменения лота. И окончательный лот нужно нормализовать в соответствие с этими данными

## Kolumb — 2021-12-06 13:10

> Цитата (AlexeNP):
> не знаешь, найдешь...
> но сначала поговорим за ошибки)
> 1) уравнивание... должно выполняться условие Lot1*PointValue1 = Lot2*PointValue2, где PointValue - цена пункта в валюте депозита соответствующего символа. Положим Lot1 у нас задан, тогда Lot2 = Lot1*PointValue1 / PointValue2
> 2) но, использовать полученное значение Lot2 использовать нельзя. У каждого символа есть минимальный лот, максимальный и шаг изменения лота. И окончательный лот нужно нормализовать в соответствие с этими данными

Я просто подобрал значение Lot1 и тд под свой депозит, поскольку не знаю как грамотно все написать, чтоб лоты менялись автоматом. Сделал примитивно, но чтоб работало. Так же и с доливкой ордеров, тоже не знаю как правильно цикл написать. Если исправишь, буду благодарен! Смысл в том, что начальный лот при открытии второго колена умножается в 2 раза, и при открытии3-го в 4. Библиотеку нашел, но что с ней делать без понятия )) Если есть четкий мануал скинь плиз, но не уверен, что разберусь.

## AlexeNP — 2021-12-06 13:40

> Цитата (Kolumb):
> Я просто подобрал значение Lot1 и тд под свой депозит, поскольку не знаю как грамотно все написать, чтоб лоты менялись автоматом. Сделал примитивно, но чтоб работало. Так же и с доливкой ордеров, тоже не знаю как правильно цикл написать. Если исправишь, буду благодарен! Смысл в том, что начальный лот при открытии второго колена умножается в 2 раза, и при открытии3-го в 4. Библиотеку нашел, но что с ней делать без понятия )) Если есть четкий мануал скинь плиз, но не уверен, что разберусь.

давай еще раз я попробую объяснить... Лот не может принимать какое угодно значение. Его размер строго предопределен. Теперь смотрим что у тебя в советнике - как-то так Lot2 = 1.5*Lot1. Ты уверен, что значение Lot2 примет допустимое значение? я вот в этом не уверен, более того - с вероятностью 50% ты нарвешься на ошибку 131 ERR_INVALID_TRADE_VOLUME и то при условии, что Lot1 выставлен правильно. А это может быть совсем не так - к примеру, ты по запарке лишнюю циферку вписал и прочее... пример функции нормализующей размер лота

```
double NormalizeLots(string symbol,double lots)
  {
//---
   double lot_min=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN),
          lot_max=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX),
          lot_step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);

   int step=MathMax(0,MathRound((lots-lot_min)/lot_step));

   double lot=MathMin(lot_min+step*lot_step,lot_max);
   return(lot);
//---
  }
```

## Kolumb — 2021-12-06 14:15

> Цитата (AlexeNP):
> давай еще раз я попробую объяснить... Лот не может принимать какое угодно значение. Его размер строго предопределен. Теперь смотрим что у тебя в советнике - как-то так Lot2 = 1.5*Lot1. Ты уверен, что значение Lot2 примет допустимое значение? я вот в этом не уверен, более того - с вероятностью 50% ты нарвешься на ошибку 131 ERR_INVALID_TRADE_VOLUME и то при условии, что Lot1 выставлен правильно. А это может быть совсем не так - к примеру, ты по запарке лишнюю циферку вписал и прочее... пример функции нормализующей размер лота
> 
```
double NormalizeLots(string symbol,double lots)
>   {
> //---
>    double lot_min=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN),
>           lot_max=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX),
>           lot_step=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
>
>    int step=MathMax(0,MathRound((lots-lot_min)/lot_step));
>
>    double lot=MathMin(lot_min+step*lot_step,lot_max);
>    return(lot);
> //---
>   }
```

Так прекрасно, если не сложно исправь пожалуйста. У меня Lot2 сначала задается во внешних параметрах в ручную, это для обеих пар, и потом в функции Ordersend в паре EURAUD умножается на 1.5.  Лоты во внешних параметрах я не менял, поэтому да, могли возникнуть ошибки. Я понял, о чем ты говоришь. Вот первые ордера открылись, выглядит вот так.

## Kolumb — 2021-12-06 14:32

то есть все лоты задаются вручную во внешних... я так задачу решил))

## stigal — 2021-12-22 03:20

Всем привет!

Помогите переделать оба индикатора с 4 на 5 версию. 

Индюки именные :)

## tirion — 2021-12-29 18:20

Уважаемые специалисты! Можно ли эти индикаторы перевести в формат mg5?

## Sergan1311 — 2021-12-30 16:54

Зделайте пожалста "тундру" на мт5 пожалста, лучший индюк разворота
и стрелки на пересечение. спасибо

## AlexeyVik — 2021-12-31 10:32

> Цитата (stigal):
> Всем привет!
>
> Помогите переделать оба индикатора с 4 на 5 версию.
>
> Индюки именные :)

Посмотрел я не досуге индикатор «Takbir». Там есть такое описание

  //Такбиры имеют поочередность. Если появился верхний то следующим должен быть нижний. 
  //Все очередные отмечаются сплошной линией в длину 10 свечей. 
  //Если после верхнего появился еще раз верхний то из них сплошной и очередным является тот 
  //у кого выше цена (high), если у них цены одинаковые то отмечается последних по счету.

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

Но есть ещё и такие показания индикатора

Вот и думаю, сделать согласно описания, скажут «Не соответствует оригиналу»… Сделать как есть, а зачем такой который рисует как ему вздумается, то так, а то по другому…

## stigal — 2021-12-31 11:50

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

все внеочередные пунктиром отмечаются. так чтобы было видно что они хоть и имеют условия для отметки но до них не было противоположного уровня с условиями 5+5

## AlexeyVik — 2021-12-31 23:52

> Цитата (stigal):
> Приветствую, да основной отмечается тот что выше, после него должен быть противоположный (если к примеру был верхний, то следующий будет нижний) но если противоположный не сформировался и появился к примеру опять верхний, но ниже по уровню цены, то мы его все равно отмечаем. Я их как внеочередные выставляю
>
> все внеочередные пунктиром отмечаются. так чтобы было видно что они хоть и имеют условия для отметки но до них не было противоположного уровня с условиями 5+5

Я-то читать умею, потому и вопрос появился. А вот ты похоже больше трёх строк прочесть не осиливаешь. Зачем повторять, то с чего появился вопрос?
Повторяю вопрос:

> Цитата:
> Вот и думаю, **сделать согласно описания**, скажут «Не соответствует оригиналу»… **Сделать как есть, а зачем** такой который рисует как ему вздумается, то так, а то по другому…

или может вообще он нужен?
С Новым годом дорогой…

## LukaRossi — 2022-01-02 12:58

Есть ли возможность этот индикатор сделать под МТ5 (Владиславу привет и спасибо!)  )
И присоединяюсь к просьбе про Tundru 
Готов продонатить

## AlexeyVik — 2022-01-07 22:00

> Цитата (AlexeyVik):
> Я-то читать умею, потому и вопрос появился. А вот ты похоже больше трёх строк прочесть не осиливаешь. Зачем повторять, то с чего появился вопрос?
> Повторяю вопрос:
>
> или может вообще он нужен?
> С Новым годом дорогой…

Ответа я так и не дождался… Сделал как считаю нужно. Только заменил полоски типа «это такбир, а это нет» на обычный зиг-заг по такбирам.
Выглядит так:

---

Следующая страница: https://forexsystemru.com/threads/88002/page-4
