FT_BillWillams_AO

Author: FORTRADER.RU
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself It can change open orders parameters, due to possible stepping strategy
Indicators Used
Bill Williams Awesome oscillatorMoving average indicator
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
12.00 %
Total Trades 1141
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -1.40
Gross Profit 215.60
Gross Loss -1811.70
Total Net Profit -1596.10
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
4.00 %
Total Trades 2718
Won Trades 12
Lost trades 2706
Win Rate 0.00 %
Expected payoff -3.67
Gross Profit 367.80
Gross Loss -10331.90
Total Net Profit -9964.10
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
48.00 %
Total Trades 60
Won Trades 15
Lost trades 45
Win Rate 0.25 %
Expected payoff -4.71
Gross Profit 264.30
Gross Loss -547.10
Total Net Profit -282.80
-100%
-50%
0%
50%
100%
FT_BillWillams_AO
//+------------------------------------------------------------------+
//|                                            FT_BillWillams_AO.mq4 |
//|                                                     FORTRADER.RU |
//|                                              http://FORTRADER.RU |
//+------------------------------------------------------------------+
#property copyright "FORTRADER.RU"
#property link      "http://FORTRADER.RU"

extern string FT1="------Íàñòðîéêè ôðàêòàëà:----------";
extern int CountBarsFractal=5;//êîëè÷åñòâî áàðîâ èç êîòîðûõ ñîñòîèò ôðàêòàë
extern string FT2="------Íàñòðîéêè ñèãíàëà íà âõîä:----------";
extern int indent=1; //êîëè÷åñòâî ïóíêòîâ äëÿ îòñòóïà îò ìàêñèìóìà è ìèíèìóìà
extern string FT3="------Íàñòðîéêè àëëèãàòîðà:----------";
extern int jaw_period=13;  // -   Ïåðèîä óñðåäíåíèÿ ñèíåé ëèíèè (÷åëþñòè àëëèãàòîðà). 
 int jaw_shift=8;  // -   Ñìåùåíèå ñèíåé ëèíèè îòíîñèòåëüíî ãðàôèêà öåíû. 
extern int teeth_period=8;  // -   Ïåðèîä óñðåäíåíèÿ êðàñíîé ëèíèè (çóáîâ àëëèãàòîðà). 
 int teeth_shift=5;  // -   Ñìåùåíèå êðàñíîé ëèíèè îòíîñèòåëüíî ãðàôèêà öåíû. 
extern int lips_period=5; //  -   Ïåðèîä óñðåäíåíèÿ çåëåíîé ëèíèè (ãóá àëëèãàòîðà). 
 int lips_shift=3;  // -   Ñìåùåíèå çåëåíîé ëèíèè îòíîñèòåëüíî ãðàôèêà öåíû. 
 int ma_method=0;   //- îò 0 äî 3 ìåòîä óñðåäíåíèÿ. Ìîæåò áûòü ëþáûì èç çíà÷åíèé ìåòîäîâ ñêîëüçÿùåãî ñðåäíåãî (Moving Average). 
 int applied_price=4; // - îò 0 äî 6  -   Èñïîëüçóåìàÿ öåíà. Ìîæåò áûòü ëþáîé èç öåíîâûõ êîíñòàíò. 
 
extern string FT5="-------Íàñòðîéêè êîíòðîëÿ çàêðûòèÿ ñäåëêè:----------";
extern int CloseDropTeeth=2; //Âêëþ÷åíèå çàêðûòèÿ ñäåëêè ïðè êîñàíèè èëè ïðîáîå ÷åëþñòè. 0 - îòêëþ÷åíèå 1 - ïî êàñàíèþ 2 ïî çàêðûòèþ áàðà
extern int CloseReversSignal=2;//Âêëþ÷åíèå çàêðûòèÿ ñäåëêè ïðè 1- îáðàçîâàíèè îáðàòíîãî ôðàêòàëà 2 - ïðè ñðàáàòûâàíèè îáðàòíîãî ôðàêòàëà 0 âûêëþ÷åíî 
 
extern string FT6="-------Íàñòðîéêè ñîïðîâîæäåíèÿ StopLoss ñäåëêè:----------";
extern int TrailingGragus=1; //Âêëþ÷åíèå òðåéëèíã ñòîïà ïî öåíîâîìó ãðàäóñó íàêëîíà, åñëè ñèëüíûé óãîë òî òðåéëèíã ïî çåëåíîé, åñëè ìàëûé óãîë òî òðåéëèíã ïî êðàñíîé
extern int smaperugol=5;
extern int raznica=5;
 
extern string FT7="-------Íàñòðîéêè  StopLoss è TakeProfit èáüåìà ñäåëêè:----------";
extern double  StopLoss=500;
extern double  TakeProfit=500;
extern double  Lots=0.1;

