Alle Inhalte von Mythos
-
Indicator: Abstand zwischen 2 MA
Servus, inwiefern falsche Werte? Liefert der Compiler irgendwelche Fehler beim compilieren?
-
Code für Indikator Ebene
Doch ist es. Du wolltest wissen wie man den Code für einen MACD mit mehreren Ebenen schreibt bzw. wo man die Zahlen einfügt. Falls du eine andere Frage hast, meld dich. Sorry aber ein bissl denken und programmieren musst du schon selber. Das hier ist kein Forum wo man schwammig formulierte Fragen/Ideen/Wünsche in den Raum wirft und fixfertigen Code zurückbekommt. Wir helfen gerne bei sämtlichen Fragen. Aber vor allem wenn es um solche Frage wie diese hier geht, gehe ich davon aus das du weißt wie man "Du zählst einfach die entsprechende Anzahl Pips zum Wert des GD dazu oder ziehst sie ab." in MQL implementiert. Falls dem nicht der Fall ist, würde ich dich bitten dich nochmal in die Grundlagen von MQL einzulernen.
-
Code für Indikator Ebene
Der Beitrag von Rumpel sagt dir im Prinzip 1:1 was du tun musst um die Ebenen zu berechnen. Du zählst einfach die entsprechende Anzahl Pips zum Wert des GD dazu oder ziehst sie ab.
-
Warnmeldung im Experten Log
Also wenn die Berechnung wirklich richtig war, dann war es mehr Glück und Zufall als sonstwas ;) Eigentlich bei all diesen Berechnungen von built-in Indikatoren wo man den Preis auf den er berechnet werden soll auswählen kann, ist nicht der aktuelle Wert des Preises anzugeben (das wär keine eindeutige Identifizierung und es werden ja mehr als der aktuelle Wert benötigt) sondern ein sogenannter Identifier. Also eine Zahl die angibt welcher Preis verwendet werden soll. Für die Identifier der Built-in Indis gibt es Gott sei Dank vordefinierte Konstante, für Close ist es, wie conglom-o schon geschrieben hat PRICE_CLOSE. HTH
-
Code für Indikator Ebene
@karlos Ich weiß was ein Pip ist. Aber auf die Frage "Was sind die Ebenen?" ist die Antwort "Pips" nicht wirklich sinnvoll oder? btw: die Antwort auf meine Frage beantwortet auch gleichzeitig deine Frage. (Und conglom hat Recht, dein Bild hat nix mit dem MACD zu tun)
-
Code für Indikator Ebene
Pips was?
-
Code für Indikator Ebene
Gegenfrage: was sind die Ebenen beim Indi bzw. was bedeutet zB 25 bei der Ebene?
-
Moving Average in EA
Ja da muss i auch immer denken welchen Bar i jetzt zeichne ;) Aber das ist ja nur da um die History zu malen, wenn du die Berechnung testen willst, kannst du auch immer nur den aktuellen (bzw. vorigen Bar) zeichnen lassen und dann im Strategytester die Ticks nacheinander reinladen lassen. Damit malst du "manuell" die History und siehst ob die Berechnung passt. So kannst du auch testen ob deine History-Schleife stimmt indem du den Indi in den Strategytester schmeißt, durchlaufen lässt und dann den Indi nochmal draufziehst und die "immer aktuell" berechneten Werte/Linien mit den Werten/Linien aus der History-schleife (also im nachhinein berechnet) vergleichst. HTH
-
Schrittweise Programmierung
Gar keine, du rufst im EA direkt den Indikator mit iCustom(...) auf. Details zur Syntax von iCustom findest du, wenn du "iCustom" im MetaEditor eingibst, es markierst und dann F1 drückst.
-
Moving Average in EA
An sich ist ein EA nicht dafür gedacht etwas in den Chart zu zeichnen wie ein Indikator. Also man kann schon Objekte reinzeichnen, aber so schön mit Buffer wie beim Indikator gehts nicht. Würd auch gegen die Struktur gehen, schließlich gibts dafür ja die Indikatoren. Ich würd eher hergehen und den MA als Indikator machen (weil es ist ja vermutlich auch ein Indi den du halt im EA nebenbei berechnest) und vom EA aus drauf zugreifen. Wär programmiertechnisch die schönere Variante ;) Dann kannst du auch den EA und Indi getrennt kontrollieren und debuggen ;) hth
-
Einstieg zu MT4 Programmierung (void-Beispiel rausgepickt)
Ja, MQL ist casesensitiv das heißt es unterscheidet zwischen Groß und Kleinbuchstaben. Beides richtig. Deine Erklärung stimmt. Die einzelnen Funktionen in einem Programm sind eigenständige Blöcke. Die Reihenfolge in der sie im Sourcecode stehen ist "egal". Das kannst du dir vorstellen wie ein Stapel mit Blättern auf denen die Funktionen stehen, jedes Blatt eine Funktion. Wenn jetzt in einer Funktion eine andere aufgerufen wird, dann steht dort ein Verweis auf das Blatt mit der anderen Funktion. Dadurch ist es egal in welcher Reihenfolge die Blätter liegen, der Verweis gilt immer. Kurz gesagt: Dem Compiler ist es egal, für die Lesbarkeit macht es aber bei größeren EAs Sinn die Funktionen in einer "sinnvollen" Reihenfolge zu schreiben. Das was du meinst ist die Implementation der Funktion. In MQL gibt es keine Deklarierung von Funktionen (außer importierte Funktionen, und deren Deklaration muss am Anfang stehen). Kurzer Ausflug (gilt nicht direkt für MQL): Wie bei Variablen gibt es auch bei Funktionen normalerweise Deklarationen. In "normalen" Programmiersprachen muss vor der ersten Verwendung der Funktion entweder die Implementation der Funktion stehen oder zumindest eine Deklaration, das sähe zb so aus: double AddiereFürMich(double a,double b); (achtung: gilt nicht in MQL) das sagt dem compiler: "Es gibt eine Funktion AddiereFürMich mit 2 Parametern (beide double) die ein double zurückgibt, du wirst später sehen wie sie genau aussieht". Damit kann man die Funktion dann wieder irgendwo im Source implementieren. //Ende Ausflug ;) (leider) ja. Der EA wird deinitialisiert mit dem Grund "recompile" und mit den Defaultparametern neugestartet (also der neu compilierte) Dadurch verlierst du eingestellte Parameter etc. darauf ist immer zu achten wenn man live entwickelt und nicht die Defaultparameter verwendet. weil du ihm das live-handeln nicht erlaubt hast. MT unterscheidet zwischen "Ea deaktiviert" (das x), "EA aktiviert, darf aber nicht handeln" (trauriger Smily), "EA aktiv und darf handeln" (happy smily) einstellen kannst du das in den Optionen des EAs (wie du da reinkommst kann i grad nit nachschauen, hab keinen MT hier, ich glaub es war F7 bzw. rechte Maustaste auf Chart und dann "ExpertAdvisor Einstellungen" oder so ähnlich ;) HTH
-
Unterstützung bei EA-Programmierung gesucht
Wenn schon der Chef selber anfangt mit dem hijacken dann darf man mitmachen oder? ;) keine Angst, das Studium ist mit Sommer 10 erledigt, hab ja eigentlich nimmer viel zu tun, und irgendwie muss i mi ja vom lernen abhalten
-
Unterstützung bei EA-Programmierung gesucht
Langsam kann Knochen ja eine ganze neue Abteilungen aufmachen ;) (ich wär abhängig vom zeitlichen Ausmaß auch dabei)
-
Schrittweise Programmierung
Eine solche Step-by-Step Durchackerung eines EAs gibts schon hier im Board (zumindest der Anfang): Einstieg in die MQL Programmierung
-
Polynomiale Regressions Kanäle
sagen wir so, wir müssen zwischen "einmal gezeichnet und irgendwann verworfen" und "laufend angepasst und damit immer aktuell" unterscheiden ;) Der Indikator zeichnet ja jeden Bar eine neue Regression oder? Statische (bzw. die "normalen" die du meinst) Regkanäle in der Form sind automatisch glaub ich fast nicht machbar oder? Weil da müsste man irgendwie festlegen welche Regkanäle man jetzt zeichnet, und wann man sie verwirft und den neuen zeichnet...
-
Struktogramm für Linien-Kreuzungen
Nein, es passiert lediglich in dem Teil mit den ersten ifs nichts. Die (in dem Fall) 3. if wird auf jeden Fall abgearbeitet. Also allgemein ist es so. Im konkreten Fall bedeutet ein "nichts" in den ersten beiden ifs genau das current_dir und last_dir gleich sind und die Funktion im 3. "if" in den else-Teil geht und damit mit return(0) beendet
-
Polynomiale Regressions Kanäle
Naja, aber die Regression wird bei einem neuen Bar immer angepasst. Obwohl deine Beschreibung grad eher nach "Highest High" klingt *G* Naja, sie verändern sich trotzdem bei jedem neuen Bar (anders wär auch blöd) und der gleiche Abstand is ja auch nit immer optimal oder? Wenn sich zB die Vola ändert, wärs schon schön wenn sich die Kanäle auch anpassen, da dann ja die Stärke eines Ausbruchs ganz anders bewertet werden müsste oder? (War auch nur eine Idee, man sollts auf alle Fälle als Parameter machen damit jeder seine persönlichen Vorlieben ausleben kann ;)
-
Was sind automatische Handelssysteme (AHS)
Es gibt jede Menge freie EAs im Netz, wie die Qualität aussieht ist eine andere Frage ;) man muss nur ernsthaft danach suchen. (Handelssysteme für den Metatrader heißen "Expert Advisor" kurz "EA") Hier im Forum gibts auch ein paar EAs, wer suchet der findet (kleiner Hinweis: "einfaches Handelssystem...")
-
Direkte Schnittstelle zu MT-Brokern
ich frag mal frech: was willst du machen? Ich könnt mir vorstellen das man eine dll bastelt, die quasi als Kommunikationsschnittstelle arbeitet. Dann einen EA/script startet der über die dll seine "Befehle" erhält und die Daten rausschickt. Noch einfacher vermutlich via Fileaustausch, also für jedes Ding eine/mehrere Dateien (eine für den Kursaustausch, eine für Ordersignale an den EA die dann auch gleich die OrderSend-Resultate enthält)
-
Polynomiale Regressions Kanäle
Jein, hatte eine VO zum Thema "geometrische Optimierungsprobleme" und da sind Regressionen ein Spezialfall. Außerdem find ich die Dinger spannend ;) wieso erweitert er sich? müsste an sich ja recht ähnlich aussehen wie die Reg aufs Close, nur verschoben und eben ein bissl anders ;) bzgl. Degree: hat nix direkt mit Berechnungsmethoden zu tun, aber folgendes Problem: Nehmen wir an du entscheidest dich für Degree 2 (Die Kurve kann also maximal einen Extremwert haben, also ein simpler Bogen). Ein simples 1-2-3 (hat ja 2 Extreme: ein lokales Minimum und ein lokales Maximum) könnte die Kurve nicht beschreiben und würd vermutlich einfach eine gerade Linie zeichnen. Degree 3 kann aber eine solche Kurve nachmalen... (fittet sich also näher an den Kurs, aber vielleicht auch zu nah ;) Kleine Idee (sorgt auch gleich für die Elminierung von Ausreißern): Jeder Berechnungswert (also zB der Close von jedem Bar) wird zusätzlich mit einem Gewicht (zB zwischen 0 und 1) versehen. Nach der Regression kann man dann ja für jeden Bar ausrechnen wie sehr der Wert von der Linie abweicht. Dementsprechend werden die Gewichte upgedatet (schönes Wort oder? ;), also Werte die weit weg sind (zB Ausreißer, Spikes etc.) bekommen ein niedrigeres Gewicht, Werte die gut passen ein höheres. Die Werte fließen dann in die nächste Regressionsberechnung nur mit dem gerade bestimmten Gewicht mit ein. Da wir hier fortlaufend arbeiten aber keine großen Sprünge wollen jedesmal wenns einen Bar weiterwandert, könnte man das Gewicht auch noch an die "Platzierung" im Fenster koppeln. Ein Bar der neu dazukommt startet mit einem sehr kleinen Gewicht, wird dann bei jeder Neuberechnung angepasst (also wenns passt erhöht sonst bleibts klein), zusätzlich werden ab der Hälfte des Zeitfenster, die Gewichte "klein gehalten" sodass (zB) die Summe der Gewichte in der "älteren" Hälfte, maximal ein Viertel des Gesamtgewichtes ausmacht, wobei innerhalb der Hälfte das ganze noch so abfällt das der letzte Bar fast kein Gewicht mehr hat. Würde die "Realität" wiederspiegeln, das sich neubildende Formationen und Bewegungen stärker auswirken als die Bars von vor 3 Tagen. zusätzlich aber stark abweichende einzelne neue Bars, nicht das alte Muster zerstören, bzw. da zu schnelle Schwankungen erzeugen. nur mal so als eine Idee von mir ;)
-
Struktogramm für Linien-Kreuzungen
Nicht ganz. wie Maerl schon gesagt hast musst du auf den Fall line1 == line2 aufpassen. (Das Gegenteil von ">" ist nicht " Wenn du sagst: WENN a größer b ist DANN .... WENN b gröber a ist DANN ... ist es was anderes als WENN a größer b ist DANN .... SONST .... im ersten Fall wird bei "a gleich b" nichts gemacht, im zweiten Fall schon.
-
Polynomiale Regressions Kanäle
Direkt Erfahrungen hab ich noch keine damit, aber ich könnt ein paar Fragen beisteuern ;): Was wird zur Berechnung der Regression genommen (Close, Mittelwert, gewichtetes Mittel)? Macht Reg auf einen Wert und dann die Abweichung mehr Sinn als 2 Regressionen einmal auf High einmal auf Low (und daraus resultierende "gebogene" Trichter etc)? Beim Paramter Degree sollte man sich überlegen welche "Formationen" man erkennen will. zB 2 ist quadratisch, sprich die Reg funktioniert gut wenn du im beobachteten Zeitraum maximal einen Extremwert hast, 3 (kubisch) schafft dann schon 2 Wendungen etc... Dann bleibt noch die Frage wies berechnet wird, aber vermutlich mit Least-Squares... nicht optimal aber schnell *G* Spannend wären auch höhere Ordnungen, aber das fällt dann vermutlich schon mehr in die Richtung overfitting...
-
Wer kontrolliert die Kurse bei FX?
jein, das die Ticks leicht verzögert kommen lässt sich erklären, aber das der neue Tick bei AT kommt, MBT dann aber noch den alten Quote bestätigt und erst beim versuch eine Order zu diesem Preis zu eröffnen neu quotiert, ist schon ein bissl eigenwillig...
-
EA - Zertifizierung
Stimm dir in gewisser Weise zu. Mir persönlich ist eine EA-Zertifizierung auch recht "egal", da ich sehr wahrscheinlich nie auf die Käufer bzw. Verkäuferseite gelangen werde. Aber wenn ich mir die Landschaft an EA-Promoseiten anschaue, wo "Die besten 10 EAs" etc. angepriesen werden, dann kommt bei mir immer so ein "woher zum Geier wollt ihr das wissen? auf welchen Fakten beruht das?" auf. Von daher fand ich die Idee als solches recht gut. Zusätzlich kann beim Entwicklungsprozess der Zertifizierung auch noch sehr viel für die Community herausspringen, denn auch wenn man weder Käufer noch Verkäufer ist, ist es sicher sehr interessant sich Gedanken zu machen/bzw. von Profis zu erfahren welche Kriterien wirklich entscheidend sind, und was einfach nur gut klingt aber nix kann. Solche Infos sind sowohl für Systementwickler als auch für Anwender oder auch diskretionäre Trader die einfach nur ihre eigene Performance analysieren wollen sicher sehr sehr hilfreich.
-
Struktogramm für Linien-Kreuzungen
du meinst bei der Zuweisung? ja, es ist immer links die Variable auf deren Wert geändert wird, rechts vom "=" die Variable (oder Funktion etc.) deren Wert verwendet wird. Wie gesagt, hab noch nit wirklich mit Struktogrammen gearbeitet, was wichtig ist: die zwei Zuweisung zu Beginn passieren nur genau einmal beim allerersten Aufruf der Funktion bei allen weiteren Aufrufen haben die ersten 2 Zeilen keine Auswirkung (liegt an der "static" Deklaration). Die 2 if's werden eigentlich nicht parallel ausgeführt (würde das erste if einen Wert ändern auf den das zweite zugreift, dann gäbs hier ein Problem in deinem Struktogramm), aber in diesem Fall ist es das gleiche. (ich weiß auch nicht inwieweit das bei Struktogrammen wichtig ist). Ansonsten schaut das struktogramm gut aus.