//+------------------------------------------------------------------+
//|                                                 PW Trend Mid.mq4 |
//|                                                             Wags |
//|                                             wags1970@outlook.com |
//+------------------------------------------------------------------+
#property copyright "Wags"
#property link      "wags1970@outlook.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrDodgerBlue
#property indicator_color2 clrTomato
#property indicator_width1  2
#property indicator_width2  2

extern int FastPeriod=45;
extern int SlowPeriod=50;

enum Pmode1
  {
   P1=PRICE_CLOSE,     // PRICE CLOSE
   P2=PRICE_HIGH,     // PRICE HIGH
   P3=PRICE_LOW,     // PRICE LOW
   P4=PRICE_OPEN,     // PRICE OPEN
   P5=PRICE_MEDIAN,    // PRICE MEDIAN
   P6=PRICE_TYPICAL,    // PRICE TYPICAL
   P7=PRICE_WEIGHTED,    // PRICE WEIGHTED
  };
  
input Pmode1 PriceMode1 = P1;

enum Pmode2
  {
   PR1=PRICE_CLOSE,     // PRICE CLOSE
   PR2=PRICE_HIGH,     // PRICE HIGH
   PR3=PRICE_LOW,     // PRICE LOW
   PR4=PRICE_OPEN,     // PRICE OPEN
   PR5=PRICE_MEDIAN,    // PRICE MEDIAN
   PR6=PRICE_TYPICAL,    // PRICE TYPICAL
   PR7=PRICE_WEIGHTED,    // PRICE WEIGHTED
  };
  
input Pmode2 PriceMode2 = PR1;

enum Mmode1
  {
   M1=MODE_EMA,     // MODE_EMA
   M2=MODE_SMA,     // MODE_SMA
   M3=MODE_SMMA,     // MODE_SMMA
   M4=MODE_LWMA,     // MODE_LWMA
  };
  
input Mmode1 MAMode1 = M1;

enum Mmode2
  {
   MR1=MODE_EMA,     // MODE_EMA
   MR2=MODE_SMA,     // MODE_SMA
   MR3=MODE_SMMA,     // MODE_SMMA
   MR4=MODE_LWMA,     // MODE_LWMA
  };
  
input Mmode2 MAMode2 = MR1;

enum Dmode1
  {
   D1=DRAW_LINE,     // DRAW LINE
   D2=DRAW_HISTOGRAM,     // DRAW HISTOGRAM
   D3=DRAW_COLORLINE,     // DRAW COLORLINE
   D4=DRAW_COLORCANDLE,     // DRAW COLORCANDLE
  };
  
input Dmode1 Draw1 = D2;

enum Dmode2
  {
   DR1=DRAW_LINE,     // DRAW LINE
   DR2=DRAW_HISTOGRAM,     // DRAW HISTOGRAM
   DR3=DRAW_COLORLINE,     // DRAW COLORLINE
   DR4=DRAW_COLORCANDLE,     // DRAW COLORCANDLE
  };
  
input Dmode2 Draw2 = DR2;

enum Smode1
  {
   S1=STYLE_SOLID,     // STYLE SOLID
   S2=STYLE_DOT,     // STYLE DOT
   S3=STYLE_DASH,     // STYLE DASH
   S4=STYLE_DASHDOT,     // STYLE DASHDOT
   S5=STYLE_DASHDOTDOT,     // STYLE DASHDOTDOT
  };
  
input Smode1 Style1 = S2;

enum Smode2
  {
   SR1=STYLE_SOLID,     // STYLE SOLID
   SR2=STYLE_DOT,     // STYLE DOT
   SR3=STYLE_DASH,     // STYLE DASH
   SR4=STYLE_DASHDOT,     // STYLE DASHDOT
   SR5=STYLE_DASHDOTDOT,     // STYLE DASHDOTDOT
  };
  
input Smode2 Style2 = SR2;

double MA1, MA2;
double Buffer1[], Buffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,Draw1,Style1);
   SetIndexBuffer(0,Buffer1);
   
   SetIndexStyle(1,Draw2,Style2);
   SetIndexBuffer(1,Buffer2);
//---- indicators

   IndicatorShortName("PW Trend Mid");
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   
   int limit=Bars-counted_bars;
   if(counted_bars>0) limit++;
   
   for(int i=1; i<limit; i++)
   {
      MA1=iMA(NULL,0,FastPeriod,0,MAMode1,PriceMode1,i);
      MA2=iMA(NULL,0,SlowPeriod,0,MAMode2,PriceMode2,i);
   
      Buffer1[i]=MA1;
      Buffer2[i]=MA2;
   }
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+