FT_BillWillams_Trader

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
Moving average indicator
0 Views
0 Downloads
0 Favorites

Profitability Reports

AUD/USD Oct 2024 - Jan 2025
61.00 %
Total Trades 100
Won Trades 0
Lost trades 0
Win Rate 0.00 %
Expected payoff -1.27
Gross Profit 194.40
Gross Loss -321.00
Total Net Profit -126.60
-100%
-50%
0%
50%
100%
GBP/USD Oct 2024 - Jan 2025
12.00 %
Total Trades 103
Won Trades 13
Lost trades 90
Win Rate 0.13 %
Expected payoff -4.52
Gross Profit 64.40
Gross Loss -530.20
Total Net Profit -465.80
-100%
-50%
0%
50%
100%
NZD/USD Oct 2024 - Jan 2025
27.00 %
Total Trades 107
Won Trades 25
Lost trades 82
Win Rate 0.23 %
Expected payoff -3.01
Gross Profit 121.80
Gross Loss -444.10
Total Net Profit -322.30
-100%
-50%
0%
50%
100%
FT_BillWillams_Trader
//+------------------------------------------------------------------+
//|                                        FT_BillWillams_Trader.mq4 |
//|                                                     FORTRADER.RU |
//|                                              http://FORTRADER.RU |
//+------------------------------------------------------------------+
#property copyright "FORTRADER.RU"
#property link      "http://FORTRADER.RU"

extern string FT1="------Íàñòðîéêè ôðàêòàëà:----------";
extern int CountBarsFractal=5;//êîëè÷åñòâî áàðîâ èç êîòîðûõ ñîñòîèò ôðàêòàë
extern int ClassicFractal=1; //âêëþ÷åíèå âûêëþ÷åíèå êëàññè÷åñêîãî ïàòòåðíà
extern int MaxDistance=1000;//âêëþ÷åíèå êîíòðîëÿ ðàññòîÿíèÿ îò çåëåíîé ëèíèè äî òî÷êè âõîäà
extern string FT2="------Íàñòðîéêè òèïà ïðîáîÿ ôðàêòàëà:----------";
extern int indent=1; //êîëè÷åñòâî ïóíêòîâ äëÿ îòñòóïà îò ìàêñèìóìà è ìèíèìóìà
extern int TypeEntry=2; //òèï âõîäà ïîñëå ïðîáîÿ ôðàêòàëà 1 - íà òåêóùåì áàðå 2 - íà áàðå çàêðûòèÿ 3 íà îòêàòå ê òî÷êå âõîäà ïîñëå ïðîáîÿ
extern int RedContol=1; //êîíòðîëèðîâàòü íàõîäèòñÿ ëè ïðîáîéíàÿ öåíà âûøå íèæå óðîâíÿ êðàñíîé ëèíèè
extern string FT3="------Íàñòðîéêè àëëèãàòîðà:----------";
extern int jaw_period=13;  // -   Ïåðèîä óñðåäíåíèÿ ñèíåé ëèíèè (÷åëþñòè àëëèãàòîðà). 
extern int jaw_shift=8;  // -   Ñìåùåíèå ñèíåé ëèíèè îòíîñèòåëüíî ãðàôèêà öåíû. 
extern int teeth_period=8;  // -   Ïåðèîä óñðåäíåíèÿ êðàñíîé ëèíèè (çóáîâ àëëèãàòîðà). 
extern int teeth_shift=5;  // -   Ñìåùåíèå êðàñíîé ëèíèè îòíîñèòåëüíî ãðàôèêà öåíû. 
extern int lips_period=5; //  -   Ïåðèîä óñðåäíåíèÿ çåëåíîé ëèíèè (ãóá àëëèãàòîðà). 
extern int lips_shift=3;  // -   Ñìåùåíèå çåëåíîé ëèíèè îòíîñèòåëüíî ãðàôèêà öåíû. 
extern int ma_method=0;   //- îò 0 äî 3 ìåòîä óñðåäíåíèÿ. Ìîæåò áûòü ëþáûì èç çíà÷åíèé ìåòîäîâ ñêîëüçÿùåãî ñðåäíåãî (Moving Average). 
extern int applied_price=4; // - îò 0 äî 6  -   Èñïîëüçóåìàÿ öåíà. Ìîæåò áûòü ëþáîé èç öåíîâûõ êîíñòàíò. 
extern string FT4="-------Íàñòðîéêè êîíòðîëÿ òðåíäà ïî àëëèãàòîðó:----------";
extern int TrendAligControl=0; // âêëþ÷åíèå êîíòðîëÿ òðåíäà ïî àëèãàòîðó
extern int jaw_teeth_distense=10; //ðàçíèöà ìåæäó çåëåíîé è êðàñíîé
extern int teeth_lips_distense=10;//ðàçíèöà ìåæäó êðàñíîé è ñèíèåé
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=50;
extern double  TakeProfit=50;
extern double  Lots=0.1;

