//+------------------------------------------------------------------+ //| Value Chart Deluxe Edition.mq4 | //| Copyright 2013, William Kreider (Madhatt30) | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright 2013, William Kreider (Madhatt30)" #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_levelcolor SteelBlue #property indicator_levelstyle 0 #property indicator_buffers 4 #property indicator_color1 Black #property indicator_color2 Black #property indicator_color3 Black #property indicator_color4 Black #property indicator_level1 12.0 #property indicator_level2 10.0 #property indicator_level3 8.0 #property indicator_level4 6 #property indicator_level5 -6 #property indicator_level6 -8.0 #property indicator_level7 -10.0 #property indicator_level8 -12 #property indicator_maximum 15 #property indicator_minimum -15 //--- input parameters extern int NumBars=5; extern string Note00="True = using by way of iCustom"; extern bool useExtern=false; extern color Bullish_Color=LimeGreen; extern color Bearish_Color=Red; extern color Actual_Color=Yellow; extern string Note0="**** VC Bar Width ****"; extern int Wick=2; extern int Body=6; extern string Note1="**** OB/OS Levels ****"; extern int OBHigh_Upper=12; extern int OBHigh_Lower=8; extern int NMid_Upper=8; extern int NMid_Lower=-8; extern int OSLow_Upper=-8; extern int OSLow_Lower=-12; extern string Note1b="barsback=Areas Displayed num bars back"; extern int BarsBack=1000; extern string Note1c="BarsAhead=Areas Displayed ahead of current bar"; extern int BarsAhead=20; extern string Note2="**** OB/OS Level Colors ****"; extern color OBHigh_Color=C'255,164,177'; extern color Normal_Color=C'5,116,5'; extern color OSLow_Color=C'255,164,177'; extern string Note3="**** Alert Settings ****"; extern bool useAlerts=false; extern int NumLevels=4; extern int level1=10; extern int level2=-10; extern int level3=11; extern int level4=-11; extern int level5=10; extern int level6=-10; extern double exitSig=0.5; double levels[6]; bool in[6],firstrun=true; double VOpen[],VHigh[],VLow[],VClose[],Typical; int VCBars; int winTF; int barsback; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ /* The formula of the indicator is: OPEN = (OPEN - MVA(TYPICAL)) / (ATR / ATR_N) HIGH = (HIGH - MVA(TYPICAL)) / (ATR / ATR_N) LOW = (LOW - MVA(TYPICAL)) / (ATR / ATR_N) CLOSE = (CLOSE - MVA(TYPICAL)) / (ATR / ATR_N) TYPICAL = (HIGH + LOW + CLOSE) / 3 MVA is Market Value Added */ //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,VHigh); SetIndexStyle(1,DRAW_NONE); SetIndexBuffer(1,VLow); SetIndexStyle(2,DRAW_NONE); SetIndexBuffer(2,VOpen); SetIndexStyle(3,DRAW_NONE); SetIndexBuffer(3,VClose); winTF=Period(); string shortname="Value Chart Deluxe Edition("+winTF+")"; IndicatorShortName(shortname); levels[0] = level1; levels[1] = level2; levels[2] = level3; levels[3] = level4; levels[4] = level5; levels[5] = level6; for(int i=0; i0) { if(relativeClose>=level && in[cnt]==false) { in[cnt]=true; Alert(Symbol()," (",Period()," min) signal: Value chart above ",level,"!"); } if(relativeCloselevel+exitSig && in[cnt]==true) { in[cnt]=false; } } } } } // End Alerts Section } return(0); } //---- // Market Value Added function double MVA(int NumBars1,int CBar) { double sum,floatingAxis; for(int k=CBar; k