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 ist nicht korrekt, die == Bedingung für Variablen vom Typ double zu verwenden. Es wird empfohlen, wie folgt zu vergleichen:
Es ist nicht korrekt, die == Bedingung für Variablen vom Typ double zu verwenden. Es wird empfohlen, wie folgt zu vergleichen:
Das ist durchaus vernünftig und vor allem ein sinnvoller Ansatz. Aber mir scheint, dass zumindest die erste Zeile so hätte aussehen sollen:
Ich erhalte von Zeit zu Zeit diese Meldungen im Protokoll
2010.06.15 14:48:09 MemoryException 4915200 Bytes nicht verfügbar
Ich weiß nicht, was ich tun soll?
Die folgenden Meldungen werden regelmäßig im Protokoll angezeigt
2010.06.15 14:48:09 MemoryException 4915200 Bytes nicht verfügbar
Ich weiß nicht, was ich tun soll?
Es ist nicht korrekt, die == Bedingung für Variablen vom Typ double zu verwenden. Es wird empfohlen, wie folgt zu vergleichen:
Nicht genug Arbeitsspeicher. Überprüfen Sie die Größe der dynamischen Arrays, höchstwahrscheinlich ein Versuch, mehr Speicher zuzuweisen als verfügbar ist.
Wenn ich die Frage richtig verstanden habe, muss der Operator Return immer am Ende der Benutzerfunktion stehen
Ich denke, die Antwort über == war im Wesentlichen. Es sollte wirklich ein return(...) irgendwo in einer Funktion vom Typ double sein. Nicht unbedingt am Ende. Die Verwendung des == Operators in if() return(); kann zu einer falschen Ausgabe führen, wenn Sie den LotStep Typ 0.1000000000000000001 haben. In diesem Fall funktioniert keine der Rückgaben und die Funktion gibt nichts zurück. Obwohl in Ihrem Fall die Rückkehr wahrscheinlich nicht wie NormalizeDouble in ihm. In Ihrer Version, die funktioniert, fixieren Sie das Ende auf return(NormilizeDouble(lot,2)) und sehen Sie, ob es funktioniert. Ich bin selbst neugierig darauf.
Ich denke, die Antwort über == war im Wesentlichen. Es sollte wirklich ein return(...) irgendwo in einer Funktion vom Typ double sein. Nicht unbedingt am Ende. Die Verwendung des == Operators in if() return(); kann zu einer falschen Ausgabe führen, wenn Sie den LotStep Typ 0.1000000000000000001 haben. In diesem Fall funktioniert keine der Rückgaben und die Funktion gibt nichts zurück. Obwohl in Ihrem Fall die Rückkehr wahrscheinlich nicht wie NormalizeDouble in ihm. In Ihrer Version, die funktioniert, fixieren Sie das Ende auf return(NormilizeDouble(lot,2)) und sehen Sie, ob es funktioniert. Ich bin selbst neugierig darauf.
Am Ende muss return(...) stehen, aber es kann sein, dass es nicht dazu kommt (wenn eine der If-Bedingungen funktioniert)...
: Renat
Der Fehler liegt darin, dass Sie bei Ihren Berechnungen die Margin-Währung vergessen haben: Saldo = 100 USD und Margin-Anforderung = 100 EUR (119 USD).
Deshalb kann die Operation nicht durchgeführt werden - alles ist korrekt.
Ich möchte noch einmal auf meine Frage zur korrekten Berechnung der Gewinnspanne zurückkommen. Wie Renat in meinen Berechnungen festgestellt hat, berücksichtigt LotRqdMgn (für den Kauf von 1 Lot erforderliche Marge) nicht den Preis der Währung. Ich erinnere mich, diese Tabelle gesehen zu haben
Kennung
Beschreibung
Formel
SYMBOL_CALC_MODE_FOREX
Forex-Modus - Berechnung von Gewinn und Marge für Forex
Marge: Lose*Vertragsgröße/Verwendung
Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose
SYMBOL_CALC_MODE_FUTURES
Futures-Modus - Berechnung von Marge und Gewinn für Futures
Marge: Lose *InitialMargin*Percentage/100
Gewinn: (Schlusskurs-Eröffnungskurs)*TickPreis/TickSize*Lots
SYMBOL_CALC_MODE_CFD
CFD-Modus - Berechnung von Marge und Gewinn für CFD
Marge: Lose *Vertragsgröße*Marktpreis*Prozentsatz/100
Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose
SYMBOL_CALC_MODE_CFDINDEX
CFD-Indexmodus - Berechnung von Marge und Gewinn für CFD nach Indizes
Marge: (Lots*ContractSize*MarketPrice)*TickPrice/TickSize
Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose
SYMBOL_CALC_MODE_CFDLEVERAGE
CFD Leverage Modus - Berechnung der Marge und des Gewinns für den CFD Handel mit Hebelwirkung
Marge: (Lots*Kontraktgröße*Marktpreis*Prozentsatz)/Leverage
Gewinn: (Schlusskurs-Eröffnungskurs)*Kontraktgröße*Lose
Es stellt sich also heraus, dass die Tabelle einen Fehler enthält: Statt Lots*Contract_Size/Leveragemuss es Price*Lots*Contract_Size/Leverage heißen.