Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Meine Freunde riefen mich an, um das Auto zu betrügen...
>> nun ja...
Und sie sagen Krise ;)
Es sieht so aus, als müssten wir einen Vergleich nach dem anderen anstellen, bis alle Probleme gelöst sind.
Hier habe ich FSB Accelerator Oscillator mit MT iAC(...) verglichen:
Wie man das macht:
1. die Devisenkurse von FSB mit den aktuellen Kursen von MT aktualisieren (in MT Strg+S drücken und die Datei xxxxxx.csv im Verzeichnis FSB./Data speichern) Wenn sich Ihre Daten in einem anderen Ordner befinden, verwenden Sie Markt -> Datenverzeichnis von FSB, um dorthin zu gelangen).
2. erstellen Sie das Skript Indicator_Values.mq4, das den gewünschten Indikator druckt. (Das Skript befindet sich auf der Seite des vorherigen Forums).
3. setzen Sie dieses Kennzeichen in FSB. (Stellen Sie sicher, dass Sie die gleichen Parameter verwenden.) Exportieren Sie den FSB-Indikator mit der Funktion Export -> Indikatoren.
4 Wenn Sie einen Unterschied feststellen, melden Sie ihn bitte.
Wir wünschen Ihnen viel Glück!
------------
Bearbeiten:
Bitte verwenden Sie die aktuelle FSB v2.8.3.5 Beta
Die klassische Formel lautet: Momentum(n) = Close - Close(n)
Dies ist die Formel, die die FSB verwendet.
MT verwendet: Momentum(n) = 100 * Close / Close(n)
Das weiß ich. Ich habe mich auf die Indikatorparameter bezogen. Glättungszeitraum. Glättungsmethode. Wir legen sie nicht fest. Welche Parameter werden standardmäßig übernommen: 0,0?
Hallo zfs,
Sie können die Standardparameter im Dialogfenster Indikatorparameter sehen. ( Pressevorgabe)
Beachten Sie, dass der Zeitraum "Zusätzliche Glättung" = 0 ist. Das bedeutet, dass keine Glättung vorgenommen wird.
Der zweite Ort, an dem Sie die Standardwerte sehen können, ist der Quellcode:
Hallo zfs,
Ich habe nicht an Ihrer prinzipiellen Makellosigkeit gezweifelt. Das Problem ist, dass die Endwerte der Indikatoren für mich trotzdem nicht übereinstimmen. Oder haben sie das nicht? Ich habe jetzt leider keine Zeit, das zu überprüfen.
Zfs,
Mit Hilfe von Stellarator habe ich viele Probleme in FSB behoben. Ich habe auch die Standardparameter von FSB so geändert, dass sie in MT wie folgt aussehen. Ich hoffe, dass die meisten Unterschiede bereits behoben sind.
Bitte zögern Sie nicht, etwaige Fehler zu melden. Alle Rückmeldungen und Kritiken sind sehr willkommen.
Ich muss Sie davon abbringen! Die entscheidende Nuance ist der "Grenzwert für eine Iteration des EA". Innerhalb dieser Grenzen wird der Indikator also EINMAL (bei seinem ersten Aufruf) berechnet! Ich erkläre dies mit 100%igem Vertrauen. Alle nachfolgenden Aufrufe starten() es überhaupt nicht, sondern entnehmen nur die notwendigen Werte aus den notwendigen Puffern. Die Bedingung ist 100%, wenn die Eingabeparameter unverändert bleiben (mit Ausnahme des Puffers und des Offsets). Die Regel funktioniert, wenn die Berechnungen innerhalb eines einzigen Instruments durchgeführt werden. Aber ich denke, das Prinzip gilt auch dann, wenn sich iCustom auf andere TFs und Tools bezieht.
Ich bin daran interessiert, einen Expert Advisor zu schreiben, der für den Indikator für den Wert des Indikators in der aktuellen Minute auf der 0th bar 240 mal gilt. D.h. es stellt sich heraus, dass die Ausgabe immer den ersten Wert hat? Bitte bestätigen Sie das, denn das ist mir neu.
Off-Topic-Frage, ich habe gerade in das Schreiben eines Expert Advisor, die auf der 0th bar 240 mal den Indikator für den Wert des Indikators in der aktuellen Minute zugreift beteiligt. D.h. es stellt sich heraus, dass die Ausgabe immer der erste Wert ist? Bitte bestätigen Sie das, denn das ist mir neu.
>> Der Expert Advisor beginnt bei jedem neuen Tick neu, und dies ist eine andere Iteration, und daher werden die Indikatorwerte anders sein.
Der EA wird bei jedem neuen Tick neu gestartet, und dies ist eine andere Iteration, und daher werden die Indikatorwerte anders sein.
Wenn Sie den Parameter "Use previous bar value" korrekt verwenden, benötigen Sie den aktuellen Barwert des Indikators nicht.
Nehmen wir an, Sie verwenden MA(simple, 12, close) in einem Tagesdiagramm. Um diesen MA korrekt zu berechnen, benötigen Sie die Schlusskurse von 12 Bars.
Wenn es jetzt 15 Uhr ist, ist der aktuelle "Schlusskurs" nicht der tatsächliche Schlusskurs des Balkens. Sie wird bis 12 Uhr geändert. Die Verwendung des MA für den aktuellen Balken beinhaltet also nicht den tatsächlichen Schlusskurs, sondern einen vorläufigen. Gleichzeitig verwendet der Backtest den realen (bereits festgelegten) Schlusskurs der historischen Balken. Diese Praxis wird Unterschiede zwischen dem Backtest und dem realen Handel mit sich bringen.
Noch schlimmer:
Sehen wir uns die logische Regel "Ein FastMA geht über einen SlowMA" an, wobei beide MAs auf dem Schlusskurs basieren.
Wenn der Markt im Laufe des Tages schnell ansteigt, kann der FastMA über den SlowMA kreuzen, was ein Kaufsignal auslöst. Sie werden auf das Signal hin kaufen. Wenn der Markt nach dem Abschluss nach unten geht und so niedriger schließt, wird sich der FastMA unter den Slow bewegen. Verstehen Sie das Problem? Sie haben bereits vor der Schließung der Bar gekauft. Wenn Sie diese Strategie später backtesten, werden Sie sehen, dass es kein solches Kaufsignal für diesen Balken gibt. Sie werden dem Backtester die Schuld geben, aber das Problem liegt in der falschen Strategielogik.
Der Forex Strategy Builder schützt Sie vor solchen logischen Fehlern durch die automatische Einstellung des Parameters "Use previous bar value". FSB verwendet niemals wechselnde (noch nicht festgelegte) Indikatoren für das Backtesting. Und in dieser Logik, warum ein EA einen Indikator für jeden Tick berechnen muss, wenn die Strategie ihn nicht verwendet. Eine Berechnung pro Bar ist ausreichend:
- Wenn der Indikator den Eröffnungskurs verwendet, muss die Berechnung zum Zeitpunkt der Bar-Eröffnung erfolgen;
- Wenn der Indikator Close, High, Low oder eine beliebige Kombination der Preise verwendet, muss die Berechnung zum Zeitpunkt des Balkenschlusses erfolgen.
Guten Abend zusammen!
Ich bin das Wochenende über ohne Computer :(. Und heute hatte ich wegen der Arbeit einfach nichts zu tun, also... irgendwie...
Aber ich hatte Zeit zum Nachdenken. Und (hoffentlich) strategisch entschieden (in Bezug auf den Indikatorrahmen).
Im Allgemeinen wird die interne Struktur der Indikatoren von nun an ähnlich sein (ich werde sie später beschreiben, vielleicht morgen). Was nach außen hin "heraussticht" (Parameter) - so nah wie möglich an FSB. D.h. ihre Anzahl, ihre Werte (und deren Grenzen) und die durch sie definierte Funktionalität - nun ja... fast eins zu eins :). Es bleiben kleine Nuancen, aber das werden wir im Laufe der Zeit entscheiden.
Ganz kurz (ich gehe jetzt ins Bett, ich werde morgen oder übermorgen wahrscheinlich nicht mehr hier sein, ich habe auf der Arbeit viel zu tun) (nach dem Beispiel von "unserem lieben" RSI :D):
1. Parameter:
Ich denke, das ist auf dem Bild schon mehr oder weniger deutlich zu erkennen. Das Einzige, was Schwierigkeiten bereiten kann: slotType und die entsprechenden Werte (die sich vielleicht von FSB unterscheiden, aber in diesem Fall ist das kein entscheidender Punkt):
Der Rest ist einfach. Die numerischen Werte werden unverändert beibehalten. Werte in ComboBoxen werden von 0 beginnend nummeriert (wie Arrays).
Dienumerischen Werte der Glättungsmethoden und Preiskonstanten unterscheiden sich von denen in MT (ich habe lange darüber nachgedacht, aber beschlossen, aus Gründen der FSB-Kompatibilität aus dem Klischee herauszukommen :) ). All dies, in der Tat, ist getan, damit in der Zukunft die Expert Advisors (oder was die Benutzer selbst schreiben) können "zucken" die Indikatoren leicht und ungezwungen :) (was sie in FSB sahen, ist das, was sie festlegten ("what I see is what I sing")). Grob gesagt:
double dRSI = iCustom(NULL, 0, "-FSB- RSI", 2, 0, 3, 3, 3, 14, 30, 1, 0, 0);
für obiges Beispiel.
2. Zurückgegebene Werte:
Die ersten beiden Indikatorpuffer in jedem Indikator sind für offene Positionen (long bzw. short) oder für logische Bedingungen (1,0 - ja / jeder andere Wert - nein) reserviert. Außerdem haben wir die Indikatorwerte selbst (falls sie für jemanden interessant sein sollten):
Der Inhalt der ersten beiden Puffer werden durch die Logik des Indikators(slotType und indLogic) bestimmt (d.h. noch einmal - es gibt entweder Preise oder 1 / 0 (ich empfehle, es mit "1" zu überprüfen, weil andere Werte nicht nur Null sein können (im Allgemeinen - da der Indikator keinen Wert hat, kann EMPTY_VALUE sein)).
Alle Indikatoren wurden unter Berücksichtigung von IndicatorCounted() optimiert (dies ist im Großen und Ganzen die wichtigste Änderung des ursprünglichen Codes) (Miroslav hat Recht, im allgemeinen Fall - Sie sollten die Indikatorwerte einmal pro Bar neu berechnen (wieder - im allgemeinen Fall... ;)). Aber für eine korrekte visuelle Darstellung und im Allgemeinen (guter Ton)... Im Allgemeinen sollte es nicht viel langsamer werden.
Zum Rendern von farbigen und ähnlichen ("besonders begabten" :)) Indikatoren werden grafische Objekte verwendet (um keine zusätzlichen Puffer zu belegen). Ich habe es selbst getestet und es funktioniert einwandfrei (bei der visuellen Anzeige ist es langsamer als Indikatorpuffer, aber nicht zu kritisch, und wenn iCustom aufgerufen wird, werden die Grafikfunktionen überhaupt nicht aufgerufen, so dass "Überschreitungen" die Geschwindigkeit nicht beeinträchtigen).
Das ist alles für jetzt, ich habe ein paar Fragen an Miroslav, aber ich bin schon erschöpft :), ich werde versuchen, sie morgen zu stellen (aber ich werde, wie ich schon sagte - mit Eile)...
p.s. Bevor Sie die Dateien aus dem Archiv verschieben - löschen Sie die Dateien fsb*.mq4 im Ordner Experts\Indicators\. Der Rest muss nur mit dem alten überschrieben werden. Von nun an werden sich die Konventionen für die Benennung der Dateien nicht mehr ändern (alle Indikatoren werden mit dem Präfix "-FSB-" versehen).