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 danke Ihnen.
SYMBOL_VOLUME_LIMIT' - nicht deklarierter Bezeichner.............
'SymbolInfoDouble' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden.............
Liegt es nur an mir?
SYMBOL_VOLUME_LIMIT' - nicht deklarierter Bezeichner.............
'SymbolInfoDouble' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden.............
Liegt das nur an mir?
Können Sie das tun?
Noch eine Frage zur Funktion SeriesInfoInteger().
Beim Erstellen des Themas"AccountInfo... Informationsrelevanz" habe ich gelernt, dass es Funktionen gibt, die "in der Softwareumgebung zwischengespeicherte Daten" verwenden und es gibt Funktionen, die immer "direkten Zugriff auf aktuelle Daten" haben.
Zu welcher Kategorie von Funktionen gehört die Funktion SeriesInfoInteger()?
Der folgende Code wird in der Funktion CheckVolumeValue verwendet:
int ratio=(int)MathRound(volume/volume_step);
if(MathAbs(ratio*volume_step-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step);
return(false);
}
Aber er ist korrekter:
int ratio = (int)MathRound((volume-min_volume)/volume_step);
if (MathAbs(ratio*volume_step+min_volume-volume)>0.0000001)
{
description=StringFormat("Объем не является кратным минимальной градации SYMBOL_VOLUME_STEP=%.2f, ближайший корректный объем %.2f",
volume_step,ratio*volume_step+min_volume);
return(false);
}
Denn der minimale Schritt der Volumenänderung muss vom Minimalwert aus gezählt werden.
Und vielleicht sollte der Codeschnipsel
//--- вычислим значение маржи
bool check=OrderCalcMargin(type,Symbol(),lots,last_tick.ask,margin);
ersetzt werden durch:
//--- вычислим значение маржи
double price = (type == ORDER_TYPE_BUY || type == ORDER_TYPE_BUY_LIMIT || type == ORDER_TYPE_BUY_STOP || type == ORDER_TYPE_BUY_STOP_LIMIT) ? last_tick.ask : last_tick.bid;
bool check=OrderCalcMargin(type,Symbol(),lots,price,margin);
Aufgrund von Änderungen in MQL5 kann nun das maximal zulässige Gesamtvolumen für ein Symbol wie folgt ermittelt werden:
Verwenden Sie nicht die alte Variante! Sie war wie folgt:
Der Artikel wurde korrigiert und der neue Expertencode Check_Order_And_Volume_Limits.mq5 wurde angehängt.Lieber Admin
ich versuche, diese Funktion zu verwenden, aber sie gibt in allen Fällen 0 zurück.
Mein MT5-Build ist 2280
double orders_volume_on_symbol=PendingsVolume(symbol);gibt Fehler, keine solche Funktion
Und nachdem ich die Funktion so modifiziert habe, dass sie keine schwebenden Aufträge berücksichtigt, ergibt sie 0
Das liegt daran, dass max_volume 0 ist und opened_volume 0;
Warum ist das maximale Volumen 0, wenn es keine offenen Positionen gibt?
Build 2715