OpenStopOrderNet

Author: Copyright � 2010, ������� ��������
0 Views
0 Downloads
0 Favorites
OpenStopOrderNet
#property copyright "Copyright © 2010, Õëûñòîâ Âëàäèìèð"
#property link      "cmillion@narod.ru"
#property show_inputs
//--------------------------------------------------------------------
extern int     stoploss    = 50,       //óðîâåíü âûñòàâëåíèÿ SL, åñëè 0, òî SL íå âûñòàâëÿåòñÿ
               takeprofit  = 50,       //óðîâåíü âûñòàâëåíèÿ TP, åñëè 0, òî TP íå âûñòàâëÿåòñÿ
               delta       = 10,       //ðàññòîÿíèå îò òåêóùåé öåíû
               MaxOrders   = 5,        //êîë-âî îðäåðîâ ñåòêè
               Magic       = 123456;   //óíèêàëüíûé íîìåð îðäåðà
extern bool    SELL        = true,     //îòêðûòü îðäåð SELLSTOP
               BUY         = true;     //îòêðûòü îðäåð BUYSTOP
extern double  Lot         = 0.1;      //îáúåì îðäåðà
//--------------------------------------------------------------------

//--------------------------------------------------------------------
int start()
{
   double SL,TP,Price;
   int SPREAD=MarketInfo(Symbol(),MODE_SPREAD);
   for (int i=1; i<=MaxOrders; i++)
   {
      if (BUY)
      {
         Price = NormalizeDouble(Ask+delta*i*Point,Digits);
         if (takeprofit!=0) TP  = NormalizeDouble(Price + takeprofit*Point,Digits); else TP=0;
         if (stoploss!=0)   SL  = NormalizeDouble(Price - (SPREAD+stoploss)*Point,Digits); else SL=0;     
         OPENORDER (1,Price,SL,TP,i);
      }
      if (SELL)
      {  
         Price = NormalizeDouble(Bid-delta*i*Point,Digits);
         if (takeprofit!=0) TP = NormalizeDouble(Price - takeprofit*Point,Digits); else TP=0;
         if (stoploss!=0)   SL = NormalizeDouble(Price + (SPREAD+stoploss)*Point,Digits);  else SL=0;              
         OPENORDER (-1,Price,SL,TP,i);
      }
   }
return(0);
}
//--------------------------------------------------------------------
void OPENORDER(int ord,double Price,double SL,double TP,int i)
{
   int error,err;
   while (true)
   {  error=true;
      if (ord==1 ) error=OrderSend(Symbol(),OP_BUYSTOP, Lot,Price,3,SL,TP,StringConcatenate(i,"   http://cmillion.narod.ru"),Magic,0,Blue);
      if (ord==-1) error=OrderSend(Symbol(),OP_SELLSTOP,Lot,Price,3,SL,TP,StringConcatenate(i,"   http://cmillion.narod.ru"),Magic,0,Red);
      if (error==-1)
      {  
         Print("Error  " ,GetLastError()," ",Symbol());
         err++;Sleep(2000);RefreshRates();
      }
      if (error!=-1 || err >10) return;
   }
return;
}                  
//--------------------------------------------------------------------

Comments