GBPUSD_M15_V2

Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reached
Indicators Used
Moving average indicator
0 Views
0 Downloads
0 Favorites
GBPUSD_M15_V2
//---- Âõîäíûå ïàðàìåòðû---------------
extern string Long="Ïàðàìåòðû äëèííûõ ïîçèöèé";
extern int    PeriodMA1=20;
extern int    ×àñ_Îòêðûòèÿ1 = 16;
extern int    ×àñ_Çàêðûòèÿ1 = 8;
extern string Short="Ïàðàìåòðû êîðîòêèõ ïîçèöèé";
extern int    PeriodMA2=20;
extern int    ×àñ_Îòêðûòèÿ2 = 6;
extern int    ×àñ_Çàêðûòèÿ2 = 13;
extern string ÒÐ="Âûñòàâëÿåì ÒÐ â ïðîöåíòàõ îò öåíû";
extern double Ïðîöåíò_TP=0.6; 
extern string ïðîôèò="çàêðûâàåì ïîçèöèþ ïåðåñå÷åíèå ÌÀ âûøå/íèæå îòêðûòèÿ íà ... ïóíêòîâ";
extern int    ProfitPips=35;
extern string òðýíä="Íàñòðîéêà òðýíäà";
extern int    Period_MA=200;
extern int    n_MA=2;
extern string lot="Íàñòðîéêà âåëè÷èíû ëîòà";
extern double Lots=0.01;
extern string ÌÌ="Íàñòðîéêà óïðàâëåíèÿ êàïèòàëëîì";
extern double Loss = 0.02;    // Âåëè÷èíà óáûòêà â ïðîöåíòàõ íà îäíó ñäåëêó
extern int    ðåæèìÌÌ=0; //âûáîð ðåæèìà 0-íåò ÌÌ 1-óáûòîê % îò êàïèòàëëà 2- âåëè÷èíà ïîçèöèè % îò áàëàíñà
extern string x1="Äëÿ äèëèíãîâûõ öåíòðîâ ñ 5 çíàêàìè x óìíîæèòü íà 10";
extern int    x=10;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
static datetime    dt;
static bool   permission_long = true, permission_short = true; // ðàçðåøåíèå äëèííûõ è êîðîòêèõ ïîçèöèé
int start()
  {
  double a;// ïåðåìåííûå à-óáûòîê â ïèïñàõ
  int n=1; // Çàäàåò äèàïàçîí â ÷àñàõ íà îòêðûòèå
  int total,cnt;
  int TP=0;
  int magik_Buy=13;
  int magik_Sell=14;
  int êîë_äë=0, êîë_êîð=0;
  double MA11=iMA(NULL,0,PeriodMA1,0,MODE_SMA,PRICE_MEDIAN,1);
  double MA12=iMA(NULL,0,PeriodMA1,0,MODE_SMA,PRICE_MEDIAN,2);
  double MA21=iMA(NULL,0,PeriodMA2,0,MODE_SMA,PRICE_MEDIAN,1);
  double MA22=iMA(NULL,0,PeriodMA2,0,MODE_SMA,PRICE_MEDIAN,2);
  double Medium1=iMA(NULL,0,1,0,MODE_SMA,PRICE_MEDIAN,1);
  double Medium2=iMA(NULL,0,1,0,MODE_SMA,PRICE_MEDIAN,2);
  double MA_Long1=iMA(NULL,0,Period_MA,0,MODE_EMA,PRICE_MEDIAN,1);
  double MA_Long_n=iMA(NULL,0,Period_MA,0,MODE_EMA,PRICE_MEDIAN,n_MA);
  
  if(dt!=iTime(NULL,PERIOD_D1,0)) // Îïðåäåëÿåò îòêðûòèÿ íîâîãî äíÿ 
  {
  permission_long = true;         // Ðàçðåøàåì îòêðûòèå äëèííûõ ïîçèöèé íà ýòîò äåíü
  permission_short = true;        // Ðàçðåøàåì îòêðûòèå êîðîòêèõ ïîçèöèé íà ýòîò äåíü
  dt=iTime(NULL,PERIOD_D1,0);     // Çàïîìèíàåì âðåìÿ îòêðûòèÿ äíåâíîé ñâå÷è
  }
  total=OrdersTotal();
  for(cnt=0;cnt<total;cnt++)
      {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
         {
         if(OrderMagicNumber()==magik_Buy) êîë_äë=êîë_äë+1;
         if(OrderMagicNumber()==magik_Sell) êîë_êîð=êîë_êîð+1;
         }
      }
        
     for(cnt=0;cnt<total;cnt++)
      {
         OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
         if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol())  // check for symbol
         {
         // ---------------------Çàêðûòèå-------------------------------------------------
         if(OrderType()==OP_BUY && OrderMagicNumber()==magik_Buy)
         {
            if(Hour()==×àñ_Çàêðûòèÿ1)
            {
               OrderClose(OrderTicket(),OrderLots(),Bid,3*x,Red);
               Sleep(60000); // Çàäåðæêà â 60 ñåêóíä
               return(0);
            }
            if(Medium1>MA11 && Medium2<=MA12 && Bid-OrderOpenPrice()>ProfitPips*x*Point)
            {
               OrderClose(OrderTicket(),OrderLots(),Bid,3*x,Red);
               Sleep(60000); // Çàäåðæêà â 60 ñåêóíä
               return(0);
            }
            
         }
         //-------------------Çàêðûòèå----------------------------------------------------  
         if(OrderType()==OP_SELL && OrderMagicNumber()==magik_Sell)
         {
            if(Hour()==×àñ_Çàêðûòèÿ2)
            {
               OrderClose(OrderTicket(),OrderLots(),Ask,3*x,Red);
               Sleep(60000); // Çàäåðæêà â 60 ñåêóíä
               return(0);
            }
            if(Medium1<MA21 && Medium2>=MA22 && OrderOpenPrice()-Ask>ProfitPips*x*Point)
            {
               OrderClose(OrderTicket(),OrderLots(),Ask,3*x,Red);
               Sleep(60000); // Çàäåðæêà â 60 ñåêóíä
               return(0);
            }
         }               
  
         }
      }
   if((Hour()==×àñ_Îòêðûòèÿ1 || Hour()==×àñ_Îòêðûòèÿ1+n) && permission_long==true && êîë_äë<1) // åñëè íåò ïîçèöèé
     {
      // îòêðûòèå äëèííîé ïîçèöèè
      if(Medium1>MA11 && MA11>MA12 && MA_Long1>MA_Long_n)
        {
        a=MathAbs(Ask*0.01);
        Lots=ValueLot(a);
        TP=Ðàñ÷åò_TP(Ask,Ïðîöåíò_TP);
        if(buy(TP,magik_Buy,Lots)!=-1) permission_long = false;
        Sleep(60000); // Çàäåðæêà â 60 ñåêóíä
        return(0);
        }
      }
   if((Hour()==×àñ_Îòêðûòèÿ2 || Hour()==×àñ_Îòêðûòèÿ2+n) && permission_short == true && êîë_êîð<1) // åñëè íåò ïîçèöèé
     {   
      // îòêðûòèå êîðîòêîé ïîçèöèè
      if(Medium1<MA21 && MA21<MA22 && MA_Long1<MA_Long_n)
        {
         a=MathAbs(Bid*0.01);
         Lots=ValueLot(a);
         TP=Ðàñ÷åò_TP(Bid,Ïðîöåíò_TP);
         if(sell(TP,magik_Sell,Lots)!=-1) permission_short = false;
         Sleep(60000); // Çàäåðæêà â 60 ñåêóíä
         return(0);
        }
     }
