Добрый день! Подскажите, пожалуйста, как правильно усреднить линию индикатора? Основную кривую с периодом Per_1 рисует нормально (Buffer_1[]), пока не добавляю блок простого усреднения с буфером Buffer_2[] с периодом усреднения Per_2.
Eugen8519: В том то и вся проблема, он и только открывает и закрывает ордера starthour->stophour
А открытые ордера не закрывает после stophour
Так как после stophour нельзя торговать
Я давно пишу логику открытия до закрытия, трала и прочего сопровождения позиций. В большей степени оно и верно, прежде чем открыть ещё что-то, нужно проверить что есть уже открытое.
У вас верно прописано, нужно только сменить блоки местами:
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вот так закрывает ордера
Сделай, как я написал выше...
или выложи код OnTick()
Вот так закрывает ордера
Такая структура должна быть
Такая структура должна быть
Если не ошибаюсь, то можно писать так
Ну спасибо за совет, вечером проверю, потом отпишусь.
если UseTimeLimit устанавливается в настройках при запуске сова, то
эту функцию лучше в OnInit() вместо OnTick()
Если не ошибаюсь, то можно писать так
Я вообще пишу так
if(TimeHour(time[i])>=Time_Start&&TimeHour(time[i])<TimeFinish)или еще проще
if(Hour()>=Time_Start&&Hour()<TimeFinish)Добрый день! Подскажите, пожалуйста, как правильно усреднить линию индикатора? Основную кривую с периодом Per_1 рисует нормально (Buffer_1[]), пока не добавляю блок простого усреднения с буфером Buffer_2[] с периодом усреднения Per_2.
int OnCalculate(стандартные параметры)
{
int i, j, limit;
if(rates_total <= Per_1)
return(0);
//Будет пересчитан последний посчитанный бар
limit = rates_total - prev_calculated - Per_1;
if(prev_calculated > 0)
limit++;
//Расчёт и заполнение буферов индикатора
for(i=0; i < limit; i++)
{
//Расчёт основной линии индикатора
Buffer_1[i] = Фрмула кривой
double Sum = 0;
for(j = i; j < Per_2 + i; j++)
{
//Расчёт линии усреднения
Sum += Buffer_1[j];
Buffer_2[i] = Sum / Per_2;
}
}
return(rates_total);
}
Добрый день!
Вставить код
Здесь похоже ответ на твой вопросВ том то и вся проблема, он и только открывает и закрывает ордера starthour->stophour
Так как после stophour нельзя торговать
Я давно пишу логику открытия до закрытия, трала и прочего сопровождения позиций. В большей степени оно и верно, прежде чем открыть ещё что-то, нужно проверить что есть уже открытое.
У вас верно прописано, нужно только сменить блоки местами:
Вставить код
Здесь похоже ответ на твой вопросКруто! Работает, спасибо!