# Thread: Value Charts & Price Action Profile

1. ## Value Charts & Price Action Profile

I have read the book ""Dynamic Trading Indicators" by Mark Helweg and David Stendahl." where Value Charts and Price Action Profile indicators are explained but the formulas to calculate the values was not fully disclosed.

I am intrigued by the indicator and have been searching all over the web for this indicator … no indicator found except one you can download for Trade Station (Not for MT4)

Some posts on this subject found elsewhere: Value Charts and Price Action Profile - Aussie Stock Forums
TTM/DDF Value Chart

I need the indicator for MT4.
Please? Would some of our brilliant MT4 programmers be so kind to convert the code below to MT4 platform indicator in MQ4 format in order to change settings inside the code to optimize or enhance it? OR provide a link where I can download the indicator for MT4?

What I have so far: (I think it is written in Java script – I am not familiar with it and I am not a Java programmer)

START of CODE:

If
yInputs:
Variables:
Vopen(0),VHigh(0),VLow(0),VClose(0),Var1(0),Var2(0 );
Var:
VcloseLam(0),ValueSOB(" "),ValueMOB(" "),ValueMOS(" "), ValueSOS(" "), ValueFair(" "), lastdate(0);

{Calcualte Value Chart}
VOpen = VChart(NumBars,Open);
VHigh = VChart(NumBars,High);
VLow = VChart(NumBars,Low);
VClose = VChart(NumBars,Close);

If currentbar > Numbars then

Begin

Plot1(VHigh,"VHigh",Color_Val);
Plot2(VLow,"VLow",Color_Val);
Plot3(8,"8",Color_High_Extreme);
Plot4(-8,"-8",Color_Low_Extreme);
Plot5(Vhigh,"Long Exit");
Plot6(VLow,"Short Exit");

if show_close=true then

begin

Plot7(VClose,"Close",Color_Close);

end;

End;

if vhigh>8 then

if vhigh>8 then

if vlow<-8 then

if vlow<-8 then

#function VChart
{
************************************************** *****************************
Description : This Function returns Value Chart prices. Provided By : Mark W. Helweg (c) Copyright 2001 ************************************************** *****************************
}
Inputs:
NumBars(Numeric),Price(NumericSeries);
Variables:
VarNumBars(0),Var0(0),LRange(0),YDiv(0),RanVar4(0) ,VOpen(0),VHigh(0),VLow(0),VClose(0),VarA(0),VarB( 0),VarC(0),VarD(0),VarE(0),VarP(0),VarR1(0),VarR2( 0),VarR3(0),VarR4(0),VarR5(0);

{Insure NumBars is between 2 and 1000}
If NumBars < 2 then
VarNumBars = 2;

If Numbars > 1000 then
VarNumBars = 1000;

If Numbars >= 2 and NumBars <=1000 then
VarNumBars = NumBars;
VarP=Round(VarNumBars/5,0);

If VarNumBars >7 then

begin

VarA=Highest(H,VarP)-Lowest(L,VarP);

If VarA = 0 and VarP=1 then
VarR1=absvalue(C-C[VarP])
Else
VarR1 = VarA; VarB=Highest(H,VarP)[VarP+1]-Lowest(L,VarP)[VarP];

If VarB = 0 and VarP=1 then
VarR2=absvalue(C[VarP]-C[VarP*2])
Else
VarR2 = VarB; VarC=Highest(H,VarP)[VarP*2]-Lowest(L,VarP)[VarP*2];

If VarC = 0 and VarP=1 then
VarR3=absvalue(C[VarP*2]-C[VarP*3])
Else
VarR3 = VarC;
VarD=Highest(H,VarP)[VarP*3]-Lowest(L,VarP)[VarP*3];

If VarD = 0 and VarP=1 then
VarR4=absvalue(C[VarP*3]-C[VarP*4])
Else
VarR4 = VarD;
VarE=Highest(H,VarP)[VarP*4]-Lowest(L,VarP)[VarP*4];

If VarE = 0 and VarP=1 then
VarR5=absvalue(C[VarP*4]-C[VarP*5])
Else
VarR5 = VarE;
LRange=((VarR1+VarR2+VarR3+VarR4+VarR5)/5)*.2;

End;

If VarNumBars <=7 then

Begin

If AbsValue(C-C[1]) > (H-L) then
Var0=AbsValue(C-C[1])
else
var0=(H-L);

If H=L then
Var0=absvalue(C-C[1]);
LRange=Average(Var0,5)*.2;

End;

If LRange > 0 then

begin

