Основная ошибка - использование нулевого, то есть ещё не законченного бара.
---
Извиняйте, случайно ответил :) Обычно не отвечаю людям, клинически неспособным читать документацию :)))
но этот код открывает сразу позицию не дожидаясь пробития max.
Как же исправить эту ошибку?!
Проверяйте, чтобы мах не равнялся нулю, после открытия ордера обнуляйте мах.
Проверяйте, чтобы мах не равнялся нулю, после открытия ордера обнуляйте мах.
В каких случая конструкция High[iHighest(NULL,0,MODE_HIGH,15,1)] возвращает ноль?
Поставил на проверку этот код, пока ноль получить не удалось. Хотя зная нестабильность работы стандартных функций можно предположить, что такое возможно.
В каких случая конструкция High[iHighest(NULL,0,MODE_HIGH,15,1)] возвращает ноль?
В тех случаях, когда она не выполняется;-)
Судя по кускам Вашего кода, можно предположить, что переменная max получает значение только при условии
if ((Hour()==12) && (Minute()>=45) && (Minute()<=59))
В Ваш код нужно внести следующие изменения (например):
if (Hour()>12 && max<Close[0])
OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Ask-Stop,0,"BUY ORD",16384,0,White);
Совет Integer: тоже не плох.
Основная ошибка - использование нулевого, то есть ещё не законченного бара.
---
Извиняйте, случайно ответил :) Обычно не отвечаю людям, клинически неспособным читать документацию :)))
В моей стратегии это уместно (я имею использование нулевого, то есть ещё не законченного бара).
P.S.
Я регулярно читаю документацию! Просто в этом случает мне нужен был совет
Всем спасибо!!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Помогите люди добрые что то не получается сделать следующие:
В перeменной max содержится цена. Как сделать так что бы если цена будет выше max то открываем длинную позицию?!
Сейчас объясню поподробней на коде
Если время совпадает:
if ((Hour()==12) && (Minute()>=45) && (Minute()<=59))
я в переменную max кладу наибольший максимум из 15 high-ев
double max=High[iHighest(NULL,0,MODE_HIGH,15,1)];
Далее если max меньше цена закрытия то я открываю позицию:
if (max<Close[0])
OrderSend(Symbol(),OP_BUY,Lot,Ask,5,Ask-Stop,0,"BUY ORD",16384,0,White);но этот код открывает сразу позицию не дожидаясь пробития max.
Как же исправить эту ошибку?!