Скачать MetaTrader 5

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

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

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

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

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

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

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

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

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

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

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

Mikhail Kozhemyako
1292
Mikhail Kozhemyako  
M_Dimens:

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

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

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

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



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

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

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

ivan
313
ivan  
Ну так он перерисовывается из-за того что появляются дыры в истории
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий