Was ist adaptive Stochastik ?
In einem Artikel vom 'Warrants & Zertifikate' von BNP wurde ein Indikator 'adaptive Stochastik' erwähnt. Keine nähere Beschreibung. Der Indikator wurde zur trendjustierung/trendindikation eingesetzt.
Wer kennt den Indikator ?
mfg
Joram
Geschrieben von Gast (nicht überprüft)
am
Hier eine Erklärung von Tushar Chande. Der Code ist zwar für die Tradestation, sollte sich aber in die Metastock-Sprache umsetzen lassen.
Viel Spaß
Bernd Kürbs
I was the first to propose adaptive indicators, and my article "Stochastic RSI And Dynamic Momentum Index" (STOCKS & COMMODITIES, December 1992) explains how to do it. My book The New Technical Trader (John Wiley & Sons) also contains a good explanation of it. The strategy is to change the lookback length of the indicator by connecting it to market volatility. We would like the indicator to have a long lookback period when prices are in a trading range (volatility is low). Conversely, we want a short lookback length when prices are moving rapidly. I feel that changing the lookback length for calculating indicators is more responsive than smoothing them with adaptive moving averages. The actual definition of long and short lookback lengths depends on your trading horizon.
Here is some simple TradeStation code to create an adaptive stochastic oscillator that uses the 20-day standard deviation of closing prices to vary the length between seven and 28 days. First, determine if the 20-day standard deviation is at its highest level. To do so, compute a stochastic oscillator using the 20-day standard deviation (variables v1 through v4). If the 20-day standard deviation is at its highest level (v1=v2), then v4=1 and the oscillator length is set at its shortest value, that is, set to the variable lenmin (=7 days). If the 20-day standard deviation is at its lowest value (v1=v3), then v4=0 and the current length is set to the maximum length, that is, the variable lenmax (= 28 days). All that remains is to calculate the stochastic oscillator, Stoch, for the close and smooth it using a three-day exponential moving average. The same approach can be used to develop other adaptive indicators or averages.
TRADESTATION CODE FOR ADAPTIVE STOCHASTIC OSCILLATOR}
{--- (c) 2K Tushar Chande; Adaptive Stochastic Oscillator ---}
vars: v1(0), v2(0), v3(0), v4(0) ;
vars: lenmax(28), lenmin(7), currlen(0) ;
vars: hh(0), ll(0), stoch(0), stochma(0) ;
{--- Calculate 20-day std. Dev. And its 20-day range ---}
v1 = stddev(c,20) ;
v2 = highest(v1, 20) ;
v3 = lowest(v1, 20) ;
{--- Create v4: stochastic oscillator for 20-day std. dev. ---}
{--- if v1=v2 (highest level) => v4 = 1; if v1=v3 (lowest level) =>
v4=0 ---}
if (v2-v3) > 0 then v4 = ((v1 - v3)/(v2-v3)) Else v4 = 0 ;
{--- Calculate current effective length; if v4 = 1, then length =
mininum ---}
currlen = IntPortion(lenmin + (lenmax-lenmin)*(1-v4)) ;
{--- Calculate stochastic oscillator and its 3-day exponential average ---}
hh = highest(h, currlen) ;
ll = lowest(l, currlen) ;
if (hh-ll) > 0 then stoch = ((close - ll)/(hh - ll)) * 100 ;
if currentbar = 1 then stochma = 0 else
stochma = 0.5*stoch + 0.5*stochma[1] ;
{--- Plot data ---}
plot1(stoch, "adapt_stoch") ;
plot2(stochma, "stochma") ;
plot3(80, "hi_ref") ;
plot4(20, "lo_ref") ;
{ --- End of code -}
Danke für Deine Antwort.
Allerdings wurde meine Suche mit Erfolg gekröt. In dem Heft 01/2002 von Warrants und Zertifikate habe ich einen ganzen Artikel über die adaptive Stochastic gefunden. Man kann sogar dieses Indikator laden von der Seite NRCM, leider nur für Investox.
Wie übersetzt man die Code von Tradestation in Metastock ? Das weiss ich nicht. Schade, dass Du nur die Code für Tradestation kennst.
Trotzdem vielen Dank.
Joram
Du brauchst nur auf die Seite technical-investor.de gehen und nach Stochastic suchen lassen.
Da findest du einen kleinen Artikel und die Formel für Metastock.
Ich habe das gesucht. Aber über adaptive stochastic oscilator habe ich nichts gefunden.
Wo hast Du das gesehen ? Am besten, wenn Du die Code für Metastock hier reinkopierst.
Vielen Dank.
Joram
Da es anscheinend Schwierigkeiten bereitet, den Tradestation Code nach Metastock umzusetzen, hier zwei Varianten für MS.
Die Variante 1 ist die Umsetzung des Tradestation Codes. Ziemlich zappelig, da keine Glättungen vorgenommen werden. Deshalb Variante 2, die einfach den eingebauten Stochastic mit variabler Länge aufruft und damit dessen eingebaute Glättung benutzt.
Viel Spaß
Bernd Kürbs
================================= Variante 1
Prds := 20;
LenMin := 7;
LenMax := 28;
{--- Berechne die Standardabweichung über 20 Perioden und deren Extremwerte innerhalb 20 Perioden ---}
v1 := Stdev(CLOSE, Prds);
v2 := HHV(v1, Prds);
v3 := LLV(v1, Prds);
{--- Berechne v4: den Stochastic Indikator für die 20-Perioden Standardabweichung.---}
{--- Wenn v1=v2, dann ist v4 = 1, wenn v1 = v3, dann ist v4 = 0. ---}
v4 := If((v2-v3)>0,(v1-v3)/(v2-v3),0);
{--- Berechne zum aktuellen Zeitpunkt die effektive Länge: wenn v4 = 1 ist, dann ist die Länge = minimum. ---}
currlen := Int(LenMin + (LenMax - Lenmin)*(1-v4)) ;
HH := HHV(HIGH,LastValue(currlen+PREV-PREV));
LL := LLV(LOW, LastValue(currlen+PREV-PREV));
AStoch := If((HH-LL)>0,(CLOSE-LL)/(HH-LL)*100,0);
AStochMA := If(Cum(1) Prds, 0, 0.5 * AStoch + 0.5 * PREV);
AStoch;
AStochMA
==================================== Variante 2
Prds := 20;
LenMin := 7;
LenMax := 28;
{--- Berechne die Standardabweichung über 20 Perioden und deren Extremwerte innerhalb 20 Perioden ---}
v1 := Stdev(CLOSE, Prds);
v2 := HHV(v1, Prds);
v3 := LLV(v1, Prds);
{--- Berechne v4: den Stochastic Indikator für die 20-Perioden Standardabweichung.---}
{--- Wenn v1=v2, dann ist v4 = 1, wenn v1 = v3, dann ist v4 = 0. ---}
v4 := If((v2-v3)>0,(v1-v3)/(v2-v3),0);
{--- Berechne zum aktuellen Zeitpunkt die effektive Länge: wenn v4 = 1 ist, dann ist die Länge = minimum. ---}
currlen := Int(LenMin + (LenMax - Lenmin)*(1-v4)) ;
Stoch(LastValue(currlen+PREV-PREV), 3)
Danke, das war´s.
Keine Fragen mehr.
Viele Grüße
Joram
Der Artikel ist zu finden unter "Was bringen Standartindikatoren" Folge 4, Stochastic.
Als letztes ist die Metastockformel angefügt.