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

 
fxsaber:

С барами не работаю, поэтому точно знать не могу. Хорошо, если предоставите кусок лога или скрина.

И рекомендую всегда начинать обсуждении видящейся для Вас проблемы с данными для воспроизведения.

Идеально - код + результат запуска.


Вынесенный вопрос не относится к конкретному коду, т.к. это всплывает в логе до начала собственно теста кода.

Тестирование по реальным тикам. Но в коде используются запросы из функций, использующих бары. Если это важно - Интервал в тестере стоит М1. Советник мультивалютный. 

Вот фрагмент лога на этапе подготовки к тесту:

2017.12.29 15:07:18.147 AUDCAD : 2017.06.05 00:02 - 2017.06.05 23:59  1 minute bars absent within a day while real ticks present
2017.12.29 15:07:18.147 AUDCAD : 2017.06.06 00:00 - 2017.06.06 23:59  20 minute bars absent within a day while real ticks present
2017.12.29 15:07:18.147 AUDCAD : 2017.06.07 00:00 - 2017.06.07 23:59  11 minute bars absent within a day while real ticks present
2017.12.29 15:07:18.147 AUDCAD : 2017.06.08 00:00 - 2017.06.08 23:59  4 minute bars absent within a day while real ticks present
2017.12.29 15:07:24.252 AUDCAD : real ticks begin from 2017.01.02 00:00:00
2017.12.29 15:07:24.252 AUDCAD : 2017.01.01 00:00 - 2017.12.27 00:00  36 minute bars absent in total while real ticks present
2017.12.29 15:07:24.252 AUDCAD : 2017.01.01 00:00 - 2017.12.27 00:00  last prices absent for 1069 minute bars, bid prices used
2017.12.29 15:07:30.359 AUDCHF : 2017.06.02 22:41 - 2017.06.02 23:59  1 minute bars absent within a day while real ticks present
2017.12.29 15:07:30.359 AUDCHF : 2017.06.05 00:01 - 2017.06.05 23:59  11 minute bars absent within a day while real ticks present
2017.12.29 15:07:30.359 AUDCHF : 2017.06.06 00:00 - 2017.06.06 23:59  17 minute bars absent within a day while real ticks present
2017.12.29 15:07:30.359 AUDCHF : 2017.06.07 00:00 - 2017.06.07 23:59  16 minute bars absent within a day while real ticks present
2017.12.29 15:07:30.359 AUDCHF : 2017.06.08 00:00 - 2017.06.08 23:59  7 minute bars absent within a day while real ticks present
2017.12.29 15:07:36.462 AUDCHF : real ticks begin from 2017.01.02 00:00:00
2017.12.29 15:07:36.462 AUDCHF : 2017.01.01 00:00 - 2017.12.27 00:00  52 minute bars absent in total while real ticks present
2017.12.29 15:07:36.462 AUDCHF : 2017.01.01 00:00 - 2017.12.27 00:00  last prices absent for 1069 minute bars, bid prices used
2017.12.29 15:07:42.565 AUDJPY : 2017.06.05 00:02 - 2017.06.05 23:59  4 minute bars absent within a day while real ticks present
2017.12.29 15:07:42.565 AUDJPY : 2017.06.06 00:00 - 2017.06.06 23:59  11 minute bars absent within a day while real ticks present
2017.12.29 15:07:42.565 AUDJPY : 2017.06.07 00:00 - 2017.06.07 23:59  7 minute bars absent within a day while real ticks present
2017.12.29 15:07:42.565 AUDJPY : 2017.06.08 00:00 - 2017.06.08 23:59  4 minute bars absent within a day while real ticks present
2017.12.29 15:07:48.688 AUDJPY : real ticks begin from 2017.01.02 00:00:00
2017.12.29 15:07:48.688 AUDJPY : 2017.01.01 00:00 - 2017.12.27 00:00  26 minute bars absent in total while real ticks present
2017.12.29 15:07:48.688 AUDJPY : 2017.01.01 00:00 - 2017.12.27 00:00  last prices absent for 1069 minute bars, bid prices used
2017.12.29 15:07:54.796 AUDNZD : 2017.06.05 00:02 - 2017.06.05 23:59  3 minute bars absent within a day while real ticks present
2017.12.29 15:07:54.796 AUDNZD : 2017.06.06 00:00 - 2017.06.06 23:59  9 minute bars absent within a day while real ticks present
2017.12.29 15:07:54.796 AUDNZD : 2017.06.07 00:05 - 2017.06.07 23:59  3 minute bars absent within a day while real ticks present
2017.12.29 15:07:54.796 AUDNZD : real ticks begin from 2017.01.02 00:00:00
2017.12.29 15:07:54.796 AUDNZD : 2017.01.01 00:00 - 2017.12.27 00:00  15 minute bars absent in total while real ticks present
2017.12.29 15:07:54.796 AUDNZD : 2017.01.01 00:00 - 2017.12.27 00:00  last prices absent for 1075 minute bars, bid prices used
2017.12.29 15:08:00.904 AUDUSD : 2017.06.05 00:01 - 2017.06.05 23:59  2 minute bars absent within a day while real ticks present
2017.12.29 15:08:00.904 AUDUSD : 2017.06.06 00:00 - 2017.06.06 23:59  9 minute bars absent within a day while real ticks present
2017.12.29 15:08:00.904 AUDUSD : 2017.06.07 00:00 - 2017.06.07 23:59  4 minute bars absent within a day while real ticks present
2017.12.29 15:08:00.904 AUDUSD : 2017.06.08 00:00 - 2017.06.08 23:59  2 minute bars absent within a day while real ticks present
2017.12.29 15:08:07.011 AUDUSD : real ticks begin from 2017.01.02 00:00:00
2017.12.29 15:08:07.011 AUDUSD : 2017.01.01 00:00 - 2017.12.27 00:00  17 minute bars absent in total while real ticks present
2017.12.29 15:08:07.011 AUDUSD : 2017.01.01 00:00 - 2017.12.27 00:00  last prices absent for 1070 minute bars, bid prices used
2017.12.29 15:39:33.628 connection closed
2017.12.29 15:39:33.635 stopped by user
 
