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: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 64
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Unhappy OrderModify für SELL Order klappt nicht

Hi,
ich hoffe mir kann jemand helfen bzw. einen Tipp geben.
die OrderModify-Funktion TS_SL_DELETE_OP_BUY funktioniert bei mir einfach nicht.
Die andere Funktion TS_SL_DELETE_OP_SELL läuft problemlos...

Ich bin echt ratlos warum nur eine der beiden geht obwohl die Bedingungen m.E. identisch sind

Code:
if(OrderType()==OP_BUY && OrderTakeProfit()==0)
for(int b= OrdersTotal()-1;b>=0;b--){if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
if(OrderType()==OP_SELL && OrderStopLoss()!=0)
   {bool TS_SL_DELETE_OP_SELL =OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,clrNONE);}}

if(OrderType()==OP_SELL && OrderTakeProfit()==0)
for(int b= OrdersTotal()-1;b>=0;b--){if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
if(OrderType()==OP_BUY && OrderStopLoss()!=0)
   {bool TS_SL_DELETE_OP_BUY =OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,clrNONE);}}

danke vorab
  #2 (permalink)  
Alt 20.10.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

OrderType() vor der Funktion OrderSelect() zu benutzen, wird immer 0 ergeben.
der Wert OP_BUY entspricht dem Wert 0, OP_SELL dem Wert 1.
Somit ist dann OrderType() == OP_BUY immer true und damit springt das Programm auch zu TS_SL_DELETE_OP_SELL aber nicht zu TS_SL_DELETE_OP_BUY.

Übrigens der Korrektheit wegen, TS_SL_DELETE_OP_SELL und TS_SL_DELETE_OP_BUY sind keine Funktionen, sondern Variablen.
Und dann bitte demnächst übersichtlichen Code schreiben, d.h. Klammern benutzen, einrücken etc.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 20.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 64
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Standard

vielen Dank für den Hinweis :-)
  #4 (permalink)  
Alt 21.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 64
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Standard

sorry ich hab's glaub ich nicht gecheckt
ich möchte ihm sagen, wenn der BreakEven überschritten ist und der TrailingStop im Gewinn nachgezogen wurde, lösche den SL der Gegenposition, damit der Trade freie Bahn hat....
An welcher Stelle muss ich Select und Co. setzen???


Code:
   if(OrdersTotal()>=2 && useTrailingStop==true)
      for(int b= OrdersTotal()-1; b>=0; b--)
         if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)

            if(OrderType()==OP_BUY && BreakEvenBuy!=0 && Bid>BreakEvenBuy+StopLevel*_Point+1*Point)
               for(int d= OrdersTotal()-1; d>=0; d--)
                  if(OrderSelect(d,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
                     if((OrderType()==OP_SELL)&& OrderStopLoss()!=0)
                       {bool DELET_SELL_SL      =OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,clrNONE);}

   if(OrderType()==OP_SELL && BreakEvenSell!=0 && Ask<BreakEvenSell-StopLevel*_Point-1*Point)
      for(int d= OrdersTotal()-1; d>=0; d--)
         if(OrderSelect(d,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
            if((OrderType()==OP_BUY)&& OrderStopLoss()!=0)
              {bool DELET_BUY_SL      =OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,clrNONE);}
  #5 (permalink)  
Alt 22.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 64
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Standard

hab eine andere Lösung gefunden :-)

Code:
   if(OrdersTotal()>=2 && useTrailingStop==true)
     {
      if(BreakEvenBuy!=0 && Bid>BreakEvenBuy+StopLevel*_Point+1*Point)
         for(int b= OrdersTotal()-1; b>=0; b--)
            if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) && OrderType()==OP_SELL && OrderStopLoss()!=0 && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
              {bool DELET_SELL_SL      =OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,clrNONE);}
     };

   if(OrdersTotal()>=2 && useTrailingStop==true)
     {
      if(BreakEvenSell!=0 && Ask<BreakEvenSell-StopLevel*_Point-1*_Point)
         for(int b= OrdersTotal()-1; b>=0; b--)
            if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) && OrderType()==OP_BUY && OrderStopLoss()!=0 && OrderMagicNumber()==MagicNumber && OrderSymbol()==_Symbol)
              {bool DELET_BUY_SL      =OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0,clrNONE);}
     };
Thema geschlossen

Lesezeichen

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 +1. Es ist jetzt 00:45 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.
-----------------------------------------------------------------------------------------------------------------------------