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: 4097
Beiträge: 38665
Benutzer: 6.385
Aktive Benutzer: 218
Links: 80
Wir begrüßen unseren neuesten Benutzer: DanielF
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 18:12).
Neue Benutzer:
vor 4 Stunden
- DanielF
vor 3 Tagen
- haschmat
vor 3 Tagen
- jayhouse
vor 4 Tagen
- oktay
vor 4 Tagen
- DeadMan66

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 63
Gesamt: 63
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
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 282
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
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 282
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.131
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
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 282
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
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 282
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: 694
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.

simpel buy sell ea
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 05:18 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 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.
-----------------------------------------------------------------------------------------------------------------------------