Registrierung Kalender FAQ & Boardregeln Suche Mitgliederliste Moderatoren und Administratoren Linkdatenbank Startseite
Tradestation User Group Germany » freie Foren » Posts aus dem alten Userforum » Dynamic Momentum Index » Hallo Gast [registrieren|anmelden]
« Vorheriges Thema Nächstes Thema » Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Autor
Beitrag
_Hans_Handler
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 18

_Hans_Handler ist offline
  Dynamic Momentum IndexAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen


Hallo,

Ich suche den EasyLanguage Code für den Dynamic Momentum Index von T. Chande.

Gibt es die Möglichkeit Forumsbeiträge zu suchen, die vor längerer Zeit (mehr als 90 Tage oder 300 Nachrichten) geschrieben wurden. Ich denke, dass diese sehr viele nützliche Informationen enthalten.

Vielen Dank!
Hans

21.04.2001, 12:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Hans_Handler senden Homepage von _Hans_Handler
_cedric
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 41

_cedric ist offline
  DMIAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo...

Input: Length(14);

Plot1(DMIPlus(Length), "DMI+");
Plot2(DMIMinus(Length), "DMI-");
Plot3(ADLength), "ADX");

{Alert Criteria}
If Plot1 Crosses Above Plot2 and Plot3 > Plot3[1] Then
Alert("DMI has issued a bullish signal")
Else
If Plot1 Crosses Under Plot2 and Plot3 > Plot3[1] Then
Alert("DMI has issued a bearish signal");

{DMI Expert Commentary}
#BeginCmtry
Commentary(ExpertDMI(Plot1 ,Plot2 ,Plot3));
#End;

viel Glück

cedric

21.04.2001, 16:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _cedric senden Homepage von _cedric
_Hans_Handler
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 18

_Hans_Handler ist offline
  RE: DMIAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Cedric,

Vielen Dank für den Indikator.
Ich habe im Buch "Neue Tradingdimensionen" von E.Florek auf Seite 262 die Formel eines weiteren DMI (Variable Length Dynamic Momentum Index) gefunden.

DMI = @INT(14/volatility)
volatility=@stdev(close,5)/@avg(@stdev(close,5),10)

Mein EasyLanguage Programm aus dieser Formel schaut folgendemaßen aus:

Input: Backdays1(14), Backdays2(10), Backdays3(5);
Vars: DMI(0),volatility(0);

volatility = (StdDev(Close,Backdays3)) / (Average(StdDev(Close,Backdays3),Backdays2));
DMI = IntPortion(Backdays1 / volatility);

Plot1(DMI, "DMI");

Nun sollte der DMI aber zwischen 0 und 100 oszillieren, bei mir schafft er bestenfalls 60. Irgenwas passt nicht (Uwe weiss es sicherlich).

Viel Glück
Hans


22.04.2001, 00:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Hans_Handler senden Homepage von _Hans_Handler
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  RE: DMIAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo, Hans,

bestimmt könnten Dir auch hier andere helfen, doch Du hast durch Diene Ansprache, ind der ein Lob für mich enthalten ist, für das ich danken möchte, vielleicht auch den Befragtenkreis, vielleicht zu Deinem zeitlichen Nachteil eingeengt.

Doch nun zu Deinen Darstellungen, die soweit richtig umgesetzt sind, nur das Du mit Plot1(DMI,"DMI") keinen Oszillator darstellst, sonden die volatilitätsbedingte Periodenlänge (dynamische Periodenlänge), die Du für die Längenangabe von Oszillatoren, wie z.B. dem RSI anwenden kannst.

Formelintepretation

Mit Backdays1 wählst Du eine "Grundperiode" (beim RSI ist die Standardeinstellung 14 Bars). Diese Grundperiode wird in Abhängigkeit eines Volatilitätsmaßes verändert.

Mit steigender Volatilität soll die Peroidenlänge verkleinert werden, während sie sich mit Abnahme der Volatilität vergrößern soll.

Als Faktor (1/Divisor = 1/volatility) wird das Verhältnis einer aktuellen Standardabweichung (Volatilität) über die Periode Backday2 gegenüber seines Durchschnittswertes, gebildet aus den Backdays3-Bars der jüngsten Vergangenheit.

