Help!!

 

Помогите люди добрые что то не получается сделать следующие:

В пер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.

Как же исправить эту ошибку?!

 

Основная ошибка - использование нулевого, то есть ещё не законченного бара.

---

Извиняйте, случайно ответил :) Обычно не отвечаю людям, клинически неспособным читать документацию :)))

 
Andrey_one:



но этот код открывает сразу позицию не дожидаясь пробития max.

Как же исправить эту ошибку?!


Проверяйте, чтобы мах не равнялся нулю, после открытия ордера обнуляйте мах. 

 
Integer:

Проверяйте, чтобы мах не равнялся нулю, после открытия ордера обнуляйте мах. 


В каких случая конструкция High[iHighest(NULL,0,MODE_HIGH,15,1)] возвращает ноль?

Поставил на проверку этот код, пока ноль получить не удалось. Хотя зная нестабильность работы стандартных функций можно предположить, что такое возможно.

 
gip:

В каких случая конструкция 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: тоже не плох.

 
gip:

Основная ошибка - использование нулевого, то есть ещё не законченного бара.

---

Извиняйте, случайно ответил :) Обычно не отвечаю людям, клинически неспособным читать документацию :)))

В моей стратегии это уместно (я имею использование нулевого, то есть ещё не законченного бара).


P.S.

Я регулярно читаю документацию! Просто в этом случает мне нужен был совет

Всем спасибо!!

Причина обращения: