Синхронизация мультивалютника

 

Доброго времени суток! Имею мультивалютный советник... все работает нормально, но наступает момент когда начинают идти сбои. Повесил индикатор 2х тестируемых валют и замечаю что открывает позы в соответствии с системой все хорошо, обнавляю чарт и оп - индикатор смежной валюты перестраивается и уже открытая позиция не соответствует графику, а в логе пишет - загружено баров столько то. Как сделать синхронизацию? Была мыля както осуществить обновление чарта на каждом тике, может есть более разумное решение.

Помогите найти или подскажите кодом или источник подскажите. Благодарю за внимание, а возможно и за помощь.

 
Все зависит от того на какой инструмент вы свой мультивалютник повсесили. Так как срабатывает по функции старт, а это значит тик по паре должен придти, если повесил мульти на какуенебуть экзотичесскую пару, то тика можно и не дожждаться
 
Sepulca:
Все зависит от того на какой инструмент вы свой мультивалютник повсесили. Так как срабатывает по функции старт, а это значит тик по паре должен придти, если повесил мульти на какуенебуть экзотичесскую пару, то тика можно и не дожждаться
В новых билдах есть таймер и соответствующее событие (функция) запускаемое таймером. Можно пару раз в минуту насильственно синхронизировать. Как именно не знаю, может и перезагрузкой чарта, а может есть и более экологичный способ.
 
Можно не ждать тик по паре, а вычислить котировку нужной пары самому из других пар
 
M_Dimens:
Можно не ждать тик по паре, а вычислить котировку нужной пары самому из других пар

Да не получится, покрайней мере, сейчас в стабильной 509-ой версии. Потому что ваш советник запускается по тику инструмента, на который поставлен. Да в следующих версиях это будет, и это хорошо.
 
Sepulca:

Да не получится, покрайней мере, сейчас в стабильной 509-ой версии. Потому что ваш советник запускается по тику инструмента, на который поставлен. Да в следующих версиях это будет, и это хорошо.

Получится запускаем советник на "основной паре" EUR/USD берем котировки по парам GBPUSD USDCHF USDJPY AUDUSD NZDUSD и вычисляем все остальные пары .

EURUSD*USDCHF=EURCHF EURCHF*CHFUSD=EURUSD и.т.д.

сравниваем времена расчетных котировок и текущих котировок брокера между собой, передаем информацию для других советников.

Остается только проблема как с эмитировать тик на каком либо кроссе по которому не было тиков что-бы открыть позицию

 
M_Dimens:

Получится запускаем советник на "основной паре" EUR/USD берем котировки по парам GBPUSD USDCHF USDJPY AUDUSD NZDUSD и вычисляем все остальные пары .

EURUSD*USDCHF=EURCHF EURCHF*CHFUSD=EURUSD и.т.д.

сравниваем времена расчетных котировок и текущих котировок брокера между собой, передаем информацию для других советников.

Остается только проблема как с эмитировать тик на каком либо кроссе по которому не было тиков что-бы открыть позицию



Нет, в текущей версии никак. Ну берём основную пару EURUSD, как самую активную. Но ведь функция start() запустится только по приходу нового тика. Нельзя взять свежие котировки с других пар, пока не придёт тик по паре, на которой установлен советник. Тут надо либо init() как нибудь зацикливать, либо ждать выхода свежей версии, там вроде будет возможность запускать код по времени.
 

Синхронизация, скорее всего, ни при чем. У топикстартера при обновлении чарта перерисовались показания индикатора.

Здесь сначала нужно смотреть индикатор.

 
Ну так он перерисовывается из-за того что появляются дыры в истории