Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools  
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4294
Beiträge: 39577
Benutzer: 6.606
Aktive Benutzer: 223
Links: 80
Wir begrüßen unseren neuesten Benutzer: dellinger
Mit 1.311 Benutzern waren die meisten Benutzer gleichzeitig online (vor 2 Tagen um 01:18).
Neue Benutzer:
vor 3 Tagen
- dellinger
vor 5 Tagen
- SABA
vor 5 Tagen
- artfeld
vor 5 Tagen
- sonnejian
vor 5 Tagen
- SchneiderB...

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 147
Gesamt: 147
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 211
AVT befindet sich auf einem aufstrebenden Ast
Angry der Code war/ist korrekt, trotzdem 130 Error

Ich versteh die Broker nicht mehr, an dem Code wurde nix geändert, der lief. Und nun plötzlich:
1. hin und wieder wird eine Order gesendet
2. dann andauernd ein 130 Error (ERR_INVALID_STOPS)

Code (Beispiel Long Order, nur der relevante Teil):
Code:
// wir machen einen Loop über alle Objekte
// öffnet Long, wenn Entry Linie getroffen wird, SL aus StopLoss Linie
         rq_esname=obj_name;                                        //FullNameESline
         rq_esprice=ObjectGetDouble(0,obj_name,OBJPROP_PRICE);      //PriceOfESline
         rq_slname=EStoSLname(obj_name);                            //FullNameSLline 
         rq_slprice=ObjectGetDouble(0,rq_slname,OBJPROP_PRICE);     //PriceSLline
         StopLoss=NormalizeDouble(rq_slprice,_Digits);              //StopLoss

         // ========== Buy Orders =============================================
         if(rq_dirletter=="B")                                     //AllBuyOrders
         {
            rq_dirprice=MarketInfo(_Symbol,MODE_ASK);              //RequiredBuyPrice
            // ======= Buy 4. sending a buy order if ES is hit
            if(rq_dirprice>=rq_esprice)                                           //AskHitsEntryLine
            {
				
 _Debug(__FUNCTION__,__LINE__,
 " rq_dirprice="+DoubleToStr(rq_dirprice,_Digits)
 +" StopLoss="+DoubleToStr(StopLoss,_Digits) );
 
                  rq_tktno=OrderSend(_Symbol,OP_BUY,LotSize,                      //GetTicketSendingOrder
                                     rq_dirprice,Slippage,StopLoss,TakeProfit,
                                     rq_comment,MagicNumber,ColorArrowLong);
                  if(rq_tktno>0)                                                  //OrderSendSuccess
                  {                                                               //GetStatistics
                  }
                  else                                                            //OrderSendError
                  {
 _Debug(__FUNCTION__,__LINE__,IntegerToString(_LastError) );
                  }
            }
	}
// Debug sagt:
// rq_dirprice=11959.95 StopLoss=11942.52 ( das sind 17,43 oder 1743p unter Kaufpreis) 
// _LastError=130 (ERR_INVALID_STOPS)
// MarketInfo(_Symbol,MODE_STOPLEVEL) liefert: 0
Die Order wird zum aktuellen ASK geöffnet, der SL-Wert entspricht exakt dem der SL Linie, deren Preis wurde mit NormalizeDouble angepaßt und er liegt verdammt weit unter dem Entry. SL Begrenzung liegt bei 0, wenn es floating wäre, dann hätte es einen Wert.
So, und nun - hat jemand eine Idee? Danke. AVT
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 782
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Dann hat sich vielleicht beim Broker was geändert.

Wie wird der SL denn genau berechnet?

Edit:Statt rq_dirprice könnte man auch einfach Ask schreiben.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.222
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, wenn es nicht am StopLoss liegt, dann liegt es eben halt am TakeProfit.
Auch der fällt unter den Fehler 130.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 211
AVT befindet sich auf einem aufstrebenden Ast
Standard

