К вопросу о мультивалютности и синхронизации

 

С начало провокация.

Поскольку терминал MetaTrader5 позиционируется как мультивалютный, то не пора ли ввести такое понятие как "мультичарт".

Для пояснения дадим определение чарту:

Чарт - это композиционный объект терминала, 

  1. работающий в отдельном потоке
  2. имеющий внутри объект графического отображения (с настройками)
  3. объект исполнения скриптов
  4. объект доступа к базе данных (на самом деле он загружает данные себе их архива)

Вроде ничего не забыл.

По аналогии с чартом, мультичарт - это объект содержащий в себе несколько чартов с оговорками,

  1. настройки объектов графического отображения едины
  2. объект исполнения скриптов один но многопоточный (а приходящие тики по любому инструменту мультичарта приводят к вызову функции OnTick или OnCalculate)
  3. данные базы синхронизированы (те 1002 бар по EURUSD равен по времени 1002 бару по USDCHF, то бишь и rates_total у них одинаков, отсутствующие бары заполняются значением close предыдущего бара)

Можно ещё что нибудь добавить для общения (передачи данных) между потоками.

 

это не провокация, а крик души.
 
sergeev:

это не провокация, а крик души.
Человек такая сволочь что может приспособиться ко всему, так что моя душа не особо кричит, но жить мультивалютчикам станет намного легче.
 
Urain:

Поскольку терминал MetaTrader5 позиционируется как мультивалютный, то не пора ли ввести такое понятие как "мультичарт".

Отличная тема.

Urain:

По аналогии с чартом, мультичарт - это объект содержащий в себе несколько чартов с оговорками,

  1. настройки объектов графического отображения едины
  2. объект исполнения скриптов один но многопоточный (а приходящие тики по любому инструменту мультичарта приводят к вызову функции OnTick или OnCalculate)
  3. данные базы синхронизированы (те 1002 бар по EURUSD равен по времени 1002 бару по USDCHF, то бишь и rates_total у них одинаков, отсутствующие бары заполняются значением close предыдущего бара)

4. Можно ещё что нибудь добавить для общения (передачи данных) между потоками.

  1. Это ограничивает. Для каждого инструмента должны быть свои настройки. Более того, должна быть возможность построения синтетических графиков со своими настройками.
  2. Ок. В идеале должно быть так.  
  3. Если речь идет только об едином таймфрейме для всех инструментов , то да.  Но в общем случае таймфрейм может быть разным или вообще не укладывающийся в линейку стандартных таймфреймов. Например при синтетических графиках. Поэтому rates_total не обязательно должен быть одинаков. Но синхронизация данных по времени должна быть.
  4. Самое узкое место, на мой взгляд.

 
Lizar:

Отличная тема.

  1. Это ограничивает. Для каждого инструмента должны быть свои настройки. Более того, должна быть возможность построения синтетических графиков со своими настройками.
  2. Ок. В идеале должно быть так.  
  3. Если речь идет только об едином таймфрейме для всех инструментов , то да.  Но в общем случае таймфрейм может быть разным или вообще не укладывающийся в линейку стандартных таймфреймов. Например при синтетических графиках. Поэтому rates_total не обязательно должен быть одинаков. Но синхронизация данных по времени должна быть.
  4. Самое узкое место, на мой взгляд.

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

Если инструменты будут независимыми то их вполне можно юзать отдельно, в том то и суть что кому то нужны отдельные чарты и они совсем не обрадуются повсеместному объединению, кому то наоборот по зарез необходим мультичарт с заданным количеством валют. Реализовать такой объект MQ по силам, а дав выбор между чартом и мультичартом трейдеру/программисту терминал только выиграет.

Реализация мультивалютного режима в MetaTrader 5
Реализация мультивалютного режима в MetaTrader 5
  • 2011.01.10
  • Konstantin Gruzdev
  • www.mql5.com
Интерес к мультивалютному анализу и мультивалютной торговле существует давно. Но только с выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность реализации полноценного мультивалютного режима. В данной статье предложен способ, позволяющий проводить анализ и обработку всех поступающих тиков по множеству финансовых инструментов. В качестве иллюстрации рассмотрен мультивалютный индикатор RSI для индекса доллара USDx.
 
Urain:

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

Если инструменты будут независимыми то их вполне можно юзать отдельно, в том то и суть что кому то нужны отдельные чарты и они совсем не обрадуются повсеместному объединению, кому то наоборот по зарез необходим мультичарт с заданным количеством валют. Реализовать такой объект MQ по силам, а дав выбор между чартом и мультичартом трейдеру/программисту терминал только выиграет.

Понял. Думал, что это более широкая тема. Естественно, что это будет лучше. Как минимум, отдельный класс торговых систем можно реализовать на таком мультичарте.

 
А мультивалютный (нативный) OnTick разве не решит всех проблем?
 
TheXpert:
А мультивалютный (нативный) OnTick разве не решит всех проблем?

Частично, останутся вопросы синхронизации истории,

плюс возможно в рамках такой песочницы получится решить вопрос обмена данными между потоками (хотя это не так актуально, но дополнительные плюсы всё же есть).

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

 
Urain:

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

А как же отсутствующие бары?
 
TheXpert:
А как же отсутствующие бары?
Ну так я же говорил выше что данные у мультичарта должны быть синхронизированными, не внимательно читаешь (пп3 в описании мультичарта, первый пост).
 
Urain:
не внимательно читаешь (пп3 в описании мультичарта, первый пост).

Нет. Я внимательно читаю.

Что делать с теми барами, на которых у инструмента просто не было тиков целый бар?

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