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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
ISL
61
ISL  

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

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

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

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

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


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

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

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

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

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

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

Vladimir Karputov
Модератор
183492
Vladimir Karputov  
ISL:

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

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

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

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

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


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

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

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

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

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

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

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

ISL
61
ISL  
Vladimir Karputov:

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


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

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

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

Sergey Savinkin
2104
Sergey Savinkin  

ISL:

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

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

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

ISL
61
ISL  
Sergey Savinkin:

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

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

Sergey Savinkin
2104
Sergey Savinkin  
ISL:

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

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

ISL
61
ISL  
Sergey Savinkin:

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

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

Sergey Savinkin
2104
Sergey Savinkin  
ISL:

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

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

ISL
61
ISL  
Sergey Savinkin:

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

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

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

ISL
61
ISL  
Sergey Savinkin:

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

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

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

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

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий