Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не можешь разобраться в коде? Возможно, на эту тему уже написана статья!
satorifx
45
satorifx 2014.02.17 09:11 
Добрый день.

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

Имеется проблема: на старте терминала индикатор еще до подгрузки последней истории успевает просчитать все таймы и выдать последние сигналы. После этого подгружается последняя история по всем таймам, и индикатор опять сигналит уже новыми сигналами по последним подгруженным барам.

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

Вопрос: как это можно реализовать? Т.е. другими словами: как гарантированно узнать, что уже подгружены все последние котировки, после чего можно будет пустить в ход расчет линий индикатора?

Делал это простой задержкой расчетов в индикаторе на 60с. Помогает, но это не вариант. Думаю, есть и другие - более красивые и правильные методы.
Yuriy Zaytsev
11654
Yuriy Zaytsev 2014.02.17 09:55  
satorifx:
Добрый день.

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

Имеется проблема: на старте терминала индикатор еще до подгрузки последней истории успевает просчитать все таймы и выдать последние сигналы. После этого подгружается последняя история по всем таймам, и индикатор опять сигналит уже новыми сигналами по последним подгруженным барам.

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

Вопрос: как это можно реализовать? Т.е. другими словами: как гарантированно узнать, что уже подгружены все последние котировки, после чего можно будет пустить в ход расчет линий индикатора?

Делал это простой задержкой расчетов в индикаторе на 60с. Помогает, но это не вариант. Думаю, есть и другие - более красивые и правильные методы.

А если первый раз запускать в OnInit() ?

satorifx
45
satorifx 2014.02.17 10:24  
YuraZ:

А если первый раз запускать в OnInit() ?


Не совсем понимаю, что запускать в OnInit()?

В любом случае первый расчет идет после OnInit(), что дает ооооочень маленькую, но задержку. Но этого совершенно недостаточно.

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

Yuriy Zaytsev
11654
Yuriy Zaytsev 2014.02.17 10:34  
satorifx:

Не совсем понимаю, что запускать в OnInit()?

В любом случае первый расчет идет после OnInit(), что дает ооооочень маленькую, но задержку. Но этого совершенно недостаточно.


У себя - если мне нужно получать некоторые расчеты до запуска OnTiket или OnTime запускаю первый старт в OnInit()


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

>>Вопрос: как это можно реализовать? Т.е. другими словами: как гарантированно узнать, что уже подгружены все последние котировки,

Попробуйте запускать в OnInit, там же вычисляйте подгружены ли все последние котировки

впрочем - не совсем понятно - что у Вас и как работает

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