МТ4 или МТ5. Какие преимущества и недостатки? - страница 58

 
Renat Fatkhullin:

1) Это не ошибка.

В MetaTrader 5 у стандартных индикаторов мы убрали встроенные костыли с лишними параметрами. Кроме того, индикаторные iXXX функции в MQL5 стали конструкторами и потеряли возможность выдавать фактические данные, так как возвращают хендл.

Сами данные индикаторов извлекаются через массовые CopyBuffer функции с указанием хендла индикатора и требуемых буферов. Упор делается именно на возможность сразу извлечь большой массив (100, 1000, 1000) результатов, а не лазать затратно за каждым значением вглубь iXXX функций, как это делается в МТ4.


2) ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированны по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.

В поставке MetaTrader 5 есть полный исходный код ADX в MQL5\Indicators\Examples\ADX.mq5


скажите пожалуйста, какую мне цену выбрать в настройках MT4, что бы получить точно такое же значение как в MT5 ? что бы можно было сделать одинаковый код в 4 и в 5

#property strict
#property show_inputs
input ENUM_APPLIED_PRICE ADX_Applied_Price    = PRICE_CLOSE;
extern int               ADX_Period           = 14;
extern double            ADX_Level            = 42;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   double ADX1 = iADX(NULL,0,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);
   double ADX2 = iADX(NULL,0,ADX_Period,ADX_Applied_Price,MODE_MAIN,2);
   
   Print(ADX1," ",ADX2);
}




//input ENUM_APPLIED_PRICE ADX_Applied_Price    = PRICE_CLOSE;
input int                ADX_Period           = 14;
input double             ADX_Level            = 42;
int handle_ADX = iADX(_Symbol,_Period,ADX_Period/*,ADX_Applied_Price*/);
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   double temp[];
                        CopyBuffer(handle_ADX,0,1,1,temp);
   double ADX1  = temp[0];
                        CopyBuffer(handle_ADX,0,2,1,temp);
   double ADX2 = temp[0];
   
      Print(ADX1," ",ADX2);
}
 
Pavel Verveyko:

скажите пожалуйста, какую мне цену выбрать в настройках MT4, что бы получить точно такое же значение как в MT5 ? что бы можно было сделать одинаковый код в 4 и в 5

Вы этот вопрос задаете уже не первый раз. Можно ведь открыть два терминала, два исходника и сравнить значения индикатора на графиках

PS У вас куча продуктов в Маркете - как это возможно, если такие элементарные вопросы задаете? Вы сами писали коды для этих продуктов?

 
Rashid Umarov:

Вы этот вопрос задаете уже не первый раз. Можно ведь открыть два терминала, два исходника и сравнить значения индикатора на графиках

PS У вас куча продуктов в Маркете - как это возможно, если такие элементарные вопросы задаете? Вы сами писали коды для этих продуктов?