extern int shift=1;


  int fractalnew,vpravovlevo,numsredbar,colish;
  int signal,signals;
  double oldopb,opb,ops,oldops, buyprice,sellprice;
  int buy,sell;
  
int start()
  {
   //óïðàâëåíèå ïîçàìè
   ClassicFractalPosManager();
   
        buy=0;sell=0;
      for(int  i=0;i<OrdersTotal();i++)
      {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()==OP_BUY ){buy=1;}
      if(OrderType()==OP_SELL ){sell=1;}
      }  
  
     //íàéäåì ñêîüëêî ñìîòðåòü âïðàâî è â ëåâî
   vpravovlevo=(CountBarsFractal-1)/2;
   numsredbar=(CountBarsFractal-vpravovlevo);
   colish=numsredbar-1;
   
   /*----------------------------------------ÏÎÊÓÏÊÀ------------------------------------------*/
   
   //íàéäåì ôðàêòàë íà ïîêóïêó
   if(signal==0 && High[numsredbar]>High[iHighest(NULL,0,MODE_HIGH,colish,numsredbar+1)] && High[numsredbar]>High[iHighest(NULL,0,MODE_HIGH,colish,1)] && RedContol(High[numsredbar],0)==true && buy==0)
   {
   signal=signal+1;   
   }
   
   double A =iAO(NULL,0,shift+2);
   double B =iAO(NULL,0,shift+1);
   double C =iAO(NULL,0,shift);
   
   //ïðîâåðèì íå çàõîäèë ëè Ñ ìåíüøå íóëÿ
   if(C<0){signal=0;}
   
   //ïðîâåðèì íå ïîðà ëè ðàçìåùàòü ïîêóïê
   if(A>B && B<C && C>0 && B>0 && A>0 && signal==1){signal=signal+1;buyprice=High[shift]+indent*Point;}
   
   //ïðîâåðèì íå ïîðà ëè âõîäèòü â ðûíîê
   if(Ask>=buyprice && signal==2 && C>B)
   {
   double sl=NormalizeDouble(Ask-StopLoss*Point,4);
   double tp=NormalizeDouble(Ask+TakeProfit*Point,4);
   OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp,"FORTRADER.RU",16384,10,Green);
   signal=0;
   }
   
   
   /*------------------------------------------ÏÐÎÄÀÆÀ----------------------------------------*/
   
   //íàéäåì ôðàêòàë íà ïðîäàæó
   if(signals==0&& Low[numsredbar]<Low[iLowest(NULL,0,MODE_LOW,colish,numsredbar+1)] && Low[numsredbar]<Low[iLowest(NULL,0,MODE_LOW,colish,0)]  && RedContol(Low[numsredbar],1)==true && sell==0 )
   {
   signals=signals+1;   
   }
   
   //ïðîâåðèì íå çàõîäèë ëè Ñ áîëüøå íóëÿ
   if(C>0 && signals==1){signals=0;}
   
    //ïðîâåðèì íå ïîðà ëè ðàçìåùàòü ïîêóïê
   if(A<B && B>C && C<0 && B<0 && A<0 && signals==1){signals=signals+1;sellprice=Low[shift]-indent*Point;}

   //ïðîâåðèì íå ïîðà ëè âõîäèòü íà ïðîäàæó
   if(Bid<=sellprice && signals==2 && C<B)
   {
   sl=NormalizeDouble(Bid+StopLoss*Point,4);
   tp=NormalizeDouble(Bid-TakeProfit*Point,4);
   OrderSend(Symbol(),OP_SELL,Lots,Bid,3,sl,tp,"FORTRADER.RU",16384,10,Green);
   signals=0;
   }
    
   return(0);
  }






/********************************Ôóíêöèèè******************************************/

   //ôóíêöèÿ êîíòðîëÿ öåíû ôðàêòàëà, íèæå îíà ïàñòè èëè âûøå
   bool RedContol(double entryprice,int  type)
   {

   double teeth=iMA(NULL,0,teeth_period,teeth_shift,ma_method,applied_price,1);

   if(entryprice>teeth && type==0){return(true);}
   if(entryprice<teeth && type==1){return(true);}
   return(false);
   }
   
int ClassicFractalPosManager()
{int i,buy,sell;
double jaw=iMA(NULL,0,jaw_period,jaw_shift,ma_method,applied_price,1);
double teeth=iMA(NULL,0,teeth_period,teeth_shift,ma_method,applied_price,1);
double lips=iMA(NULL,0,lips_period,lips_shift,ma_method,applied_price,1);
double lipsl=iMA(NULL,0,lips_period,lips_shift,ma_method,applied_price,2);
double sma=iMA(NULL,0,smaperugol,0,MODE_SMA,PRICE_CLOSE,1);
double smal=iMA(NULL,0,smaperugol,0,MODE_SMA,PRICE_CLOSE,2);

      buy=0;sell=0;
      for(  i=0;i<OrdersTotal();i++)
      {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()==OP_BUY ){buy=1;}
      if(OrderType()==OP_SELL ){sell=1;}
      }  
