PDA

Zobacz pełną wersję : Potrzebna pomoc do kodu - wybierz zamówienie



LauraHM19
12-17-2014 04:53, 04:53
Czasy muszą być złe, jeśli nie widzę drewna dla drzew!
Poniższy kod powinien dać mi dane o pozycji otwartej dla pary wykresów, ALE otrzymuję dane dla innej pary wykresów ... dlaczego?
Na wykresie GBP komentarz podaje poprawnie parę wykresów, ale symbol zamówienia i dane dotyczą AUD ... jak to możliwe, gdy nie należy wprowadzać sekcji if (OrderSymbol () == Symbol ())?

NAGRODĘ dla każdego, kto pierwszy odpowie poprawnie .... Wolny dzień wolny od handlu w Boże Narodzenie :-)
Wszystkiego najlepszego z okazji Bożego Narodzenia.

Wstawiony kod void UpdateOpenTrades () {int c, mOrdTotal; bool mOp; mOrdTotal = OrdersTotal (); dla (c = mOrdTotal - 1; c gt; = 0; c--) {mOp = OrderEelect (c, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol () == Symbol ()) OrderMagicNumber () == mMagicN) {if (OrderType () == OP_BUY || OrderType () == OP_SELL) {DelPending (); Komentarz (Symbol (),, OrderSymbol (), OrderType (), DoubleToStr (OrderLots (), 2)); if (OrderType () == OP_BUY) mTradeData # 91; 0 # 93; = 1; w przeciwnym razie mTradeData # 91; 0 # 93; = 2; mTradeData # 91; 1 # 93; = OrderOpenTime (); mTradeData # 91; 2 # 93; = OrderTicket (); mTradeData # 91; 5 # 93; = NormalizeDouble (OrderLots (), mLotSizeDigits); if (iTime (NULL, 1440, 0) gt; OrderOpenTime ()) {if (TimeDayOfWeek (iTime (NULL, 1440, 0))! = 1) {mTradeData # 91; 3 # 93; = iHigh (NULL, 1440, 1); mTradeData # 91; 4 # 93; = iLow (NULL, 1440, 1); } else {mTradeData # 91; 3 # 93; = iHigh (NULL, 1440, 2); mTradeData # 91; 4 # 93; = iLow (NULL, 1440, 2); }} if (mTradeData # 91; 0 # 93; == 1) {mTradeData # 91; 6 # 93; = NormalizeDouble (OrderOpenPrice () - OrderStopLoss (), mLotSizeDigits); } else {mTradeData # 91; 6 # 93; = NormalizeDouble (OrderStopLoss () - OrderOpenPrice (), mLotSizeDigits); } mOpenUpdated = true; }/jeśli KUPUJSPRZEDAJ}/jeśli Symb jeśli (mOp! = true) {int mError = GetLastError (); Alert (Symbol (), Error UpdateOpen =, ErrorDescription (mError)); }}/dla powrotu c; }
TIA.
M.

LauraHM19
11-21-2021 12:31, 12:31
1 Załącznik (y) OK Wygrywam nagrodę i dostaję dzień wolny na 25 .......... Wywołanie DelPending (); sprawdzał zamówienia i był poddawany cyklom aż do ostatniego zamówienia, a tym samym podania danych do tego zamówienia. Oczywiście to połączenie musi być w innym miejscu. Muszę się starzeć i powoli :-( M.
https://www.forex-instant.com/attachments/1528134156.jpg

sm
11-21-2021 13:52, 13:52
Masz prawy nawias, który nie jest potrzebny w poniższym kodzie: Wstawiony kod, jeśli (OrderSymbol () == Symbol ()) OrderMagicNumber () == mMagicN) I upewnij się, że nie wykonasz wywołania OrderSelect (...) wewnątrz twojego initial OrderSelect (...).

LauraHM19
11-21-2021 15:12, 15:12
Cześć Ferru, dzięki za odpowiedź, twój talent zawsze był szanowany. Dokładnie o ”)”, ale to nie był problem (dobrze zauważony). Tak, to było drugie połączenie z pierwszym zamówieniem, wybierz ... ale dla mojego życia nie widziałem tego przez długi czas !!! Jeszcze raz dzięki, M. EDIT: A kolejna nagroda (dzień wolny od handlu w Nowy Rok) trafia do osoby, która może mi powiedzieć, ile razy nalegałem, aby MT4 było winne! ;-)

sm
11-21-2021 16:33, 16:33
https://www.forex-instant.com/attachments/1528134157.png