MQL4: TakeProfit bei neuer Ordereröffnung auf initialen Abstand anpassen

 

Hi,

ich versuche gerade einen EA zu programmieren und verzweifle an einer Funktion die ich gerne einbauen würde.

Der EA läuft beispielhaft wie folgt:

1. Eine BUY Order wird mit 0.01 Lots eröffnet und einem TakeProfit von +300*Point

2. Der Preis fällt und in einem, sagen wir mal willkürlichen tieferen Kursstand, eröffnet er eine weiter BUY Order, diesmal mit zB 0.02 Lots

Ziel: er soll jetzt den TakeProfit für beide Positionen neu berechnen, so dass wenn er in diesen ermittelten TakeProfit rein läuft, er wieder bei einem Gewinn von in Summe +300*Point landet.


Was ich versucht habe:

- er ermittelt den BreakEven für alle BUY Positionen ( breakevenbuy)

- danach soll er einfach auf diesen ermittelten BreakEven das Ziel von +300*Point durch die Summe der Lots rechnen

... leider und deswegen hier der Post, ermittelt er zwar einen neuen TakeProfit, aber der ist falsch (zu hoch)...

     if(buy  >= 1)  newbuytp  = NormalizeDouble(breakevenbuy  + (TakeProfit/buylots*Point) ,Digits);


Ich weiß nicht ob mein Ansatz zu stupide ist, oder ob ich den TakeProfit generell anders ermitteln muss wenn ich mehre Positionen, mit unterschiedlicher LotSize und unterschiedlichen OrderOpenPrice() habe ??

Hoffe mir kann jemand einen Tipp geben :-)

 

Breakeven (Preis) ist doch einfach:

BrEv = (buy1*vol1 + bu2*vol2 + ... + buyN*volN) / (vol1 + vol2 + ...+ volN).

Zu diesem Preis dann noch Deinen TP addieren:  BrEv =  300*_Point + (Ask-Bid), um so auch Bid und Ask zu berücksichtigen.

(ungestet)

 
Carl Schreiber #:

Breakeven (Preis) ist doch einfach:

BrEv = (buy1*vol1 + bu2*vol2 + ... + buyN*volN) / (vol1 + vol2 + ...+ volN).

Zu diesem Preis dann noch Deinen TP addieren:  BrEv =  300*_Point + (Ask-Bid), um so auch Bid und Ask zu berücksichtigen.

(ungestet)


Danke für die Hilfe. Habe meinen Fehler gefunden. Richtig dumm... ich habe meine buylots-Variable falsch initiiert... jetzt klappt's wie gewünscht