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: 4009
Beiträge: 39296
Benutzer: 6.322
Aktive Benutzer: 322
Links: 80
Wir begrüßen unseren neuesten Benutzer: Xypa
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 3 Stunden
- Xypa
vor 10 Stunden
- eisbaer
vor 11 Stunden
- EuroFXMast...
vor einem Tag
- Abdelaliii
vor 3 Tagen
- Cavalino

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor einer Woche
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 46
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");
         }

         }
Mit Zitat antworten
  #2 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 224
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

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

---Leopold---
Mit Zitat antworten
  #3 (permalink)  
Alt vor einer Woche
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 46
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.
Mit Zitat antworten
  #4 (permalink)  
Alt vor einer Woche
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 46
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())
Mit Zitat antworten
  #5 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 224
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---
Mit Zitat antworten
  #6 (permalink)  
Alt vor einer Woche
Ceo Ceo ist offline
Mitglied
 
Registriert seit: Jan 2018
Beiträge: 46
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.
Mit Zitat antworten
  #7 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.066
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.
Mit Zitat antworten
  #8 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 224
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---
Mit Zitat antworten
  #9 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 224
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---
Mit Zitat antworten
  #10 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 656
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
Mit Zitat antworten
Antwort

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 00:55 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.
-----------------------------------------------------------------------------------------------------------------------------