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
Hat jemand einen fertigen Code zur Berechnung der Anzahl der signifikanten Stellen für ein Volumen?
So etwas wie SymbolInfoInteger(_Symbol, SYMBOL_DIGITS), aber nur für Volumen.
Zum Beispiel für den Fall SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP) = "1.0" - die Antwort wäre "0", für "0.1" - "1", für "0.01" - 2" usw.
Lassen Sie mich eine Nuance klarstellen. Für einen Volumenschritt wie "0,1", "0,01", "0,001" habe ich.
Der Code sollte für die folgenden Fälle funktionieren: "0,2", "0,11", 0,023" usw.
Es gibt keinen speziellen Codefür die Lautstärke. Es gibt für alles eine Lösung.
Das Skript ist zur Kontrolle im Trailer.Ein Skript zum Überprüfen im Trailer.
Sie meinen, dass..., und ich dachte, ich sollte die zulässige Menge überprüfen, bevor ich eine Bestellung aufgebe.
;)
Ich weiß nicht wirklich, was er will. Wir werden sehen, was er sagt. Ich übe nur meine Telepathie. ;)
Hat jemand einen fertigen Code für die Berechnung der Anzahl der signifikanten Stellen für ein Volumen?
So etwas wie SymbolInfoInteger(_Symbol, SYMBOL_DIGITS), aber nur für Volumen.
Zum Beispiel für den Fall SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP) = "1.0" - die Antwort wäre "0", für "0.1" - "1", für "0.01" - 2" usw.
Lassen Sie mich eine Nuance klarstellen. Für einen Volumenschritt wie "0,1", "0,01", "0,001" habe ich.
Der Code sollte für die folgenden Fälle funktionieren: "0,2", "0,11", 0,023" usw.
Speziell für Volumen kann einfach sein:
sergeev
MetaDriver
Valmars
Eine gut formulierte Frage ist schon die halbe Antwort. :) Entschuldigung, ich bin schon ins Bett gegangen, ich habe die Aufgabe nicht genau beschrieben. Ich werde es noch einmal versuchen.
Ich spreche davon, ein normalisiertes Volumen an einen Handelsauftrag zu übergeben.
Es geht darum, was wir mit dem Preis machen:
Preisnormalisierung - ich denke, das ist jedem klar.
Zu meiner Zeit (seit MT4) habe ich irgendwo in MT-Artikeln gelesen, dass es wünschenswert wäre, auch das Volumen zu normalisieren.
Umsetzung №2.Eigentlich habe ich die FunktionGetVolumeDigits(string Symbol) geschrieben, um den kleinstmöglichen Wert des Volumens gemäß den Bedingungen des Brokers zu finden. Es gibt mindestens zwei Implementierungen (das Ergebnis ist das gleiche):
Umsetzung #1.
Beide funktionieren perfekt mit Varianten, bei denen die Mindestschrittweite = 1,0, 0,1, 0,01, 0,001 usw. ist. Das heißt, wenn der Mindestschritt 1,0 ist, gibt die Funktion 0 zurück; wenn der Schritt 0,1 ist, gibt die Funktion 1 zurück usw.
Was ist, wenn der Mindestschritt z. B. 1,1, 0,11 oder 0,011 beträgt? Bei diesem Algorithmus wird fälschlicherweise die niedrigstwertige Ziffer angezeigt.
Sie können natürlich behaupten, dass es solche Fälle in der Praxis nicht gibt. Ich möchte nur eine solche hypothetische Möglichkeit in meinem Expert Advisor berücksichtigen. Ich dachte, dass vielleicht jemand seine Erfahrungen in dieser Angelegenheit mitteilen könnte...
Es geht darum, das normalisierte Volumen an den Handelsauftrag zu senden.
Ich möchte nur diese hypothetische Möglichkeit in unserem Expert Advisor berücksichtigen.
Von welchem "hypothetischen" Instrument ist die Rede?
1. Die Variante von MetaDriver ist für Sie geeignet. CountSignedDigits zeigt die Anzahl der Zeichen in jedem Los an.
2. Wenn Sie die Anzahl der Ziffern kennen, können Sie die Normalisierung vornehmen:
sergeev
Vielen Dank für die Losvalidierungsfunktion. Ich verwende eine ähnliche Konstruktion/Verzweigung von Schecks.
Meine Frage zielt darauf ab, den jüngsten Platz auf dem Parkplatz zu finden, um ihn zu normalisieren.
Insbesondere gab MetaDriver seine Konstruktion für "alles" an. :) Allerdings ist es nicht ohne Fehler (oder mein Compiler ist fehlerhaft). Nachstehend finden Sie den Code und das Ausführungsergebnis:
Ergebnis:
Nächste Option (die Funktion CountSignedDigits ist dieselbe):
Ergebnis:
Die folgende Zeile in OnStart wurde geändert:
Ergebnis:
Entweder mache ich etwas falsch (bitte korrigieren), oder MetaDriver hat einen Fehler in der Theorie gemacht (bei der Entwicklung des Algorithmus).
Meine Frage zielt darauf ab, die niedrigste Stelle in der Partie zu bestimmen, um sie zu normalisieren.
Selbst wenn beim Senden einer Handelsanforderung die Variable Lot unsauber wird (mit der zweiten Dezimalstelle), wird sie vom Terminal selbst abgelehnt.
Zumindest hatte ich in den vielen Jahren, in denen ich dieses Design verwende, keine Probleme.
Und wenn Sie sich rückversichern wollen, können Sie es auf die 8. Dezimalstelle normalisieren (mit Reserve) - wenn nach der "richtigen" Normalisierung Müll auftaucht, wird es viel weiter sein.