//---------------------------------------------------------------------------------------   
return(0);
}
double Ðàñ÷åò_TP(double A,double B)
   {
   int x=0;
   double y=A*B/100;
   x=MathRound(y/Point);
   if (x<30*x) x=30*x;
   return(x); 
   }

int sell(int TP, int magik_Sell, double Lot)         //Ôóíêöèÿ âõîäà â êîðîòêóþ ñòîðîíó
   {
   int t=-1;
   t=OrderSend(Symbol(),OP_SELL,Lot,Bid,3*x,0,Bid-TP*Point,"order_sell",magik_Sell,0,Red);
   return(t);
   }

int buy(int TP, int magik_Buy, double Lot)           //Ôóíêöèÿ âõîäà â äëèííóþ ñòîðîíó
   {
   int t=-1;
   t=OrderSend(Symbol(),OP_BUY,Lot,Ask,3*x,0,Ask+TP*Point,"order_buy",magik_Buy,0,Green);
   return(t);
   }
double ValueLot (double A)
   {
   RefreshRates();
   double ticvalue=MarketInfo(Symbol(),MODE_TICKVALUE);
   double minlot=MarketInfo(Symbol(),MODE_MINLOT);   
   double maxlot=MarketInfo(Symbol(),MODE_MAXLOT);
   double standartlot=MarketInfo(Symbol(),MODE_LOTSIZE);
   double x=0;
   if (ðåæèìÌÌ==0) x=Lots;
   if(ðåæèìÌÌ==1) x=NormalizeDouble(MathFloor((AccountFreeMargin()*Loss*Point)/(ticvalue*A*minlot))*minlot,2);
   if(ðåæèìÌÌ==2) x=NormalizeDouble(minlot*((AccountFreeMargin()*Loss)/(1000*minlot)),2);
   if(ðåæèìÌÌ==3)
   {
   double bb=MathSqrt(AccountFreeMargin()/1000);
   x=NormalizeDouble(bb*Loss,2);
   }
   if(x>=maxlot) x=maxlot;
   if(x<=minlot) x=minlot;   
   return(x);
   }
  

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