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: 4978
Beiträge: 43270
Benutzer: 7.223
Aktive Benutzer: 76
Links: 84
Wir begrüßen unseren neuesten Benutzer: patrickmsulzeay6506
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- patrickmsu...
vor einer Woche
- AlbertZiz
vor einer Woche
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 06.08.18
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 47
Ceo befindet sich auf einem aufstrebenden Ast
Standard StopLoss auf 0 ziehen

Hey, ich bräuchte Hilfe. Mein EA kauft und verkauft gleichzeitig das klappt auch soweit. Nun möchte ich wenn z.b. Sell ausgestoppt wird das der SL vom Buy auf 0 nachgezogen wird, also auf denn Einkaufspreis.

Bis jetzt hab ich folgendes:

Code:
if(total==1)
      {
      if(Sell>0)
      
         {
          OrderSelect(Sell, SELECT_BY_TICKET);  
          bool retrn = OrderModify(Sell, OrderOpenPrice(),FEHLT,0, 0, Red);
          if (retrn == false)
                {
                 Print("OrderModify() error  ", GetLastError());
                }
                else
                Print("Check--------Sell");
         }
        else
        
       if(Buy>0)
       
         {
          OrderSelect(Buy, SELECT_BY_TICKET);  
          bool retrn1 = OrderModify(Buy, OrderOpenPrice(),FEHLT,0, 0, Red);
          if (retrn1 == false)
                {
                 Print("OrderModify() error  ", GetLastError());
                }
                 else
                Print("Check--------Buy");
         }

         }
  #2 (permalink)  
Alt 06.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

bei "FEHLT" gehört ja der StopLoss eingetragen. Dort schreibst du einfach OrderOpenPrice() rein.

---Leopold---
  #3 (permalink)  
Alt 06.08.18
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 47
Ceo befindet sich auf einem aufstrebenden Ast
Standard

Ja das FEHLT war mit Absicht damit am sieht was fehlt ^^

Das Problem da bekomme ich ganze Zeit ERROR 130 also SL ist zu eng.
  #4 (permalink)  
Alt 06.08.18
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 47
Ceo befindet sich auf einem aufstrebenden Ast
Standard

Also ich hab es soweit jetzt hinbekommen nur das Problem ist das jetzt ERROR 1 kommt. Er versucht mehr mals den StopLoss an die selbe stelle zuziehen. Wie bekomme ich den Error weg?

Code:
 for(int cnt = 0; cnt < total; cnt++)
      {
      if(!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      Print("Error-OrderSelect: ");
      
      if(OrderType() <= OP_SELL && OrderSymbol() == Symbol())
         {
        //---Buy
        if(OrderType() == OP_BUY)
          {
          //---
          //if(OrderSelect(Sell,SELECT_BY_POS,MODE_HISTORY))
          if(total==1)
            {
            if(OrderOpenPrice()< Ask - 20*Point)
              {
              if(OrderStopLoss() != OrderOpenPrice())
              {
              if(!OrderModify(Buy,OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green))
              Print("Error: ");
              else
              Print("Check---Buy");
              return;
              }
              }
            }
          }
         else //---
          {
          //---Sell
          //if(OrderSelect(Buy,SELECT_BY_POS,MODE_HISTORY))
          if(total==1)
            {
            if(OrderOpenPrice()< Bid + 20*Point)
              {
              if( OrderStopLoss() != OrderOpenPrice())
              {
              if(!OrderModify(Sell,OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Red))
              Print("Error: ");
              else
              Print("Check---Sell");
              return;
              }
              }
            }
           }
      }
        }
Prüft er damit nicht ob der StopLoss am selben Platz ist? Oder hab ich jetzt einen Denkfehler
Code:
 if( OrderStopLoss() != OrderOpenPrice())
  #5 (permalink)  
Alt 06.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

da finde ich jetzt auch nicht wirklich was, aber versuch mal bei der Ticketnummer statt "buy" oder "sell" OrderTicket() zu verwenden, vielleicht hast du ja da einen Fehler bei der Ticketnummer variable.

---Leopold---
  #6 (permalink)  
Alt 06.08.18
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 47
Ceo befindet sich auf einem aufstrebenden Ast
Standard

Hab ich mal Probiert, selber Fehler. Komisch nach 14 Trades kommt: Error 1. Davor funktioniert es perfekt.
  #7 (permalink)  
Alt 06.08.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das kommt daher, wenn ein OrderModify() z.B. den StopLoss auf denselben Wert ziehen soll, wo er bereits liegt.
D.h. OrderModify() sollte nur dann angesprungen werden, wenn auch der neue StopLoss einen anderen Wert besitzt als der zu ändernde StopLoss.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #8 (permalink)  
Alt 06.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Wurde OrderSelect() richtig ausgeführt? Ich würde das überhaupt so machen, dass alles was nach OrderSelect() kommt auch nur ausgeführt wird, wenn OrderSelect() True ist.

Wie bestimmst du die Variable "total"?

---Leopold---
  #9 (permalink)  
Alt 06.08.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Das kommt daher, wenn ein OrderModify() z.B. den StopLoss auf denselben Wert ziehen soll, wo er bereits liegt.
D.h. OrderModify() sollte nur dann angesprungen werden, wenn auch der neue StopLoss einen anderen Wert besitzt als der zu ändernde StopLoss.

traderdoc
das macht er ja mit

if( OrderStopLoss() != OrderOpenPrice())

meiner meinung sollte das so funktionieren.

---Leopold---
  #10 (permalink)  
Alt 06.08.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Schätze mal, der SL ist kleiner als MinStopLevel().

Was benutzt Du für SL und TP Werte? Teste gerade nen EA, der genauso funktioniert. Er öffnet ne Markt-Order in die eine Richtung und setzt in die Andere ne Stop-Order, deren OOP dem SL der Market-Order entspricht.

Am besten schreiben wir da weiter. Hab eben die neueste Version hoch geladen.

http://www.expert-advisor.com/forum/...html#post41331
Thema geschlossen

Lesezeichen

Stichworte
nachziehen, null, stoploss

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 15:57 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.
-----------------------------------------------------------------------------------------------------------------------------