Klinger Volume Oscillator
setelah search di internet
dapat result seperti ini
The Klinger Oscillator (KO) was developed by Stephen J. Klinger. Learning from prior research on volume by such well-known technicians as Joseph Granville, Larry Williams, and Marc Chaikin, Mr. Klinger set out to develop a volume-based indicator to help in both short- and long-term analysis.
The KO was developed with two seemingly opposite goals in mind: to be sensitive enough to signal short-term tops and bottoms, yet accurate enough to reflect the long-term flow of money into and out of a security.
The KO is based on the following tenets:
- Price range (i.e. High - Low) is a measure of movement and volume is the force behind the movement. The sum of High + Low + Close defines a trend. Accumulation occurs when today's sum is greater than the previous day's. Conversely, distribution occurs when today's sum is less than the previous day's. When the sums are equal, the existing trend is maintained.
- Volume produces continuous intra-day changes in price reflecting buying and selling pressure. The KO quantifies the difference between the number of shares being accumulated and distributed each day as "volume force". A strong, rising volume force should accompany an uptrend and then gradually contract over time during the latter stages of the uptrend and the early stages of the following downtrend. This should be followed by a rising volume force reflecting some accumulation before a bottom develops.
- By converting the volume force into an oscillator representing the difference between a 34-period and 55-period exponential moving average with a 13-period trigger, the force of volume into and out of a security can easily be tracked. Comparing this force to price action can help identify divergences at tops and bottoms.
Interpretation
Mr. Klinger recommends the following guidelines for using the KO:
- The most reliable signals occur in the direction of the prevailing trend. Strict stop guidelines (i.e., failure to penetrate the zero line or a violation of the trigger line) should remain in force.
- The most important signal occurs when the KO diverges with the underlying price action, especially on new highs or new lows in overbought/oversold territory. For example, when a stock makes a new high or low for a cycle and the KO fails to confirm this, the trend may be losing momentum and nearing completion.
- If the price is in an uptrend (i.e., above an 89-day exponential moving average), buy when the KO drops to unusually low levels below zero, turns up, and crosses its trigger line. If the price is in a downtrend (i.e., below an 89-day exponential moving average), sell when the KO rises to unusually high levels above zero, turns down, and crosses its trigger line.
While the KO works well for timing trades in the direction of the trend, it is less effective against the trend. This can create problems for the trader trying to "scalp" a trade against the prevailing trend. However, when the KO is used in conjunction with other technical indicators, better results can be achieved. William's %R is recommended for confirming an overbought/oversold price condition and Gerald Appel's MACD is recommended for confirming the short-term direction of price.
Tip
Stephen Klinger suggests the following formula for viewing the cumulative flow of money into and out of a security:
cum(kvo())
Plot a 13-period moving average of the formula as a trigger line for entering buy and sell trades.
source codenya untuk trade station
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;
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;
rumus untuk metastock
_SECTION_BEGIN("KVO");
// Klinger oscillator indicator
signal_period = Param("Signal Period",13,0,300,1);
hlc = High + Low + Close;
dm = High - Low;
cm = 0;
trend = 0;
for( i = 1; i < newtrend =" trend;"> hlc[i-1])
newtrend = 1;
if (hlc[i] < newtrend =" -1;" trend ="="" cm =" cm" cm =" dm[i-1]" trend =" newtrend;" cm ="="" kvo =" EMA(vf," kvosig =" EMA(kvo,">
Amibroker Formula (Thks to Imam)
a=H+L+C;
Trend=IIf(a > Ref(a,-1), 1,-1);
//dm = daily measurement
dm = H - L;
//cm = cumulative measurement
Cm = Cum(dm);
Cm = IIf(trend=-1,Ref(Cm,-1)+dm, Ref(dm,-1) + dm);
//Vf=Volume Force
Vf= V * (2 *( dm/Cm -1)) * trend * 100;
//KO = Klinger Oscilator
KO = EMA(Vf,34) - EMA(Vf,55);
//menggambarkan KO
Plot(ko,"KO",colorBlue,styleLine);
//menggambarkan Trendline
TL = EMA(KO,13);
Plot(TL,"TL",colorRed,styleLine);
ada yang bisa bantu convert ke Metatrader?
2 komentar:
Metastock Formula
_SECTION_BEGIN("KVO");
// Klinger oscillator indicator
signal_period = Param("Signal Period",13,0,300,1);
hlc = High + Low + Close;
dm = High - Low;
cm = 0;
trend = 0;
for( i = 1; 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];
}
else
{
cm = dm[i-1] + dm[i];
trend = newtrend;
}
if (cm == 0)
{
vf[i] = 0;
}
else
{
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,"Klinger Osc.",colorRed, styleLine);
Plot(kvosig,"Klinger Osc. Signal",colorBlue, styleLine);
_SECTION_END();
Amibroker Formula (Thks to Imam)
a=H+L+C;
Trend=IIf(a > Ref(a,-1), 1,-1);
//dm = daily measurement
dm = H - L;
//cm = cumulative measurement
Cm = Cum(dm);
Cm = IIf(trend=-1,Ref(Cm,-1)+dm, Ref(dm,-1) + dm);
//Vf=Volume Force
Vf= V * (2 *( dm/Cm -1)) * trend * 100;
//KO = Klinger Oscilator
KO = EMA(Vf,34) - EMA(Vf,55);
//menggambarkan KO
Plot(ko,"KO",colorBlue,styleLine);
//menggambarkan Trendline
TL = EMA(KO,13);
Plot(TL,"TL",colorRed,styleLine);
Posting Komentar