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: 4989
Beiträge: 43289
Benutzer: 7.242
Aktive Benutzer: 50
Links: 84
Wir begrüßen unseren neuesten Benutzer: yev
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einer Woche
- yev
vor einer Woche
- Toke
vor 3 Wochen
- Boulder55
vor 3 Wochen
- LeonamOni
29.08.24
- Marvin

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 02.09.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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
  #2 (permalink)  
Alt 02.09.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
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.
  #3 (permalink)  
Alt 02.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.738
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.
  #4 (permalink)  
Alt 03.09.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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, 6x aufgerufen)
  #5 (permalink)  
Alt 03.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.738
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.
  #6 (permalink)  
Alt 03.09.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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
  #7 (permalink)  
Alt 04.09.19
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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, 4x aufgerufen)
Thema geschlossen

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:59 Uhr.





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