Alle Inhalte von Krümel
-
Teil 1: Indikatorentwicklung 1-2-3-Detektion
Ja, hab's grad gesehen. Für den RSI ist es möglich, ein anderes Array anzugeben (in diesem Falle Neuer.Kurs): Quelle: http://www.amibroker.com/guide/afl/afl_view.php?id=125 Die interne Implementierung der Funktion RSI ist auch angegeben. Für die beiden Stochastikvarianten StochK und StochD sieht das Ganze viel dürftiger aus. Da müsste man sich jetzt ne eigene Stochastik-Funktion schreiben, die dann ein Array als zusätzliche Eingabe akzeptiert ähnlich der BuiltInRSIEquivalent ( http://www.amibroker.com/guide/afl/afl_view.php?id=125 ). Wäre mittelfristig sowieso sinnvoll, damit man weiß, was die Indikatoren eigentlich machen. Die Doku ist nämlich mehr als dürftig diesbezüglich (Bsp: für StochK: http://www.amibroker.com/guide/afl/afl_view.php?id=145 ). Da geht noch nicht mal draus hervor, auf welchen Kursen und nach welcher Formel er berechnet wird, geschweige denn, dass man (so wie in Tradesignal) auch in den Code der Funktionen mal reinschaun könnte.
-
Teil 1: Indikatorentwicklung 1-2-3-Detektion
Da ist am Ende Equilla-Code drin , wenn man scrollt.
-
Teil 1: Indikatorentwicklung 1-2-3-Detektion
Ganz viel hier: http://www.tradesignalonline.com/Lexicon/D...ic+Fast+(FSTOC) EDIT: der 2. Link ging einen Tag später schon nicht mehr. *grml* Da hab ich ihn entfernt.
-
Teil 1: Indikatorentwicklung 1-2-3-Detektion
Ich glaub, der Thementitel (ok, der war auch von mir *schäm*) hat viele nicht angesprochen (Amibroker benutzt hier außer Dir NIEMAND). Deswegen hab ich das Thema vor ein paar Tagen auch geteilt und die Indikatorentwicklung in nen Extrathread gepackt. Denn ich halte ihn für einen recht vielversprechenden Indikator, an dem man aber noch ein bisschen rumforschen muss. Leider muss man manche Leute wie Mythos erstmal mit der Nase reintunken, bevor sie sich irgendwas anderes als ihren heißgeliebten Metatrader anschauen.
-
Teil 1: Indikatorentwicklung 1-2-3-Detektion
Du meinst die Periodenanzahl ? Kürzer als die Stochastik oder die gleiche, da muss man in Deinem TF bisschen experimentieren. Ich arbeite ja auch dem M1, momentan Stochastik 240, EMA 120. Da zieht er auch die Stopps schneller nach. Aber Deine Stochastik hatte ja schon "nur" 3, viel kleiner macht ja schon fast keinen Sinn mehr.
-
Auf Wunsch eines einzelnen Herrn....
Mein Held
-
Teil 1: Indikatorentwicklung 1-2-3-Detektion
Übrigens hat Mythos mal ganz auf die Schnelle eine prima Idee aus dem Ärmel geschüttelt. Die könntest Du in der Zwischenzeit auch schon mal im Amibroker ausprobieren. Das Problem der mit andauerndem Trend steigenden Tiefpunkten in der Stochastik (Long) bzw. zunehmend fallenden Hochpunkten in Shorttrends kann so recht gut gelöst werden. Grundidee: die Stochastik von dem aktuell vorherrschenden Trend bereinigen. Wie kann man das machen ? Entweder Regression auf den Kursdaten bestimmen, die Kursdaten von dem Trend bereinigen und auf den Residuen (dem trendbereinigten Kurs) die Stochastik berechnen. Diese enthält ja dann ebenfalls keinen Trend mehr. Waaaaaah ! Ich höre Dich schon, ibelieve Was ist das denn ? Ja, stimmt, ist viel komplizierter als notwendig. Einfacher: den Kurs vom Trend bereinigen, indem man den gleitenden Durchschnitt abzieht (z.B. nen EMA). Neuer.Kurs = Close-EMA(Close, MA_Periode); //Pseudo-Code stoch = Stochastik(Neuer.Kurs,Stoch_Periode); Mit der so berechneten trendbereinigten Stochastik einfach normal weiterarbeiten. Kannst Du ja mal ausprobieren, ob es Dein Problem in Ami-Broker löst. Von der Programmierung her ist Variante 2 ja recht einfach.
-
Programmierung eines EA mit eigenen Indikatoren
Ok, zum Schluss noch die beiden Parameter mode und shift. mode: Line index. Can be from 0 to 7 and must correspond with the index used by one of SetIndexBuffer functions. double L_1 = iCustom(NULL,0,"rocseparate",H,P,B,A,1,0); In einem Indikator findet man in der Regel einen oder mehrere Buffer (Puffer), die man sich wie Zeilen in der Excel-Tabelle vorstellen kann, die Spalten sind die einzelnen Bars. Jetzt muss man der iCustom-Funktion noch sagen, welchen von den in dem Falle 5 Zeilen(Puffern) man denn auslesen möchte. Die Zeilen sind praktischerweise "durchnummeriert" in der Indikatordatei mittels der Funktion SetIndexBuffer Quelle: http://book.mql4.com/samples/iroc#74_7 Was wo drin steht und was Du auslesen willst, musst Du jetzt selbst entscheiden. In unserem Beispiel soll Buffer 1 ausgelesen werden. Die "Durchnummerierung" beginnt normalerweise bei 0. Wie die Funktionsreferenz sagt (0-7) sind also maximal 8 Buffer erlaubt, sprich, von allen Indikatoren können die ersten 8 Buffer ausgelesen werden. Steht irgendwas in nem 9. Buffer drin, hat man leider Pech gehabt. So. jetzt haben wir dem Indikator gesagt, welche Zeile wir auslesen wollen, jetzt müssen wir ihm abschließend nur noch die Spalte sagen. Das passiert über den Parameter shift. shift : Index of the value taken from the indicator buffer (shift relative to the current bar the given amount of periods ago). Das hat FinGer schon sehr schön erklärt. shift ist die Verschiebung relativ zum aktuellen Bar. Es empfiehlt sich, nur rückwärts zu schieben, also Zahlen von 0,1,2,.... und größer einzusetzen, denn bei Zahlen kleiner 0 würden man nicht nach links (in die Vergangenheit) schieben und sich da Daten herholen, sondern man würde nach rechts schieben und sich Daten aus der Zukunft holen. Das ergibt in der Regel im Backtest extrem gute Ergebnisse, die allerdings im Realtime-Betrieb versagen, denn die Zukunft kennt man zu dem Zeitpunkt leider noch nicht .
-
Programmierung eines EA mit eigenen Indikatoren
Jetzt kommen wir zum Speziellen an der Funktion iCustom: Parameter name und die Parameterliste. Der 3. Parameter heißt name : Custom indicator compiled program name. Laut Deklaration von iCustom soll name eine Zeichenkette sein (string) und zwar der Name des Indikators. In diesem Falle heißt er rocseparate und als String "rocseparate". (Bei Dir hieße er als Zeichenkette "Keltner_Channel", im Prinzip so, wie die kompilierte Indikator-Datei heißt nur ohne die Dateierweiterung .ex4) Die folgenden Parameter sind optional und die Anzahl ist nicht festgelegt. Typisch dafür sind die 3 Punkte "...". ... : Parameters set (if necessary). The passed parameters and their order must correspond with the desclaration order and the type of extern variables of the custom indicator. Es gibt ja Custom-Indikatoren, die keinen, einen, zwei oder mehr Eingabeparameter (im Indikator durch das vorangestellte Schlüsselwort extern gekennzeichnet) erwarten. Von daher sind auch keine Typangaben in iCustom möglich, sondern das hängt allein vom verwendeten Indikator ab. In unserem Beispiel hier sieht die Liste der Eingabewerte im Code von rocseparate ( http://book.mql4.com/samples/iroc#74_7 ) wie folgt aus: Nur die fettmarkierten Zeilen sind interessant. D.h. wenn der Indikator mit anderen als den im Indikator-Code voreingestellten 5000,21,13,5 laufen soll, müssen ALLE Eingabeparameter (auch wenn sie mit den voreingestellten Werten laufen und lediglich ein einziger Wert geändert werden soll) in der richtigen Reihenfolge angegeben werden. Die "richtige" Reihenfolge ergibt sich aus der Auflistung in der Indikatordatei. Aufruf: double L_1 = iCustom(NULL,0,"rocseparate",H,P,B,A,1,0); wobei H,P,B,A alle vom Typ int (Integer) sein müssen (wie man an den Typenangaben nach dem Wort "extern" in der Indikatordatei jeweils ablesen kann) und zuvor im EA-Code deklariert:
-
Programmierung eines EA mit eigenen Indikatoren
Ok. Schauen wir uns das Beispiel von der Verwendung des Custom-Indikators namens rocseparate von dem Tutorial-Link nochmal genauer an. Im Code des EAs wird der Indikator wie folgt aufgerufen (weiter unten auf der Web-Seite): double L_1 = iCustom(NULL,0,"rocseparate",H,P,B,A,1,0); Der erste Parameter mit dem Wert NULL hat laut Funktions-Referenz den Namen symbol : Symbol the data of which should be used to calculate indicator. NULL means current symbol., heißt also, der mittels iCustom aufgerufene Indikator soll seine Berechnungen auf dem Instrument durchführen, auf dem der EA aktuell arbeitet, also bspw. GBPJPY. double L_1 = iCustom(NULL,0,"rocseparate",H,P,B,A,1,0); ist dasselbe wie double L_1 = iCustom("GBPJPY",0,"rocseparate",H,P,B,A,1,0); wenn der aktuelle Wert, auf dem der EA läuft, der GBPJPY ist. Nach Funktionsdeklaration muss symbol vom Typ "string" sein, also eine Zeichenkette, wie "GBPEUR". Soll hingegen ein anderes Instrument als das aktuelle genutzt werden, muss der Name angegeben werden, z.B. läuft Dein EA auf dem GBPJPY, soll aber den Indikatorwert für den EURUSD berechnen (warum auch immer), dann wäre der Aufruf: double L_1 = iCustom("EURUSD",0,"rocseparate",H,P,B,A,1,0); Der zweite Parameter mit dem Wert 0 heißt laut Referenz timeframe :Timeframe. It can be any of Timeframe enumeration values. 0 means the current chart timeframe. Wenn also der aktuell geöffnete Timeframe vom GBPJPY M15 ist, dann wird dieser genommen. double L_1 = iCustom(NULL,0,"rocseparate",H,P,B,A,1,0); ist wiederum identisch mit double L_1 = iCustom(NULL,PERIOD_M15,"rocseparate",H,P,B,A,1,0); oder aber double L_1 = iCustom(NULL,15,"rocseparate",H,P,B,A,1,0);, wenn der aktuelle TF der M15 ist. Timeframe-Kürzel (die Ziffer > 0 ist im Übrigen immer die Minutenangabe). Wenn man hingegen auf nem anderen als dem aktuell geöffneten M15 den Indikator für den EA berechnen wöllte (z.B. Tageschart), müsste man double L_1 = iCustom(NULL,PERIOD_D1,"rocseparate",H,P,B,A,1,0); oder aber double L_1 = iCustom(NULL,1440,"rocseparate",H,P,B,A,1,0); schreiben. Vorteil der NULL und der 0 bei den beiden Parametern symbol und timeframe ist die Flexibilität: man kann mal schnell ohne Änderungen den EA auf nen anderes Symbol oder TF ziehen, ohne im Code Änderungen vornehmen zu müssen.
-
Programmierung eines EA mit eigenen Indikatoren
Ich bin so schnell, weil der Chef mir jeden Morgen nen Energy-Drink in den Kaffee schüttet .
-
XTB Champion
- Programmierung eines EA mit eigenen Indikatoren
Hallo erstmal und willkommen bei Tom-Next. Zu Deiner Frage: Du muss unterscheiden, ob Du technische Indikatoren verwenden willst (die gibt's quasi eingebaut bei Metatrader mit dazu, Bsp: MACD, RSI usw., Mehr zu technischen Indikatoren) oder aber sogenannte Custom-Indikatoren (quasi was Selbsterdachtes, Mehr zu Custom-Indikatoren). Beim RSI, wenn Du ihn unverändert (vom Code her) nutzen willst, brauchst Du auch keinen Code runterzuladen, nix zu includen usw. Einfach nur verwenden, wie in der Doku beschrieben ( http://docs.mql4.com/indicators/iRSI ), allerdings mit nem kleinen 'i' vorne dran (steht für 'Indikator'): Du kannst auch mal im Metaeditor, wenn Du ne offene Datei hast Strg+Space drücken, um Dir ne Liste aller Funktionen, Variablen, Indikatoren etc. anzeigen zu lassen, die Dir aktuell zur Verfügung stehen. Willst Du hingegen selbst am Code schrauben oder nen eigenen Indikator vom EA aus verwenden, kannst Du auf den Indikatorwert mittels der iCustom-Funktion zugreifen. Weitere Erklärungen zur Verwendung der iCustom-Funktion.- Forexone "vereinfacht" ab sofort den Forex-Handel
Das "ab" ist ja ne bei vielen beliebte Werbemaßnahme, denn der Wert ist nicht mehr garantiert und man kann sich als Kunde nicht mehr drauf berufen. Sie könnten stattdessen auch hinschreiben 1.5 Pips + X. Und bei X wirds dann kritisch. Bin neugierig, wieviel sie da noch oben draufschlagen. Aber wenn man Peach (willkommen übrigens bei Tom-Next ) so liest, ist es nicht soooo wenig. Das andere Modell mit den fixen Spreads wird sich nicht gerechnet haben.- Fragen zu Amibroker
Thema geteilt:- Alarm bei Kreuzen von 2 EMAs?
Leider ja. Die Alarm-Funktion in der MT-Oberfläche ist doch etwas rudimentär (siehe Bild) und bietet ja nur ein paar Conditions an. Den Schnittpunkt-Alarm wirst Du selbst programmieren müssen. Muss ja nicht unbedingt ein EA sein, ein Indikator tut's an der Stelle genauso: Sound alerts in Indicators.- Teil 1: Indikatorentwicklung 1-2-3-Detektion
Na ja, Intraday hat man aber auch oft schöne Trends. Eventuell kann man 2 Positionen nehmen, die erste verkauft man kurz nach Ausbruch (entsprechend Bewegungs-Trading von Voigt mit TP von X), so dass man z.B. die 2. Position am Einstiegsstop im Breakeven-Zustand hat und handelt diese dann trendfolgend. Eventuell aber auch mit nem finalen TP, denn auch Intradaytrends halten ja nicht ewig. Sowas wäre super für nen EA. Na, ich bleib auf jeden Fall dran.- Teil 1: Indikatorentwicklung 1-2-3-Detektion
Wie gesagt, ich muss mit dem Teil erstmal warm werden ;). Ich denke auch, dass die Ausbruchsstrategie v.a. auf längerlaufenden Trends recht nett sein dürfte, die man aber nicht so oft hat. Aber mir fallen wahrscheinlich auch noch anderes Sachen ein, wenn ich das Biest erstmal gebändigt habe und die diversen Probleme im Griff habe (z.B. die Sache mit den Extremwerten, die Du auch angesprochen hast). Schaun wir mal . Ne Amibroker-Implementierung ist dann nen Klacks hinterher, wenn erstmal ne saubere Lösung in Tradesignal steht, die quasi als Spezifikation dient und gegen die die Amibroker-Variante getestet werden kann. Denn so richtig warm werde ich mit Amibroker nicht, ehrlich gesagt. Von daher meide ich es, solange es geht.- Teil 1: Indikatorentwicklung 1-2-3-Detektion
Na ja, Ross kenn ich nicht, ist mir auch zu kompliziert/teuer . Voigt handelt ja normal 1-2-3. Higher Highs, lower Lows. Ich hatte die letzten Tage ja die Stochastik mal nebenher mitlaufen, um mal zu sehen, wie der so die Higher Highs und Lower Lows (oder was ich im Chart visuell als solche sehen würde) anzuzeigen vermag. Und der erste Eindruck war recht vielversprechend. Meine Handelsidee wäre jetzt ganz spontan, die Ausbrüche aus dem "Band" zu traden: sprich: Ausbruch nach oben, also Punkt 2 = Long, SL kommt unter aktuellen Punkt 3 (die untere Bandbegrenzung, wobei das natürlich noch kein P3 sein muss). Nachziehen analog: bei Ausbruch aus oberen Band wird SL aufs untere gelegt usw. bis man gekickt wird. Short gehts in die andere Richtung bei Ausbruch nach unten. Problem: Je länger/stärker ein Trend läuft, um so seltener fällt die Stochastik unter den ersten Extremwert (z.B. 20) Bsp. Long: stoch Da muss ich aber wie gesagt noch bisschen rumexperimentieren, um genau solche Probleme erstmal zu finden. Im nächsten Schritt kann man dann ne Lösung erarbeiten. 2. Problem: ab und an (nicht in dem Chart) kreuzen sich die Linien auch, d.h. die grüne liegt über der blauen Linie. Wie das entsteht und was es bedeutet, muss ich auch erstmal rausfinden.- QuoteCompiler CFD
Ich glaube, die erste "Beförderung" müsstest Du mit Deiner Beitragsanzahl bereits automatisch erhalten haben . Für den nächsten Level (und mehr gibt's dann schon mal nicht, außer Du gibst sämtliche persönliche Freiheiten an der Boardtür ab und lässt Dir von Whipsaw das Brandeisen aufdrücken mit der Aufschrift "Moderator aka Leibeigener") dauert's aber noch bisschen, fürchte ich und passiert manuell.- Teil 1: Indikatorentwicklung 1-2-3-Detektion
Also, ich hab das Ganze jetzt mal in Tradesignal (das programmiert sich einfach besser als Amibroker) nachgebastelt in einer Variante, die mir am einleuchtendsten erschien, damit ich den Indikator erstmal besser verstehen lerne. Der Indikator selbst erscheint mir sehr vielversprechend, sowohl für Einstiege als auch für Initial-Stop und TrailingStops. Als sehr schöner Trendfolger, der mit Sicherheit auch Intraday auf diversen Timeframes gehandelt werden kann. Ich muss das allerdings erst noch als Handelssystem implementieren und bisschen damit rumexperimentieren, um ein besseres Gefühl für das Teil zu bekommen und die Einsatzmöglichkeiten besser beurteilen zu können. Der erste Blick täuscht ja leider meist auch, da man v.a. die Sachen "sieht" (Dank selektiver Wahrnehmung ), die man sehen will. Weil, ehrlich gesagt, verstehe ich meist nur die Hälfte von dem, ibelieve, was Du mir sagen willst (weil ich von dem Indikator bislang keinen Plan und keinerlei Erfahrung hatte) und das ist letztendlich ja für beide Seiten unbefriedigend.- XTB Champion
Schon wieder ? Können wir uns das denn leisten ? Ich hab doch letztens dem Tom-Next-Kaffeekassensparschwein erst nen Schleudertrauma verpasst, weil es partout nix mehr ausspucken wollte.- Krise bis 2016 ?
Solange noch irgendwas in dem System reanimiert werden kann, wie teuer und aufwendig auch immer, wird das getan, vermute ich mal. Denn was danach kommen könnte - als Alternativsystem-, weiß keiner und die, die jetzt obensitzen, werden es dann vielleicht nicht mehr. D.h. der Untergang des aktuellen Systems wird sich noch so lange hinziehen wie sie es verhindern können.- Handelszeit für bestimmte Märkte einstellen??
Eventuell könnte man den Hintergrund im Chart anders einfärben in den interessanten Zeitbereichen. Zumindest als Notlösung. Das mach ich Tradesignal immer so. Dann hat man wenigstens nen visuellen Unterschied.- Fehlermeldung: Hedgen nicht möglich (Hedge prohibited)
@Ecart: Dann freu Dich schon mal auf MT5, dann geht's bei keinem Broker mehr . - Programmierung eines EA mit eigenen Indikatoren