Invest_System_4_5

Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each bar
Orders Execution
Checks for the total of open ordersChecks for the total of closed ordersIt automatically opens orders when conditions are reached
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Invest_System_4_5

//----------------------------------------------------------------1--
extern double StopLoss =240;       //Ñòîï è ïðîôèò äëÿ EURUSD íå ìåíÿòü!
extern double TakeProfit=40;     
double Lots1    =0.1;        
double Lots2    =0.2;
double Lots3    =0.7;
double Lots4    =1.4;

bool Work=true;                    
string Symb;
                      
bool Opn_B=false;                        
bool Opn_S=false;
bool Vhod=false;
bool LTS=false;
bool PlanB=false;
bool L2Stop=true;
bool L3Stop=true;
bool L4Stop=true;
bool L5Stop=true;
bool L6Stop=true;

double Chas;
double Pribl;
double Lots=100;
double maxBalance=0.1;
double minBalanse=0.1;         
//--------------------------------------------------------------- 2 --
int start()
  {
   int
   Total,                           // Êîëè÷åñòâî îðäåðîâ â îêíå 
   Ticket;                          // Íîìåð îðäåðà
   double                                 
   SL,                              // SL âûáðàííîãî îðäåðà 
   TP;                              // TP âûáðàííîãî îðäåðà
   if (minBalanse==0.1){minBalanse=AccountBalance();}
   if (AccountBalance()>(minBalanse*2) && L2Stop==true){Lots1=0.2;Lots2=0.4;Lots3=1.4;Lots4=2.8;L2Stop=false;}
   if (AccountBalance()>(minBalanse*3) && L3Stop==true){Lots1=0.3;Lots2=0.6;Lots3=2.1;Lots4=4.2;L3Stop=false;}
   if (AccountBalance()>(minBalanse*4) && L4Stop==true){Lots1=0.4;Lots2=0.8;Lots3=2.8;Lots4=5.6;L4Stop=false;}
   if (AccountBalance()>(minBalanse*5) && L5Stop==true){Lots1=0.5;Lots2=1  ;Lots3=3.5;Lots4=7  ;L5Stop=false;}
   if (AccountBalance()>(minBalanse*6) && L6Stop==true){Lots1=0.6;Lots2=1.2;Lots3=4.2;Lots4=8.4;L6Stop=false;}
   double Lot1=Lots1;
   double Lot2=Lots3;
//--------------------------------------------------------------- 3 --
   if(Bars < 24)                                // Íåäîñòàòî÷íî áàðîâ
     {
      Alert("Íåäîñòàòî÷íî áàðîâ â îêíå. Ýêñïåðò íå ðàáîòàåò.");
      return;                                   // Âûõîä èç start()
     }
   if(Work==false)                              // Êðèòè÷åñêàÿ îøèáêà
     {
      Alert("Êðèòè÷åñêàÿ îøèáêà. Ýêñïåðò íå ðàáîòàåò.");
      return;                                   // Âûõîä èç start()
     }
//--------------------------------------------------------------- 4 --
   Symb=Symbol();                               // Íàçâàíèå ôèí.èíñòð.
   Total=0;                                     // Êîëè÷åñòâî îðäåðîâ
   for(int i=1; i<=OrdersTotal(); i++)          // Öèêë ïåðåáîðà îðäåð
     {
      if (OrderSelect(i-1,SELECT_BY_POS)==true) // Åñëè åñòü ñëåäóþùèé
        {                                       // Àíàëèç îðäåðîâ:
         if (OrderSymbol()!=Symb)continue;      // Íå íàø ôèí. èíñòðóì
         if (OrderType()>1)                     // Ïîïàëñÿ îòëîæåííûé
           {
            Alert("Îáíàðóæåí îòëîæåííûé îðäåð. Ýêñïåðò íå ðàáîòàåò.");
            return;                             // Âûõîä èç start()
           }
         Total++;                               // Ñ÷¸ò÷èê ðûíî÷í. îðä
         if (Total>1)                           // Íå áîëåå îäíîãî îðä
           {
            Alert("Íåñêîëüêî ðûíî÷íûõ îðäåðîâ. Ýêñïåðò íå ðàáîòàåò.");
            return;                             // Âûõîä èç start()
           }
         Ticket=OrderTicket();                  // Íîìåð âûáðàíí. îðä.
        }
     }
//--------------------------------------------------------------- 5 --
if(Symbol()!="EURUSD"){Comment("Ðåêîìåíäóåòñÿ èñïîëüçîâàòü ýêñïåðòà íå íà âàëþò.ïàðå ",Symbol(),",à íà EURUSD.Äëÿ ",Symbol()," íóæíî ïîäáèðàòü ñòîï è ïðîôèò.");}
  for(int ii=1; ii<=OrdersHistoryTotal(); ii++)              // Öèêë ïåðåáîðà îðäåð
     {
      if (OrderSelect(ii-1,SELECT_BY_POS,MODE_HISTORY)==true)// Åñëè åñòü ñëåäóþùèé
        {                                                    
         if (OrderSymbol()!=Symb)continue;                   // Àíàëèç îðäåðîâ
         Pribl=OrderProfit();}}
  
  double Balance=AccountBalance();       
  if (Lots==100){Lots=Lot1;}      
  if (Total!=0){LTS=true;}
  
  if (Total==0 && Balance>maxBalance){PlanB=false;Lot1=Lots1;Lot2=Lots3;maxBalance=Balance;} 
  if (Total==0 && PlanB==true){Lot1=Lots2;Lot2=Lots4;} 
  if (LTS==true && Total==0 && Pribl<0 && Lots==Lot2){PlanB=true;LTS=false;}
  if (LTS==true && Total==0 && Pribl<0 && Lots==Lot1){Lots=Lot2;LTS=false;}
  if (LTS==true && Total==0 && Pribl>0){Lots=Lot1;LTS=false;}
  if (LTS==true && Total==0 && Pribl<0){Lots=Lot2;LTS=false;} 
  if (iClose("EURUSD",PERIOD_H4,1)>iOpen("EURUSD",PERIOD_H4,1)){Opn_S=false;Opn_B=true;}
  if (iClose("EURUSD",PERIOD_H4,1)<iOpen("EURUSD",PERIOD_H4,1)){Opn_S=true;Opn_B=false;}
  if (Total!=0){Vhod=false;}
  if (Chas!=iTime("EURUSD",PERIOD_H4,0)){Chas=iTime("EURUSD",PERIOD_H4,0);Vhod=true;}
 
//---------------------------------------------------------------- 6 --   
   while(true)                                  // Öèêë çàêðûòèÿ îðä.
     {
      if (Total==0 && Opn_B==true && Minute()<=15
      && Vhod==true)                            // Îòêðûòûõ îðä. íåò +
        {                                       // êðèòåðèé îòêð. Buy
         RefreshRates();                        // Îáíîâëåíèå äàííûõ
         SL= Bid- StopLoss *Point;              // Âû÷èñëåíèå SL îòêð.
         TP= Bid+ TakeProfit *Point;            // Âû÷èñëåíèå TP îòêð.
         Comment("Ïîïûòêà îòêðûòü Buy. Îæèäàíèå îòâåòà..");
         Ticket=OrderSend(Symb,OP_BUY,Lots,Ask,3,SL,TP,"Buy",173777,0,Blue);
         if (Ticket>0)                           // Ïîëó÷èëîñü :)
           {
            Comment("Îòêðûò îðäåð Buy ",Ticket);
            return;                             // Âûõîä èç start()
           }
         if (Fun_Error(GetLastError())==1)      // Îáðàáîòêà îøèáîê
            continue;                           // Ïîâòîðíàÿ ïîïûòêà
         return;                                // Âûõîä èç start()
        }
      if (Total==0 && Opn_S==true && Minute()<=15
      && Vhod==true)                            // Îòêðûòûõ îðä. íåò +
        {                                       // êðèòåðèé îòêð. Sell
         RefreshRates();                        // Îáíîâëåíèå äàííûõ
         SL= Ask+ StopLoss *Point;              // Âû÷èñëåíèå SL îòêð.
         TP= Ask- TakeProfit *Point;            // Âû÷èñëåíèå TP îòêð.
         Comment("Ïîïûòêà îòêðûòü Sell. Îæèäàíèå îòâåòà..");
         Ticket=OrderSend(Symb,OP_SELL,Lots,Bid,3,SL,TP,"Sell",174777,0,Red);
         if (Ticket>0)                            // Ïîëó÷èëîñü :)
           {
            Comment("Îòêðûò îðäåð Sell ",Ticket);
            return;                             // Âûõîä èç start()
           }
         if (Fun_Error(GetLastError())==1)      // Îáðàáîòêà îøèáîê
            continue;                           // Ïîâòîðíàÿ ïîïûòêà
         return;                                // Âûõîä èç start()
        }
      break;                                    // Âûõîä èç while
     }
//--------------------------------------------------------------- 7 --
   return;                                      // Âûõîä èç start()
  }
