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
WHRoeder, Dieser Code sieht so einfach aus, aber ich kann nicht in meinem Kopf herausfinden, wie er funktioniert. Wird die if-Anweisung nicht immer wahr sein, wenn sie time0 gleich time[0] macht, jedes Mal wenn time0 gleich time[0] ist? Ich sage nicht, dass es nicht funktioniert, aber ich verstehe einfach nicht, wie es so strukturiert funktioniert.
1. Tick: Time0 ist nicht gleich Time[0 ], also wird Return nicht ausgeführt,Time0 wird auf Time[0 ] (Startzeit des aktuellen Taktes) gesetzt, der Rest der Startfunktion wird ausgeführt.
2. und folgende Ticks: Wenn Time0 immer noch gleich der Startzeit des aktuellen Balkens ist, befinden wir uns immer noch auf demselben Balken, Return wird ausgeführt und die Startfunktion wird beendet. Wenn Time0 nicht gleich der Startzeit des aktuellen Balkens ist, befinden wir uns in einem neuen Balken, Return wird nicht ausgeführt, Time0 wird auf Time[0] (Startzeit des neuen aktuellen Balkens) gesetzt und der Rest der Startfunktion wird ausgeführt.
Wie würde ich vorgehen, um einen Zähler zu erstellen, wenn ein schwebender Auftrag platziert wird und nicht innerhalb von x Bars ausgelöst wird, dann wird er storniert? Alles, was mir einfällt, ist ein Zähler, der jedes Mal zählt, wenn sich ein neuer Balken bildet, und wenn die Anzahl der gezählten Balken == die angegebene zulässige Anzahl von Balken ist, bevor die schwebenden Aufträge storniert werden. Der Balkenzähler wird jedes Mal zurückgesetzt, wenn ein neuer schwebender Auftrag eröffnet wird? Wie hört sich das an?
Ich würde eine Funktion erstellen, die nach schwebenden Aufträgen sucht, nachschaut, wann jeder Auftrag eröffnet wurde, prüft, wie lange es her ist, und wenn es länger als das Zeitlimit ist, den Auftrag schließt.
Ich möchte eine Funktion, die eurusd, usdchf, gbpusd, usdjpy auf 1hr tf scannt zu machen. Es geht zurück zu den letzten 06:00 gmt Kerze Aufzeichnungen der offenen, geht zurück eine weitere 24 Bars auf die prev 06:00 gmt Kerze Aufzeichnungen, die offene zu und zeichnet die 6gmt - 6gmt Bereich für jedes Paar. Dann vergleicht die 6gmt - 6gmt Bereich von allen Paaren und gibt die eine, die am höchsten ist. Ist es möglich, für eine ea zu tun, dass aus, die an 1 Zeit-Chart?
Bei allen Problemen dieser Art muss man sich zuerst eine Lösung überlegen, bevor man über den Code nachdenkt ... IMO. Erstellen Sie ein Flussdiagramm oder schreiben Sie einen Pseudocode . . eine Lösung finden, die zuerst Sinn macht . . dann den Code betrachten.
Um Ihre letzte Frage zu beantworten, ja, es ist möglich, das zu tun, zum Beispiel, um den offenen Wert für eine bestimmte Kerze von einem anderen Paar als dem des EAs zu erhalten, würde ich verwenden ...
Sobald Sie Ihre Werte für die Wut der 4 Paare haben, können Sie leicht den größten Wert bestimmen, indem Sie etwas wie dieses verwenden:
. . . oder Sie könnten die Werte in ein Array packen und ArraySort verwenden . . . es gibt in der Regel mehr als einen Weg, etwas zu tun, zuerst müssen Sie einen Plan haben, wie Sie Ihr Problem lösen werden.
EDIT: Denken Sie daran, dass einige dieser Dinge mit dem Strategy Tester nicht korrekt funktionieren werden.
In Ordnung, dies ist mein eigener Versuch, einige Code zu schreiben, die den eurusd 1hr Chart scannen wird, bis es die letzte 06:00 bar findet, zeichnet es offen, geht zurück eine andere 24 Bars, um die offene dieser bar (Beginn der 06:00 Tag) und bekommt offen-open-Bereich von ihnen 2 ausgewählten Bars.
Überraschung: Es funktioniert nicht. Lol ------> http://myfacewhen.com/307/
Sagen Sie mir, was ich verbockt habe. Oder habe ich das einfach falsch angepackt? Ich habe es versucht hehe
Ich habe ein Problem entdeckt... 24 Stunden vor b ist b+24 . . die Balken zählen vom aktuellen Balken ( 0 ) nach links.
Gut gemacht, dass Sie die Kommentare hinzugefügt haben, das ist eine sehr gute Übung ... :-)
Ich habe ein Problem entdeckt... 24 Stunden vor b ist b+24 . . die Balken zählen vom aktuellen Balken ( 0 ) nach links.
Gut gemacht, dass Sie die Kommentare hinzugefügt haben, das ist eine sehr gute Übung ... :-)
Wow, gut erkannt, ich hätte eine Weile gebraucht, um das herauszufinden, lol. Ich kann nicht glauben, dass ich das alles richtig gemacht habe - dieser dumme Fehler. Ich habe das Gefühl, ich komme jetzt weiter. Ja, ich habe die Kommentare hinzugefügt, um mir zu helfen, den Überblick zu behalten, was ich tue, und um es für euch super einfach zu machen, zu sehen, was ich zu tun versuche. Jetzt werde ich es dazu bringen, die 4 Paare zu vergleichen und das mit dem höchsten Wert auszuspucken und euch wissen lassen, wie es läuft. Danke RaptorUK
Also habe ich alle Variablen in Arrays umgewandelt und die Prüfungen für jede einzelne ausgeführt. Jetzt hat es aufgehört zu funktionieren. Ist es nicht möglich, mehrere for-Schleifen wie diese zu haben?
Ja, Sie können, kein Problem, aber verwenden Sie kein Array in der for-Schleife Index, können Sie b jedes Mal verwenden, wenn Sie möchten. Es wird für jede der for-Schleifen auf 0 zurückgesetzt, so dass die Wiederverwendung kein Problem ist. was brauchen Sie eigentlich ein Array für zu verwenden? ist es nicht nur für die Bereichswerte?