У нового бара Volume всегда меньше чем предыдущее запомненное значение. Код должен быть примерно такой:
static int VolumePrev; ... RefreshRates(); if(VolumePrev>Volume[0]) // пришел новый бар - обработаем.... { .... } VolumePrev=Volume[0]; // запомним для последующего сравнения
ForexTools >>:
У нового бара Volume всегда меньше чем предыдущее запомненное значение. Код должен быть примерно такой:
У нового бара Volume всегда меньше чем предыдущее запомненное значение. Код должен быть примерно такой:
Теоретически не факт, пусть и верятность этого доли процента.
Кроме того, это не решает проблемы топикстартера. Потому как VolumePrev тоже надо где-то хранить.
AYuBelov >>:
Как бы мне поправиться так чтоб значения сохранялись после реконнекта? Глобализировать NewTime? С ф-ей init не дружу. Может она как то влияет?
Как вариант да. Или хранить состояние в файле.
Есть еще вариант -- добавить проверку на открытые ордера. Если на этом баре этим советником ордера открывались, значит бар нулевой, даже если Ваша функция показывает что ненулевой.
а вообще с init лучше подружиться т.к. после вылета терминала теряются все переменные глобального уровня и необходимо их состояние восстанавливать, лучше всего через файл
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ребят, может кто сможет подсказать?
У меня в эксперте функция старт начинается с проверки наличия нового бара, запускается функция HowNewBar.
Работает ночью и на работе...так вот утром заметил что некоторые позиции открывались и закрывались не вполне закономерно...видимо инет вылетал...то есть разрыв мог составлять буквально пару секунд...но при включении терминала советник срабатывал как на новый бар.
Как бы мне поправиться так чтоб значения сохранялись после реконнекта? Глобализировать NewTime? С ф-ей init не дружу. Может она как то влияет?
Сама функция выглядит вот так:
bool HowNewBar() //Функция проверяющая текущее время
{static datetime NewTime=0; //Объявляется статистическая переменная NewTime(время открытия последнего бара)
bool NewBar=false; //Переменной NewBar присваивается значение false.Нового бара нет
if(NewTime!=Time[0]) //Сравнение последнего времени открытия бара и времени открытия текущего бара
{ //Если время последнего открытия не равно времени открытия текущего бара то...
NewTime=Time[0]; //Переменной NewTime присваивается значение времени открытия последнего бара
NewBar=true; //Переменная NewBar получает значение true => последний бар новый!
}
return(NewBar);
}
Вызов функции происходит вот так:
if (HowNewBar()==false) //Если бар не новый то...
return; //Выход из функции
Заранее спасиб