If Price = Open then
VChart=((Open-Average((H+L)/2,VarNumBars)))/(LRange);

If Price = High then
VChart=((High-Average((H+L)/2,VarNumBars)))/(LRange);

If Price = Low then
VChart=((Low-Average((H+L)/2,VarNumBars)))/(LRange);

If Price = Close then
VChart=((Close-Average((H+L)/2,VarNumBars)))/(LRange);

End;

Here is the same re-written in Easy Language for Trade Station: (Again I am not familiar with this)
Posted on TTM/DDF Value Chart by BlueRay

The first part is for the function VChart:

Inputs:NumBars(Numeric),P rice(NumericSeries);

Variables:VarNumBars(0),V ar0(0),LRange(0),YDiv(0), RanVar4(0),VOpen(0),VHigh (0),VLow(0),VClose(0),
VarA(0),VarB(0),VarC(0),V arD(0),VarE(0),VarP(0),Va rR1(0),VarR2(0),VarR3(0), VarR4(0),VarR5(0);

{Insure NumBars is between 2 and 1000}
If NumBars < 2 then VarNumBars = 2;
If Numbars > 1000 then VarNumBars = 1000;
If Numbars >= 2 and NumBars <=1000 then VarNumBars = NumBars;

VarP=Round(VarNumBars/5,0);

If VarNumBars >7 then begin
VarA=Highest(H,VarP)-Lowest(L,VarP);
If VarA = 0 and VarP=1 then VarR1=absvalue(C-C[VarP]) Else VarR1 = VarA;
VarB=Highest(H,VarP)[VarP+1]-Lowest(L,VarP)[VarP];
If VarB = 0 and VarP=1 then VarR2=absvalue(C[VarP]-C[VarP*2]) Else VarR2 = VarB;
VarC=Highest(H,VarP)[VarP*2]-Lowest(L,VarP)[VarP*2];
If VarC = 0 and VarP=1 then VarR3=absvalue(C[VarP*2]-C[VarP*3]) Else VarR3 = VarC;
VarD=Highest(H,VarP)[VarP*3]-Lowest(L,VarP)[VarP*3];
If VarD = 0 and VarP=1 then VarR4=absvalue(C[VarP*3]-C[VarP*4]) Else VarR4 = VarD;
VarE=Highest(H,VarP)[VarP*4]-Lowest(L,VarP)[VarP*4];
If VarE = 0 and VarP=1 then VarR5=absvalue(C[VarP*4]-C[VarP*5]) Else VarR5 = VarE;
LRange=((VarR1+VarR2+VarR 3+VarR4+VarR5)/5)*.2;
End;

If VarNumBars <=7 then Begin
If AbsValue(C-C[1]) > (H-L) then Var0=AbsValue(C-C[1]) else var0=(H-L);
If H=L then Var0=absvalue(C-C[1]);
LRange=Average(Var0,5)*.2 ;
End;

If LRange > 0 then begin
If Price = Open then
VChart=((Open-Average((H+L)/2,VarNumBars)))/(LRange);
If Price = High then
VChart=((High-Average((H+L)/2,VarNumBars)))/(LRange);
If Price = Low then
VChart=((Low-Average((H+L)/2,VarNumBars)))/(LRange);
If Price = Close then
VChart=((Close-Average((H+L)/2,VarNumBars)))/(LRange);
End;

The second part is the indicator

Inputs:NumBars(5);
Variables:Vopen(0),VHigh( 0),VLow(0),VClose(0),Var1 (0),Var2(0);
Var: VcloseLam(0),ValueSOB(" "),ValueMOB(" "),ValueMOS(" "), ValueSOS(" "), ValueFair(" "), lastdate(0);

{Calcualte Value Chart}
VOpen = VChart(NumBars,Open);
VHigh = VChart(NumBars,High);
VLow = VChart(NumBars,Low);
VClose = VChart(NumBars,Close);

If currentbar > Numbars then Begin
Plot1(VOpen,"VOpen");
Plot2(VHigh,"VHigh");
Plot3(VLow,"VLow");
Plot4(VClose,"VClose");
Plot5(8,"8");
Plot6(4,"4");
Plot7(-4,"-4");
Plot8(-8,"-8");
Plot9(0,"0");
End;

Regards
ForexID10T

2. ## i think i got one of them

hi , i ve been recently read the book and began serching the indicators 3 days ago. i found the value chart which is really good but eats a little of cpu , here it is
if you could find the price action profile indicator pls let me know friend
have a nice pips

3. i see nobody could find the price action profile indicator

4. Nobody can share the Price Action Profile indicator!?