
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
Wie verwendet man die Funktion RefreshRates() richtig?
Lesen Sie auch im Forum "ERROR: code=138 - requote".
Ich habe "OrderSend error 138", der im Tester mehrmals pro Sekunde generiert wird... ist es ein Requote? Wenn ja, wie kann man sie bekämpfen?)
Nachdem ich 20 Threads über Requotes gelesen habe... Ich habe endlich herausgefunden, was mein Fehler war)
Ich hatte eine "Pseudo"-Neubewertung. Der Grund dafür war die Einstiegsbedingung, die ausgelöst wurde, und daher wurde der Preis an . In Wirklichkeit war der tatsächliche Preis niedriger oder höher als der in der Pressemitteilung angekündigte. Jedes Mal, wenn OrderSend versuchte, eine Bestellung zu öffnen, gab es natürlich den Fehler 138.
Die Lösung bestand darin, vor OrderSend zu prüfen, ob der tatsächliche Preis mit dem durch das Signal übergebenen Preis übereinstimmt)
Was noch zu tun bleibt, ist die Fehlerprüfung für OrderModify-Aufträge, denn das könnte schlimme Folgen haben - no stop!
Ich denke, wir brauchen keine Prüfung für OrderSend, lassen Sie es seinen Puls zu dem Preis durch das Signal gegeben schlagen) Wenn requotes kommen, wird es keine Rolle - ich werde Zeit zu kaufen oder zu verkaufen haben. Die Hauptsache ist, dass alles wie geplant funktioniert)
Nachdem ich 20 Threads über Requotes gelesen habe... Ich habe endlich herausgefunden, was mein Fehler war)
Ich hatte eine "Pseudo"-Neubewertung. Der Grund dafür war die Einstiegsbedingung, die ausgelöst wurde, und daher wurde der Preis an OrderSend übergeben. Und in Wirklichkeit war der tatsächliche Preis niedriger oder höher als der, den ich in OrderSend eingegeben hatte. Jedes Mal, wenn OrderSend versuchte, eine Bestellung zu öffnen, gab es die Fehlermeldung 138.
Die Lösung bestand darin, vor dem OrderSend den tatsächlichen Preis zu prüfen, ob er mit dem durch das Signal übermittelten Preis übereinstimmt).
Es bleibt zu prüfen, ob die OrderModify-Aufträge fehlerhaft sind, denn das kann schlimme Folgen haben - no stop!
Ich denke, es besteht keine Notwendigkeit, OrderSend zu überprüfen, lassen Sie es seinen Puls zu dem Preis schlagen, den das Signal festlegt) Wenn Requotes kommen, wird es keine Rolle spielen - ich werde Zeit haben, zu kaufen oder zu verkaufen. Die Hauptsache ist, dass alles wie geplant funktioniert)
RefreshRates();
nützlich vor dem Zugriff auf Ask Bid
Wenn Sie alle Sell- oder Buy-Limit-Werte vor dem Block, der den Stop-Take und den Einstiegskurs berechnet, überprüfen möchten - schwebende Long-Range-Orders sind möglicherweise nicht betroffen, wenn sie nicht auf der Grundlage des aktuellen Kurses berechnet werden
RefreshRates();
ist es sinnvoll, dies vor dem Zugriff auf Ask Bid zu tun
Ist es nicht das, was ich getan habe... vor dem Bid
vor dem Block, der den Stop-Take und den Einstiegskurs berechnet - Fernaufträge sind möglicherweise nicht betroffen, wenn sie nicht zum aktuellen Kurs berechnet werden
Ist es nicht das, was ich getan habe, bevor ich mich an Bid wandte?
>>Bitte erklären. In meinem Fall ist es also nicht nötig, weil es nicht um das Zählen, sondern um das Vergleichen geht? Verstehe ich das richtig?
Sie haben das Richtige getan :-)
Dort ist es kein Problem!
Der Block, in dem Sie auf die Preise zugreifen, sollte sich vorzugsweise an einem Ort befinden.
ist es besser, diesen Befehl vor der Anwendung zu haben
Sie richten sich nach dem Bid Ask und nach der Berechnung aller Stops müssen Sie ohne große Verzögerung in den Markt einsteigen.
---
Fügen Sie dem Code Folgendes hinzu
vereinfacht ausgedrückt
1 - Signal empfangen - Flagge zur Ausführung setzen.
2refresh() berechnet Mitnahmestopps
3-in
4-Server abgelehnt
5-Decodierungsfehler
6-Signal ist noch aktiv - Ausführungsflagge gesetzt?
7- weiter auf Seite 1
und es ist notwendig, diesen Kreislauf zu durchbrechen
weil er ziemlich lang werden kann
aber wir müssen
1-Entscheidung über Fehler
2 - Versuchen Sie, den Händler nicht so lange zu bumsen, wie der Zyklus es erfordert
2.1 Du könntest zum Beispiel zählen, wie oft du zuschlägst
2.2 Sie können ein Zeitquantum machen
2.3 Sie MÜSSEN sich vor der Ausgabe von Ausführungsbefehlen vergewissern, ob ein Signal vorliegt!
oder Sie wollen es vielleicht abbrechen!
...es ist nur so, dass Sie den Block, in dem Sie auf die Preise zugreifen, möglichst an einem Ort haben sollten
und es ist besser, diesen Befehl zu haben, bevor Sie die
Sie gehen zum Bid Ask und berechnen alle Stops, um ohne große Verzögerung in den Markt einzusteigen...
An einem Ort... Ich verstehe das nicht ganz... Ich arbeite schon lange an dem Indikator, aber ich kann die Schleife nicht abschließen).
Bei mir sieht es so aus:
-Der Einstiegskurs wird durch die Funktionen UpTrend() und DownTrend() bestimmt, die auf das Signal prüfen
-Prüfung (falls) auf Preisgleichheit mit dem Preis aus dem Signal
-Der einzugebende Preis und die Preise werden von OrderSend verarbeitet
-der Stoppkurs wird in der Funktion ModifyPos() verarbeitet, die auf OrderSend folgt
1- Signal empfangen - Flagge zur Ausführung gesetzt //die Funktion zur Überprüfung des Signals übergibt die Funktion zum Setzen der Reihenfolge
2-refresh() takeoffs berechnen //auf Konsistenz mit dem Preis prüfen - Preis des Signals (wenn es noch aktiv ist)
3-Eingabe //Die Berechnung der Abzüge ist statisch in der Funktion OrderSend und stoppt in der Funktion OrderModify
4-Server abgelehnt //wenn der Auftrag nicht erteilt wird und ein Signal vorliegt, dann erfolgt der Wiedereinstieg zum Preis des Signals (wenn es noch gültig ist)
5-decodieren Sie den Fehler //Sie brauchen ihn für sich selbst, falls ein neues Problem auftaucht
6-Signal ist noch aktiv - Flagge zum Ausführen ? //Bedingung für die Preisübereinstimmung - Preis aus dem Signal (wenn es noch gültig ist).
7-gehen Sie zu Schritt 1 //zu Schritt 3
und wir müssen diesen Kreislauf durchbrechen.
es kann ziemlich lang werden //so lange der Preis = der Preis des Signals ist, glaube ich nicht, aber es kann häufig sein)
aber wir müssen
1 - Bestimmen Sie den Fehler //Ich denke, ich werde heute daran arbeiten.
2-Versuch, den Händler nicht so lange zu knallen, wie es sein sollte //der Preis==der Preis des Signals
2.1 zum Beispiel können Sie einen Zähler für die Anzahl der Male, die Sie brauchen, um lange zu gehen // haben, um darüber nachzudenken, überprüfen Sie Ihre Geschichte in der Tester
2.2 Sie können es in einem Zeitquantum tun //verpassen vielleicht den Preis==den Preis des Signals (wenn es noch aktiv ist)
2.3 Sie MÜSSEN prüfen, ob es ein Signal gibt, bevor Sie Aufträge zur Ausführung jeder Serie erteilen!
es könnte an der Zeit sein, das Signal aufzuheben //die Funktion zur Überprüfung des Signals übergibt die Funktion zur Einstellung des Auftrags
Jetzt verstehe ich nicht, wie man OrderModify korrekt implementiert? Ohne sie kann ich keinen Stopp einstellen... DC-Limit beim Öffnen...
- kann einen Fehler von 130 erhalten, wenn sich der Preis nach dem Öffnen ändert und er näher kommt
-Es ist möglich, dass ein Requote-Fehler 138 auftritt und der Preis steigt, so dass der Stopp überhaupt nicht gesetzt wird.
-Es ist möglich, eine 138er-Notierung zu erhalten, und der Preis wird sinken, was nicht kritisch ist, da der Stopp später gesetzt wird.
Also...
Die Nachteile dieser Variante sind
-Wenn der Kurs unter den Eröffnungskurs fällt, wird der Stopp nie gesetzt.
Wenn der Kurs unter den Eröffnungskurs fällt, wird der Stopp niemals gesetzt, sondern es wird immer versucht, den Auftrag zu ändern. Oder doch nicht?
oder so...
Nachteile dieser Variante
-Es wird eine Menge Fehler geben, wenn sich der Kurs gegen
Im Moment ziehe ich diese Option für die Haltestelle in Betracht, bis sie eingerichtet ist)
Aber es gibt Fehler in Zeilen mit ModifyB; ModifyB;
- ';' - Variable bereits definiert
- ';' - Variable bereits definiert
Eine andere Möglichkeit, aber auch mit Fehlern (
Eine andere Möglichkeit, aber auch mit Fehlern (