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: 4578
Beiträge: 41376
Benutzer: 6.972
Aktive Benutzer: 211
Links: 82
Wir begrüßen unseren neuesten Benutzer: ittylittle781
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 3 Stunden
- ittylittle...
vor 6 Stunden
- annatpetro...
vor 12 Stunden
- Geldman041...
vor 19 Stunden
- jomaka
vor 5 Tagen
- wurzel269

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 31
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
Mit Zitat antworten
  #2 (permalink)  
Alt 20.10.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.440
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.
Mit Zitat antworten
  #3 (permalink)  
Alt 20.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 31
MarkusWilhelm89 befindet sich auf einem aufstrebenden Ast
Standard

vielen Dank für den Hinweis :-)
Mit Zitat antworten
  #4 (permalink)  
Alt 21.10.20
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 31
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);}
Mit Zitat antworten
  #5 (permalink)  
Alt vor 4 Wochen
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 31
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);}
     };
Mit Zitat antworten
Antwort

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 14:35 Uhr.





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