Здравствуйте.
Есть код:
Что будет с данными в параметрах OrderNum1 и OrderNum2 в случае:
1) Если терминал перезагрузится.
2) Если произойдет потеря связи с сервером ДЦ (затем связь восстановится)
Меня интересует как MT4, так и MT5.
Ничего не будет! А что вы хотите чтобы было?
Что произойдет со значениями в этих 2ух случаях?
В параметры OrderNum1 и OrderNum2 были сохранены значения тикетов ордеров.
Что произойдет со значениями в этих 2ух случаях?
kira36:
В параметры OrderNum1 и OrderNum2 были сохранены значения тикетов ордеров.
Что произойдет со значениями в этих 2ух случаях?
в мт4 int OrderSend() Основная функция, используемая для совершения торговых операций или установки отложенного ордера.
1) Если терминал перезагрузится.
до OrderSend значения int OrderNum1; int OrderNum2; будут не определены EMPTY_VALUE
2) Если произойдет потеря связи с сервером ДЦ (затем связь восстановится)
до следующего обращения к OrderSend значения int OrderNum1; int OrderNum2; сохранятся от предыдущего обращения или если предыдущего нет, то EMPTY_VALUE
в мт5 Функция bool OrderSend() предназначена для совершения торговых операций через отправку запросов на торговый сервер. это не тикет, a только ответ отправил или нет , true или false
1) Если терминал перезагрузится.
до OrderSend значения int OrderNum1; int OrderNum2; будут не определены EMPTY_VALUE
2) Если произойдет потеря связи с сервером ДЦ (затем связь восстановится)
до следующего обращения к OrderSend значения int OrderNum1; int OrderNum2; сохранятся от предыдущего обращения но будут true или false , если предыдущего нет, то EMPTY_VALUE
при перезагрузке терминала происходит переинициализация переменных
при потере связи , переинициализации переменных не происходит
пишите в GlobalVariableSet() Глобальные переменные существуют в клиентском терминале 4 недели с момента последнего обращения
думаю так, но лучше проверить , т.е сделайте распринтовку
Здравствуйте.
Есть код:
Что будет с данными в параметрах OrderNum1 и OrderNum2 в случае:
1) Если терминал перезагрузится.
2) Если произойдет потеря связи с сервером ДЦ (затем связь восстановится)
Меня интересует как MT4, так и MT5.
Скажу только за МТ4. При перезагрузке - переинициализация и, как следствие, обнуление. Причём даже если у тебя советник уже работает на счёте, и ты его правишь и перекомпилируешь, то произойдёт также обнуление. Более того, переинициализация происходит если менять таймфрейм графику, на котором работает советник. Я это проблему в своём роботе решил путём сохранения необходимых переменных в файлы. Если интересуют подробности - спрашивай
При временном обрыве соединения с переменными ничего не происходит, но данные в них могут утратить актуальность, в зависимости от их назначения разумеется.
Скажу только за МТ4. При перезагрузке - переинициализация и, как следствие, обнуление. Причём даже если у тебя советник уже работает на счёте, и ты его правишь и перекомпилируешь, то произойдёт также обнуление. Более того, переинициализация происходит если менять таймфрейм графику, на котором работает советник. Я это проблему в своём роботе решил путём сохранения необходимых переменных в файлы. Если интересуют подробности - спрашивай
При временном обрыве соединения с переменными ничего не происходит, но данные в них могут утратить актуальность, в зависимости от их назначения разумеется.
Переинициализация вовсе не означает обнуление глобальных переменных. Просто вызывается OnInit(). Глобальные переменные обнуляются только при старте программы. Я в OnInit делаю вот так, чтобы не реагировать на смены ТФ и прочие мелочи.
int OnInit() { if(LastDeinitReason==REASON_CHARTCHANGE || LastDeinitReason==REASON_TEMPLATE) { LastDeinitReason = 0; return(INIT_SUCCEEDED); } OpenLogFiles(); #ifdef USE_MMF if(UseMMF) { if(!OpenMMF()) Alert("MMF не инициализирован"); } #endif SetThresholdArrays(); if(ArraySize(SmartDspArr) == 0) CreateStrategies(); else ChangedParams(); if(!IsRunOnTester()) //EventSetMillisecondTimer(MILLISEC_TIMER_INTERVAL); EventSetTimer(SEC_TIMER_INTERVAL); LastDeinitReason = 0; return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { LastDeinitReason = reason; if(reason==REASON_CHARTCHANGE || reason==REASON_TEMPLATE) return; EventKillTimer(); DeleteStrategies(); #ifdef USE_MMF if(UseMMF) CloseMMF(); #endif CloseLogFiles(); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть код:
Что будет с данными в параметрах OrderNum1 и OrderNum2 в случае:
1) Если терминал перезагрузится.
2) Если произойдет потеря связи с сервером ДЦ (затем связь восстановится)
Меня интересует как MT4, так и MT5.