Alligator_Simple

Author: Nikolay Khrushchev
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself It automatically opens orders when conditions are reachedIt can change open orders parameters, due to possible stepping strategy
Indicators Used
Bill Williams Alligator
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Alligator_Simple
//+------------------------------------------------------------------+
//|                                        Alligator Simple v1.1.mq4 |
//|                                               Nikolay Khrushchev |
//|                                         N.A.Khrushchev@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Nikolay Khrushchev"
#property link      "N.A.Khrushchev@gmail.com"
extern string qqqqqqqqq    = " Ïàðàìåòðû òîðãîâëè";
extern bool   Market_Exec  = false;
extern double Currency     = 1;
extern bool   EveryTick    = true;
extern int    TF           = 30;
extern double Lot          = 0.1;
extern double Prof         = 75;
extern double Loss         = 25;
extern double magic        = 2512201020;
extern string eeeeeeeee    = " Ïàðàìåòðû òðàëà";
extern bool   TrallEn      = true;
extern double TrallSt      = 30;
extern double TrallPp      = 10;
extern string wwwwwwwww    = " Ïàðàìåòðû Àëèãàòîðà";
extern double ChelPr       = 13;
extern double ChelSh       = 8;
extern double TeethPr      = 8;
extern double TeethSh      = 5;
extern double LipsPr       = 5;
extern double LipsSh       = 3;
extern int    MAmethod     = 2;
extern int    MAprice      = 4;
extern string sarase       = " MAprice 0,1,4,5,6";

int Ticket, TimeN;
bool TickeT, Work = true;
double TrallClosePrice,Pp;

//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
void start()
   {
   Comment("Nikolay Khrushchev","\n","N.A.Khrushchev@gmail.com");
   if (TF*60 != Time[0]-Time[1]) return;
   if (EveryTick==false)
      {
      if(TimeN == Time[0]) return;
      TimeN = Time[0];
      }
   if (Work==false)
      {
      return;
      }
   for (int i=OrdersTotal()-1; i>=0; i--)   // Ïåðåáîðêà îòêðûòûõ îðäåðîâ
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) // åñòü ñëåäóþùèé
         {
         if (OrderMagicNumber()==magic)  // ñðàâíåíèå ìåäæèêà
            {
            if (TrallEn==true) Tralling(OrderTicket());
            return;
            }   
         }
      }
   double JAW = iAlligator(NULL, 0, ChelPr, ChelSh, TeethPr, TeethSh, LipsPr, LipsSh, MAmethod, MAprice, MODE_GATORJAW, 1);
   double TEETH = iAlligator(NULL, 0, ChelPr, ChelSh, TeethPr, TeethSh, LipsPr, LipsSh, MAmethod, MAprice, MODE_GATORTEETH, 1);
   double LIPS = iAlligator(NULL, 0, ChelPr, ChelSh, TeethPr, TeethSh, LipsPr, LipsSh, MAmethod, MAprice, MODE_GATORLIPS, 1);
   if(LIPS>TEETH && TEETH>JAW) OrderSendBuy();
   if(LIPS<TEETH && TEETH<JAW) OrderSendSell();
   return;
   }
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
void CloseOrders(int Nomber)
   {
   if(OrderSelect(Nomber,SELECT_BY_TICKET,MODE_TRADES)==true) // åñòü ñëåäóþùèé
      {
      if(OrderType()==OP_BUY)
        {
        while(true)
           {
           Ticket=OrderClose(OrderTicket(),OrderLots(),Bid,30,Black);
           if (Ticket > 0)                        
              {
              return;                             
              }
           if (Fun_Error(GetLastError())==1)      
              {
              continue;                           
              }
           }
        }
     if (OrderType()==OP_SELL)
        {
        while(true)
           {
           Ticket=OrderClose(OrderTicket(),OrderLots(),Ask,30,Black);
           if (Ticket > 0)                        
              {
              return;                            
              }
           if (Fun_Error(GetLastError())==1)      
              {
              continue;                           
              }
           }
        }
     }
   return;
   }
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
void OrderSendBuy()
   {
   double SL=Ask-Loss*Pp;
   double TP=Ask+Prof*Pp;
   if (Market_Exec) { SL=0; TP=0; }
   while(true)
      {
      TrallClosePrice= Ask-Loss*Pp;
      Ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,SL,TP,NULL,magic,0,Blue);  
      if (Ticket > 0) { Print ("Îòêðûò îðäåð Buy ",Ticket); break; }
      if (Fun_Error(GetLastError())==1) { continue; }
      return;                               
      }
   if (Market_Exec)
      {
      SL=Ask-Loss*Pp;
      TP=Ask+Prof*Pp;
      while(true)
         {
         if(!OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)) break;
         TickeT=OrderModify(Ticket,OrderOpenPrice(),SL,0,0,Black);
         if (Ticket==true) { Print ("óñïåøíî óñòàíîâëåí ñòîï ëîññ",OrderTicket()); break; }
         if (Fun_Error(GetLastError())==1) { continue; }
         break;                                
         }
      while(true)
         {
         if(!OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)) break;
         TickeT=OrderModify(Ticket,OrderOpenPrice(),OrderStopLoss(),TP,0,Black);
         if (Ticket==true) { Print ("óñïåøíî óñòàíîâëåí òåéê ïðîôèò",OrderTicket()); break; }
         if (Fun_Error(GetLastError())==1) { continue; }
         break;                                
         }
      }
   return;
   }
