[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 1099

 
kolyango:

Wenn eine OP_BUY-Order offen ist und ihr Stoploss 100 Pips unter dem Eröffnungskurs liegt, aber der tatsächliche Kurs sich um 80 Pips oder mehr vom Eröffnungskurs entfernt hat, müssen wir den Stoploss auf 50 Pips über den Eröffnungskurs der Order verschieben. Wie würde das aussehen? Ich meine den Code. Wie sollten wir einen solchen Zustand kennzeichnen?

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

Kann jemand helfen, eine solche Bedingung umzusetzen?


https://www.mql4.com/ru/search/?keyword=%D1%82%D1%80%D0%B5%D0%B9%D0%BB%D0%B8%D0%BD%D0%B3
 

Was ist Polarisierung?

 


Und wie lautet die vordefinierte Variable für den Preis, zu dem der StopLoss bei der OP_BUY Market Order gesetzt wird? Wenn es eine gibt, natürlich. Oder?

OrderStopLoss()

 
kolyango:

Und wie lautet die vordefinierte Variable für den Preis, zu dem der StopLoss bei einer OP_BUY Market Order gesetzt wird? Wenn es eine gibt, natürlich.

https://www.mql5.com/ru/search/
 

Wenn eine OP_BUY-Order offen ist und ihr Stoploss 100 Pips unter dem Eröffnungskurs liegt, aber der tatsächliche Kurs sich um 80 Pips oder mehr vom Eröffnungskurs entfernt hat, müssen wir den Stoploss auf 50 Pips über den Eröffnungskurs der Order verschieben. Wie würde das aussehen? Ich meine den Code. Wie sollten wir einen solchen Zustand kennzeichnen?

Nachdem die Aufträge ausprobiert worden sind:

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

Kann mir jemand helfen, eine solche Bedingung zu implementieren?

Der Anfang würde wahrscheinlich so aussehen (1. Bedingung)?

if (OrderOpenPrice()>OrderStopLoss())

 
kolyango:

Wenn eine OP_BUY-Order offen ist und ihr Stoploss 100 Pips unter dem Eröffnungskurs liegt, aber der tatsächliche Kurs sich um 80 Pips oder mehr vom Eröffnungskurs entfernt hat, müssen wir den Stoploss auf 50 Pips über den Eröffnungskurs der Order verschieben. Wie würde das aussehen? Ich meine den Code. Wie sollten wir einen solchen Zustand kennzeichnen?

Nachdem die Aufträge ausprobiert worden sind:

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

Kann mir jemand helfen, eine solche Bedingung zu implementieren?

Der Anfang würde wahrscheinlich so aussehen (1. Bedingung)?

if (OrderOpenPrice()>OrderStopLoss())



if(OrderType==OP_BUY){
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue);
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble((Trailing+MinProfit)*Point,Digits)){
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);

}}

 
DhP:


if(OrderType==OP_BUY){
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue);
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble((Trailing+MinProfit)*Point,Digits)){
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);

}}

Wenn eine OP_BUY-Order offen ist und ihr Stoploss-Kurs 100 Pips unter dem Eröffnungskurs liegt und der tatsächliche Kurs sich um 80 Pips oder mehr vom Eröffnungskurs entfernt hat, müssen wir unseren Stoploss um 50 Pips über den Eröffnungskurs der Order verschieben. Wie würde das aussehen? Ich meine den Code. Wie sollten wir einen solchen Zustand kennzeichnen?

Nachdem die Aufträge ausprobiert worden sind:



Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

Kann jemand helfen, eine solche Bedingung umzusetzen?

Und es wird die Order ständig in Abhängigkeit vom tatsächlichen Preis und nicht nur vom StopLoss, sondern auch vom TakeProfit ändern! Oder wird sie es nicht?


if(OrderType==OP_BUY) // Здесь понятно! Если ордер на покупку
{
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0) //
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue);
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble((Trailing+MinProfit)*Point,Digits))
{
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);
}
}
Helfen Sie zu entschlüsseln, was dieser Code bewirkt und unter welchen Bedingungen?
 
kolyango:

Wenn eine OP_BUY-Order offen ist und ihr Stoploss 100 Pips unter dem Eröffnungskurs liegt, aber der tatsächliche Kurs sich um 80 Pips oder mehr vom Eröffnungskurs entfernt hat, müssen wir den Stoploss auf 50 Pips über den Eröffnungskurs der Order verschieben. Wie würde das aussehen? Ich meine den Code. Wie sollten wir einen solchen Zustand eigentlich kennzeichnen?

Если установленная в ордере цена Stoploss меньше цены откр. ордера, то

если настоящая цена больше или равна 80 п. от цены откр. ордера, то

перемодефицировать ордер и переставить Stoploss на 50 п. больше цены откр. ордера.

Kann jemand helfen, eine solche Bedingung einzuführen?

Ich sehe, dass wir nicht darüber nachdenken wollen. Aber trotzdem... Schauen Sie sich diesen Thread an - dort finden Sie viele vorgefertigte Funktionen, insbesondere den Trailing Stop, den Sie benötigen.

Machen Sie sich mit dem Code vertraut, der bereits funktioniert - und dann können Sie ihn genau so schreiben, wie Sie ihn haben wollen...

 
kolyango:

Und es wird die Order ständig in Abhängigkeit vom tatsächlichen Preis und nicht nur vom StopLoss, sondern auch vom TakeProfit ändern! Oder nicht?


if(OrderType==OP_BUY)
{
if(OrderStopLoss()==0.0 && SL!=0 || OrderTakeProfit()==0.0 && TP!=0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-SL*Point,Digits),NormalizeDouble(Bid+TP*Point,Digits),0, Blue);
if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble((Trailing+MinProfit)*Point,Digits))
{
if(NormalizeDouble(Bid-Trailing*Point,Digits)>OrderStopLoss() || OrderStopLoss()<=0.0)
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Trailing*Point,Digits),OrderTakeProfit(),0, Ivory);
}
}

Zunächst werden nur Stop Loss und Take Profit gesetzt.

Anschließend wird der Gewinn ab dem MinProfit-Level abgefragt.

 
DhP:

Stop Loss und Take Profit sind bereits gesetzt! Wenn der eingestellte StopLoss unter dem Eröffnungskurs des Auftrags liegt, müssen Sie den StopLoss nur dann um 50 Pips (bis zum Verlust) über den Eröffnungskurs verschieben, wenn der aktuelle Kurs mindestens 80 Pips vom Eröffnungskurs des Auftrags entfernt ist. Und Sie müssen nicht ständig StopLoss und TakeProfit neu anordnen!