вопрос в таком ключе задаю не первый раз, так как ответ пока не получил/не нашёл,(извините) в том ключе который нужен. я не могу спрашивать(? 
ps я написал код для двух терминалов (для получения данных ADX) для первой и второй свечи. мне нужно получить схожие данные вводя одинаковые настройки в параметрах на мт4 и mt5.
если вы ни хотите отвечать и/или мои вопросы кажутся глупыми не важными , скажите я удалю свои сообщения (только где же мне тогда спрашивать). 
с ADX вопрос возник впервые, причём тут продукты из маркета, там ADX не используется. (я не родился со знанием MQL постепенно изучал/изучаю и конечно ещё всё не знаю.) на последний вопрос отвечать не буду мне кажется он не коррелирует ни как, с тем что я что то спрашиваю.
ps  в любом случае извините за беспокойство

 
Pavel Verveyko:

вопрос в таком ключе задаю не первый раз, так как ответ пока не получил/не нашёл,(извините) в том ключе который нужен. я не могу спрашивать(? 
ps я написал код для двух терминалов (для получения данных ADX) для первой и второй свечи. мне нужно получить схожие данные вводя одинаковые настройки в параметрах на мт4 и mt5.
если вы ни хотите отвечать и/или мои вопросы кажутся глупыми не важными , скажите я удалю свои сообщения (только где же мне тогда спрашивать). 
с ADX вопрос возник впервые, причём тут продукты из маркета, там ADX не используется. (я не родился со знанием MQL постепенно изучал/изучаю и конечно ещё всё не знаю.) на последний вопрос отвечать не буду мне кажется он не коррелирует ни как, с тем что я что то спрашиваю.
ps  в любом случае извините за беспокойство

А в чём разница, получить ADX или MACD???

Если попробовать посоревноваться с телепатами, то можно предположить что направление индексации массива не учитывается. А точней можно судить только увидев ваш код.

 
Alexey Viktorov:

А в чём разница, получить ADX или MACD???

Если попробовать посоревноваться с телепатами, то можно предположить что направление индексации массива не учитывается. А точней можно судить только увидев ваш код.


спасибо что ответили, код в сообщении выше, код простой и для чистоты эксперимента можно ограничится одной свечой №1

вот под 5

input int                ADX_Period           = 14;
input double             ADX_Level            = 42;
int handle_ADX = iADX(_Symbol,_Period,ADX_Period);
void OnStart()
{
   double temp[]; CopyBuffer(handle_ADX,0,1,1,temp);
   Print(temp[0]);
}

вот под 4-ку (какую цену выбрать в настройках 4 терминала что бы получить одинаковые/схожие цифры с 5-ым мт)

#property show_inputs
input ENUM_APPLIED_PRICE ADX_Applied_Price    = PRICE_CLOSE;
extern int               ADX_Period           = 14;
extern double            ADX_Level            = 42;
void OnStart()
{
   double ADX1 = iADX(NULL,0,ADX_Period,ADX_Applied_Price,MODE_MAIN,1);   
   Print(ADX1);
}
 
Pavel Verveyko:

спасибо что ответили, код в сообщении выше, код простой и для чистоты эксперимента можно ограничится одной свечой №1

вот под 5

вот под 4-ку (какую цену выбрать в настройках 4 терминала что бы получить одинаковые/схожие цифры с 5-ым мт)

Где-то на форуме было обсуждение вопроса по какой цене строится ADX в МТ5. Подробности не помню. Как минимум надо в mql4 поэкспериментировать, или найти ту тему и выяснить при каком параметре будут совпадать значения индикаторов.

input ENUM_APPLIED_PRICE ADX_Applied_Price    = PRICE_CLOSE;
 
Alexey Viktorov:

Где-то на форуме было обсуждение вопроса по какой цене строится ADX в МТ5. Подробности не помню. Как минимум надо в mql4 поэкспериментировать, или найти ту тему и выяснить при каком параметре будут совпадать значения индикаторов.


спасибо, вот я именно так и подумал (подобрать в 4), но, что то отличия всё равно есть. решил в первоисточнике спросить, 
про 5-ку мне ответили так, (ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированы по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.)
(но в 4-ке, путём перебора цен, я так подобрать не могу) наверно откажусь от ADX вообще. не писать же код ADX специально из 5 в 4. 
ps вот и ещё одно различие терминалов.

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

МТ4 или МТ5. Какие преимущества и недостатки?

fxsaber, 2017.12.25 14:02

Если запустить iADX, а затем \Indicators\Examples\ADX.mq5, то, вроде, полное совпадение. Значит ответ на вопрос по iADX кроется в упомянутом исходнике.

К сожалению, не увидел, чтобы разработчики, говоря, что имеется ADX.mq5, упомянули, что iADX - его копия.

Просьба в Документацию по стандартным индикаторам добавить инфу об их копиях в виде MQL5-исходников. А так я против индикаторов и баров.

 
Pavel Verveyko:

спасибо, вот я именно так и подумал (подобрать в 4), но, что то отличия всё равно есть. решил в первоисточнике спросить, 
про 5-ку мне ответили так, (ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированы по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.)
(но в 4-ке, путём перебора цен, я так подобрать не могу) наверно откажусь от ADX вообще. не писать же код ADX специально из 5 в 4. 
ps вот и ещё одно различие терминалов.

А как-же без отличий??? В разных терминалах разные котировки и соответственно по разным данным получаются разные значения.

 
Alexey Viktorov:

А как-же без отличий??? В разных терминалах разные котировки и соответственно по разным данным получаются разные значения.


конечно коррекция на котировки это нормально (понимаю/учитываю), поэтому и спрашивал , что бы знать наверняка. а то коррекция настолько большая, что истина ускользает)

Причина обращения: