Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1131

 
Alexey Viktorov:

Артём, ты не обратил внимание на то, что тип DRAW_COLOR_HISTOGRAM2 и у него два буфера данных и третий буфер цвета.

Да, верно. Не обратил.

 
Artyom Trishkin:

Да, верно.

В общем, да. Первый буфер используется для вычислений, DRAW_COLOR_HISTOGRAM2 рисуется по двум координатам/буферам + нужен ещё один для цвета.


Alexey Viktorov:

А почему эта строка закомментирована

В неё хоть и другие цвета но должны быть вписаны. Или хотя-бы один, но декларация быть должна.

Я использую либо

#property indicator_color2 GreenC,RedC

либо

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);

т.е. что-то одно, и полагал, что они взаимозаменяемы как и в MQL4, т.е. отсутствие директивы препроцессора для задания цвета заменяется функцией PlotIndexSetInteger(). В MQL5 это не так?

 
The_Sheikh:

В общем, да. Первый буфер используется для вычислений, DRAW_COLOR_HISTOGRAM2 рисуется по двум координатам/буферам + нужен ещё один для цвета.


Я использую либо

#property indicator_color2 GreenC,RedC

либо

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);

т.е. что-то одно, и полагал, что они взаимозаменяемы как и в MQL4, т.е. отсутствие директивы препроцессора для задания цвета заменяется функцией PlotIndexSetInteger(). В MQL5 это не так?

Ну вы-же даёте отрывки документации. А почему-же не досконально всё там изучаете? Ведь в примере директива присутствует независимо от наличия PlotIndexSetInteger

 
Alexey Viktorov:

Ну вы-же даёте отрывки документации. А почему-же не досконально всё там изучаете? Ведь в примере директива присутствует независимо от наличия PlotIndexSetInteger

Да, документацию я изучил, в примере директива присутствует, но извините, я не заметил там абзаца, в котором бы говорилось, что директива должна присутствовать обязательно, поэтому по привычке исключаю директиву как в MQL4.

В документации так же сказано, что для графического построения можно использовать до 64-х цветов. Но я не нашёл там способа, назначить число такой палитры без монотонного перечисления каждого цвета после директивы.

Тем не менее вопрос исчерпан.

 
The_Sheikh:

Да, документацию я изучил, в примере директива присутствует, но извините, я не заметил там абзаца, в котором бы говорилось, что директива должна присутствовать обязательно, поэтому по привычке исключаю директиву как в MQL4.

В документации так же сказано, что для графического построения можно использовать до 64-х цветов. Но я не нашёл там способа, назначить число такой палитры без монотонного перечисления каждого цвета после директивы.

Тем не менее вопрос исчерпан.

А вот это

#define GreenC 0x00FF00
#define RedC 0x0000FF

никак нельзя менять в цикле? Я с этим вообще не дружу и потому не знаю.

Ведь массив цветов можно заполнить и в цикле из другого массива. Там в примере есть массив color colors = {}; где перечислены цвета. А потом из него заполняется тот "служебный" массив посредством PlotIndexSetInteger(1,PLOT_LINE_COLOR, индекс_в_массиве, цвет);

 

Качаю с разных мест котировки, и вижу часто гепы в 1-2 бара, данных просто нет

Как их можно заполнить с минимальной потерей информации? Есть какие то алгоритмы?

Уверен метатрейдер этим занимается

 
Roman Sharanov:

Качаю с разных мест котировки, и вижу часто гепы в 1-2 бара, данных просто нет

Как их можно заполнить с минимальной потерей информации? Есть какие то алгоритмы?

Уверен метатрейдер этим занимается

MetaTrader как раз не заполняет дыры - если есть бар, он будет отрисован, если бара нет - он будет пропущен.

 
Vladimir Karputov:

Вот проверочный эксперт - всё отрабатывает правильно:

и результат:

Спасибо за подробный ответ. Обнаружилось, что ошибка наблюдается только при тестировании эксперта на истории, если подключать к реальным данным –   все ок.

Если запустить вашего эксперта под отладкой на исторических данных рассчитывает некорректно:

2019.10.08 02:10:14.425 2019.01.01 00:00:00   Volume 1.0, profit -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00   Volume 0.5, profit -> -50.00


 
aveshoff:

Спасибо за подробный ответ. Обнаружилось, что ошибка наблюдается только при тестировании эксперта на истории, если подключать к реальным данным –   все ок.

Если запустить вашего эксперта под отладкой на исторических данных рассчитывает некорректно:

2019.10.08 02:10:14.425 2019.01.01 00:00:00   Volume 1.0, profit -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00   Volume 0.5, profit -> -50.00


Пожалуйста дайте полную информацию: полный код, символ, таймфрейм, сколько позиций и по каким символам открыто - в общем чтобы можно было воспроизвести ситуацию. 

 

Добрый день!

Не подскажете как по ID эксперта узнать какой это эксперт

ID 11032019, не могу понять где найти?

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