про sleep в ините забыл - спасибо! так его действительно можно затормозить.
но остается вопрос как отпределить когда снимать "торомоз"? RefrashRates() - это только котировки, остается история ордеров и ... малоли чего там еще "под капотом" :(
когда iBars начнет зависеть только от прихода новых баров в соответствии со временем, тогда буря и заканчивается... также и по ордерам... определить временнОй промежуток, в течение которого изменяются данные(количество ордеров за единицу времени), если этот промежуток превышен, а данные не изменились - тогда.
также и по ордерам... определить временнОй промежуток, в течение которого изменяются данные(количество ордеров за единицу времени), если этот промежуток превышен, а данные не изменились - тогда.
хм... а как определить буря прекратилась потому что все прочитано, или потому что сервер "завис" и перестал отдавать (возможно временно) данные ?
хм... а как определить буря прекратилась потому что все прочитано, или потому что сервер "завис" и перестал отдавать (возможно временно) данные ?
резонно. сам сразу об этом подумал, но как по другому - не вижу. проверить связь, дождаться "пары-тройки" контрольных "единиц времени"...
наверно никак.
как говорится - всё что не смогли исправить - называют особенностью программы :)
------------------
хорошо что в пятерке придумали это сделать а тут наверно только одна надежда на RefreshRates.
вероятно только реинит и поможет.
тут еще интересный вопрос, на который могут ответить только разработчики: закачка истории, списка закрытых и открытых ордеров, и параметров символов - они идут паралельно несколькими потоакми или есть жесткая очередность? если все качает один поток, тогда они должны знать (и хотелось бы что бы нам сказали) что у них читается самым последним?
правда и другой вопрос есть: количество ордеров гдето хранится или определяется по числу загруженных? если хранится - значит - передается и терминал должен скачать это количество, соответственно если ордера считываются в порядке возрастания тикетов или даты создания (что тоже вопрос) то процесс окончания вычитки можно считать законченным когда я запрошу информацию по этому последнему ордеру и получу не мусор а какието адекватные данные в том же времени открытия ордера например.
господа разработчики - можете прокомментировать это?
Я решаю эту проблему путем создания переменной глобального уровня "Initialized", тип bool.
В ините устанавливая её значения в false, в старте соответственно:
if ( !Initialized ) { initialize(); Initialized = true; }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Исходная ситуация (немножко абстрактная, но тем не менее): только что (пере)установленный терминал, полных исторических данных нет, счет очень старый с огромной кучей ордеров по самым разным символам в истории, и конечно же эксперт, который чтото делает в ините - некоторые начальные настройки, зависящие от параметров счета и рабочего символа.
Трабла: init вызывается сразу же после конекта, кода в нем - всего ничего и он быстро отрабатывает и... выходит по return. вся беда в том что к моменту завершения init-а еще не все данные считаны. График все еще дергается перерисовывая закачивющуюся историю, список кучи ордеров тоже еще не весь приехал, котировки уже идут и передергивают пересчет эксперта, который проиничен неправильно :(((
Вопрос: есть ли какой то надежный признак того, что терминал получил от сервера все что ему нужно полностью готов к работе? т.е. вся история закачана, все ордера (закрытые и открытые) уже в терминале, информация для MARKETINFO уже есть для всех пар в окне навигатора.