Danke für Eure Antworten.
Zitat:
Zitat von MA-EA Beitrag anzeigen
Wie wird der SL denn genau berechnet?
Edit:Statt rq_dirprice könnte man auch einfach Ask schreiben.
1. der wird gar nicht "berechnet", sondern ist der Preis der SL_Linie
2. aber nicht, wenn man OP_BUY und OP_SELL mit jeweils 4 Bedingungen auswerten muß, da ist eine Variable einfacher

Zitat:
Zitat von traderdoc Beitrag anzeigen
Nun, wenn es nicht am StopLoss liegt, dann liegt es eben halt am TakeProfit.
Auch der fällt unter den Fehler 130.
Ist auch nicht die Ursache (der wird aus der TP_Linie genommen, rein optisch schon drüber).

Im Anhang die optische Darstellung der Linien. Das ist eine "BuyStop Order" die als Marketorder ausgeführt wird: der ES wandert so lange nach unten bis entweder der SL erreicht wird (dann wird alles verworfen) oder Ask den ES auslöst, dann wird gekauft (in diesem Fall war es ca 7 Punkte vor dem Stop).

Im Code habe ich vor der Orderaufgabe ein Warnung für den Stoplevel und den Minimalstop eingefügt (sollten eigentlich schon beim "Malen" der Linien korrigiert werden; die werden aber nicht aktiv, also gibt es weder einen floating stoplevel, noch einen minimal stop und die Linienwerten sind auch ok):
Code:
   if( MarketInfo(_Symbol,MODE_STOPLEVEL)>0)
      _Debug(__FUNCTION__,__LINE__,"floating stop");
   if(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL)>0)
      _Debug(__FUNCTION__,__LINE__,"min stop needed");
Hier die Debugs zum Bild:
Code:
Expert-Log:
0 10:45:12.179 Skalpell7.1 DE30mini,M1: rq_esprice=11889.70 rq_dirprice=11889.70 StopLoss=11882.36 TakeProfit=11929.11
0 10:45:12.367 Skalpell7.1 DE30mini,M1: 130
Terminal-Log:
0 10:45:12.179 '2010080': order buy market 0.10 DE30mini sl: 11882.36 tp: 11929.11
1 10:45:12.367 '2010080': order buy 0.10 DE30mini opening at market sl: 11882.36 tp: 11929.11 failed [Invalid S/L or T/P]
Differenzen:
TP 11929.11 diff=39.41 Punkte über ES/Ask
ES 11889.70
SL 11882.36 diff=7.34 Punkte unter ES/ASk
Ich bin komplett ratlos. AVT
Angehängte Grafiken
Dateityp: jpg Anmerkung 2019-09-03 104458.JPG (11,2 KB, 3x aufgerufen)
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.222
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Da man nicht den ganzen Code sieht, ist das schwierig nachzuvollziehen. Nach meiner Erfahrung liegt die Hauptursache meist beim STOPLEVEL, welches nicht eingehalten wird.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 211
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Da man nicht den ganzen Code sieht, ist das schwierig nachzuvollziehen. Nach meiner Erfahrung liegt die Hauptursache meist beim STOPLEVEL, welches nicht eingehalten wird.
traderdoc
Danke traderdoc, ich versuch mal das in eine Kurzform zu bringen, melde mich wieder. AVT
Mit Zitat antworten
  #7 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 211
AVT befindet sich auf einem aufstrebenden Ast
Standard

Ich habe einen kleinen MiniEA daraus gemacht mit festen Werten für die Linien (Namen und alles wie im großen Original).

Der zeigt dasselbe "komische" Verhalten (ja ich weiß, komisch gibt's beim Proggen nicht) - jedenfalls öffnet er hin und wieder ne Order, meistens aber krieg ich den 130ger um die Ohren geknallt - nicht mehr lustig

Beim Testen bitte vorher in den Quellen alles an _Debug(...) auskommentieren, das man nicht sehen will, ich habe erst mal alles drin gelassen (man weiß ja nie).

Danke für Eure Hilfe. AVT
Angehängte Dateien
Dateityp: mq4 miniEA.mq4 (74,4 KB, 2x aufgerufen)
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
130, err_invalid_stops


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 07:19 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------