Ох уж эти ГЭПы

 

Помогите пожалуйста открыть ордер, сразу же как только появился ГЭП, у меня почему то не торгует, хотя вроде код правильный

/----задаем переменные-------------------------------------------
double OPEN = iOpen(Symbol(), PERIOD_M1, 0);
double HIGH = iHigh(Symbol(), PERIOD_M1, -1);
double LOW = iLow(Symbol(), PERIOD_M1, -1);
double CLOSE = iClose(Symbol(), PERIOD_M1, -1);
double HIGHCLOSE = CLOSE == HIGH;
double LOWCLOSE = CLOSE == LOW;
//---------проверяем условие на покупку----------------------------
if (!ExpertOrder( Magic )){ //если нет открытых позиций
if (OPEN > HIGH || OPEN > HIGHCLOSE)
{ //покупаем
ticket=OrderSend(Symbol(),0,0.01,Ask,Slippage,Bid-SL*Point,0,
NULL,Magic,0,CLR_NONE);
if(ticket < 0) { Sleep(10000); prevtime = Time[1]; }
}}

//--------проверяем условие на продажу------------------------------
if (!ExpertOrder(Magic) ) {//если нет открытых позиций
if (OPEN < LOW || OPEN < LOWCLOSE)
{ //продаем
ticket=OrderSend(Symbol(),1,0.01,Bid,Slippage,Bid+SL*Point,0,
NULL,Magic,0,CLR_NONE);
if(ticket < 0) { Sleep(10000); prevtime = Time[1]; }
}}
//--------------------------------------------------------------------
return(0);


 

double LOW = iLow(Symbol(), PERIOD_M1, -1);
вы берете сигналы с "-1" бара - которого ещё нет - из будущего... :)
P,s, еще тут не правильно:

double OPEN = iOpen(Symbol(), PERIOD_M1, 0);
double HIGH = iHigh(Symbol(), PERIOD_M1, -1);
double LOW = iLow(Symbol(), PERIOD_M1, -1);
double CLOSE = iClose(Symbol(), PERIOD_M1, -1);
double HIGHCLOSE = CLOSE == HIGH; ( тут )
double LOWCLOSE = CLOSE == LOW;  ( тут )

ну и входы => будут не правильны....


 

 
BARS >>:

double LOW = iLow(Symbol(), PERIOD_M1, -1);
вы берете сигналы с "-1" бара - которого ещё нет - из будущего... :)
P,s, еще тут не правильно:

double OPEN = iOpen(Symbol(), PERIOD_M1, 0);
double HIGH = iHigh(Symbol(), PERIOD_M1, -1);
double LOW = iLow(Symbol(), PERIOD_M1, -1);
double CLOSE = iClose(Symbol(), PERIOD_M1, -1);
double HIGHCLOSE = CLOSE == HIGH; ( тут )
double LOWCLOSE = CLOSE == LOW;  ( тут )

ну и входы => будут не правильны....


 

Простите пожалста, но разве -1 это не с прошлого бара, а 1 с будущего?????  А там, где вы указали, это когда цена закрытия соответствует максимальной цене.  

А можете ли вы исправить этот код???

 
vadim2304 >>:

Простите пожалста, но разве -1 это не с прошлого бара, а 1 с будущего?????  А там, где вы указали, это когда цена закрытия соответствует максимальной цене.  

А можете ли вы исправить этот код???

Я сейчас накидаю пример для условий... :) ( как раз так и научитесь по тихоньку :))

Вход в бай ( если геп был вниз)

if ((( iClose(NULL, 0, 1)< iOpen((NULL, 0, 1))&& (( iClose(NULL, 0, 1)- iOpen(NULL, 0, 0))>Х) 

бай... 

на селл будет наоборот т.е:

 if((( iClose(NULL, 0, 1)> iOpen(NULL, 0, 1))&& (( iClose(NULL, 0, 1)-iOpen(NULL, 0, 0))>Х)) 

Х - вынесите в настройки эксперта - это на сколько пунктов больше должен быть разрыв ( ГЕП) что бы отсеять мелкие ГЕПЫ. 

//---------

ГЕПы вообще то считаються по разрывам между ценой закрытия и ценой открытия ( по хаю что то не видел людей что бы считали :)) 

P.s. там не 1 ( с прошлого ) а -1

 
BARS >>:

Я сейчас накидаю пример для условий... :) ( как раз так и научитесь по тихоньку :))

Вход в бай ( если геп был вниз)

if ((( iClose(NULL, 0, 1)< iOpen((NULL, 0, 1))&& (( iClose(NULL, 0, 1)- iOpen(NULL, 0, 0))>Х) 

бай... 

на селл будет наоборот т.е:

 if((( iClose(NULL, 0, 1)> iOpen(NULL, 0, 1))&& (( iClose(NULL, 0, 1)-iOpen(NULL, 0, 0))>Х)) 

Х - вынесите в настройки эксперта - это на сколько пунктов больше должен быть разрыв ( ГЕП) что бы отсеять мелкие ГЕПЫ. 

//---------

ГЕПы вообще то считаються по разрывам между ценой закрытия и ценой открытия ( по хаю что то не видел людей что бы считали :)) 

P.s. там не 1 ( с прошлого ) а -1

Получается здесь никакие переменные задавать не надо??? А если вмест CLOSE написать HIGH, то все равно будет работать???  И еще, а что если CLOSE=HIGH, то программа будет принимать это за CLOSE или за HIGH????

 

1.Тут значения снимаються с цен. а не задаёться имя... 

2.поставить в условиях на открытие еще раз через "И" CLOSE = HIGH  ( ну я бы так сделал )

 
BARS >>:

1.Тут значения снимаються с цен. а не задаёться имя... 

2.поставить в условиях на открытие еще раз через "И" CLOSE = HIGH  ( ну я бы так сделал )


Спасибо завтра попробую так и сделать )))  Еще вопрос нужно написать CLOSE = HIGH или iCLOSE =iHIGH ???

 
vadim2304 >>:

Спасибо завтра попробую так и сделать )))  Еще вопрос нужно написать CLOSE = HIGH или iCLOSE =iHIGH ???

Ну как я писал значения ... и... (iСlose(NULL, 0, 1)=iHigh(NULL, 0, 1)) - тут бар 1... если в конце 0 то текущий бар... 

так и для клозе и хая, в скобочках только не запутайсесь :)

по разному пробуйте, то что надо и подберёте...

 
BARS >>:

Ну как я писал значения ... и... (iСlose(NULL, 0, 1)=iHigh(NULL, 0, 1)) - тут бар 1... если в конце 0 то текущий бар... 

так и для клозе и хая, в скобочках только не запутайсесь :)

по разному пробуйте, то что надо и подберёте...

Я попробовал так сделать, но выводит ошибку в чем тут дело не знаю????

Странно, почему ни в одной книго по MQL4 нет ни слова про ГЭПы?????????

 

Смотря как вы делаете, я вообще не понял зачем еще хай добавлять и на минутках гонять ( тут гепы то маленькие, ну если ток на новостях)... 

Гепы не описаны - это уже не коме вопросы

Сам геп это разрыв между ценой закрытия и ценой открытия ( причом Геп каждый понимает по разному, для меня Геп это разрыв больше 50п :))

Посмотрите как снимать значение цены с бара и делайте. 

 

Тогда поставлю вопрос по другому, как открывать ордер по ценам открытия дневного бара???????  Ни у кого нет такого кода?????

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