//--------------------------------------------------------------- 8 --
int Fun_Error(int Error)                        // Ô-èÿ îáðàáîò îøèáîê
  {
   switch(Error)
     {                                          // Ïðåîäîëèìûå îøèáêè            
      case  4: Alert("Òîðãîâûé ñåðâåð çàíÿò. Ïðîáóåì åù¸ ðàç..");
         Sleep(3000);                           // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 135:Alert("Öåíà èçìåíèëàñü. Ïðîáóåì åù¸ ðàç..");
         RefreshRates();                        // Îáíîâèì äàííûå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 136:Alert("Íåò öåí. Æä¸ì íîâûé òèê..");
         while(RefreshRates()==false)           // Äî íîâîãî òèêà
            Sleep(1);                           // Çàäåðæêà â öèêëå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 137:Alert("Áðîêåð çàíÿò. Ïðîáóåì åù¸ ðàç..");
         Sleep(3000);                           // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
      case 146:Alert("Ïîäñèñòåìà òîðãîâëè çàíÿòà. Ïðîáóåì åù¸..");
         Sleep(500);                            // Ïðîñòîå ðåøåíèå
         return(1);                             // Âûõîä èç ôóíêöèè
         // Êðèòè÷åñêèå îøèáêè
      case  2: Alert("Îáùàÿ îøèáêà.");
         return(0);                             // Âûõîä èç ôóíêöèè
      case  5: Alert("Ñòàðàÿ âåðñèÿ òåðìèíàëà.");
         Work=false;                            // Áîëüøå íå ðàáîòàòü
         return(0);                             // Âûõîä èç ôóíêöèè
      case 64: Alert("Ñ÷åò çàáëîêèðîâàí.");
         Work=false;                            // Áîëüøå íå ðàáîòàòü
         return(0);                             // Âûõîä èç ôóíêöèè
      case 133:Alert("Òîðãîâëÿ çàïðåùåíà.");
         return(0);                             // Âûõîä èç ôóíêöèè
      case 134:Alert("Íåäîñòàòî÷íî äåíåã äëÿ ñîâåðøåíèÿ îïåðàöèè.");
         return(0);                             // Âûõîä èç ôóíêöèè
      default: Alert("Âîçíèêëà îøèáêà ",Error); // Äðóãèå âàðèàíòû   
         return(0);                             // Âûõîä èç ôóíêöèè
     }
  }
//------------------------------------------------------------------


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