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

 
Сейчас сам попробую догнать.
 
salesman77:
Delta вроде работает...
Мне нужно при росте на Delta пунктов продавать, а при падении покупать...

Но же изначально наоборот говорил!
 
Нет. Суть моей идеи:
При резком падении, фунт откатывается назад на пару пунктов и при сильном росте тоже.
Если за 5 мин цена выросла на 30 пунктов - нужно продать с T/P всего 3 пункта. И наоборот :)))
Покупать при падении, продавать при росте...
Помогите, Роман...
 
if (Bid - iOpen(NULL,0,0)>=Delta*Point) //Цена выросла на больше или = Delta пунктов
//продаем-
{
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,0,0)-Bid  >Delta*Point) //цена упала более дельты - покупаем
{
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);}
}
вот так будет...
 
Огромное спасибо, теперь работает :)
 
salesman77:
Огромное спасибо, теперь работает :)

В смысле торгует или профит (что сомнительно) даёт?
 
goldtrader:
salesman77:
Огромное спасибо, теперь работает :)

В смысле торгует или профит (что сомнительно) даёт?
Торгует :)
Соблюдая мои условия :)
 
Еще один момент. Как исправить этот код, чтоб сделки осуществлялись в процентном отношении к депозиту?
Как то с помощью функции Percent чтоль..... а в этом коде как? :
int start()
{
if (Ask - iOpen(NULL,0,0)>Delta*Point) //Цена выросла  больше Delta пунктов - продаем!!!
//продаем-
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Продал");
 }
//-------------------------------------------------------------------------
if (iOpen(NULL,0,0)-Bid  >Delta*Point) //цена упала больше Delta пунктов - покупаем!!!
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Купил");
       }
//----
return(0);
}
 
Вот так наверное:

extern int Percent=10;
//-----
int start()
{
if(OrdersTotal()!=0)  return; //Выполнять только одну сделку.
//---
if (Ask - iOpen(NULL,0,0)>=Delta*Point) //Цена выросла  больше Delta пунктов - продаем!!!
//продаем-
{
ticket=OrderSend(Symbol(),OP_SELL,Percent,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"Продал");
 }
//-------------------------------------------------------------------------
if (iOpen(NULL,0,0)-Bid  >=Delta*Point) //цена упала больше Delta пунктов - покупаем!!!
{
ticket=OrderSend(Symbol(),OP_BUY,Percent,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"Купил");
       }
//----
return(0);
}
 
salesman77:
Еще один момент. Как исправить этот код, чтоб сделки осуществлялись в процентном отношении к депозиту?

Результаты Вы засекречиваете так попытайтесь хоть какие-то знания самостоятельно добыть:

- в кодобазе есть огромная библиотка автоматического расчёта лота,

- там же куча советников, большая часть которых снабжена соответствующими функциями.