int start()
  {

   ClassicFractal();
   return(0);
  }
  double oldopb,opb,ops,oldops, otkatb,otkats;
  int fractalnew,vpravovlevo,numsredbar,colish;
  
 int  ClassicFractal()
  {   int buy,sell;double sl,tp;
   

   //óïðàâëåíèå ïîçàìè
   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(High[numsredbar]>High[iHighest(NULL,0,MODE_HIGH,colish,numsredbar+1)] && High[numsredbar]>High[iHighest(NULL,0,MODE_HIGH,colish,1)] && (RedContol(Close[1],0)==true && RedContol==1))
   {
   opb=NormalizeDouble(High[numsredbar]+indent*Point,4);

   }
    //ïðîâåðêà âõîäà íà êàñàíèè èëè ïî çàêðûòèþ áàðà
   if(buy==0&&  ((Ask>opb && TypeEntry==1 ) || (Close[1]>opb && TypeEntry==2)) 
   && opb!=oldopb && MaxDistance(opb)==true && opb>0 
   && ((RedContol(Close[1],0)==true && RedContol==1) || RedContol==0)
   && ((TrendAligControl(0)==true && TrendAligControl==1) || TrendAligControl==0))
   {oldopb=opb;
   sl=NormalizeDouble(Ask-StopLoss*Point,4);
   tp=NormalizeDouble(Ask+TakeProfit*Point,4);
   OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp,"FORTRADER.RU",16384,10,Green);
   }
   
   /*------------------------------------------ÏÐÎÄÀÆÀ----------------------------------------*/
   
   //íàéäåì ôðàêòàë íà ïðîäàæó
   if(Low[numsredbar]<Low[iLowest(NULL,0,MODE_LOW,colish,numsredbar+1)] && Low[numsredbar]<Low[iLowest(NULL,0,MODE_LOW,colish,0)]  && (RedContol(Close[1],1)==true && RedContol==1) )
   {
   ops=NormalizeDouble(Low[numsredbar]-indent*Point,4);
  

   }
   //ïðîâåðêà âõîäà íà êàñàíèè èëè ïî çàêðûòèþ áàðà
   if(sell==0&& ( (Bid<ops && TypeEntry==1) ||  (Close[1]<ops && TypeEntry==2))   
   && oldops!=ops && MaxDistance(ops)==true 
   && ((RedContol(Close[1],1)==true && RedContol==1) ||RedContol==0)
   && ((TrendAligControl(1)==true && TrendAligControl==1) || TrendAligControl==0))
   {
   oldops=ops;
   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);
   }
   

  return(0);
  }

bool MaxDistance(double entryprice)
{

double lips=iMA(NULL,0,lips_period,lips_shift,ma_method,applied_price,1);

if(MathAbs(entryprice-lips)<MaxDistance*Point){return(true);}
return(false);
}

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);
}

bool TrendAligControl(int type)
{

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 jaw=iMA(NULL,0,jaw_period,jaw_shift,ma_method,applied_price,1);


if(type==0 && lips-teeth>teeth_lips_distense*Point && teeth-jaw>jaw_teeth_distense*Point ){return(true);}
if(type==1 && teeth-lips>teeth_lips_distense*Point && jaw-teeth>jaw_teeth_distense*Point ){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;}
      }  

   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);
            }
          }
          
         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);
            }
          }
          
        if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {
            if(OrderType()==OP_BUY && TrailingGragus==1 && lips-lipsl>sma-smal && OrderProfit()>0)
             {
             if(OrderStopLoss()<lips)
              {
              OrderModify(OrderTicket(),OrderOpenPrice(),lips,OrderTakeProfit(),0,White);
              return(0);
              }  
             } 
          }
           
           
        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)
              {
              OrderModify(OrderTicket(),OrderOpenPrice(),teeth,OrderTakeProfit(),0,White);
              return(0);
              }  
             } 
          }
         
         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);
           }
         }
          
          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);
           }
         }     
         
         
        if (OrderSelect(i-1,SELECT_BY_POS)==true) 
         {
            if(OrderType()==OP_SELL && TrailingGragus==1 && lipsl-lips<smal-sma && OrderProfit()>0)
             {
             if(OrderStopLoss()>lips)
              {
              OrderModify(OrderTicket(),OrderOpenPrice(),lips,OrderTakeProfit(),0,White);
              return(0);
              }  
             } 
          }
           
           
        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)
              {
              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 ---