|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Zitat:
Fehler ist. Also ich habe eine große Schleife indem sich zwei Bedingungen befinden. Zum einen falls die letzte Order ein Profit oder Null war und fallst die letzte Order ein Verlust war. Das frunktioniert auch soweit (in der ersten Bedinung auch wieder nach Long und short jeweils eine Bedinung). Allerdings wenn ein Trade aus der ersten Bedinung mit Verlust schließt und eine Order aus der zweiten Bedingung geöffnet wird, bleibt der EA in dieser Schleife, unabhängig vom Profit und Verlust. Immer in bestimmten Perioden öffnet er eine neue ORder. Ich möchte eigenltich folgendes Szenario: Wenn eine Order aus der ersten Bedingung mit Verlust schließt, soll er zur zweiten Bedinung übergehen und dann unabhängig davon ob dieser Trade ein Gewinn oder Verlust war zur ersten Bedinung wieder übergeht. Wie kommt man aus dieser Bedinung wieder raus unabhängig vom Profit oder Verlust? |
|
|||
Hier der Code bzw. die Schleife mit den Bedingungen:
Code:
if (closedProfit>=0) { //Print("6"); if (iOpen(NULL,0,0) > u && iClose(NULL,0,0) < u) { RefreshRates(); // Refresh rates SL=Bid + main_sl; // Calculating SL of opened TP=Bid - main_tp; // Calculating TP of opened ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP,"Sell St",123456); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } // Criterion for opening Sell if (iOpen(NULL,0,0) < o && iClose(NULL,0,0) > o) { RefreshRates(); // Refresh rates SL=Ask - main_sl; // Calculating SL of opened TP=Ask + main_tp; ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP,"Buy St",123456); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } //Print("7"); } // Criterion for opening Sell if (closedProfit < 0 && (lastcomment=="Buy St" || lastcomment=="Sell St")) Print("8"); double STOPLOSS = 200; double TAKEPROFIT = 200; //if(total < 1) { //was soll total sein??? if (lastorder == 0) { Print("Gegenposi"); ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 2, Bid + (STOPLOSS*Point), Bid - (TAKEPROFIT*Point), "abgesichert", mymagicnumber); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); } else Print("Error opening SELL order : ",GetLastError()); return(0); } if (lastorder == 1) { Print("Gegenposition Buy"); ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 2,Ask - (STOPLOSS*Point), Ask + (TAKEPROFIT*Point), "abgescihert", mymagicnumber); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else Print("Error opening BUY order : ",GetLastError()); return(0); } } return(0); } |
|
|||
Dann solltest Du beide Bedingungen einschließen in:
if (OrdersTotal() == 0) { . . . } Das funktioniert aber nur solange, Du nur mit einem einzigen EA arbeitest und das auch nur auf einem einzigen TimFrame bei nur einem einzigen Handelsinstrument! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Code:
total=OrdersTotal(); if(total<1) { [...] } Das Problem ist, ich möchte, dass er im Verlustfall in diese Schleife einmal geht und dann wieder raus zu der ersten, die mit den Ursprungsbedinungen. Das Bedeutet eigentlich nur, dass ich möchte, dass eine Gegenposition aufgebaut wird falls eine Order aus der oberen Bedingung mit Verlust schließt. Gibt es da eine Möglichkeit? Gruß Aron |
|
|||
Zitat:
Für eine BuyOrder: Close per TP Code:
if(OrderTakeProfit()!=0) { if(OrderClosePrice()>=OrderTakeProfit()) { Print("TP"); } } ticket 95692919 OrderClosePrice() ==OrderTakeProfit() OrderComment()=="" ECN Brocker Geändert von pako (03.07.15 um 23:02 Uhr) |
Lesezeichen |
Stichworte |
mql4, oco, order, order öffnen, programmierung, programmierung metatrader |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|