Если внутри цикла не используется return или break, он будет работать
бесконечно.
Как проводилась проверка?
Не было ли ошибки zero divide (деление на 0) (она останавливает выполнение эксперта)?
Не переключался ли период/символ графика?
Как проводилась проверка?
Не было ли ошибки zero divide (деление на 0) (она останавливает выполнение эксперта)?
Не переключался ли период/символ графика?
Проверка.. ну, довольно просто, в зацикленном блоке была запись Print ("всякая ерунда"); и естественно, эта запись должна появляться каждую секунду при Sleep (1000); Но через некоторое время надписи просто перестают появляться, ну и по некоторым другим признакам тоже было видно, что эксп. не работает, т.к. выдавал всякую ахинею. .
Графики не трогались.
Обратил внимание, что чаще это профвляется на спокойном рынке, ночью, например.. или если принудительно отключаешь сеть(но не всегда)
Насчет деления на 0 надо проверить, спасибо за совет..
Графики не трогались.
Обратил внимание, что чаще это профвляется на спокойном рынке, ночью, например.. или если принудительно отключаешь сеть(но не всегда)
Насчет деления на 0 надо проверить, спасибо за совет..
Да, но ведь если происходит деление на ноль, эксперт это напишет перед тем как остановить?
Тогда не знаю.
Давайте полный код, чтоб можно было воспроизвести ситуацию. Может, кто-то не поленится проверить.
Давайте полный код, чтоб можно было воспроизвести ситуацию. Может, кто-то не поленится проверить.
shubert:
Да.
Да, но ведь если происходит деление на ноль, эксперт это напишет перед тем как остановить?
komposter:
Тогда не знаю.
Давайте полный код, чтоб можно было воспроизвести ситуацию. Может, кто-то не поленится проверить.
И все же как и что у Вас разрешилось. В принципе, при разрыве связи можно просто поставить флаг, по break прервать while и отдать управление терминалу,Тогда не знаю.
Давайте полный код, чтоб можно было воспроизвести ситуацию. Может, кто-то не поленится проверить.
shubert:
Да.Да, но ведь если происходит деление на ноль, эксперт это напишет перед тем как остановить?
ччем то заниматься делать без связи особо вроде нечем и , возможно, терминал не очень доволен, что мы бесконечно держим управление, может быть ему необходимо производить относительно нашей программы какие-то свои манипуляции. После возобновления связи терминал опять передаст нам управление по первому же тику и мы опять его захватим, проверим флаг(сбросим его попутно),
поймем, что вход был после перерыва в связи, что-нибудь предпримем и начнем работать в штатном режиме, генерируя самостоятельно входы в начало функции start().
Вроде хорошо, но нужна уверенность, что мы действительно в состоянии захватить и удерживать сколько хотим управление.
С уважением - С.Д.
shubert:
На сколько я понимаю, такой цикл должен продолжать работать даже если пропала связь (ну естественно если не стоит команды остановить эксп. при отсутствии связи)?
А может быть Вы просто переключали таймфрейм?:)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
void start(){
while(!IsStopped()){
RefreshRates();
//--------------------------
if (IsConnected)
{
// advisor code
}
else
{
//no connection alert
}
//--------------------------
Sleep(700);
}}
интересно, я использую именно такую структуру, некоторое время все идет нормально, но бывают моменты когда цикл прекращается и эксп. ждет прихода нового тика! На сколько я понимаю, такой цикл должен продолжать работать даже если пропала связь (ну естественно если не стоит команды остановить эксп. при отсутствии связи)?