Получить 100$ на счет бесплатно!!

Получить депозит форекс за общение на форуме

Конвертер программ из MQL4 в MQL5

Конвертер программ из MQL4 в MQL5
  
Медаль
Сообщений: 377
всем привет
думаю что мы все скоро переедем с мт4 на мт5, но у многих как и у меня впринцыпе один и самый главный вопрос - как же быть с нашими индикаторами и советниками с мт4, они ведь на мт5 неподходят - но вродебы ответ найден
выкладываю на общее обозрение и тесты ответ на наш вопрос
"...Чтобы заработать очень большие деньги, нужно просто начать их зарабатывать..."
Эндрю Карнеги
Медаль
Сообщений: 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.(таблица основных различий)
Прикрепленные файлы:
Desktop_tekjr.rar | 12.73 Кб | Скачали: 886
"...Чтобы заработать очень большие деньги, нужно просто начать их зарабатывать..."
Эндрю Карнеги
Медаль
Сообщений: 571
довольно просто-вот еще бы без устранения различий-это для особо одаренных в программировании,вроде меня.А встречались ли вам скрипты,которые после конвертации не требовали доработки...
Сообщений: 55
Тоже давно скачал совтину, пока не пользовался, но чувствую придется пятерку осваивать, может и эта прога пригодится. В отличии от многих, считающих, что совсем скоро все разом перебегут на МТ5, моя причина другая... привлекает возможность оптимизации всеми ядрами компа и возможность подключения к услуге "Облачный сервис", - использование посторонних вычислительных мощностей для оптимизации.
МедальКубок
Сообщений: 1197
Blast:

Тоже давно скачал совтину, пока не пользовался, но чувствую придется пятерку осваивать, может и эта прога пригодится. В отличии от многих, считающих, что совсем скоро все разом перебегут на МТ5, моя причина другая... привлекает возможность оптимизации всеми ядрами компа и возможность подключения к услуге "Облачный сервис", - использование посторонних вычислительных мощностей для оптимизации.

это прога может быть полезна, если вы владеете обоимим языками программирования.
Она просто сокращает время на переписке прграммы, но иногда лучше переписать,чем корректировать 80% программы.
Вообщем, если вы не программист вам это не поможет.
МедальКубокГрамота
Сообщений: 658
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. Если кто умеет правильно конвертировать и править пожалуйста посмотрите, заранее благодарю

Код PHP:
  1.  
#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<ema1 && macd0<macd1) //both down - Red
{
if(aOpen<aClose)
{
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<aClose)
{
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, хотелось бы для начало с первым разобраться хотя бы, и ещё прощаться с индикаторами и советниками родными как-то не очень хочеться,это жеделов на пол ддня, сначало скачай потом распокуй вот мороки то.
В начало страницы 
|
Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.

← Назад

бездепозитный бонус