Особенности языка mql5, тонкости и приёмы работы - страница 16
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а нельзя ли сделать так, что бы по команде "Открыть график" во вкладке "Бэктест" после тестирования на открывшийся график автоматически добавлялись все индикаторы, которые использовались в советнике, с соответствующими параметрами?
Пока нет.
Пока можете сохранить шаблон визуального тестирования и применить его в клиентском терминале
Пока нет.
Пока можете сохранить шаблон визуального тестирования и применить его в клиентском терминале
а если в советнике в OnDeinit делать
ChartSaveTemplate ()
с именем tester.tpl то после открытия чарта по команде "Открыть график" получится то что требуется?
а если в советнике в OnDeinit делать
ChartSaveTemplate ()
с именем tester.tpl то после открытия чарта по команде "Открыть график" получится то что требуется?
Нет. ChartSaveTemplate будет сохранять шаблон в локальную папку Files тестерного агента
Имелось в виду ручное сохранение шаблона из визуализатора через главное меню.
Tester.tpl работает только в одну сторону - от клиентского терминала к визуализатору
Нет. ChartSaveTemplate будет сохранять шаблон в локальную папку Files тестерного агента
Имелось в виду ручное сохранение шаблона из визуализатора через главное меню.
Tester.tpl работает только в одну сторону - от клиентского терминала к визуализатору
нет, это слишком геморойно, потребуется много телодвижений, да и зачастую слишком затратно делать каждый раз визуальное тестирование только для того, что бы сохранить шаблон, особенно когда приходится это делать часто...
значит нужна штатная возможность открытия графика после тестирования сразу с индикаторами.
ЗЫ. В тестере не работает. делаю так:
void OnDeinit (const int reason)
{
if(ChartSaveTemplate(0, "testersdfsdfsdfsdf"))
Print (__FUNCTION__ + ": Шаблон сохранён");
else
Print (__FUNCTION__ + ": Шаблон НЕ сохранён");
EventKillTimer ();
}
//——————————————————————————————————————————————————————————————————————————————
//——————————————————————————————————————————————————————————————————————————————
double OnTester ()
{
if(ChartSaveTemplate(0, "testersdfsdfsdfsdf"))
Print (__FUNCTION__ + ": Шаблон сохранён");
else
Print (__FUNCTION__ + ": Шаблон НЕ сохранён");
return (-DBL_MAX);
}
//——————————————————————————————————————————————————————————————————————————————
результат:
2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnTester: Шаблон НЕ сохранён
2017.03.07 12:22:15.422 Core 1 final balance 1129.18 USD
2017.03.07 12:22:15.422 Core 1 OnTester result -1.797693134862316e+308
2017.03.07 12:22:15.422 Core 1 2017.03.06 23:58:59 OnDeinit: Шаблон НЕ сохранён
{
int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen);
ChartIndicatorAdd(0, 1, indic);
Sleep(10000);
}
Цвет индикатора таким способом задать не получается.
Так почему же некоторые уверяют "это не баг, а фича"?
Впрочем официальный ответ меня полностью удовлетворил:
Мы подумаем над тем, как менять цвет и стиль индикатора из MQL5-программы.
А пока используйте входные переменные типа color для задания цвета индикатору
{
int indic = iCustom(Symbol(), Period(), "Examples\\ATR", 7, PRICE_CLOSE, clrGreen);
ChartIndicatorAdd(0, 1, indic);
Sleep(10000);
}
Цвет индикатора таким способом задать не получается.
Так почему же некоторые уверяют "это не баг, а фича"?
Впрочем официальный ответ меня полностью удовлетворил:
Потому что через хэндл индикатора (через рассчётную часть) свойства отображения (рисовательной части) задать невозможно. Баг - это когда что-то написано по-одному, а работает совсем по-другому.
Здесь нужен другой подход. Доступ к индикатору по короткому имени, как в группе функций ChartIndicatorXXX. Что-то типа ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)
Мы уже думали над этим, но пока руки не дошли
Зачем через хэндл задавать что-то? Установка цвета происходит в самом индикаторе через свойство PLOT_LINE_COLOR.
indicator_colorN задаёт лишь изначальный цвет, который меняется через PLOT_LINE_COLOR.
indicator_colorN ничем не отличается от input при вызове индикатора с последующей установкой через PLOT_LINE_COLOR.
Через хэндл вообще нельзя позволять менять такие свойства.
Да и indicator_buffers пора уже позволять задавать динамически.
Зачем через хэндл задавать что-то? Установка цвета происходит в самом индикаторе через свойство PLOT_LINE_COLOR.
indicator_colorN задаёт лишь изначальный цвет, который меняется через PLOT_LINE_COLOR.
indicator_colorN ничем не отличается от input при вызове индикатора с последующей установкой через PLOT_LINE_COLOR.
Через хэндл вообще нельзя позволять менять такие свойства.
Да и indicator_buffers пора уже позволять задавать динамически.
Про хэндл можно и не упоминать. Я сам же и сказал, что через хэндл нельзя задавать рисовательные свойства. И объяснил, почему
Не забывайте, что кроме кастомных индикаторов есть ещё и встроенные, которым тоже надо менять цвет после программного добавления на график.
Я предлагаю только расширить функции вызова индикатора:
Больше ничего добавлять не нужно.
Я предлагаю только расширить функции вызова индикатора: