Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 28.04.18
FORWARD FORWARD ist offline
Neues Mitglied
 
Registriert seit: Jan 2018
Beiträge: 8
FORWARD befindet sich auf einem aufstrebenden Ast
Standard Breakevenoptimierung

Hallo zusammen,

nach ewigen probieren und versuchen, habe ich endlich einen funktionierenden EA zusammengestellt. Er funktioniert auch wie ich mir das vorstelle.
Allerdings möchte ich noch 2 Sachen optimieren, für die ich aber keinen Ansatz habe.
Ich lasse bei jeder Buy- oder Sellposition 3 Order ausführen, 2 x Market und 1 x Limit. Diese werden dann nach einer bestimmten Anzahl von Punkten auf Breakeven nachgezogen. Die Limitorder wird gelöscht, wenn der Breakeven der Marketorder erreicht wird, bevor die Limitorder aktiviert wurde. Die beiden Marketorder haben unterschiedliche Takeprofit. Soweit so gut.

1.
Ich möchte, das der Breakeven der Limit auf den der Marketorder nachgezogen wird.... geht das?

2.
Wenn der Takeprofit der ersten Marketorder erreicht ist, soll der Stopploss auf einen definierten (zum Beispiel 50% des ersten Takeprofitabstandes) Punktewert nachgezogen werden.

kann mir da jemand helfen?

bisher sieht mein Breakeven code wie folgt aus:
PHP-Code:
//Breakeven 
                                                
   
if(Breakeven <= 0) return;
   
bool result;
   for(
int i OrdersTotal()-1>= 0i--) {
   if(
OrderSelect(iSELECT_BY_POSMODE_TRADES))
   if(
OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue; {
         
//Breakeven Buyorder
   
if(OrderType() == OP_BUY && OrderOpenPrice() > OrderStopLoss() && Bid OrderOpenPrice() >= Breakeven Multiplier Point) {
   
result OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice(), OrderTakeProfit(), 0);
           
// Pendingdelete
   
{int total=OrdersTotal(); for (OrdersTotal()-1>= 0i--)
   {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(
OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())
   switch(
OrderType())
   {case 
OP_BUYLIMIT:result=OrderDelete(OrderTicket());}}}}   
        
//Breakeven Sellorder                                                                                                                                
   
if(OrderType() == OP_SELL && OrderOpenPrice() < OrderStopLoss() && OrderOpenPrice() - Ask >= Breakeven Multiplier Point) {
   
result OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
      
// Pendingdelete
   
{total=OrdersTotal(); for ( OrdersTotal()-1>= 0i--)
   {
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if(
OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())
   switch(
OrderType())
   {case 
OP_SELLLIMIT:result=OrderDelete(OrderTicket());}}}}}}          
   if(
OrderType()== OP_SELLLIMITresult=OrderDelete(OrderTicket());
   if(
OrderType()== OP_BUYLIMITresult=OrderDelete(OrderTicket());