|
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 |
|
|||
|
|
|||
Hin und Her macht Taschen leer
Unterschiedliche Orders (Parameter) würde ich ja noch verstehen, aber identische Parameter? Das haben tausende schon probiert und niemand hat das geschaft. |
|
|||
Hallo.
Hab die Schleifen und so aus meinen alten EAs eingebaut und immerhin öffnet er jetzt 2 Orders, 1 Buy und 1 Sell, wie er soll. Allerdings hat er eben Keine davon geschlossen, obwohls höchste Zeit war. Liegts vielleicht an OrderClosePrice()? Kapiert er da was nicht? Besser mit OrderProfit() schließen? Befürchte aber eher, dass die sch... Schleifen nicht richtig eingebunden wurden... |
|
|||
Ganz kurz gefragt: was ist falsch? Oder richtig?
Code:
//Close Buy for(j=OrdersTotal()-2;j>=1;j--){ if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)){ if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MagicNumber&&OrderSymbol()==Symbol()){// | Close Buy if((OCP<CPL)||(OCP>CPP)||(CAA=true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,DarkBlue);}}} //Close Sell if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)){ if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MagicNumber&&OrderSymbol()==Symbol()){// | Close Sell if((OCP<CPL)||(OCP>CPP)||(CAA=true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,FireBrick);}} |
|
|||
Hallo.
Noch mal zusammen fassend: for ist der Befehl und Start der (verhassten ) for Schleife (i=OrdersTotal() deklariert i als OrdersTotal in der Schleife, weil OT() im EA allgemein ja schon mit int deklariert wurde -1 daneben bedeutet, dass er von 0 offenen Orders ausgehn, also quasi von 0 offenen Orders zu zählen anfangen soll. Was für uns 0 (keine Orders offen) bedeutet, ist für ihn -1. i>=0 solange mehr als -1 Orders offen sind, soll er mit den Zeilen darunter Buy und Sell Orders selektieren, und schließen, wenn die Bedingungen erfüllt sind. Da für ihn irgendwie 0 bedeutet, dass eine Order offen ist, wäre, wenn er beim zählen auf -1 kommt, gar keine Order offen. i-- nach jedem Durchzählen soll der Startwert um 1 verringert werden. Also er zählt 1x durch. 2 Orders offen. Findet den Buy und schließt ihn. Startet die Schleife von vorne, fängt jetzt aber von 0 Orders an zu zählen. 1 Sell ist noch offen, für ihn also OrdersTotal()=0 (für uns wärs OT()=1, für uns wäre also eine Order offen). :wonder: Er schließt den Sell, damit ist für ihn eigentlich OT()= -1. Für uns wärens OT()=0. Verringert den Startwert auf -1. Er zählt noch mal, findet keine Order mehr und beendet daher die Schleife. Wenns nen anderen Weg gibt, sagts mir bitte, ich seh nämlich immer noch nicht durch. Code:
//Close Buy if(OrderSelect(Ticket,SELECT_BY_TICKET)){ if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MagicNumber&&OrderSymbol()==Symbol()){ if((ORPR<CML)||(ORPR>CMP)||(CAA=true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,DarkBlue);}} //Close Sell if(OrderSelect(Ticket,SELECT_BY_TICKET)){ if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MagicNumber&&OrderSymbol()==Symbol()){ if((ORPR<CML)||(ORPR>CMP)||(CAA=true&&TC>CA))OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,FireBrick);}} |
Lesezeichen |
Stichworte |
mql4, programmierung, programmierung metatrader, programmierung mql4, programmierung scalper, scalper |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|