Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Заведи свой торговый сигнал и подключи мониторинг счета!
kerguru
13
kerguru 2012.12.16 01:34 
Я хочу создать советник чтобы давал возможность  при появлении нового бара он открывал 2 позиции на пакупку и продажу одно временно и были функции stop loss и take profit.....Cколько пытаюсть все Error and Error.
ktest0
631
ktest0 2012.12.16 02:38  
Не информативно. Код в студию - разберем, поможем...
kerguru
13
kerguru 2012.12.16 03:33  
ktest0:
Не информативно. Код в студию - разберем, поможем...

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



Внизу есть скрипт но он только один ордер открывает а не 2 одно временно ...

-------------------------------------------------------------------------

extern int    Slippage   =2;
extern double vol       =0.1;     // Жестко заданное колич. лотов
extern double SL         =50;     // SL для открываемого ордера
extern double TP         =200;     // ТР для открываемого ордера



int start()
  {
  static datetime New_Time; 
   bool New_Bar;  

   if(New_Time!=Time[0])
     {
      New_Time=Time[0];
      New_Bar=true; 
     }
     else
     {
     New_Bar=false;
     }       
   double
   i,              //переменная-номер ордера
   OP=iOpen(NULL,0,1), //цена открытия бара
   CP=iClose(NULL,0,1); //цена закрытия бара
  
   if (OP<CP && New_Bar==true) //если цена открытия бара меньше цены закрытия, то по Ларри Вильямсу это бай
   {
    OrderSelect (i,SELECT_BY_POS,MODE_TRADES);  // Выбираем ордер
    if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,4);
    if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Bid,4);
    OrderSend(Symbol(),OP_BUY,vol,Ask,Slippage*Point,Bid-SL*Point,Ask+TP*Point); // Отправляем Buy
    New_Bar=false;
    }
   if (OP>CP && New_Bar==true)//если цена открытия больше цены закрытия то по Ларри Вильямсу это селл
   {
    OrderSelect (i,SELECT_BY_POS,MODE_TRADES);  // Выбираем ордер
    if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,4);
    if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Bid,4);
    OrderSend(Symbol(),OP_SELL,vol,Bid,Slippage*Point,Ask+SL*Point,Bid-TP*Point);
    New_Bar=false;
   
   
   
    }

ktest0
631
ktest0 2012.12.16 09:04  
Объедини (OP<CP && New_Bar==true) и (OP>CP && New_Bar==true) знаком или (||) и объедини все в один получившийся If - тогда у тебя будет сразу открываться 2 позиции на покупку и на продажу при наступлении любого из двух событий.
kerguru
13
kerguru 2012.12.21 01:37  
ktest0:
Объедини (OP<CP && New_Bar==true) и (OP>CP && New_Bar==true) знаком или (||) и объедини все в один получившийся If - тогда у тебя будет сразу открываться 2 позиции на покупку и на продажу при наступлении любого из двух событий.

Я сделал как ты говорил но только проблема ордер бай сразу делает close ://
ktest0
631
ktest0 2012.12.21 15:22  
Внимательно читаем код -  if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Ask,4); !!!
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий