//+------------------------------------------------------------------+ //| Vasily Pip Sniper.mq4 | //| By: E | //| | //+------------------------------------------------------------------+ //mod2008fxtsd #property copyright "By: E" //---- #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_level1 1 #property indicator_level2 0.25 #property indicator_level3 -0.25 #property indicator_level4 -1 #property indicator_levelcolor DarkSlateGray extern int Price = 6; extern int Method = 3; extern bool UseUserVariables = True; extern int FastPeriod = 12;//21 extern int SlowPeriod = 26;//144 extern string notes = "If UseUserVariables set to false, Fast&SlowPeriods are preset for each TF"; extern string price_ = "0C 1O 2H 3L 4Md 5Tp 6WghC: Md(HL/2)4,Tp(HLC/3)5,Wgh(HLCC/4)6"; extern string Method_ = "SMA0 EMA1 SMMA2 LWMA3"; //---- parameters int per1, per2; //---- buffers double up[]; double dn[]; double WorkBuffer[]; double WorkBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- if (!UseUserVariables) { // for monthly int mn_per = 12; int mn_fast = 3; // for weekly int w_per = 9; int w_fast = 3; // for daily int d_per = 5; int d_fast = 3; // for H4 int h4_per = 12; int h4_fast = 2; // for H1 int h1_per = 24; int h1_fast = 8; // for M30 int m30_per = 16; int m30_fast = 2; // for M15 int m15_per = 16; int m15_fast = 4; // for M5 int m5_per = 12; int m5_fast = 3; // for M1 int m1_per = 30; int m1_fast = 10; //---- } //---- if (UseUserVariables) { per1=FastPeriod; per2=SlowPeriod; } else { switch(Period()) { case 1: per2 = m1_per; per1 = m1_fast; break; case 5: per2 = m5_per; per1 = m5_fast; break; case 15: per2 = m15_per; per1 = m15_fast; break; case 30: per2 = m30_per; per1 = m30_fast; break; case 60: per2 = h1_per; per1 = h1_fast; break; case 240: per2 = h4_per; per1 = h4_fast; break; case 1440: per2 = d_per; per1 = d_fast; break; case 10080: per2 = w_per; per1 = w_fast; break; case 43200: per2 = mn_per; per1 = mn_fast; break; } } string Indicator_Name = "Vasily Pip Sniper ZL ("+per1+","+ per2+") "; //----- IndicatorBuffers(4); SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, up); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, dn); SetIndexBuffer(2, WorkBuffer); SetIndexBuffer(3, WorkBuffer2); SetIndexDrawBegin(0, per1 + per2); SetIndexDrawBegin(1, per1 + per2); IndicatorShortName(Indicator_Name); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars = IndicatorCounted(); //---- if(counted_bars < 0) return(-1); //---- if(counted_bars > 0) counted_bars --; limit = Bars - counted_bars; //---- for(int i = 0; i < limit; i++) { WorkBuffer[i] = iMA(NULL, 0, per1, 0, Method, Price, i); WorkBuffer2[i]= iMA(NULL, 0, per2, 0, Method, Price, i); } for(i = 0; i < limit; i++) { double wMA, wMA2, lMA, sMA; wMA = iMAOnArray(WorkBuffer, 0, per1, 0, Method, i); lMA = 2*WorkBuffer[i]-wMA ; wMA2 = iMAOnArray(WorkBuffer2, 0, per2, 0, Method, i); sMA = 2*WorkBuffer2[i]-wMA2; up[i]=100*(lMA-sMA)/sMA; dn[i]=-1*up[i]; } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: