Как научить советника автоматически переходить на новый фьючерс? - страница 2

 
Sergey Chalyshev:

Вот что получилось на данный момент:

Готовый скрипт с тремя независимыми функциями.

В параметрах вводится короткое наименование фьючерса, например br (можно мелким шрифтом).

На выходе полное наименование прошедшего, текущего и следующего.

Беру на заметку, Спасибо!
 
Sergey Chalyshev:

Вот что получилось на данный момент:

Готовый скрипт с тремя независимыми функциями.

В параметрах вводится короткое наименование фьючерса, например br (можно мелким шрифтом).

На выходе полное наименование прошедшего, текущего и следующего.

класс, у вас элегантнее чем у меня, возьму обязательно на заметку ))
 

Приложенный скрипт позволяет найти название подходящего символа. Вопрос - а куда его вставлять? Т.е. другими словами - как можно заменить символ на графике и в OnTick, чтобы после экспирации робот сам переключался на новый символ. 


Спасибо!

 
combat.trader:

Приложенный скрипт позволяет найти название подходящего символа. Вопрос - а куда его вставлять? Т.е. другими словами - как можно заменить символ на графике и в OnTick, чтобы после экспирации робот сам переключался на новый символ. 

ChartSetSymbolPeriod?

 
Andrey Khatimlianskii:

ChartSetSymbolPeriod?

Честно говоря, не понимаю в чем суть работы данной функции. Отрабатывает у меня без ошибок, но в следующей интерации ontick символ снова откатывается. 
Меня интересует как склеить историю квартальныз фьючерсов для тестирования. 
 
combat.trader:
Честно говоря, не понимаю в чем суть работы данной функции. Отрабатывает у меня без ошибок, но в следующей интерации ontick символ снова откатывается. 
Меня интересует как склеить историю квартальныз фьючерсов для тестирования. 

Для тестирования вам не нужно менять символ графика.

Просто анализируйте не _Symbol, а актуальный в данный момент инструмент. И торговые приказы, естественно, по нему отправляйте.

 
Andrey Khatimlianskii:

Для тестирования вам не нужно менять символ графика.

Просто анализируйте не _Symbol, а актуальный в данный момент инструмент. И торговые приказы, естественно, по нему отправляйте.


Классная идея, убрал все _Symbols и перешел на переменное значение. Но после смены символа - кто вызывает функцию OnTick() с новым символом? Я пользуюсь функцией ChartSetSymbolPeriod, но она вроде не помогает перенастроить OnTick()????

 
combat.trader:

Классная идея, убрал все _Symbols и перешел на переменное значение. Но после смены символа - кто вызывает функцию OnTick() с новым символом? Я пользуюсь функцией ChartSetSymbolPeriod, но она вроде не помогает перенастроить OnTick()????


Используйте OnBookEvent. Тогда OnTick будет ненужен.

 
Sergey Chalyshev:

Используйте OnBookEvent. Тогда OnTick будет ненужен.


Спасибо, не понял, как использовать. OnBookEvent срабатывает как только происходит изменение в стакане символа. При этом добавить символ можно через функцию MarketBookAdd, которая вызывается через Init(), который вызывается только при запуске. Как это поможет мне сменить символ в дату экспирации?

И еще параметр const string &symbol показывает, что новый символ подменить не получится через не константную переменную.

 
combat.trader:

Спасибо, не понял, как использовать. OnBookEvent срабатывает как только происходит изменение в стакане символа. При этом добавить символ можно через функцию MarketBookAdd, которая вызывается через Init(), который вызывается только при запуске. Как это поможет мне сменить символ в дату экспирации?

И еще параметр const string &symbol показывает, что новый символ подменить не получится через не константную переменную.

MarketBookAdd можно вызвать по своему условию.

А еще можно работать из таймера, проверяя - изменилась ли котировка активного в данный момент инструмента, или получая событие OnTick другого инструмента с помощью всяких костылей типа запуска индикатора, отправляющего событие в советника.