Благодарю =)
Larik >>:
Обнаружил небольшой недостаток
Когда загружаешь эксперт, в самом начале бар который 0 он определяет его как за новый, даже если этот бар скора закроется!
В функции init() нужно инициализировать переменную, через которую определяют возраст бара, равной времени открытия текущего бара. Тогда при вызове функции start() текущий бар будет уже "старым" и алгоритм начнет работать только при формировании следующего бара.
static int prevtime = 0;
...
int init() {
prevtime = Time[0];
...
}
int start() {
if (Time[0] == prevtime) {
return(0);
}
prevtime = Time[0];
...
}
bool fNewBar(){ static datetime NewTime=0; if(NewTime!=Time[0]){ if(NewTime==0){ NewTime=Time[0]; return(false); } NewTime=Time[0]; return(true); } return(false); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите
В учебнике MQL4 представлен код по определению нового бара:
+++++++++++++++++++++++++++++++
void Fun_New_Bar()
{
static datetime New_Time=0;
New_Bar=false;
if(New_Time!=Time[0])
{
New_Time=Time[0];
New_Bar=true;
}
}
+++++++++++++++++++++++++++++++
Обнаружил небольшой недостаток
Когда загружаешь эксперт, в самом начале бар который 0 он определяет его как за новый, даже если этот бар скора закроется!
Помогите, в программирование покачто не силён, сделать так чтобы он определял новый бар если он действительно новый
Заранее спасибо =)