Kirill Belousov:

Вынесенный вопрос не относится к конкретному коду, т.к. это всплывает в логе до начала собственно теста кода.

Тестирование по реальным тикам. Но в коде используются запросы из функций, использующих бары. Если это важно - Интервал в тестере стоит М1. Советник мультивалютный. 

Вот фрагмент лога на этапе подготовки к тесту:

Мне не хочется в этом разбираться, потому что требуется, видимо, написать еще много постов с наводящими вопросами. А сразу на них ответить Вы не хотите.

Если правильно понял, то по НЕ основному символу был получен INFO-тик с ненулевыми Bid/Ask со временем, которое соответствует отсутствующему бару.

Увы, больше понять не смог. Наводящих задавать не буду.

 
Kirill Belousov:

...

Тестирование по реальным тикам. Но в коде используются запросы из функций, использующих бары. Если это важно - Интервал в тестере стоит М1. Советник мультивалютный. 

...

В случае, если реальных тиков за тот или иной период нет, то используются тики сгенерированные тестером. Эти сообщения, как раз об этом.

Более подробно читайте в справке торгового терминала.

Разделы:

  • Алгоритмический трейдинг - Реальные и сгенерированные тики
  • Алгоритмический трейдинг - Журнал тестирования

 
Anatoli Kazharski:

В случае, если реальных тиков за тот или иной период нет, то используются тики сгенерированные тестером. Эти сообщения, как раз об этом.

Более подробно читайте в справке торгового терминала.

Разделы:

  • Алгоритмический трейдинг - Реальные и сгенерированные тики
  • Алгоритмический трейдинг - Журнал тестирования

Спасибо за участие.

Режим тестера - Every tick based on real ticks.

Т.е. мы тестируем на реальных тиках.

Посмотрим на сообщение в логе:

2017.12.29 15:07:24.252 AUDCAD : 2017.01.01 00:00 - 2017.12.27 00:00  36 minute bars absent in total while real ticks present

Мне непонятно как может быть 36 minute bars absent ЕСЛИ real ticks present

По ссылкам в справке торгового терминала я не нашел описания этого.

У брокера что - бары и тики из разных источников данных что ли?

 
Kirill Belousov:

...

У брокера что - бары и тики из разных источников данных что ли?

Выглядит, как битая история. Баров нет, но реальные тики за этот же период есть.

P.S. Написал в сервисдеск по уже ранее открытой заявке (#1910320). Нужно дополнить справку.

В справке только вот это написано:

...

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

...

 

Свежее:

Провожу оптимизацию. Решил остановить на половине (сутки тестирования). Имею полторы тысячи сетов.

Ставлю одиночный прогон. По логу вижу, что тест дошел до определенной даты и дальше сделки не открываются.

Нажимаю кнопку Stop. Вот в логе:

2017.12.29 17:05:08.071 connection closed
2017.12.29 17:05:08.072 stopped by user

А кнопка начала тестирования не перешла из состояния теста в ожидание старта. Настройки тестирования недоступны для редактирования.

Если ее нажать (кнопку Stop, которая должна быть Start), то тест начнется снова и так до бесконечности.

Билд 1730

Это баг или есть выход?

 
Kirill Belousov:

Это баг или есть выход?

У меня тестер запускается через раз в 1730. Началось все со следующего после 1653 билда. Тогда же началась беседа с разработчиками на эту тему.

По итогу в 1730 все значительно усугубилось. И иногда по несколько минут не могу запустить тестер. Пишу не для тестера по итогу.

Так же у меня 154 открытые заявки в СД, некоторые, наверное, отпразднуют свой очередной НГ. Но зато есть и 105 закрытых. Так что все хорошо!

 
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  в любом случае извините за беспокойство