всем привет
думаю что мы все скоро переедем с мт4 на мт5, но у многих как и у меня впринцыпе один и самый главный вопрос - как же быть с нашими индикаторами и советниками с мт4, они ведь на мт5 неподходят - но вродебы ответ найден
выкладываю на общее обозрение и тесты ответ на наш вопрос
Конвертер программ из MQL4 в MQL5
Сообщений: 377 |
"...Чтобы заработать очень большие деньги, нужно просто начать их зарабатывать..."
Эндрю Карнеги | ||||
Сообщений: 377 |
Сначала скачиваем архив включаемых файловinclude.zip и распаковываем его в папку «experts => include» терминала MetaTrader 4.
experts => scripts»[/color] терминала MetaTrader 4: После этого помещаем программу MQL4 (индикатор, советник или скрипт), которую хотим преобразовать в MQL5 в папку «experts => files» терминала MetaTrader 4. Теперь открываем MetaTrader 4 и запускаем на исполнение скрипт mq4to5rewrite_sample_v5_02.zip. В окне параметров скрипта необходимо ввести имя конвертируемого MQL4 файла без расширения. А в следующем параметре ставим код типа этого файла. Если конвертируемый MQL4 файл это индикатор, ставим (0), если советник – (1), если скрипт – (2). Нажимаем кнопку «OK». Если конвертация из MQL4 в MQL5 прошла успешно, то появится сообщение: «experts => files»[/color] терминала MetaTrader 4: И в заключение определяем и устраняем ряд ошибок с помощью таблицы основных различий языка MQL4 и MQL5 и выложенного на форуме справочника MQL5.(таблица основных различий) ![]() Прикрепленные файлы:
"...Чтобы заработать очень большие деньги, нужно просто начать их зарабатывать..."
Эндрю Карнеги | ||||
Сообщений: 571 |
довольно просто-вот еще бы без устранения различий-это для особо одаренных в программировании,вроде меня.А встречались ли вам скрипты,которые после конвертации не требовали доработки... | ||||
Сообщений: 55 |
Тоже давно скачал совтину, пока не пользовался, но чувствую придется пятерку осваивать, может и эта прога пригодится. В отличии от многих, считающих, что совсем скоро все разом перебегут на МТ5, моя причина другая... привлекает возможность оптимизации всеми ядрами компа и возможность подключения к услуге "Облачный сервис", - использование посторонних вычислительных мощностей для оптимизации. | ||||
Сообщений: 1196 |
Blast
Тоже давно скачал совтину, пока не пользовался, но чувствую придется пятерку осваивать, может и эта прога пригодится. В отличии от многих, считающих, что совсем скоро все разом перебегут на МТ5, моя причина другая... привлекает возможность оптимизации всеми ядрами компа и возможность подключения к услуге "Облачный сервис", - использование посторонних вычислительных мощностей для оптимизации. это прога может быть полезна, если вы владеете обоимим языками программирования. Она просто сокращает время на переписке прграммы, но иногда лучше переписать,чем корректировать 80% программы. Вообщем, если вы не программист вам это не поможет. | ||||
Сообщений: 657 |
fastener
Blast
Тоже давно скачал совтину, пока не пользовался, но чувствую придется пятерку осваивать, может и эта прога пригодится. В отличии от многих, считающих, что совсем скоро все разом перебегут на МТ5, моя причина другая... привлекает возможность оптимизации всеми ядрами компа и возможность подключения к услуге "Облачный сервис", - использование посторонних вычислительных мощностей для оптимизации. это прога может быть полезна, если вы владеете обоимим языками программирования. Она просто сокращает время на переписке прграммы, но иногда лучше переписать,чем корректировать 80% программы. Вообщем, если вы не программист вам это не поможет. Почему не поможет? Он может заказать написание программы на МТ4, затем переконвертировать в МТ5. Или это не реально? Он же собирается "развиваться" в этой теме :smile:
Бессонов Артём | ||||
Сообщений: 0 |
У МТ5 есть некоторые преимущества. Если у кого переворотная стратегия или пирамидку безлоковую строит, тому есть большой смысл на МТ5 переходить. Выбор таймфреймов в МТ5 большой - удобно графики под открытия рынков подстраивать. Я умиляюсь, когда в стратегиях под h4 предлагают обязательно дождаться закрытия свечи. У одних ДЦ терминальное время GMT+1, у других GMT+2, у третьих GMT+3 ... А тут ещё летнее-зимнее время. Что это закрытие h4 подтверждает?
А вот mql у 5 очень замудрённый по сравнению с 4. А наработок под MT5 пока очень мало. Я некоторые простые вещи ручками переделываю, но всё это туго и долго. | ||||
Сообщений: 0 |
Скажу, что иногда,в момент преоброзоваия нужно править некоторые значения, а это не есть хорошо. Конечно, можно где-то найти детальное описание что как делать и в описание будут значения, которые нужно править... Но! Напоследок, конечно, нужно разбираться хоть немного в кодировках и компиляции. | ||||
Сообщений: 0 |
Еще нужно знать, что некоторые советники с МТ4, будучи даже идеально переконвертированными в МТ5, все равно не будут работать из-за особенностей торговли в мт5. Здесь сама стратегия заложенная в советник просто не будет работать. Это касается локов. | ||||
Сообщений: 16 |
Мое мнение конвертировать с МТ4 в МТ5 это тоже что переделывать бензиновый двигатель под дизель. Хотя задача у них одна приводить в движение авто, да вот только механизм разный. | ||||
Сообщений: 0 |
Интересно, а есть может конвертер с MQL4 на другие языки для программирования? И в частности интересует на те языки, которые поддерживают NT и TOS. И где можно найти все это что бы может бесплатно. | ||||
Сообщений: 51 |
Я в программировании сильно не разбираюсь, но у меня есть два индикатора для МQL 4 хотелось бы их перевести для МQL 5. Если кто умеет правильно конвертировать и править пожалуйста посмотрите, заранее благодарю
[code=php][/code]#property copyright "Copyright © 2004, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Red #property indicator_color2 Lime #property indicator_color3 Blue #property indicator_color4 Blue #property indicator_width1 3 #property indicator_width2 3 #property indicator_width3 3 #property indicator_width4 3 extern int TimeFrame=0; extern int EMA_Period=13; extern int MACD_FastPeriod=12; extern int MACD_SlowPeriod=26; extern int MACD_SignalPeriod=9; extern bool UseMT4MACD=false; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double MACDLineBuffer[]; double MACDSignalLineBuffer[]; double MACDHistogramBuffer[]; //---- int ExtCountedBars=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //|------------------------------------------------------------------| int init() { IndicatorBuffers(7); //---- indicators SetIndexStyle(0,DRAW_HISTOGRAM, 0, 3); SetIndexBuffer(0, ExtMapBuffer1); SetIndexStyle(1,DRAW_HISTOGRAM, 0, 3); SetIndexBuffer(1, ExtMapBuffer2); SetIndexStyle(2,DRAW_HISTOGRAM, 0, 3); SetIndexBuffer(2, ExtMapBuffer3); SetIndexStyle(3,DRAW_HISTOGRAM, 0, 3); SetIndexBuffer(3, ExtMapBuffer4); //---- SetIndexDrawBegin(0,MACD_SlowPeriod); SetIndexDrawBegin(1,MACD_SlowPeriod); SetIndexDrawBegin(2,MACD_SlowPeriod); SetIndexDrawBegin(3,MACD_SlowPeriod); //---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer1); SetIndexBuffer(1,ExtMapBuffer2); SetIndexBuffer(2,ExtMapBuffer3); SetIndexBuffer(3,ExtMapBuffer4); SetIndexEmptyValue(4,0.0); SetIndexBuffer(4,MACDSignalLineBuffer); SetIndexEmptyValue(5,0.0); SetIndexBuffer(5,MACDLineBuffer); SetIndexEmptyValue(6,0.0); SetIndexBuffer(6,MACDHistogramBuffer); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit,y=0,counted_bars=IndicatorCounted(); double ema1, main1, signal1, ema0, main0, signal0, macd1, macd0, main; double alpha = 2.0 / (MACD_SignalPeriod + 1.0); double alpha_1 = 1.0 - alpha; double BarValue, aOpen, aClose; if(Bars<=10) return(0); ExtCountedBars=IndicatorCounted(); //---- check for possible errors if (ExtCountedBars<0) return(-1); //---- last counted bar will be recounted if (ExtCountedBars>0) ExtCountedBars--; int pos=Bars-ExtCountedBars-1; while(pos>=0) { y = iBarShift(NULL,TimeFrame,Time[pos]); ema0=iMA(NULL,TimeFrame,EMA_Period,0,MODE_EMA,PRICE_CLOSE,y); ema1=iMA(NULL,TimeFrame,EMA_Period,0,MODE_EMA,PRICE_CLOSE,y+1); if(UseMT4MACD) { main0=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,0,y); main1=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,0,y+1); signal0=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,1,y); signal1=iMACD(NULL, TimeFrame, MACD_FastPeriod, MACD_SlowPeriod, MACD_SignalPeriod, PRICE_CLOSE,1,y+1); main=main0; macd0=main0-signal0; macd1=main1-signal1; } else { MACDLineBuffer[y] = iMA(NULL,TimeFrame,MACD_FastPeriod,0,MODE_EMA,PRICE_CLOSE,y)- iMA(NULL,TimeFrame,MACD_SlowPeriod,0,MODE_EMA,PRICE_CLOSE,y); MACDSignalLineBuffer[y]=(alpha*MACDLineBuffer[y]) + (alpha_1*MACDSignalLineBuffer[y+1]); MACDHistogramBuffer[y]=MACDLineBuffer[y]-MACDSignalLineBuffer[y]; main=MACDLineBuffer[y]; macd0=MACDHistogramBuffer[y]; macd1=MACDHistogramBuffer[y+1]; } aOpen=Open[pos]; aClose=Close[pos]; if(ema0 if(aOpen ExtMapBuffer1[pos]=aClose; ExtMapBuffer2[pos]=aOpen; ExtMapBuffer3[pos]=EMPTY_VALUE; ExtMapBuffer4[pos]=EMPTY_VALUE; } else { ExtMapBuffer1[pos]=aOpen; ExtMapBuffer2[pos]=aClose; ExtMapBuffer3[pos]=EMPTY_VALUE; ExtMapBuffer4[pos]=EMPTY_VALUE; } } else if(ema0>ema1 && macd0>macd1) //both up - Lime { if(aOpen ExtMapBuffer1[pos]=aOpen; ExtMapBuffer2[pos]=aClose; ExtMapBuffer3[pos]=EMPTY_VALUE; ExtMapBuffer4[pos]=EMPTY_VALUE; } else { ExtMapBuffer1[pos]=aClose; ExtMapBuffer2[pos]=aOpen; ExtMapBuffer3[pos]=EMPTY_VALUE; ExtMapBuffer4[pos]=EMPTY_VALUE; } } else //otherwise - Blue { ExtMapBuffer3[pos]=aOpen; ExtMapBuffer4[pos]=aClose; ExtMapBuffer1[pos]=EMPTY_VALUE; ExtMapBuffer2[pos]=EMPTY_VALUE; } pos--; } //---- return(0); } //+------------------------------------------------------------------+ Редактировалось: 1 раз (Последний: 23 марта 2013 в 10:13) | ||||
Сообщений: 0 |
Всем добрый вечер! Вот я всё думаю ка переехать с МТ4 на МТ5, хотелось бы для начало с первым разобраться хотя бы, и ещё прощаться с индикаторами и советниками родными как-то не очень хочеться,это жеделов на пол ддня, сначало скачай потом распокуй вот мороки то. |
В начало страницы |
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.