Dieser Wert volatility, liegt im positiven Zahlenbereich und ist größer als Null, wenn in den letzten Backdays2 mindestens eine Veränderung im Closekurs aufgetreten ist. Anderseits wird die Abfrage volatility>0 vor der Divison erforderlich, die des sauberen programmstils wegen, auf jedenfall eingebaut werden sollte.

Teilt man nun eine Zeitvariable, wie sie hier mit backdays1 gegeben ist, durch diesen dimensionslosen Wert volatility, so erhalte ich wieder eine Zeitvariable, die jedoch eine gebrochen Wert beinhaltet. Daher wir der Ganzahlanteil für die weitere Bearbeitung herausgefilter (funktion IntPortion)

if volatility>0 then DMI=intPortion(backdays1/volatility)

Eine gute Ergänzung liefert die Einführung einer Bereichsbegrenzung für diese dynamische Periodenlänge (DMI -für Dynamic Momentum Indikator; nicht zu verwechseln mit dem DMI=Directional Movement Indicator- kann hier, in der von Dir benannten Literatur etwas "vorschnell" als RSI-Indikator interpretiert werden, wo es doch eigentlich nur um eine dynamische Länge bei der dargestellten Formel handelt).

if volitolity>0 then DMI=MinLen(MaxList(intPortion(backdays1/volatility),MinLen),MaxLen)

Damit steht DMI, was hier vielleicht eindeutiger als dynLen (dynamische Periodenlänge) bezeichnet werden sollte, zur Verfügung.

Zu beachten ist, das bei dem Einsatz, die automatische "MaxBarsBack"-Funktion (Format Indidicator->Properties) für Indikatoren/ShowMe/Paintbar in die irre geführt werden kann, wenn man nicht die Inputvariable MaxLen einführt.


Input: BasisLen(14), sDevLen(5), AvLen(10), MaxLen(50), MinLen(5);
Vars: dynLen(0),volatility(0), StdAbw(0);

StdAbw = StdDev(Close,sDevLen);
volatility = StdAbw/Average(StdAbw,sDevLen),AvLen);

if volitolity>0 then
dynLen = MinLen(MaxList(intPortion(BasisLen/volatility),MinLen),MaxLen);

Plot1(dynLen, "dynLen");


Baust Du Dir die Funktion dynLen, so läßt sich diese Variable dynLen in verschiedenen Indikatoren als Längenparameter einsetzen, wenn die Funktion eine Varible als Übergabeparameter akzeptiert.

Viel Erfolg mit dem "dynIndikator", für den Du die dynamische Länge ermittelt hast.
Uwe





22.04.2001, 22:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
_Hans_Handler
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 18

_Hans_Handler ist offline
  RE: DMIAntwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

Hallo Uwe,

Vielen Dank für Deine hilfreiche Antwort.
In der Funktion dynLen = MinLen(MaxList(intPortion(BasisLen/volatility),MinLen),MaxLen)
habe ich MinLen gegen MinList ausgetauscht, damit erhalte ich dynLen = MinList(MaxList(intPortion(BasisLen/volatility),MinLen),MaxLen)

Viel Glück
Hans

23.04.2001, 21:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Hans_Handler senden Homepage von _Hans_Handler
_Uwe
Administrator



Dabei seit: 12 2001
Herkunft: User altes Forum
Beiträge: 313

_Uwe ist offline
  Danke für die Korrektur, wollt ja nur mal sehen ob s bemerkt wird ;-)Antwort mit Zitat Beitrag editieren/löschen Nach weiteren Beiträge von  suchen Diesen Beitrag einem Moderator melden        IP Adresse Zum Anfang der Seite springen

.

23.04.2001, 23:10 Profil von Füge  deiner Freunde-Liste hinzu Email an _Uwe senden Homepage von _Uwe
  « Vorheriges Thema Nächstes Thema »
Neues Thema erstellen Antwort erstellen
Gehe zu:

Powered by: Burning Board 1.1.1 © 2001 WoltLab GbR