|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Probleme bei Auswahl der Orders - MagicNumber
Hi zusammen,
ich habe irgendwie ein Problem beim Ansprechen der offenen Orders , hier weahrscheinlich mit der MagicNumber als eindeutigen Identifier der jeweiligen Order. Ich lasse über den EA zB maximal 2 Orders öffnen. Nun öffnet er mir zB 2 Sell-Orders mit: if (CheckOrders(Symbol())<= _maxOrders) // Anzahl der offenen Order { //for(int i = 0;i <= _maxOrders-1;i++) { if ( OrderSend(Symbol(), OP_SELL, LotSize, Bid, 2, 0, 0, NULL, _MagicNumber, 0, Red) < 0 ) (Kommentar: die _MagicNumber wurde zunächst mit 12345 vorgegeben) { _GetLastError = GetLastError(); Alert( "Fehler OrderSend № ", _GetLastError ); return(-1); } _MagicNumber=_MagicNumber+1; } return(0); } d.h. nach jedem Öffnen der Order müsste er ja zunächst 12345 und dann 12346 vergeben als _MagicNumber. Versuche ich nun bei Eintreten bestimmter Bedingungen zB den Trailingstop für beide Sell-Orders nachzuziehen, funzt das nur für die erste Sell-Order Das NAchziehen erfolgt über: if (CheckOrders(Symbol())>0) for(int i=0;i<=CheckOrders(Symbol());i++) { //---- wenn eine SELL-Position geöffnet ist, if (OrderType()==OP_SELL) .... if ( !OrderModify( _SellTicket, _SellOpenPrice, NormalizeDouble( Ask + TrailingStop*MyPoint, Digits ),_SellTakeProfit, 0 ) ) { Alert( "OrderModify Error StopLoss-TS2 Sell auf: ",Symbol()," ",_SellTicket, "#: ", GetLastError() ); } .... } wie kann ich denn 2 (oder mehr) Orders ansprechen zwecks Nachziehgen des Stoploss oder halt auch zu weiteren Zwecken?? danke euch :-) |
|
|||
Wüsste ich auch zu gerne.
Aber wozu z.B. 2x Sell? |
|
|||
....das war nur ein Beispiel. Wenn ich zB max. 3 Trades zulasse, kann es ja passieren, dass der EA in der Reihenfolge SELL, BUY, SELL öffnet und dann muss ich 3 Order ja selektieren können nach dem Prinzip:
wenn 1. Sell-Order Bedingung erfüllt, dann StopLoss nachziehen usw für alle 3 Order... bin entweder langsam Code-Blind oder irgendwie krieg ich das nicht hin....wäre sehr dankbar für jeden Tipp, ist schliesslich ein wichtiger Aspekt des EA danke :-) |
|
|||
Ich weiss nicht was CheckOrders(Symbol()) ausgibt, vermutlich hast Du hier eine Schleife die die Anzahl der Orders durchzählt.
Anschließend fehlt Dir die Selection der Order. Woher soll der MT4 wissen, welche Order zu ansprichst? PHP-Code:
|
|
|||
....vielen Dank :-)
klingt logisch wenn ich nun mehrere Order offen habe (vielleicht auch 2 Sells) müsste das ja mit : if (CheckOrders(Symbol())<= _maxOrders) { //for(int i = 0;i <= _maxOrders-1;i++) { if ( OrderSend(Symbol(), OP_SELL, LotSize, Bid, 2, 0, 0, NULL, _MagicNumber, 0, Red) < 0 ) { _GetLastError = GetLastError(); Alert( "Fehler OrderSend № ", _GetLastError ); return(-1); } _MagicNumber=_MagicNumber+1; } return(0); } und dann erneuter Auswahl auch funzen? danke |
Lesezeichen |
Stichworte |
auswahl order, magicnumber, mql4, order, order magicnumber, programmierung, programmierung metatrader, programmierung mql4 |
|
|