Как переписать код с MQL4 на MQL5 ?
ну как Вам сказать,
Если бы ВЫ попросили переписать с мкл4
допустим
double RSI_Low=iRSI(Symbol(),int 0,int RSI_Value,int PRICE_LOW,int 0);
то думаю помогли бы.
А так получается Вам нужно собственно написать нового советника. И тут даже если Вам напишут его на мкл 5 - ВЫ ничего не поймете. Получиться не помощь.
да и простого кода все равно не получиться.
допустим функция открытия бая
//+----------------------------------------------------------------------------+ //| Автор : Владислав, Expforex http://expforex. | //+----------------------------------------------------------------------------+ //| Описание : Открывает позицию Бай по выбранной Валюте | //+----------------------------------------------------------------------------+ void OpenBUY(string symToWork2) { request.comment="by www.expforex."; request.symbol = symToWork2; request.volume = GetSizeLot(symToWork2); request.action=TRADE_ACTION_DEAL; // операция с рынка request.type_filling=ORDER_FILLING_FOK; // операция с рынка if(SymbolInfoInteger(symToWork2,SYMBOL_TRADE_EXEMODE)!=SYMBOL_TRADE_EXECUTION_MARKET) { if(TakeProfits==0)request.tp=0;else if(TakeProfits!=0)request.tp=SymbolInfoDouble(symToWork2,SYMBOL_BID)+TakeProfits*SymbolInfoDouble(symToWork2,SYMBOL_POINT); if(StopLosss==0)request.sl=0;else if(StopLosss!=0)request.sl=SymbolInfoDouble(symToWork2,SYMBOL_BID)-StopLosss*SymbolInfoDouble(symToWork2,SYMBOL_POINT); }else {request.tp=0;request.sl=0; } request.deviation=(ulong)((SymbolInfoDouble(symToWork2,SYMBOL_ASK)-SymbolInfoDouble(symToWork2,SYMBOL_BID))/SymbolInfoDouble(symToWork2,SYMBOL_POINT))*2; // по спреду // request.type_filling=ORDER_FILLING_CANCEL; request.type=ORDER_TYPE_BUY; request.price=SymbolInfoDouble(symToWork2,SYMBOL_ASK); double margin=EMPTY_VALUE; bool check = OrderCalcMargin(request.type,request.symbol,request.volume,request.price,margin); if(margin<AccountInfoDouble(ACCOUNT_FREEMARGIN))OrderSend(request,result); if(result.retcode==TRADE_RETCODE_DONE) { if(Sounds)PlaySound("ok.wav"); if(SymbolInfoInteger(symToWork2,SYMBOL_TRADE_EXEMODE)==SYMBOL_TRADE_EXECUTION_MARKET) { Modify(symToWork2,StopLosss,TakeProfits); } } else if(Sounds)PlaySound("stops.wav"); }
ну как Вам сказать,
Если бы ВЫ попросили переписать с мкл4
допустим
то думаю помогли бы.
А так получается Вам нужно собственно написать нового советника. И тут даже если Вам напишут его на мкл 5 - ВЫ ничего не поймете. Получиться не помощь.
да и простого кода все равно не получиться.
допустим функция открытия бая
почему засекреченный? просто он более приближенный к основным языкам программирования C\delphi и не представляет сложности по сути.
Для новичков может быть и да, но для этого разработчики и сделали всевозможные генераторы и библиотеки.

Где писатели советников на мкл5 получили своё знание ?
почему засекреченный? просто он более приближенный к основным языкам программирования C\delphi и не представляет сложности по сути.
Для новичков может быть и да, но для этого разработчики и сделали всевозможные генераторы и библиотеки.
Я тоже изучал язык вышего уровня Ява, но не по библиотеки. Библиотека это как склад с запчастями итп. но это не даёт человеку быстрой возможности собрать например автомобиль, можно но полу жизни надо угробить, пока это сделаеш уже мкл10 будет и опять всё заново учи... И часто эти самоучки по библиотеки в своих кодах много мусора используют каторый вовсе не нужен и пояснить чего они накодировали не могут, ну ладно оставим это....
у меня вопрос к вашему коду
void OpenBUY(string symToWork2) { request.comment="by www.expforex."; request.symbol = symToWork2; request.volume = GetSizeLot(symToWork2);
Если вы вызываете вашу OpenBUY() функцию то в параметры задаёте даные типа стринг, т.е. текст. Теперь вы используете эти даные в двух разных местах, для опредиления символа request.symbol=symToWork2; и для размера сделки request.volume=GetSizeLot(symToWork2);, как так может быть?
Я тоже изучал язык вышего уровня Ява, но не по библиотеки. Библиотека это как склад с запчастями итп. но это не даёт человеку быстрой возможности собрать например автомобиль, можно но полу жизни надо угробить, пока это сделаеш уже мкл10 будет и опять всё заново учи... И часто эти самоучки по библиотеки в своих кодах много мусора используют каторый вовсе не нужен и пояснить чего они накодировали не могут, ну ладно оставим это....
у меня вопрос к вашему коду
Если вы вызываете вашу OpenBUY() функцию то в параметры задаёте даные типа стринг, т.е. текст. Теперь вы используете эти даные в двух разных местах, для опредиления символа request.symbol=symToWork2; и для размера сделки request.volume=GetSizeLot(symToWork2);, как так может быть?
в моем случае я показал пример своей функции. у каждого программиста есть своя библиотека функций.
конкретно по вопросу : в моих шаблонах используется мультивалютный режим, т.е. в настройках можно сразу задать несколько пар для торговли.
request.symbol=symToWork2 - указывает по какому символу открывать сделку request.volume=GetSizeLot(symToWork2) - расчитывает лот по данному символу.
Лот рассчитывается следующей функцией, в которой также внутри вызываются еще 3 функции.
Получается цепочка
а где писатели мкл4 получили своё знание?
Я например умею програмировать на Ява и смотрел уроки програмирования для мкл4 на ютьюбе и с моим знанием уловил суть и всё нужное для моих советников, к сожелению на мкл4 качество моделирования очень слабое и результаты не соответствуют истине, поэтому вынужден на мкл5 перейти, хотя и здесь модэлироване не на все сто всегда работает
мкл4 - язык для школьников, его может выучить даже грузчик.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброе время суток,
после усердных поисков в интернете учебника по изучения MQL5 и ничего толкового не найдя, решил обратитса за помощью
Вот мой код на MQL4
Советник значит откладывает в переменых типа даблъ уровень индикатора РСИ, которым может быть число от нуля до ста, потом проверяет наличие ордеров на открытую пару с учётом идентификационого номера советника(мэджикнамбэр) и если открытих сделок нет и условия на покупку или продажу соответсвуют истине, то открывает сделку. При открытии сделки ставит ограничение риска (стоплос) и указвает уровень закрытия сделки (тэйкпрофит) итп.
Как теперь этот советник переписать на MQL5 ?
Меня интиресует простой код, без подключеня какихто библиотек, где один клас вызывает другой и одна функция другую и если даже програма работает, то смысл всёравно не понятен.