Hallo zusammen,
als ich heute eine kleine Spielerei mit einem Trailingstop entwickeln wollte, fiel mir auf, dass SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL) mir keine Zahl liefert.
Da habe ich mich gefragt, ob das womöglich am Broker liegt. Das Problem tritt bei Gold, GBPUSD, EURUSD, S&P500 auf.
Habe jetzt schon mit dem Broker geredet im Hilfechat. Da hieß es, ich solle bei MQL nachfragen.
Hier der abgespeckte SymbolInfoTestBot:
Und hier das Ergebnis:
Bei StopsLevel, FreezeLevel und MarginInit steht null.
Das kann durchaus sein das die 0 sind
schau mal in der symbol spezifikation nach
und margininit liefert immer 0 bei der abfrage, das ist ein alter bug, da musst du über
https://www.mql5.com/en/docs/marketinformation/symbolinfomarginrate
gehen

- www.mql5.com
Das kann durchaus sein das die 0 sind
Üh das hätte ich nicht gedacht, hab jetzt zwischenzeitlich extra einen kleinen Testbot gebastelt, der zu kaufen versucht, während der StopLoss bei jedem Tick hochgezählt wird und siehe da:
"2021.07.28 20:19:43.912 SymbolMinimumStopLossTestEA01 (GOLD,H1) The minimum SL has experimentally been determined as 1"
Gerade auf Gold, da gibt es manchmal MinimumStopLoss von etwa 1000 Punkten oder so. Das wundert mich jetzt...
Ja okay danke für die schnelle Antwort.
//+------------------------------------------------------------------+ //| MinimalStopLossSpamTestEA | //| Copyright 2020, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property strict #include <Trade\Trade.mqh> const input double InpLots=0.01; const input int SL=0; const input int TP=10500; double Ask, Bid; int StopsLevel, SLUp=SL; bool TradeStop=false; CTrade Trade; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { GetPrices(); if(PositionsTotal()!=0) { Print("The minimum SL ",Symbol()," has experimentally been determined as ",SLUp); TradeStop=1; } else if((PositionsTotal()==0)&&(TradeStop==false)) { Trade.Buy(InpLots,_Symbol,Ask,Bid-SLUp*_Point,Bid+TP*_Point,NULL); SLUp++; } Comment("\n", "\n Positionen: ",PositionsTotal(), "\n SLUp: ",SLUp, "\n StopsLevel ",StopsLevel ); // Print("***End Positions: ",PositionsTotal()); } void GetPrices() { Ask=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); Bid=NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); StopsLevel=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL); } //+------------------------------------------------------------------+

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo zusammen,
als ich heute eine kleine Spielerei mit einem Trailingstop entwickeln wollte, fiel mir auf, dass SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL) mir keine Zahl liefert.
Da habe ich mich gefragt, ob das womöglich am Broker liegt. Das Problem tritt bei Gold, GBPUSD, EURUSD, S&P500 auf.
Habe jetzt schon mit dem Broker geredet im Hilfechat. Da hieß es, ich solle bei MQL nachfragen.
Hier der abgespeckte SymbolInfoTestBot:
Und hier das Ergebnis:
Bei StopsLevel, FreezeLevel und MarginInit steht null.