//extern int CloseDropTeeth=2; //Âêëþ÷åíèå çàêðûòèÿ ñäåëêè ïðè êîñàíèè èëè ïðîáîå ÷åëþñòè. 0 - îòêëþ÷åíèå 1 - ïî êàñàíèþ 2 ïî çàêðûòèþ áàðà
//extern int CloseReversSignal=2;//Âêëþ÷åíèå çàêðûòèÿ ñäåëêè ïðè 1- îáðàçîâàíèè îáðàòíîãî ôðàêòàëà 2 - ïðè ñðàáàòûâàíèè îáðàòíîãî ôðàêòàëà 0 âûêëþ÷åíî 
   for( i=1; i<=OrdersTotal(); i++)          
     {
         if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         { 
            if(OrderType()==OP_BUY && ((CloseDropTeeth==1 && Bid<=jaw ) ||  (CloseDropTeeth==2 && Close[1]<=jaw )))
            { 
            OrderClose(OrderTicket(),Lots,Bid,3,Violet); 
            return(0);
            }
          }
      }
      
         for( i=1; i<=OrdersTotal(); i++)          
     {
          
         if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         { 
            if(OrderType()==OP_BUY && 
            ((CloseReversSignal==1 && Low[numsredbar]<Low[iLowest(NULL,0,MODE_LOW,colish,numsredbar+1)] && Low[numsredbar]<Low[iLowest(NULL,0,MODE_LOW,colish,0)] ) 
            ||(CloseReversSignal==2 && sell==1 )))
            { 
            OrderClose(OrderTicket(),Lots,Bid,3,Violet); 
            return(0);
            }
          }
      }
      
         for( i=1; i<=OrdersTotal(); i++)          
     {
          
        if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {
            if(OrderType()==OP_BUY && TrailingGragus==1 && lips-lipsl>sma-smal && OrderProfit()>0)
             {
             if(OrderStopLoss()<lips && MathAbs(Bid-lips)>12*Point)
              {
              OrderModify(OrderTicket(),OrderOpenPrice(),lips,OrderTakeProfit(),0,White);
              return(0);
              }  
             } 
          }
      }     
       
          for( i=1; i<=OrdersTotal(); i++)          
     {    
        if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {
            if(OrderType()==OP_BUY && TrailingGragus==1 && lips-lipsl<=sma-smal && OrderProfit()>0)
             {
             if((OrderStopLoss()<teeth || lips>teeth) && MathAbs(Ask-teeth)>12*Point)
              {
              OrderModify(OrderTicket(),OrderOpenPrice(),teeth,OrderTakeProfit(),0,White);
              return(0);
              }  
             } 
          }
      }
      
         for( i=1; i<=OrdersTotal(); i++)          
     {   
         if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         { 
           if(OrderType()==OP_SELL && ((CloseDropTeeth==1 && Ask>=jaw ) ||  (CloseDropTeeth==2 && Close[1]>=jaw )))
           {
           OrderClose(OrderTicket(),Lots,Ask,3,Violet); 
           return(0);
           }
         }
      }
      
         for( i=1; i<=OrdersTotal(); i++)          
     {    
          if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         { 
           if(OrderType()==OP_SELL && ((CloseReversSignal==1 && High[numsredbar]>High[iHighest(NULL,0,MODE_HIGH,colish,numsredbar+1)] && High[numsredbar]>High[iHighest(NULL,0,MODE_HIGH,colish,1)]) 
           ||  (CloseReversSignal==2 && buy==1  )))
           {
           OrderClose(OrderTicket(),Lots,Ask,3,Violet); 
           return(0);
           }
         }     
      }   
       
          for( i=1; i<=OrdersTotal(); i++)          
     {  
        if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {
            if(OrderType()==OP_SELL && TrailingGragus==1 && lipsl-lips<smal-sma && OrderProfit()>0)
             {
             if(OrderStopLoss()>lips && MathAbs(Ask-lips)>12*Point)
              {
             OrderModify(OrderTicket(),OrderOpenPrice(),lips,OrderTakeProfit(),0,White);
              return(0);
              }  
             } 
          }
      }     
       
          for( i=1; i<=OrdersTotal(); i++)          
     {    
        if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {
            if(OrderType()==OP_SELL && TrailingGragus==1 && lipsl-lips>smal-sma && OrderProfit()>0)
             {
             if((OrderStopLoss()>teeth || lips<teeth) && MathAbs(Ask-teeth)>12*Point)
              {
              OrderModify(OrderTicket(),OrderOpenPrice(),teeth,OrderTakeProfit(),0,White);
              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 ---