Author: Copyright � 2010 - 2011, ������� ��������, � �������� AMRo
Orders Execution
It automatically opens orders when conditions are reached
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
OpenOrderM
#property copyright "Copyright © 2010 - 2011, Õëûñòîâ Âëàäèìèð, â ðåäàêöèè AMRo"
#property link      "cmillion@narod.ru, nemo811@mail.ru"
#property show_inputs
/*
Èíîãäà òðåáóåòñÿ ïîìî÷ü ñîâåòíèêó äîáàâèòü îðäåð, íî ÷òîáû ñîâåòíèê åãî ïðèíÿë çà ñâîé
íåîáõîäèì Magic íîìåð. Äëÿ âûñòàâëåíèÿ îðäåðà ñ òàêèì íîìåðîì è ïðåäíàçíà÷åí ýòîò ñêðèïò.
Âîçìîæíà îäíîâðåìåííàÿ óñòàíîâêà äî 6 òèïîâ îðäåðîâ. Ïðè ñáîÿõ ñâÿçè èëè ðåçêîì äâèæåíèè öåíû
áóäåò âûïîëíåíî 10 ïîïûòîê âûñòàâëåíèÿ îðäåðà, ïîñëå ÷åãî ñêðèïò çàêîí÷èò ðàáîòó.
*/
//--------------------------------------------------------------------
extern int     MAGIC       = 0;        //óíèêàëüíûé íîìåð îðäåðà
extern string  t1=" Âûêëþ÷àòåëè ðûíî÷íûõ îðäåðîâ ";
extern bool    BUY         = false;    //îòêðûòü îðäåð BUY
extern bool    SELL        = false;    //îòêðûòü îðäåð SELL
extern string  t2=" Âûêëþ÷àòåëè îòëîæåííûõ îðäåðîâ ";
extern bool    BUY_STOP    = false;    //ïîñòàâèòü îðäåð BUY STOP
extern bool    BUY_LIMIT   = false;    //ïîñòàâèòü îðäåð BUY LIMIT
extern bool    SELL_STOP   = false;    //ïîñòàâèòü îðäåð SELL STOP
extern bool    SELL_LIMIT  = false;    //ïîñòàâèòü îðäåð SELL LIMIT
extern string  t3=" Ïàðàìåòðû ðûíî÷íûõ è îòëîæåííûõ îðäåðîâ ";
extern double  Lot         = 0.1;      //îáúåì îðäåðà
extern int     takeprofit  = 0;        //óðîâåíü âûñòàâëåíèÿ TP, åñëè 0, òî TP íå âûñòàâëÿåòñÿ
extern int     stoploss    = 0;        //óðîâåíü âûñòàâëåíèÿ SL, åñëè 0, òî SL íå âûñòàâëÿåòñÿ
extern int     DistanceSet = 35;       //ðàññòîÿíèå îò ðûíêà äëÿ îòëîæåííèêà
extern int     Proskalz    = 3;        //ìàêñèìàëüíî äîïóñòèìîå îòêëîíåíèå öåíû äëÿ ðûíî÷íûõ îðäåðîâ
//--------------------------------------------------------------------
double SL,TP;
//--------------------------------------------------------------------
int start()
{
   if (BUY)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy");
      BUY=false;
   }
   if (SELL)
   {  
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*Point,Digits);  else SL=0;              
      OPENORDER ("Sell");
      SELL=false;
   }
   if (BUY_STOP)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + DistanceSet*Point + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask + DistanceSet*Point - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy Stop");
      BUY_STOP=false;
   }
   if (SELL_STOP)
   {  
      if (takeprofit!=0) TP = NormalizeDouble(Bid - DistanceSet*Point - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL = NormalizeDouble(Bid - DistanceSet*Point + stoploss*Point,Digits);  else SL=0;              
      OPENORDER ("Sell Stop");
      SELL_STOP=false;
   }
   if (BUY_LIMIT)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask - DistanceSet*Point + takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - DistanceSet*Point - stoploss*Point,Digits); else SL=0;     
      OPENORDER ("Buy Limit");
      BUY_LIMIT=false; 
   }
   if (SELL_LIMIT)
   {  
      if (takeprofit!=0) TP = NormalizeDouble(Bid + DistanceSet*Point - takeprofit*Point,Digits); else TP=0;
      if (stoploss!=0)   SL = NormalizeDouble(Bid + DistanceSet*Point + stoploss*Point,Digits);  else SL=0;              
      OPENORDER ("Sell Limit");
      SELL_LIMIT=false;
   }
return(0);
}
//--------------------------------------------------------------------
void OPENORDER(string ord)
{
   int ticket = -1;
   int err;
   while (ticket<0)
   {
      if (ord=="Buy") ticket=OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),Proskalz,SL,TP,"MAGIC_" + MAGIC,MAGIC,0);
      if (ord=="Sell") ticket=OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),Proskalz,SL,TP,"MAGIC_" + MAGIC,MAGIC,0);
      if (ord=="Buy Stop") ticket=OrderSend(Symbol(),OP_BUYSTOP, Lot,NormalizeDouble(Ask + DistanceSet*Point,Digits),Proskalz,SL,TP,"MAGIC_" + MAGIC,MAGIC,0);
      if (ord=="Sell Stop") ticket=OrderSend(Symbol(),OP_SELLSTOP,Lot,NormalizeDouble(Bid - DistanceSet*Point,Digits),Proskalz,SL,TP,"MAGIC_" + MAGIC,MAGIC,0);
      if (ord=="Buy Limit") ticket=OrderSend(Symbol(),OP_BUYLIMIT, Lot,NormalizeDouble(Ask - DistanceSet*Point,Digits),Proskalz,SL,TP,"MAGIC_" + MAGIC,MAGIC,0);
      if (ord=="Sell Limit") ticket=OrderSend(Symbol(),OP_SELLLIMIT,Lot,NormalizeDouble(Bid + DistanceSet*Point,Digits),Proskalz,SL,TP,"MAGIC_" + MAGIC,MAGIC,0);      
      Message(MAGIC);
      if (ticket==-1) //íåóäà÷íàÿ ïîïûòêà
      {  
         ShowERROR();
         err++;Sleep(2000);RefreshRates();
      }
      if (ticket || err >10) return;
   }
return;
} 
//--------------------------------------------------------------------
void Message(string MAGIC) {
  Comment("MAGIC_" + MAGIC);
  Print("MAGIC_" + MAGIC);
}                                      
//--------------------------------------------------------------------
void ShowERROR()
{
   int err=GetLastError();
   switch ( err )
   {                  
      case 1:   return;
      case 2:   Alert("Íåò ñâÿçè ñ òîðãîâûì ñåðâåðîì ",Symbol());return;
      case 3:   Alert("Error íåïðàâèëüíûå ïàðàìåòðû ",Symbol());return;
      case 130: Alert("Error áëèçêèå ñòîïû   Ticket ",Symbol());return;
      case 134: Alert("Íåäîñòàòî÷íî äåíåã   ",Symbol());return;
      case 146: Alert("Error Ïîäñèñòåìà òîðãîâëè çàíÿòà ",Symbol());return;
      case 129: Alert("Error Íåïðàâèëüíàÿ öåíà ",Symbol());return;
      case 131: Alert("Error Íåïðàâèëüíûé îáúåì ",Symbol());return;
      case 4200:Alert("Error Îáúåêò óæå ñóùåñòâóåò ",Symbol());return;
      default:  Alert("Error  " ,err," ",Symbol());return;
   }
}
//--------------------------------------------------------------------

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---