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
Es hängt alles von der Logik des benutzerdefinierten Indikators ab. Im Prinzip kann er seine Werte einmal am Tag neu berechnen und alle anderen Ticks überspringen. Sozusagen nach dem Willen des Autors.
Im Grunde versuchen einige Leute, diesen Monsteransatz zu verwenden: Erstellen einer Kopie des Indikators über iCustom, Kopieren der erforderlichen Daten, Löschen der Kopie des Indikators. Das Verfahren wird nach Bedarf wiederholt.
Es gibt auch die Funktion OnTimer(), mit der ich selbst noch nicht gearbeitet habe, aber vielleicht können Sie sie an Ihre Aufgabe anpassen.
Ich danke Ihnen. Das dachte ich mir schon. Der OnTimer ist nicht geeignet.
Es gibt eine Situation, in der der Indikator auf M5 steht, aber z. B. einmal pro Stunde aufgerufen wird. Es stellt sich heraus, dass der Indikator im Expert Advisor alle 5 Minuten im Leerlauf berechnet wird, damit er einmal pro Stunde aufgerufen werden kann. Deshalb frage ich mich, ob es eine Möglichkeit gibt, die Neuberechnung des Indikators zu unterbrechen.
Es gibt eine Situation, in der der Indikator auf M5 steht, aber zum Beispiel einmal pro Stunde aufgerufen wird. Es stellt sich heraus, dass der Indikator im Expert Advisor alle 5 Minuten untätig berechnet wird, damit er einmal pro Stunde aufgerufen werden kann.
Kann ich den Indikator so umschreiben, dass er auch stündlich rechnet?
Der Handel läuft auf der M5. Es ist nicht bekannt, wann der Indikator aufgerufen werden wird. Das kann einmal alle zwei Stunden sein oder dreimal in einer Stunde. Der Indikator wird verwendet, um die Handelsentscheidung zu bestätigen.
Hallo, könnten Sie mir bitte sagen,
1) Was ist bei Fehlern wieTRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZEN zu tunund in welchem Fall ist die Anfrage blockiert oder die Position/Auftrag eingefroren?
2) Ich frage mich auch, was mitTRADE_RETCODE_INVALID_FILLzu tun istund in welchem Fall es auftritt?
Hallo, könnten Sie mir bitte sagen,
1) Was ist bei Fehlern wieTRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZEN zu tunund in welchem Fall ist die Anfrage blockiert oder die Position/Auftrag eingefroren?
2) Sie fragen sich auch, was mit TRADE_RETCODE_INVALID_FILL zutun istund in welchem Fall es auftritt?
1) Überprüfen Sie die Forumssuche. Es wurde vor etwa einem Jahr diskutiert.
2) Schauen Sie in der Referenz ENUM_ORDER_TYPE_FILLING nach . Wahrscheinlich eine Unstimmigkeit in der Handelsanfrage für die angegebene "Ausführungsauftragsart" mit dem Ausführungsmodus und führt zu dem angegebenen Rückgabecode.
Zum Beispiel ORDER_FILLING_FOK und SYMBOL_TRADE_EXECUTION_MARKET.
Ich habe den Verdacht, dass, wenn der Indikator über iCustom aktiviert wird, er bei jedem Tick berechnet wird. Und es hängt nicht von den Aufrufen durch den CopyBuffer ab. Ist das richtig?
Wenn dies richtig ist, ist es dann möglich, die Berechnung des Indikators zu deaktivieren und ihn nur vor dem Aufruf des CopyBuffer zu aktivieren?
Wenn ich Sie richtig verstanden habe, dann können Sie versuchen, die Berechnungen auf die nächsten Ticks zu begrenzen, wie es in der iFractals-Hilfe beschrieben ist (siehe mehrere Bedingungen in OnCalculate).
Vielleicht können Sie auch in OnCalculate die anfängliche Ausführung der Indikatorberechnungen für alle erforderlichen Balken kennzeichnen und die Serverzeit des Terminals überprüfen, und nachdem dies geschehen ist, das Flag auf false zurücksetzen, wodurch die Neuberechnung ermöglicht wird, und es wieder auf true setzen... und so weiter.
Oder auch so: Schreiben Sie eine externe Funktion mit Berechnungen, rufen Sie sie in OnInit auf, wo sie einmal beim ersten Start des Indikators ausgeführt wird (sowie beim Ändern von TFs usw., was auf Initiative des Benutzers geschieht), und rufen Sie dann dieselbe Funktion in OnCalculate auf die zweite Art und Weise auf (zum angegebenen Zeitpunkt auf dem Server und durch Flagging).
Aber die erste Methode ist gut, nicht nur, dass sie den Prozessor nicht bei jedem Tick mit vollen Neuberechnungen belastet (was oft zu keinen neuen Ergebnissen führt), sondern sie führt auch keine vollen Neuberechnungen in einem bestimmten Zeitintervall durch und berechnet nur die neuesten Balken (wenn bei jedem Tick, dann einen neuen, und wenn einmal t, dann mehrere, die während dieser Zeit aufgelaufen sind)... Obwohl diese Version besser ist, um persönlich zu überprüfen, kann ich mich irren... Außerdem hängt alles von dem spezifischen Zweck des Indikators ab. Wenn sie von einer großen oder sogar der gesamten Markthistorie abhängt, kann man sich der Neuberechnungen der gesamten Historie nicht entledigen.
Er hat den Witz nicht verstanden (er schreibt einen Indikator, aber das macht keinen Unterschied):
Kompiliert ohne Fehler oder Warnungen.
Kompiliert mit1 Fehler(n), 0 Warnung(en): 'elements' - ungültiger Indexwert.
Was kann hier über den offensichtlichen gesunden Menschenverstand hinausgehen?
Was kann hier über den offensichtlichen gesunden Menschenverstand hinausgehen?
die Anzahl der Array-Elemente wird durch eine Konstante angegeben
Wenn die Anzahl der Elemente vorher nicht bekannt ist, verwenden Sie ArrayResize, um die Größe mithilfe von Variablen festzulegen.
Dies sind die Grundlagen von C++.
Also entweder