Pivot_Scalper





//+------------------------------------------------------------------+
//|                                                Pivot Scalper.mq4 |
//|                                                               cja|
//+------------------------------------------------------------------+
#property indicator_chart_window
extern bool Show_Full_Lines = false;
extern int UpperLEVEL       = 30;
extern color Upper_Color    = Lime; 
extern int LowerLEVEL       = 30;
extern color Lower_Color    = Red;
extern int Line_width       = 1;
extern int Line_style       = 2;
extern bool Extend_Lines    = true;

extern color Pivot_Color = DarkSlateGray;
extern int Pivot_width   = 2;

#define PP1 "PP1"
#define UPPER "UPPER"
#define LOWER "LOWER"
#define UPPER1 "UPPER1"
#define LOWER1 "LOWER1"
#define UPPER2 "UPPER2"
#define LOWER2 "LOWER2"
#define UPPER3 "UPPER3"
#define LOWER3 "LOWER3"
#define UPPER4 "UPPER4"
#define LOWER4 "LOWER4"
#define UPPER5 "UPPER5"
#define LOWER5 "LOWER5"
#define UPPER6 "UPPER6"
#define LOWER6 "LOWER6"
#define UPPER7 "UPPER7"
#define LOWER7 "LOWER7"
#define UPPER8 "UPPER8"
#define LOWER8 "LOWER8"
#define UPPER9 "UPPER9"
#define LOWER9 "LOWER9"

double x;
int trend;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorShortName("Pivot Scalper");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----    
   ObjectDelete(PP1);
   ObjectDelete(UPPER); ObjectDelete(LOWER);
   ObjectDelete(UPPER1); ObjectDelete(LOWER1);
   ObjectDelete(UPPER2); ObjectDelete(LOWER2);
   ObjectDelete(UPPER3); ObjectDelete(LOWER3);
   ObjectDelete(UPPER4); ObjectDelete(LOWER4);
   ObjectDelete(UPPER5); ObjectDelete(LOWER5);
   ObjectDelete(UPPER6); ObjectDelete(LOWER6);
   ObjectDelete(UPPER7); ObjectDelete(LOWER7);
   ObjectDelete(UPPER8); ObjectDelete(LOWER8);
   ObjectDelete(UPPER9); ObjectDelete(LOWER9);
   
   DeleteLevel();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars= IndicatorCounted();
    x = Period();
       if(x > 240) return(-1); 
       
  if(Show_Full_Lines){trend = OBJ_HLINE;}else{trend=OBJ_TREND;}
//----
   CreatePVT();
}

void CreateLevel(string Line, double start, double end,double w, double s,color clr)
  {
   ObjectCreate(Line, trend, 0, iTime(NULL,1440,0), start, Time[0], end);
   ObjectSet(Line, OBJPROP_COLOR, clr);
   ObjectSet(Line,OBJPROP_WIDTH,w);
   ObjectSet(Line,OBJPROP_STYLE,s);
   ObjectSet(Line,OBJPROP_RAY,Extend_Lines);
   ObjectSet(Line,OBJPROP_BACK,true);
     }
        void DeleteLevel()
   { 
   ObjectDelete(PP1);
   ObjectDelete(UPPER); ObjectDelete(LOWER);
   ObjectDelete(UPPER1); ObjectDelete(LOWER1);
   ObjectDelete(UPPER2); ObjectDelete(LOWER2);
   ObjectDelete(UPPER3); ObjectDelete(LOWER3);
   ObjectDelete(UPPER4); ObjectDelete(LOWER4);
   ObjectDelete(UPPER5); ObjectDelete(LOWER5);
   ObjectDelete(UPPER6); ObjectDelete(LOWER6);
   ObjectDelete(UPPER7); ObjectDelete(LOWER7);
   ObjectDelete(UPPER8); ObjectDelete(LOWER8);
   ObjectDelete(UPPER9); ObjectDelete(LOWER9); 
   }
   void CreatePVT()
   {
   
     DeleteLevel();
     
       
    double P = (iHigh(NULL,1440,1) + iLow(NULL,1440,1) + iClose(NULL,1440,1)) / 3;
    double UP = P+ UpperLEVEL*Point;
    double DN = P- LowerLEVEL*Point; 
    double UP1 = P+ (UpperLEVEL*Point)*2;
    double DN1 = P- (LowerLEVEL*Point)*2;
    double UP2 = P+ (UpperLEVEL*Point)*3;
    double DN2 = P- (LowerLEVEL*Point)*3;
    double UP3 = P+ (UpperLEVEL*Point)*4;
    double DN3 = P- (LowerLEVEL*Point)*4; 
    double UP4 = P+ (UpperLEVEL*Point)*5;
    double DN4 = P- (LowerLEVEL*Point)*5; 
    double UP5 = P+ (UpperLEVEL*Point)*6;
    double DN5 = P- (LowerLEVEL*Point)*6; 
    double UP6 = P+ (UpperLEVEL*Point)*7;
    double DN6 = P- (LowerLEVEL*Point)*7; 
    double UP7 = P+ (UpperLEVEL*Point)*8;
    double DN7 = P- (LowerLEVEL*Point)*8; 
    double UP8 = P+ (UpperLEVEL*Point)*9;
    double DN8 = P- (LowerLEVEL*Point)*9; 
    double UP9 = P+ (UpperLEVEL*Point)*10;
    double DN9 = P- (LowerLEVEL*Point)*10;  

          
    
    CreateLevel(PP1,P,P,Pivot_width,0,Pivot_Color);
    CreateLevel(UPPER,UP,UP,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER,DN,DN,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER1,UP1,UP1,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER1,DN1,DN1,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER2,UP2,UP2,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER2,DN2,DN2,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER3,UP3,UP3,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER3,DN3,DN3,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER4,UP4,UP4,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER4,DN4,DN4,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER5,UP5,UP5,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER5,DN5,DN5,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER6,UP6,UP6,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER6,DN6,DN6,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER7,UP7,UP7,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER7,DN7,DN7,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER8,UP8,UP8,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER8,DN8,DN8,Line_width,Line_style, Lower_Color );
    CreateLevel(UPPER9,UP9,UP9,Line_width,Line_style, Upper_Color );
    CreateLevel(LOWER9,DN9,DN9,Line_width,Line_style, Lower_Color );
                
    
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains close prices for each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: