Ну может создателям и не видно таких трудностей с которыми сталкиваются рядовые программисты.
Например я когда-то в институте изучал бейсик и больше ничего... А mql4 пришлось изучать самостоятельно, в нём у меня сейчас проблем нет никаких. А попытался разобраться в mql5 так один простейший индикатор, меньше 100 строк вместе с шапкой, писал почти неделю. На мой взгляд разница есть и разница существенная.
Это миф и вы это знаете.
Берем штатный ATR.mq4 из MetaTrader 4. Там 104 строки:
//+------------------------------------------------------------------+//| ATR.mq4 |//| Copyright 2005-2014, MetaQuotes Software Corp. |//| https://www.mql4.com |//+------------------------------------------------------------------+#property copyright"2005-2014, MetaQuotes Software Corp."#property link"https://www.mql4.com"#property description"Average True Range"#property strict//--- indicator settings#property indicator_separate_window#property indicator_buffers1#property indicator_color1 DodgerBlue
//--- input parameterinputint InpAtrPeriod=14; // ATR Period//--- buffersdouble ExtATRBuffer[];
double ExtTRBuffer[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit(void)
{
string short_name;
//--- 1 additional buffer used for counting.
IndicatorBuffers(2);
IndicatorDigits(Digits);
//--- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtATRBuffer);
SetIndexBuffer(1,ExtTRBuffer);
//--- name for DataWindow and indicator subwindow label
short_name="ATR("+IntegerToString(InpAtrPeriod)+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//--- check for input parameterif(InpAtrPeriod<=0)
{
Print("Wrong input parameter ATR Period=",InpAtrPeriod);
return(INIT_FAILED);
}
//---
SetIndexDrawBegin(0,InpAtrPeriod);
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Average True Range |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i,limit;
//--- check for bars count and input parameterif(rates_total<=InpAtrPeriod || InpAtrPeriod<=0)
return(0);
//--- counting from 0 to rates_totalArraySetAsSeries(ExtATRBuffer,false);
ArraySetAsSeries(ExtTRBuffer,false);
ArraySetAsSeries(open,false);
ArraySetAsSeries(high,false);
ArraySetAsSeries(low,false);
ArraySetAsSeries(close,false);
//--- preliminary calculationsif(prev_calculated==0)
{
ExtTRBuffer[0]=0.0;
ExtATRBuffer[0]=0.0;
//--- filling out the array of True Range values for each periodfor(i=1; i<rates_total; i++)
ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
//--- first AtrPeriod values of the indicator are not calculateddouble firstValue=0.0;
for(i=1; i<=InpAtrPeriod; i++)
{
ExtATRBuffer[i]=0.0;
firstValue+=ExtTRBuffer[i];
}
//--- calculating the first value of the indicator
firstValue/=InpAtrPeriod;
ExtATRBuffer[InpAtrPeriod]=firstValue;
limit=InpAtrPeriod+1;
}
else
limit=prev_calculated-1;
//--- the main loop of calculationsfor(i=limit; i<rates_total; i++)
{
ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
ExtATRBuffer[i]=ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-InpAtrPeriod])/InpAtrPeriod;
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
Берем такой же ATR.mq5 из MetaTrader 5. там 96 строк.
//+------------------------------------------------------------------+//| ATR.mq5 |//| Copyright 2009, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"2009, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property description"Average True Range"//--- indicator settings#property indicator_separate_window#property indicator_buffers2#property indicator_plots1#property indicator_type1 DRAW_LINE#property indicator_color1 DodgerBlue
#property indicator_label1 "ATR"//--- input parametersinputint InpAtrPeriod=14; // ATR period//--- indicator buffersdouble ExtATRBuffer[];
double ExtTRBuffer[];
//--- global variableint ExtPeriodATR;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+voidOnInit()
{
//--- check for input valueif(InpAtrPeriod<=0)
{
ExtPeriodATR=14;
printf("Incorrect input parameter InpAtrPeriod = %d. Indicator will use value %d for calculations.",InpAtrPeriod,ExtPeriodATR);
}
else ExtPeriodATR=InpAtrPeriod;
//--- indicator buffers mappingSetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS);
//---IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- sets first bar from what index will be drawnPlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpAtrPeriod);
//--- name for DataWindow and indicator subwindow labelstring short_name="ATR("+string(ExtPeriodATR)+")";
IndicatorSetString(INDICATOR_SHORTNAME,short_name);
PlotIndexSetString(0,PLOT_LABEL,short_name);
//--- initialization done
}
//+------------------------------------------------------------------+//| Average True Range |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i,limit;
//--- check for bars countif(rates_total<=ExtPeriodATR)
return(0); // not enough bars for calculation//--- preliminary calculationsif(prev_calculated==0)
{
ExtTRBuffer[0]=0.0;
ExtATRBuffer[0]=0.0;
//--- filling out the array of True Range values for each periodfor(i=1;i<rates_total && !IsStopped();i++)
ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
//--- first AtrPeriod values of the indicator are not calculateddouble firstValue=0.0;
for(i=1;i<=ExtPeriodATR;i++)
{
ExtATRBuffer[i]=0.0;
firstValue+=ExtTRBuffer[i];
}
//--- calculating the first value of the indicator
firstValue/=ExtPeriodATR;
ExtATRBuffer[ExtPeriodATR]=firstValue;
limit=ExtPeriodATR+1;
}
else limit=prev_calculated-1;
//--- the main loop of calculationsfor(i=limit;i<rates_total && !IsStopped();i++)
{
ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
ExtATRBuffer[i]=ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-ExtPeriodATR])/ExtPeriodATR;
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
Разницы в размерах нет 104 vs 96 строк, даже преимущество на стороне MQL5.
Вот так люди и переносят из форума в форум глупости и мифы.
Различие только в небольшом наборе функций (в МТ5 они лучше) и никаких серьезных расходов на освоение нет.
Про "не хочу тратить время" и "надо вчера" хочу напомнить, что торговая платформа - это важный инструмент повышения эффективности трейдера. Когда рядом есть заведомо более эффективное и функциональное решение, то не пользоваться им - это вредить себе и обманывать себя придуманными мифами.
Достаточно сравнить тестеры торговых стратегий, чтобы навегда забыть про МТ4. Я не шучу и не перегибаю палку - это реально так.
Глупейший принцип суммирования позиций в МТ5 (а это значит невозможность безо всяких ухищрений огранизовать одновременную работу нескольких МТС на одном символе и на одном счёте) навсегда отбил желание на нём торговать. Даже когда брокеров, предоставляющих МТ5 на реале будет побольше, чем пальцев на руках.
А переписывать код под МТ5 только ради тестера - уж извините, но это абсурд.
Глупейший принцип суммирования позиций в МТ5 (а это значит невозможность безо всяких ухищрений огранизовать одновременную работу нескольких МТС на одном символе и на одном счёте) навсегда отбил желание на нём торговать. Даже когда брокеров, предоставляющих МТ5 на реале будет побольше, чем пальцев на руках.
Нисколько не глупейший.
Столько раз объяснялись преимущества, что повторять не хочу. Также неоднократно я объяснял, почему "несколько МТС на одном символе - это самообман, убытки и нереальная ситуация для массового использования".
А переписывать код под МТ5 только ради тестера - уж извините, но это абсурд.
Это не абсурд.
Вы сами себе урезаете возможности и упускаете шансы на развитие. Доказывать самому себе и окружающим, что заведомо более качественная, функциональная и мощная система хуже старой с кучей недостатков - это нанесение себе прямого вреда.
Различие только в небольшом наборе функций (в МТ5 они лучше) и никаких серьезных расходов на освоение нет.
Про "не хочу тратить время" и "надо вчера" хочу напомнить, что торговая платформа - это важный инструмент повышения эффективности трейдера. Когда рядом есть заведомо более эффективное и функциональное решение, то не пользоваться им - это вредить себе и обманывать себя придуманными мифами.
Достаточно сравнить тестеры торговых стратегий, чтобы навегда забыть про МТ4. Я не шучу и не перегибаю палку - это реально так.
Ренат, а на сколько сложно тестер мт4 приравнять к тестеру мт5?
Берем штатный ATR.mq4 из MetaTrader 4. Там 104 строки:
Берем такой же ATR.mq5 из MetaTrader 5. там 96 строк.
Разницы в размерах нет 104 vs 96 строк, даже преимущество на стороне MQL5.
Вот так люди и переносят из форума в форум глупости и мифы.
Да не об этом я писал, а о том, что тот-же самый индикатор на mql4 я написал за час, а на освоение написания того-же кода на mql5 мне понадобилась неделя... Не в количестве сток дело, а в понимании подходов программирования...
На сколько отличается получение значения штатного индикатора в mql4 от того-же действа в mql5... Пока я с этим разобрался чуть с ума не спятил. Конечно можно предложить курсы по программированию, но надо ведь учитывать ещё и другие факторы которые могут не позволить пойти на такие курсы... И стоимость, и возраст, и удалённость от места проведения или стоимость трафика в случае онлайн обучения... Да мало-ли что...
Да не об этом я писал, а о том, что тот-же самый индикатор на mql4 я написал за час, а на освоение написания того-же кода на mql5 мне понадобилась неделя... Не в количестве сток дело, а в понимании подходов программирования...
На сколько отличается получение значения штатного индикатора в mql4 от того-же действа в mql5... Пока я с этим разобрался чуть с ума не спятил. Конечно можно предложить курсы по программированию, но надо ведь учитывать ещё и другие факторы которые могут не позволить пойти на такие курсы... И стоимость, и возраст, и удалённость от места проведения или стоимость трафика в случае онлайн обучения... Да мало-ли что...
Сравните два файла и найдете минимум отличий.
Про "неделю на освоение, чуть с ума не сошел" - это для красного словца на форуме. Так мифы и рождаются.
Про "неделю на освоение, чуть с ума не сошел" - это для красного словца на форуме. Так мифы и рождаются.
Ну не стану я доказывать что это истинная правда. Для человека который не знаком с программированием на С++ и вообще ООП это достаточно сложно и совсем не для красного словца или рождения мифа. Как ни странно, я за неделю в этом разобрался и написал то что было надо. И это совсем другой миф, это говорит о том, что освоение mql5 доступно даже не профессионалам, таким как я.
Ну может создателям и не видно таких трудностей с которыми сталкиваются рядовые программисты.
Например я когда-то в институте изучал бейсик и больше ничего... А mql4 пришлось изучать самостоятельно, в нём у меня сейчас проблем нет никаких. А попытался разобраться в mql5 так один простейший индикатор, меньше 100 строк вместе с шапкой, писал почти неделю. На мой взгляд разница есть и разница существенная.
Это миф и вы это знаете.
Берем штатный ATR.mq4 из MetaTrader 4. Там 104 строки:
Берем такой же ATR.mq5 из MetaTrader 5. там 96 строк.
Разницы в размерах нет 104 vs 96 строк, даже преимущество на стороне MQL5.
Вот так люди и переносят из форума в форум глупости и мифы.
Нисколько означает, что язык один и тот же.
Различие только в небольшом наборе функций (в МТ5 они лучше) и никаких серьезных расходов на освоение нет.
Про "не хочу тратить время" и "надо вчера" хочу напомнить, что торговая платформа - это важный инструмент повышения эффективности трейдера. Когда рядом есть заведомо более эффективное и функциональное решение, то не пользоваться им - это вредить себе и обманывать себя придуманными мифами.
Достаточно сравнить тестеры торговых стратегий, чтобы навегда забыть про МТ4. Я не шучу и не перегибаю палку - это реально так.
Глупейший принцип суммирования позиций в МТ5 (а это значит невозможность безо всяких ухищрений огранизовать одновременную работу нескольких МТС на одном символе и на одном счёте) навсегда отбил желание на нём торговать. Даже когда брокеров, предоставляющих МТ5 на реале будет побольше, чем пальцев на руках.
А переписывать код под МТ5 только ради тестера - уж извините, но это абсурд.
Глупейший принцип суммирования позиций в МТ5 (а это значит невозможность безо всяких ухищрений огранизовать одновременную работу нескольких МТС на одном символе и на одном счёте) навсегда отбил желание на нём торговать. Даже когда брокеров, предоставляющих МТ5 на реале будет побольше, чем пальцев на руках.
Нисколько не глупейший.
Столько раз объяснялись преимущества, что повторять не хочу. Также неоднократно я объяснял, почему "несколько МТС на одном символе - это самообман, убытки и нереальная ситуация для массового использования".
А переписывать код под МТ5 только ради тестера - уж извините, но это абсурд.
Это не абсурд.
Вы сами себе урезаете возможности и упускаете шансы на развитие. Доказывать самому себе и окружающим, что заведомо более качественная, функциональная и мощная система хуже старой с кучей недостатков - это нанесение себе прямого вреда.
Нисколько означает, что язык один и тот же.
Различие только в небольшом наборе функций (в МТ5 они лучше) и никаких серьезных расходов на освоение нет.
Про "не хочу тратить время" и "надо вчера" хочу напомнить, что торговая платформа - это важный инструмент повышения эффективности трейдера. Когда рядом есть заведомо более эффективное и функциональное решение, то не пользоваться им - это вредить себе и обманывать себя придуманными мифами.
Достаточно сравнить тестеры торговых стратегий, чтобы навегда забыть про МТ4. Я не шучу и не перегибаю палку - это реально так.
Это миф и вы это знаете.
Берем штатный ATR.mq4 из MetaTrader 4. Там 104 строки:
Берем такой же ATR.mq5 из MetaTrader 5. там 96 строк.
Разницы в размерах нет 104 vs 96 строк, даже преимущество на стороне MQL5.
Вот так люди и переносят из форума в форум глупости и мифы.
Да не об этом я писал, а о том, что тот-же самый индикатор на mql4 я написал за час, а на освоение написания того-же кода на mql5 мне понадобилась неделя... Не в количестве сток дело, а в понимании подходов программирования...
На сколько отличается получение значения штатного индикатора в mql4 от того-же действа в mql5... Пока я с этим разобрался чуть с ума не спятил. Конечно можно предложить курсы по программированию, но надо ведь учитывать ещё и другие факторы которые могут не позволить пойти на такие курсы... И стоимость, и возраст, и удалённость от места проведения или стоимость трафика в случае онлайн обучения... Да мало-ли что...
Ренат, а на сколько сложно тестер мт4 приравнять к тестеру мт5?
Четверку трогать не будем, только сервисную часть интеграции с MQL5.community.
Да не об этом я писал, а о том, что тот-же самый индикатор на mql4 я написал за час, а на освоение написания того-же кода на mql5 мне понадобилась неделя... Не в количестве сток дело, а в понимании подходов программирования...
На сколько отличается получение значения штатного индикатора в mql4 от того-же действа в mql5... Пока я с этим разобрался чуть с ума не спятил. Конечно можно предложить курсы по программированию, но надо ведь учитывать ещё и другие факторы которые могут не позволить пойти на такие курсы... И стоимость, и возраст, и удалённость от места проведения или стоимость трафика в случае онлайн обучения... Да мало-ли что...
Сравните два файла и найдете минимум отличий.
Про "неделю на освоение, чуть с ума не сошел" - это для красного словца на форуме. Так мифы и рождаются.
Только язык в нём на столько отличается, что освоить его надо не малое количество времени.
Сравните два файла и найдете минимум отличий.
Про "неделю на освоение, чуть с ума не сошел" - это для красного словца на форуме. Так мифы и рождаются.