StopsLevel, LotsMin zeigen nur Nullen an

 

Guten Morgen,

es geht um diesen Code, er ist übersichtlichkeitshalber sehr einfach gehalten:

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/AccountInfo.mqh>

CSymbolInfo Symb;
CTrade Trade;
CAccountInfo AccountInfo;

int stopslevel;
double min_lots, Balance;
double Ask;

int symbolinfostopslevel = SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);

void OnInit(){
stopslevel=Symb.StopsLevel();
min_lots=Symb.LotsMin();
Balance=AccountInfo.Balance();
}

void OnTick()
  {
Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);

  Comment("StopsLevel: ",stopslevel,"\n",
          "LotsMin: ",min_lots,"\n",
          "Ask: ",Ask,"\n",
          "Balance: ",Balance,"\n",
          "symbolinfostopslevel",symbolinfostopslevel);
  }

AccountInfo.Balance() liefert den im Tester eingestellten Wert, scheint also nur SymbolInfo zu betreffen.

Da ich also den Verdacht hatte, ich hätte meine SymbolInfo Klasse aus Versehen geschrottet, habe ich unten mal versucht, den StopsLevel nicht über die Klasse SymbolInfo zu holen sondern über SymbolInfoInteger. Die Klasse popt ja manchmal bei Fehlermeldungen auf und wenn man das nicht gleich mitbekommt, besteht die Möglichkeit, dass man etwas verändert. Aber nein, auch SymbolInfoInteger gibt mir nur die Null aus.

Wo kann das Problem liegen, hat das vielleicht noch jemand?

 

Du kannst den Wert auch in den Spezifikationen des Symbol überprüfen: In der Marktübersicht einen Rechtsklick der Maus auf das Symbol, dann Spezifikationen wählen.

Kann 0 sein, heißt dann, es gibt keinen Mindestabstand.

Aber das "Minimale Volumen" kann nicht Null sein, üblicherweise im Forex 0.01.

 
Carl Schreiber:

Du kannst den Wert auch in den Spezifikationen des Symbol überprüfen: In der Marktübersicht einen Rechtsklick der Maus auf das Symbol, dann Spezifikationen wählen.

Kann 0 sein, heißt dann, es gibt keinen Mindestabstand.

Aber das "Minimale Volumen" kann nicht Null sein, üblicherweise im Forex 0.01.

Danke, guter Tipp. Ich werde es mir mal anschauen.

Der Fehler war letztendlich, dass ich CSymbolInfo benutzt habe um mir die Zahlen zu holen. Da war mal ein Artikel wo sich das ganz praktisch anhörte.

Mit SymbolInfoDouble() und SymbolInfoInteger() ging es dann. Bei Ask und Bid das Selbe: Wenn man die mit CSymbolInfo holt bekommt man NUR invalid stops, egal was für Stops man einstellt. Schade dass das nicht geht. Hab mir dann mal die Methoden für die oben genannten Zahlen in der Class angesehen, aber nur vom Drübersehen habe ich den Fehler nicht gefunden. Was aber Nichts heißen muss :)))