Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Stop/Loss löschen - SL löschen - Stopp löschen (http://www.expert-advisor.com/forum/showthread.php?t=5832)

Julia 17.08.17 11:26

Stop/Loss löschen - SL löschen - Stopp löschen
 
Hallo,
ich möchte in einem bestehende EA einen eingetragenen Stop Loss bei einer bestimmten Bedingung löschen.

Ich bin totale Anfängerin :confused:
Kann noch nichtmal Wenn Dann Beziehungen programmieren ...

Also, wenn der aktuelle Kurs über dem OrderOpenPrice() liegt, sollen alle eingetragenen StopLoss gelöscht werden.
Ist "Bid" der aktuelle Kurs??
Ist "ObjectDelete(SL)" der Befehl um einen Stop/Loss zu löschen :confused:
Wie lautet der Befehl um einen StopLoss zu löschen ?

Wie lautet die Wenn Dann-Bedingung?

Mein CodeSchnipsel lautet -der nicht funktioniert :

if(Bid>OrderOpenPrice())ObjectDelete(SL)

Der geht aber nicht
Brauche eure Hilfe

Liebe Grüße
Julia

Julia 17.08.17 11:42

geht auch nicht
 
if(bid<OrderOpenPrice())OrderStopLoss(delete)
geht auch nicht

MA-EA 17.08.17 13:03

Zitat:

Zitat von Julia (Beitrag 39617)
Also, wenn der aktuelle Kurs über dem OrderOpenPrice() liegt, sollen alle eingetragenen StopLoss gelöscht werden.
Ist "Bid" der aktuelle Kurs??

Warum? :confused: Der Kurs kann immer noch drehn und wenn dann kein SL oder TS da ist... :(

Mach Dich mal über Bid und Ask schlau. ;)

traderdoc 17.08.17 13:47

Vorher die Order selektieren und dann wird in der Funktion OrderModify() an der Stelle, wo der StopLoss eingetragen wird, eine 0 geschrieben - fertig.

traderdoc

next user 17.08.17 16:55

Zitat:

Zitat von Julia (Beitrag 39617)
Hallo,
ich möchte in einem bestehende EA einen eingetragenen Stop Loss bei einer bestimmten Bedingung löschen.

Einen Stop zu löschen ist alles andere als sinnvoll. Du könntest zwar auch ohne Stop eine "Sicherheit" im EA programmieren, der
dann die entsprechende order schließt, aber das ist weder zuverlässig, noch "gutes Timing", wenn der Kurs mal ausschlägt.
Viel besser wäre es doch, deinen Stoploss dann einfach +- Null zu setzen, um kein Risiko mehr zu haben...

Zitat:

Zitat von Julia (Beitrag 39617)
Also, wenn der aktuelle Kurs über dem OrderOpenPrice() liegt, sollen alle eingetragenen StopLoss gelöscht werden.

Kannst du machen. Wenn die Order 1 Pip im Plus ist, der Kurs dann zurücksetzt, kannst du ohne Stoploss mächtig Probleme bekommen.

Zitat:

Zitat von Julia (Beitrag 39617)
Ist "Bid" der aktuelle Kurs??

Stark vereinfacht...
Eine BUY-Order wird zum Ask eingegangen und zum Bid geschlossen.
Eine SELL-Order wird zum Bid eingegangen und zum Ask geschlossen.

So das du zu Beginn einer Order immer den Spread im Minus bist.

Zitat:

Zitat von Julia (Beitrag 39617)
Ist "ObjectDelete(SL)" der Befehl um einen Stop/Loss zu löschen :confused:

Nein. Wie der Funktionsname schon vermuten lässt, löscht du damit ein vorhandenes Objekt. Die Funktion hat garnichts mit Orders zu tun.

Zitat:

Zitat von Julia (Beitrag 39617)
Wie lautet der Befehl um einen StopLoss zu löschen ?

Einen direkten Befehl dafür gibt es nicht. Dazu musst du deine Order Modifizieren. Wie Traderdoc bereits gesagt hat, musst du
OrderModify(...) aufrufen und den "neuen" Stoploss mit 0 angeben. Dadurch wird der gesetzte entfernt.

Zitat:

Zitat von Julia (Beitrag 39617)
Wie lautet die Wenn Dann-Bedingung?

Mein CodeSchnipsel lautet -der nicht funktioniert :

if(Bid>OrderOpenPrice())ObjectDelete(SL)

Wie gesagt, würde ich dir davon abraten den Stoploss zu löschen, aber deine Bedingung würde in dem Fall so aussehen
Code:

// Order vorher natürlich selektieren...

if(OrderType() == OP_BUY) // BUY-Order => Bid abfragen!
{
  if(Bid > OrderOpenPrice())
      OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0);
}
else // SELL-Order => Ask abfragen!
{
  if(Ask < OrderOpenPrice())
      OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderTakeProfit(),0);
}


Julia 26.08.17 10:17

Danke
 
Super - danke :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:03 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum