[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] KVO - Klinger Volume Oscillator



PureBytes Links

Trading Reference Links

I am trying to code the above indicator. I found a copy of it at Gftforex in their Chart Manual . I need some help in doing this and would greatly appreciate any assistance.

This is what Gtforex have:

/* Klinger oscillator indicator */
indicator Klinger;
input signal_period = 13;
draw kvo("KVO"), kvosig("KVO sig");
vars cm(number), vf(series), i(number), hlc(series), dm(series), trend(number), newtrend(number);
begin
  hlc := high + low + close;
  dm := high - low;
  cm := 0;
  trend := 0;
  for i := front(hlc) + 1 to back(hlc) do begin
    newtrend := trend;
    if hlc > hlc[i - 1] then
      newtrend := 1;
    if hlc < hlc[i - 1] then
      newtrend := -1;
    if trend = newtrend then
      cm := cm + dm
    else
      cm := dm[i - 1] + dm;
    trend := newtrend;
    if cm = 0 then
      vf := 0
    else
      vf := volume * abs(2 * dm / cm - 1) * trend * 100;
  end;
  kvo := ema(vf, 34) - ema(vf, 55);
  kvosig := ema(kvo, signal_period);
end.

This is what I am upto. I am fairly new to Amibroker programming:

/* Klinger Volume Oscillator - KVO*/

signal_period = 13;
  hlc = AVG;
  dm = H-L;
  cm = 0;
  trend = 0;
   for (i = 0; i < barcount; i++)
      newtrend = trend;
    if (hlc[i] > hlc[i - 1])
      newtrend = 1;
    if (hlc[i] < hlc[i - 1])
      newtrend = -1;
    if (trend = newtrend)
      cm = (cm + dm[i]);
      cm = (dm[i - 1] + dm[i]);
    trend = newtrend;
    if (cm = 0); 
      vf[i] = 0;
      vf[i] = volume[i] * abs(2 * dm[i] / cm - 1) * trend * 100;
  kvo = ema(vf, 34) - ema(vf, 55);
  kvosig = ema(kvo, signal_period);

plot (kvo, "KVO", styleline, colorred);
plot (kvosig, "KVO Sig", colorgreen, styleline);

0

Tradestation Code:

Type: Function, Name: VForce

Vars: TSum(0), Trend(0), DM(0), CM(0);

TSum = High + Low + Close;
IF TSum > TSum[1] Then

Trend = 1
Else
Trend = -1;
IF Trend = Trend[1] Then
CM = CM + Range
Else
CM = Range + Range[1];
IF CM <> 0 Then
VForce = Volume * AbsValue(2 * (DM/CM) -1) * Trend * 100;

 



Type: Function, Name: KVO

Inputs:
FastX(Numeric),
SlowX(Numeric); Vars:
FXAvg(0),
SXAvg(0);

FXAvg = XAverage(VForce, FastX);
SXAvg = XAverage(VForce, SlowX);
KVO = FXAvg - SXAvg;

 

 
Oncethe two functions have been created and verified, the indicator can then be created. The indicator should be scaled to "screen."

 


Type: Indicator, Name: Klinger Volume Oscillator

Inputs:
FastX(34),
SlowX(55),
TrigLen(13),
Smooth(1);

Vars:
Trigger(0);Trigger = XAverage(KVO(FastX, SlowX), TrigLen);IF Smooth <= 1 Then Begin
Plot1(KVO(FastX, SlowX), "KVO");
Plot2(Trigger, "KVO Trigger");
End Else BeginPlot1(Summation(KVO(FastX, SlowX), Smooth), "KVO");
Plot2(Summation(Trigger, Smooth), "KVO Trigger");
End;

Plot3(0, "Zero");
IF Plot1 Crosses Above Plot2 OR Plot1 Crosses Below Plot2 OR
Plot2 Crosses Above Plot3 OR Plot2 Crosses Below Plot3 Then
Alert = True;


__._,_.___

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html





SPONSORED LINKS
Investment management software Investment property software Investment software
Investment tracking software Return on investment software

Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___