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
Ich möchte den Begriff "letzter Handel" klären.
Handelt es sich um den letzten Handel des laufenden Tages? Oder in den letzten N-Tagen?
Das letzte Geschäft innerhalb von 24 Stunden - weiter zurück in der Geschichte muss man nicht gehen.
die letzte Transaktion innerhalb von 24 Stunden - es ist nicht nötig, die Geschichte weiter auszuführen.
Und so funktioniert es:
Der Indikator verwendet den Code zum Erstellen, Verschieben und Löschen einer vertikalen Linie aus derOBJ_VLINE-Hilfe. (im Indikator funktioniert bisher nur das Erstellen von Zeilen). Der Zeilenname wird über den Eingabeparameter"Vertikaler Zeilenname" festgelegt.
Dievertikale Linie wird in OnOnit() erzeugt:
Um die Belastung zu minimieren, wird die Historie einmal pro Minute abgefragt. Zu diesem Zweck deklarieren wir die VariableExtLastMove im Bereich der globalen Variablen unseres Programms (in diesem Fall im Indikator)
- Diese Variable speichert den Zeitpunkt der letzten Abfrage des Handelsverlaufs.
Dann subtrahieren wir in OnCalculate() die gespeicherte ZeitExtLastMove von der aktuellen Zeit (Zeit des letzten Kurses unter Verwendung eines beliebigenTimeCurrent-Symbols), und wenn die Differenz weniger als 60 Sekunden beträgt, beenden wir das Programm.
Wenn die Differenz größer ist, wird eine neue Zeit inExtLastMove eingetragen.
Auf die Handelshistorie wird mit LastProfitForPeriod() zugegriffen.
Hier werden zwei Daten verwendet: von und bis. Das "Bis"-Datum wird auf die Zukunft gesetzt (die aktuelle Zeit plus einen Tag), das"Von"-Datum erhält man, indem man 24 Stunden von der aktuellen Zeitabzieht
Das ist alles für den Moment, das ist eine Menge Text...
Ich verstehe nur nicht, warum wir to_date gleich der Zukunft brauchen? Vielleicht bis zum jetzigen Zeitpunkt? Es scheint, dass wir das Ergebnis des Deals in der Zukunft nicht bestimmen können :) Oder brauchen wir diesen Tag in der Zukunft, um den Schlussstrich in der zukünftigen Zeit zu ziehen?
Noch eine Frage zur Schleife.
Soweit ich das verstehe, laden wir ein Array mit Daten zu Geschäften und durchlaufen das Array von Null bis zum letzten Geschäft, wobei wir die Zeit mit der zuletzt geschriebenen vergleichen und die Variable last_time überschreiben, wenn die deal_time später ist. Oder ist es vielleicht umgekehrt - das Feld kann vom Ende her durchsucht werden? Das letzte Element des Arrays wird die letzte abgeschlossene Transaktion sein, für die wir Daten benötigen.
Vielleicht mache ich einige logische Fehler - bitte urteilen Sie nicht zu hart :)
Wir brauchen es so. Um garantiert "von" und "bis" zur aktuellen Zeit zu erhalten.
Oder ist es vielleicht möglich, das Feld vom Ende her zu durchsuchen?
Wenn die Aufgabe darin besteht, das letzte Geschäft zu finden, dann muss das Array durchgehen und genau nach der Zeit suchen - nur für den Fall, dass etwas passiert oder die interne Kernel-Logik geändert wird und Geschäfte zu unterschiedlichen Zeiten zurückgesetzt werden.
Dies ist der richtige Weg. Garantiert "von" und "bis" zur aktuellen Zeit zu erhalten.
Wenn die Aufgabe darin besteht, das letzte Geschäft zu finden, dann muss das Array durchgehen und nach der genauen Zeit suchen - nur für den Fall, dass etwas passiert oder sich die interne Kernel-Logik ändert und Geschäfte zufällig verworfen werden.
Okay, ich hab's. Im Prinzip wird es angesichts der Begrenzung der Historie auf 24 Stunden keine nennenswerte Belastung geben, wenn man die Daten durchgeht :)
OK, ich hab's. Im Prinzip wird es angesichts der 24-Stunden-Historie keine nennenswerte Belastung geben, wenn man die Daten durchgeht :)
Der letzte Schritt besteht also darin, die Linie in Abhängigkeit vom erzielten Gewinn zu verschieben.
Erinnern Sie sich an die dortigen Umzugsregeln?
Ist das richtig oder verwechsle ich etwas?
Im Folgenden wird erklärt, warum der Parameter "before" in Zukunft verwendet werden sollte:
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Fehler, Irrtümer, Fragen
Renat Fatkhullin, 2016.11.04 12:43
Geben Sie niemals TimeCurrent() als Enddatum an, sondern TimeCurrent()+86400, um sicherzustellen, dass alle Endabschlüsse erfasst werden.
TimeCurrent ist nicht die exakte letzte Zeit, sondern die "letzte bekannte Serverzeit bei Aktualisierungen", die nicht 100%ig genau ist. Vor allem am Anfang.