Эксперт на пользовательском индикаторе
Доброе утро, форумчане.
Думаю мой вопрос уже обсуждался десятки раз. Но ответ найти не мог((((
Вопрос звучит следующим образом:
Создан пользовательский индикатор, строит линию на графике(считалась средняя средних и т.д.). Этот индикатор считается на основе многих символов, сами символы задаются во внешних параметрах при запуске индикатора. Их может быть от 2 до 20. На основе всех этих пар строится средняя.
Далее я создаю эксперта, который обращается к индикатору, применяю
iCustom(Возвращает хэндл указанного пользовательского индикатора.)
int iCustom( |
Я так понимаю,это первая форма вызова. Когда пользовательский индикатор считается на основе передаваемого символа.
НО, у меня под капотом индикатора их много. Например считаю индикатор на основе EURUSD,GBPUSD,NZDUSD.
Далее делаю эксперта, и чтобы доставать данные индикатора по первой форме вызова я должен передать символ на основе которого он считается, но блин он считается на основе многих.
Делема, как в EURUSD торговать эксперту, который основывается на индикаторе от EURUSD,GBPUSD,NZDUSD.
Не совсем верно в Вашем случае. Неверно: "... пользовательский индикатор считается на основе передаваемого символа ...", верно так: "... пользовательский индикатор ПРИКРЕПЛЯЕТСЯ к символу указанному в переменной symbol , а все расчёты он производит всё-равно внутри по своим заданным параметрам. А вот эти параметры (от 2-х и более) нужно передать через iCustom в списке входных параметров".
Не совсем верно в Вашем случае. Неверно: "... пользовательский индикатор считается на основе передаваемого символа ...", верно так: "... пользовательский индикатор ПРИКРЕПЛЯЕТСЯ к символу указанному в переменной symbol , а все расчёты он производит всё-равно внутри по своим заданным параметрам. А вот эти параметры (от 2-х и более) нужно передать через iCustom в списке входных параметров".
Спасибо, Владимир!!!
Ошибка закралась в другом месте. У меня неправильно определялся текущий символ.
Я так понимаю, что текущий символ берется из окна обзора рынка, т.е. тот символ который там самый первый? Просто пока я не поставил нужный символ в самый вверх, в отладке открывал то окно, которое первое в обзоре рынка.
ISL:
Ошибка закралась в другом месте. У меня неправильно определялся текущий символ.
Я так понимаю, что текущий символ берется из окна обзора рынка, т.е. тот символ который там самый первый? Просто пока я не поставил нужный символ в самый вверх, в отладке открывал то окно, которое первое в обзоре рынка.
Это очень странно. Символ берется с графика, на котором у Вас запущен эксперт или индикатор. Получается константой _Symbol или методом Symbol().
Это очень странно. Символ берется с графика, на котором у Вас запущен эксперт или индикатор. Получается константой _Symbol или методом Symbol().
Когда я просто запускаю индикатор или эксперта, на выделенном графике, все норм. Но вот если я запуская отладку с точкой останова, то у меня открывается и сам график , того символа который первый в обзоре рынка и переменная Symbol() в наблюдении равна тоже равна этой странной паре)
Когда я просто запускаю индикатор или эксперта, на выделенном графике, все норм. Но вот если я запуская отладку с точкой останова, то у меня открывается и сам график , того символа который первый в обзоре рынка и переменная Symbol() в наблюдении равна тоже равна этой странной паре)
В метаэдиторе выберите "Сервис / Настройки / Отладка / Символ". И будет Вам счастье.
В метаэдиторе выберите "Сервис / Настройки / Отладка / Символ". И будет Вам счастье.

А что вписать, мне же нужен будет постоянно действующий символ? Или надо будет при отладке, каждый раз вписывать тот символ который мне нужен в данный момент?
А что вписать, мне же нужен будет постоянно действующий символ? Или надо будет при отладке, каждый раз вписывать тот символ который мне нужен в данный момент?
Он сохраняется.
Он сохраняется.
Если я тестю в данный момент сбер,я туда вписываю сбер, завтра я хочу потестировать BTC, надо будет вписать BTC? Правильно?
Для отладки - да.
Для отладки - да.
Все понял! Только начал изучение, и вы уже мне очень помогли)
Спасибо огромное!
В будущем при возникновении вопросов(а возникать они будут), лучше создавать новую тему, или есть ветка, где все всё подряд спрашивают?
Доброе утро, форумчане.
Думаю мой вопрос уже обсуждался десятки раз. Но ответ найти не мог((((
Вопрос звучит следующим образом:
Создан пользовательский индикатор, строит линию на графике(считалась средняя средних и т.д.). Этот индикатор считается на основе многих символов, сами символы задаются во внешних параметрах при запуске индикатора. Их может быть от 2 до 20. На основе всех этих пар строится средняя.
Далее я создаю эксперта, который обращается к индикатору, применяю
iCustom(Возвращает хэндл указанного пользовательского индикатора.)
int iCustom(
string symbol, // имя символа
ENUM_TIMEFRAMES period, // период
string name // папка/имя_пользовательского индикатора
... // список входных параметров индикатора
);
Я так понимаю,это первая форма вызова. Когда пользовательский индикатор считается на основе передаваемого символа.
НО, у меня под капотом индикатора их много. Например считаю индикатор на основе EURUSD,GBPUSD,NZDUSD.
Далее делаю эксперта, и чтобы доставать данные индикатора по первой форме вызова я должен передать символ на основе которого он считается, но блин он считается на основе многих.
Делема, как в EURUSD торговать эксперту, который основывается на индикаторе от EURUSD,GBPUSD,NZDUSD.