Синхронизация истории с сервером - страница 2

 
pavlick_:

...

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

Добро пожаловать в реальный мир! Между Вами и сервером - много звеньев: шлюзы, сетевая инфраструктура... Кроме того, если Вы хотите целостность данных никто за Вас это проверять не будет. Самый лучший вариант я уже предлагал:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Синхронизация истории с сервером

Karputov Vladimir, 2016.08.27 18:52

Работайте из индикатора.

В индикаторе, в OnCalculate следите когда переменная "prev_calculated" получает значение "0". Такое может быть в двух случаях:

  • первый запуск индикатора
  • была подкачана/изменена история.


 
Karputov Vladimir:

Добро пожаловать в реальный мир! Между Вами и сервером - много звеньев: шлюзы, сетевая инфраструктура... Кроме того, если Вы хотите целостность данных никто за Вас это проверять не будет. Самый лучший вариант я уже предлагал:


Ну да, конечно, рассказывайте. Вы пишите это сообщение в том числе благодаря тому, что разработчики различных вещей дают много гарантий: инструкции процессора, апи ос, протокол tcp/ip, ... . Но MT4 - это совсем другое дело, это реальный мир и никаких гарантий )).
 
Karputov Vladimir:

Добро пожаловать в реальный мир! Между Вами и сервером - много звеньев: шлюзы, сетевая инфраструктура... Кроме того, если Вы хотите целостность данных никто за Вас это проверять не будет. Самый лучший вариант я уже предлагал:


Владимир, это всё чудесно, но если нужно получать данные не своего символа? Да не одного, а более тысячи... Что присоветуешь?
 
pavlick_:
Ну да, конечно, рассказывайте. Вы пишите это сообщение в том числе благодаря тому, что разработчики различных вещей дают много гарантий: инструкции процессора, апи ос, протокол tcp/ip, ... . Но MT4 - это совсем другое дело, это реальный мир и никаких гарантий )).

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

И реальную тиковую историю, как для форексных, так и для биржевых символов уже используют миллионы трейдеров - те кто перешёл на современный биржевой терминал MetaTrader 5.

 
Artyom Trishkin:
Владимир, это всё чудесно, но если нужно получать данные не своего символа? Да не одного, а более тысячи... Что присоветуешь?
Самое простое и эффективное решение - CopyTicks + MetaTrader 5.
 
Artyom Trishkin:
Владимир, это всё чудесно, но если нужно получать данные не своего символа? Да не одного, а более тысячи... Что присоветуешь?
Правда интересуетесь, или лишь бы поговорить?
 
Karputov Vladimir:
Самое простое и эффективное решение - CopyTicks + MetaTrader 5.

Асинхронная же функция. Запрос может выполняться тучу времени. Гарантии никакой нет - слова не мои, а разработчиков.

Проблема такая же, как и с побаровой историей. Но сама проблема почти придуманная, в реальной жизни. Гарантия доставки истории 99.99%, если следовать советам в ветке. Больше надо бояться человеческого фактора.

 
fxsaber:

Асинхронная же функция. ...

Серьезно?
 
fxsaber:

Асинхронная же функция. Запрос может выполняться тучу времени. Гарантии никакой нет - слова не мои, а разработчиков.

Проблема такая же, как и с побаровой историей. Но сама проблема почти придуманная, в реальной жизни. Гарантия доставки истории 99.99%, если следовать советам в ветке. Больше надо бояться человеческого фактора.

Конечно время выполнения зависит от нескольких факторов:

  • это был первый запрос тиков на данном символе и на данном торговом сервере или не первый
  • количество запрошенных данных
  • скорость интернета, в конце концов

Но с чего Вы решили, что можете говорить: "Гарантии никакой нет"? Если хоть немного подумать и принять во внимание факторы описанные мной выше, то напрашивается простое решение - делаете запрос один раз - сравниваете количество полученных тиков (можно ещё дополнительно даты тиков в начале и в конце массива). Через определённый промежуток делаете повторный запрос - снова сравниваете. И так делать пока данные в последнем запросе и в предпоследнем не будут равны.

 
Dmitry Fedoseev:
Правда интересуетесь, или лишь бы поговорить?

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

ЗЫ. А бывает так, что данные говорят что есть, а Point символа нулевой, при этом символ в обзоре рынка есть - я его предварительно туда размещаю, проверяю его наличие, а уж затем запрашиваю исторические данные, и при их наличии - уже все остальные нужные по символу данные для поиска сигналов. Всё делаю в индикаторе.

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