//+------------------------------------------------------------------+
void OrderSendSell()
   {
   double SL=Bid+Loss*Pp;
   double TP=Bid-Prof*Pp;
   if (Market_Exec) { SL=0; TP=0; }
   while(true)
      {
      TrallClosePrice= Bid+Loss*Pp;
      Ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,SL,TP,NULL,magic,0,Red);
      if (Ticket > 0) { Print ("Îòêðûò îðäåð Sell ",Ticket); break; }
      if (Fun_Error(GetLastError())==1) { continue; }
      return;                                
      }
   if (Market_Exec)
      {
      SL=Bid+Loss*Pp;
      TP=Bid-Prof*Pp;
      while(true)
         {
         if(!OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)) break;
         TickeT=OrderModify(Ticket,OrderOpenPrice(),SL,0,0,Black);
         if (Ticket==true) { Print ("óñïåøíî óñòàíîâëåí ñòîï ëîññ",OrderTicket()); break; }
         if (Fun_Error(GetLastError())==1) { continue; }
         break;                                
         }
      while(true)
         {
         if(!OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)) break;
         TickeT=OrderModify(Ticket,OrderOpenPrice(),OrderStopLoss(),TP,0,Black);
         if (Ticket==true) { Print ("óñïåøíî óñòàíîâëåí òåéê ïðîôèò",OrderTicket()); break; }
         if (Fun_Error(GetLastError())==1) { continue; }
         break;                                
         }
      }   
   return;
   }
//+------------------------------------------------------------------+
void Tralling(int Nomber)
   {
   if(OrderSelect(Nomber,SELECT_BY_TICKET,MODE_TRADES)==true)
      {
      if (OrderProfit()/OrderLots()/10/Currency >= TrallSt)
         {
         if (OrderType()==OP_BUY)
            {
            if (Ask>OrderOpenPrice())
               {
               if (Ask-TrallPp*Pp > TrallClosePrice) TrallClosePrice=Ask-TrallPp*Pp;
               if (Ask<=TrallClosePrice) CloseOrders(OrderTicket());
               }
            }
         if (OrderType()==OP_SELL)
            {
            if (Bid<OrderOpenPrice())
               {
               if (Bid+TrallPp*Pp < TrallClosePrice) TrallClosePrice=Bid+TrallPp*Pp;
               if (Bid>=TrallClosePrice) CloseOrders(OrderTicket());
               }
            }
         }
      }
   return;
   }
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
//896896896869869869869869689686986986986986968869869869869689689686986986986986986968968986
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 138:Alert ("Îøèáêà öåí");
         Sleep(3000);
         RefreshRates();
         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);                             // Âûõîä èç ôóíêöèè
     }
  }
void init()
   {
   if (Point==0.0001 || Point==0.00001) Pp=0.0001;
   if (Point==0.01 || Point==0.001) Pp=0.01;
   return;
   }
void deinit()
   {
   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 ---