Эксперт на пользовательском индикаторе

 

Доброе утро, форумчане.

Думаю мой вопрос уже обсуждался десятки раз. Но ответ найти не мог((((

Вопрос звучит следующим образом:

Создан пользовательский индикатор, строит линию на графике(считалась средняя средних и т.д.). Этот индикатор считается на основе многих символов, сами символы задаются во внешних параметрах при запуске индикатора. Их может быть от 2 до 20. На основе всех этих пар строится средняя.

Далее я создаю эксперта, который обращается к индикатору, применяю


iCustom(Возвращает хэндл указанного пользовательского индикатора.)

int  iCustom(
   string           symbol,     // имя символа
   ENUM_TIMEFRAMES  period,     // период
   string           name        // папка/имя_пользовательского индикатора
   ...                          // список входных параметров индикатора
   );

Я так понимаю,это первая форма вызова. Когда пользовательский индикатор считается на основе передаваемого символа.

НО, у меня под капотом индикатора их много. Например считаю индикатор на основе EURUSD,GBPUSD,NZDUSD.

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

Делема, как в EURUSD торговать эксперту, который основывается на индикаторе от EURUSD,GBPUSD,NZDUSD.

 
ISL:

Доброе утро, форумчане.

Думаю мой вопрос уже обсуждался десятки раз. Но ответ найти не мог((((

Вопрос звучит следующим образом:

Создан пользовательский индикатор, строит линию на графике(считалась средняя средних и т.д.). Этот индикатор считается на основе многих символов, сами символы задаются во внешних параметрах при запуске индикатора. Их может быть от 2 до 20. На основе всех этих пар строится средняя.

Далее я создаю эксперта, который обращается к индикатору, применяю


iCustom(Возвращает хэндл указанного пользовательского индикатора.)

int  iCustom(
   string           symbol,     // имя символа
   ENUM_TIMEFRAMES  period,     // период
   string           name        // папка/имя_пользовательского индикатора
   ...                          // список входных параметров индикатора
   );

Я так понимаю,это первая форма вызова. Когда пользовательский индикатор считается на основе передаваемого символа.

НО, у меня под капотом индикатора их много. Например считаю индикатор на основе EURUSD,GBPUSD,NZDUSD.

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

Делема, как в EURUSD торговать эксперту, который основывается на индикаторе от EURUSD,GBPUSD,NZDUSD.

Не совсем верно в Вашем случае. Неверно: "... пользовательский индикатор считается на основе передаваемого символа ...", верно так: "... пользовательский индикатор ПРИКРЕПЛЯЕТСЯ к символу указанному в переменной symbol , а все расчёты он производит всё-равно внутри по своим заданным параметрам. А вот эти параметры (от 2-х и более) нужно передать через iCustom в списке входных параметров".

 
Vladimir Karputov:

Не совсем верно в Вашем случае. Неверно: "... пользовательский индикатор считается на основе передаваемого символа ...", верно так: "... пользовательский индикатор ПРИКРЕПЛЯЕТСЯ к символу указанному в переменной symbol , а все расчёты он производит всё-равно внутри по своим заданным параметрам. А вот эти параметры (от 2-х и более) нужно передать через iCustom в списке входных параметров".


Спасибо, Владимир!!!

Ошибка закралась в другом месте. У меня неправильно определялся текущий символ.

Я так понимаю, что текущий символ берется из окна обзора рынка, т.е. тот символ который там самый первый? Просто пока я не поставил нужный символ в самый вверх, в отладке открывал то окно, которое первое в обзоре рынка.

 

ISL:

Ошибка закралась в другом месте. У меня неправильно определялся текущий символ.

Я так понимаю, что текущий символ берется из окна обзора рынка, т.е. тот символ который там самый первый? Просто пока я не поставил нужный символ в самый вверх, в отладке открывал то окно, которое первое в обзоре рынка.

Это очень странно. Символ берется с графика, на котором у Вас запущен эксперт или индикатор. Получается константой _Symbol или методом Symbol().

 
Sergey Savinkin:

Это очень странно. Символ берется с графика, на котором у Вас запущен эксперт или индикатор. Получается константой _Symbol или методом Symbol().

Когда я просто запускаю индикатор или эксперта, на выделенном графике, все норм. Но вот если я запуская отладку с точкой останова, то у меня открывается и сам график , того символа который первый в обзоре рынка и переменная Symbol() в наблюдении равна тоже равна этой странной паре)

 
ISL:

Когда я просто запускаю индикатор или эксперта, на выделенном графике, все норм. Но вот если я запуская отладку с точкой останова, то у меня открывается и сам график , того символа который первый в обзоре рынка и переменная Symbol() в наблюдении равна тоже равна этой странной паре)

В метаэдиторе выберите "Сервис / Настройки / Отладка / Символ". И будет Вам счастье.

 
Sergey Savinkin:

В метаэдиторе выберите "Сервис / Настройки / Отладка / Символ". И будет Вам счастье.

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

 
ISL:

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

Он сохраняется.

 
Sergey Savinkin:

Он сохраняется.

Если я тестю в данный момент сбер,я туда вписываю сбер, завтра я хочу потестировать BTC, надо будет вписать BTC? Правильно?
 
ISL:
Если я тестю в данный момент сбер,я туда вписываю сбер, завтра я хочу потестировать BTC, надо будет вписать BTC? Правильно?

Для отладки - да.

 
Sergey Savinkin:

Для отладки - да.

Все понял! Только начал изучение, и вы уже мне очень помогли)

Спасибо огромное!

В будущем при возникновении вопросов(а возникать они будут), лучше создавать новую тему, или есть ветка, где все всё подряд спрашивают?

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