Помогите написать скрипт.

 

Привет всем, вобщем нужно два скрипта:

1. Закрывает все открытые ордера и одновременно открывает позицию buy.

2. Закрывает все открытые ордера и одновременно открывает позицию sell.

Нужно что бы была переменная: величина открываемого лота, без всяких там стопов и профитов, а то это наверное уже сложно будет.

По отдельности такие скрипты есть, но нужно их как-то объединить.


P.S. Прошу потому что сам ничего в этом не понимаю (а изучать пока времени не хватает). Вобщем помогите кому не трудно. Заранее благодарю.

 
topdox >>:

Привет всем, вобщем нужно два скрипта:

1. Закрывает все открытые ордера и одновременно открывает позицию buy.

2. Закрывает все открытые ордера и одновременно открывает позицию sell.

Нужно что бы была переменная: величина открываемого лота, без всяких там стопов и профитов, а то это наверное уже сложно будет.

По отдельности такие скрипты есть, но нужно их как-то объединить.


P.S. Прошу потому что сам ничего в этом не понимаю (а изучать пока времени не хватает). Вобщем помогите кому не трудно. Заранее благодарю.


Лови

BUY:

int start()
{
  double Lots = 0.01; //size lot
  int Error = -1;
  //
  CloseAllOpenedOrders();
  //
  Error = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, "Close all opened orders and open order BUY");
  if(Error < 0 )
  {
    Print("OrderSend failed with error #",GetLastError());
  }
  return(0);
}
//
void CloseAllOpenedOrders() 
{ 
  for (int i = OrdersTotal()-1; i>=0; i--) 
  { 
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES) == false) 
      break; 
    if (OrderType()== OP_BUY      ) 
      OrderClose (OrderTicket(),OrderLots(),Bid,10); 
    if (OrderType()== OP_SELL     ) 
      OrderClose (OrderTicket(),OrderLots(),Ask,10); 
  }  
}

SELL:





int start()
{
  double Lots = 0.01; //size lot
  int Error = -1;
  //
  CloseAllOpenedOrders();
  //
  Error = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, "Close all opened orders and open order SELL");
  if(Error < 0 )
  {
    Print("OrderSend failed with error #", GetLastError());
  }
  return(0);
}
//
void CloseAllOpenedOrders() 
{ 
  for (int i = OrdersTotal()-1; i>=0; i--) 
  { 
    if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES) == false) 
      break; 
    if (OrderType()== OP_BUY      ) 
      OrderClose (OrderTicket(),OrderLots(),Bid,10); 
    if (OrderType()== OP_SELL     ) 
      OrderClose (OrderTicket(),OrderLots(),Ask,10); 
  }  
}
 

SofTAA

,

Спасибо, что так быстро ответил, вот только они почему-то не работают, не закрывают старых и не открывают новых. Может я что-то не так делаю?

 
topdox >>:

SofTAA

,

Спасибо, что так быстро ответил, вот только они почему-то не работают, не закрывают старых и не открывают новых. Может я что-то не так делаю?


Разреши советнику торговать. Сервис->настройки->советники->разрешить советнику торговать. Поставь в этом месте галочку.

 
SofTAA >>:


Разреши советнику торговать. Сервис->настройки->советники->разрешить советнику торговать. Поставь в этом месте галочку.

Вот я тупанул, спасибо огромное, всё работает.

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