Советник, который после запуска следил бы за курсом пятиминутного графика с условиями: - страница 9

 
Разобрался сам :))) скобки лишние после Bid
Все правильно?
 
Да)
 
Figar0:
Да)
:) А что означает минус после знака меньше перед Delta?
if (iOpen(NULL,0,0)-Bid <-Delta*Point)
и почему не ставится во второй строке?
if (iOpen(NULL,0,0)-Bid >Delta*Point)
 

Эти строки абсолютно тождествены (одинаковы)! - это условие для продажи. - всё равно как написать, или как в первой строке, или как во второй.

А для покупки я уже писал -

if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Цена выросла на больше или = Delta пунктов
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,
            "Купил",MagicNumber,11111,Green);
if(ticket<0){Print("Ошибка открытия ордера BUY #",GetLastError());return(0);}
}
 
rid

Энто понятно.
Тогда почему Delta будет работать по разному?

При покупке, как у вас:
if (Ask - iOpen(NULL,0,0)>=Delta*Point)

а при продаже со знаком минус:
if (iOpen(NULL,0,0)-Bid <-Delta*Point)
 

Я не понял вопрос. Дельта в обоих случаях работает нормально. При продаже можно написать условие без всякого минуса (поменяв знак на >):

if (iOpen(NULL,0,0)-Bid  >Delta*Point) {
      ticket=OrderSend(Symbol(),1,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,
                 "продал",MagicNumber,22222,Red);
 if(ticket<0){Print("Ошибка открытия ордера SELL #",GetLastError());return(0);}
}
 
В итоге, после всех предыдущих советов, я сделал так:

if (iOpen(NULL,5,0)-Bid<-Delta*Point)  //Цена выросла на больше или = Delta пунктов
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Купил",MagicNumber,11111,Green);

}
if (iOpen(NULL,0,0)-Bid>Delta*Point) //Цена упала больше Delta пунктов
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,"Продал",MagicNumber,22222,Green);
}
Завтра попробую....
 
Увы, salesman77, похоже ты здесь сегодня впустую потратил целый день! В твоем последнем коде условие на покупку совпадает с условием на продажу. Советник будет работать неправильно. - он будет продавать и покупать только тогда, когда цена упадет ниже цены открытия бара на дельту...
 
rid:

Эти строки абсолютно тождествены (одинаковы)! - это условие для продажи. - всё равно как написать, или как в первой строке, или как во второй.

А для покупки я уже писал -

if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Цена выросла на больше или = Delta пунктов
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,
            "Купил",MagicNumber,11111,Green);
if(ticket<0){Print("Ошибка открытия ордера BUY #",GetLastError());return(0);}
}
Не так работает :(
При росте он покупает.....
 
Delta вроде работает...
Мне нужно при росте на Delta пунктов продавать, а при падении покупать...
Причина обращения: