Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reached
Indicators Used
Moving average indicator
0 Views
0 Downloads
0 Favorites
Grail_3
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// Ãðààëü_3.mq4.
// Èñïîëüçóåòñÿ â êà÷åñòâå ïðèìåðà â ñòàòüå "Ìîé ïåðâûé Ãðààëü".
// Ñåðãåé Êîâàë¸â, Äíåïðîïåòðîâñê, sk@mail.dnepr.net, ICQ 64015987, http://autograf.dp.ua/.
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//
//
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
extern int    MA1 = 11;                                  // Ïåðèîä 1-é ÌÀ
extern int    MA2 = 23;                                  // Ïåðèîä 2-é ÌÀ
extern double TP =  50;                                  // ÒýéêÏðîôèò îðäåðà
extern double SL =  15;                                  // ÑòîïËîññ îðäåðà
extern double Prots= 0;                                  // Ïðîöåíò îò ñâîáîäíûõ ñðåäñòâ
//--------------------------------------------------------------------------------------------
int
   ret,                                                  // Íàïðàâëåíèå ïåðåñå÷åíèÿ
   total;                                                // Êðëè÷åñòâî îòêðûòûõ îðäåðîâ
//--------------------------------------------------------------------------------------------
double 
   Lot,                                                  // Êîëè÷åñòâî ëîòîâ
   Pred,                                                 // Ïðåäûäóùåå çíà÷åíèå 1-é ÌÀ (ðîçîâ)
   Tek,                                                  // Òåêóùåå    çíà÷åíèå 1-é ÌÀ (ðîçîâ)
   Golub;                                                // Òåêóùåå    çíà÷åíèå 2-é ÌÀ(ãîëóáàÿ)
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int init()  
   {
//============================================================================================
   SL = SL*Point;                                        // ÑòîïËîññ â ïóíêòàõ
   TP = TP*Point;                                        // ÒýéêÏðîôèò â ïóíêòàõ
   return;
//============================================================================================
   }  
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int start()  
   {
//============================================================================================
   total=OrdersTotal();                                  // Îáùåå êîëè÷åñòâî îðäåðîâ
   if (total==2)return;                                  // Óæå îòêðûòû îáà îðäåðà
//--------------------------------------------------------------------------------------------
   Tek  =iMA(NULL,0, MA1, 0,MODE_LWMA, PRICE_TYPICAL, 0);// Òåêóùåå    çíà÷åíèå 1-é ÌÀ
   Pred =iMA(NULL,0, MA1, 0,MODE_LWMA, PRICE_TYPICAL, 1);// Ïðåäûäóùåå çíà÷åíèå 2-é ÌÀ
   Golub=iMA(NULL,0, MA2, 0,MODE_LWMA, PRICE_TYPICAL, 0);// Òåêóùåå    çíà÷åíèå 2-é ÌÀ
//--------------------------------------------------------------------------------------------
   if (Peresechenie()==1) Open_Buy();                    // Äâèæåíèå ñíèçó ââåðõ = îòêð. Buy
   if (Peresechenie()==2) Open_Sell();                   // Äâèæåíèå ñâåðõó âíèç = îòêð. Sell
   return;
//============================================================================================
   }  
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int Peresechenie()                                       // Ôóíêöèÿ îïðåäåëåíèÿ ïåðåñå÷åíèÿ
   {
//============================================================================================
   if ((Pred<=Golub && Tek> Golub) ||
       (Pred< Golub && Tek>=Golub)  ) ret=1;             // Ïåðåñå÷åíèå ñíèçó ââåðõ       
//--------------------------------------------------------------------------------------------
   if ((Pred>=Golub && Tek< Golub) ||
       (Pred> Golub && Tek<=Golub)  ) ret=2;             // Ïåðåñå÷åíèå ñâåðõó âíèç
//============================================================================================
   return(ret);                                          // Âîçâðàùàåì íàïðàâëåíèå ïåðåñå÷åí.
   }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int Open_Buy()                                           // Ôóíêöèÿ îòêðûòèÿ Buy
   {
//============================================================================================
   if (total==1)                                         // Åñëè îðäåð âñåãî îäèí..
      {                                                  // .. çíà÷èò ìîæíî îòêðûòü äðóãîé
      OrderSelect(0, SELECT_BY_POS);                     // Âûäåëèì îðäåð
      if (OrderType()==0)return;                         // Åñëè îí buy, òî íå îòêðûâàåìñÿ
      }
   OrderSend(Symbol(),0, Lots(), Ask, 0, Ask-SL, Ask+TP, "", 0, 0, Blue);// Îòêðûâàåìñÿ
//============================================================================================
   return;
   }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
int Open_Sell()                                          // Ôóíêöèÿ îòêðûòèÿ Sell
   {
//============================================================================================
   if (total==1)                                         // Åñëè îðäåð âñåãî îäèí..
      {                                                  // .. çíà÷èò ìîæíî îòêðûòü äðóãîé
      OrderSelect(0, SELECT_BY_POS);                     // Âûäåëèì îðäåð
      if (OrderType()==1)return;                         // Åñëè îí sell, òî íå îòêðûâàåìñÿ
      }
   OrderSend(Symbol(),1, Lots(), Bid, 0, Bid+SL, Bid-TP, "", 0, 0, Red);// Îòêðûâàåìñÿ
//============================================================================================
   return;
   }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
double Lots()                                            // Âû÷èñëåíèå ëîòîâ
   {
//============================================================================================
   Lot=NormalizeDouble(AccountEquity()*Prots/100/1000,1);// Âû÷èñëÿåì êîëè÷. ëîòîâ  
   double Min_Lot = MarketInfo(Symbol(), MODE_MINLOT);   // Ìèíèìàëüíî äîïóñòèìàÿ ñòîèì. ëîòîâ
   if (Lot == 0 ) Lot = Min_Lot;                         // Äëÿ òåñòà íà ïîñòîÿí. ìèíèì. ëîòàõ
//============================================================================================
   return(Lot);
   }
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
//

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 ---