ElPapoteOxlote
08-25-2015 16:50, 16:50
Cześć wszystkim. Pracuję (przeszukując forum) w ciągu ostatnich kilku tygodni i udało mi się zebrać EA, który nie kompiluje błędów, ale jego struktura jest zła i nie wykonuje się we właściwym czasie. Miałem nadzieję, że jakaś życzliwa dusza może rzucić okiem i pomóc mi zrestrukturyzować mój EA i może podać wyjaśnienie zmian. Z góry dziękuję za pomoc, podam ją, kiedy się nauczę.
Oto, co staram się osiągnąć z moim EA:
Mam te zewnętrzne dane wejściowe:
Partie = 0,03;
Target_In_Dollars = 5; To jest cel, w którym strzelam do pary z wszystkimi otwartymi rozkazami (maks. 3), która mówi stopowi końca do kopnięcia
Trailing_Stop = 50;
Max_Orders = 3;
Closed_Bars = 0;
Distance_Back = 24;
ADX = 75; Handel nie otworzy się, jeśli ADR 8 okresów przekroczy 75
extern int Magic = 717171;
Oto, co ma się wydarzyć ... Gdy pasek zamyka EA, sprawdź ponownie 24 bary dla sygnału, jeśli jest to jego sygnał (sygnał jest spełniony i ADX lt; 75 i nie przekracza maksymalnej liczby zamówień na), otwiera kolejność z .03 lotami w cenie wywoławczej (bez SL lub TP w momencie składania zamówienia). Kiedy łączna cena wszystkich otwartych zleceń na tym wykresie z tą samą liczbą magiczną (717171) łącznie 5 USD lub więcej, powinna zmodyfikować wszystkie otwarte zamówienia na tym wykresie za pomocą tego magicznego numeru z końcowym zatrzymaniem.
Chociaż nie ma błędów, EA nie działa tak jak wyjaśniono. Jestem pewien, że jest to oparte na strukturze i nawiasach itp. ...
Z góry dziękuję każdemu, kto poświęcił czas na trzymanie mojej ręki tym razem. Oto kod:
Wstawiony kod/ --------------------------------------------- --------------------- /| DoppkeEA.mq4 |/ ----------------------------------------------- ------------------- extern double Lots = 0,03; extern double Target_In_Dollars = 5; extern int Trailing_Stop = 50; extern int Max_Orders = 3; extern int Closed_Bars = 0; extern int Distance_Back = 24; extern int ADX = 75; extern int Magic = 9348670; int start () {int EAOrdersTotal = 0; int mTotal = OrdersTotal (); for (int i = mTotal-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == Magic OrderSymbol () == Symbol ()) EAOrdersTotal ; } if (OrderProfit () gt; = Target_In_Dollars) {{OrderSelect (i, SELECT_BY_POS, MODE_TRADES); RefreshRates (); if (OrderType () == OP_BUY OP_SELL OrderMagicNumber () == Magic OrderSymbol () == Symbol ()) if (OrderStopLoss () == 0) OrderModify (OrderTicket (), OrderOpenPrice (), NormalizeDouble (Bid-Point * Trailing_Stop) , Cyfry), OrderTakeProfit (), 0, niebieski);/OrderClose (OrderTicket (), OrderLots (), Bid, 3, Blue); }} double sig = Najniższy (NULL, 0, MODE_LOW, Distance_Back, 0); if (EAOrdersTotal lt; Max_Orders) if (iADX (NULL, 0, 8, PRICE_CLOSE, MODE_MAIN, 0) lt; ADX) if (Closed_Bars! = Bars sig == 1) {RefreshRates (); OrderSend (Symbol (), OP_BUY, Partie, Ask, 3,0,0, DoppkeEA, Magic, 0, Blue); string AN = ArrBuy TimeToStr (CurTime ()); ObjectCreate (AN, OBJ_ARROW, 0, Czas # 91; 1 # 93;, Niski # 91; 1 # 93; -6 * Punkt, 0,0,0,0); ObjectSet (AN, OBJPROP_ARROWCODE, 233); ObjectSet (AN, OBJPROP_COLOR, niebieski); } sig = Najwyższy (NULL, 0, MODE_HIGH, Distance_Back, 0); if (EAOrdersTotal lt; Max_Orders) if (iADX (NULL, 0, 8, PRICE_CLOSE, MODE_MAIN, 0) lt; ADX) if (Closed_Bars! = Bars sig == 1) {RefreshRates (); OrderSend (Symbol (), OP_SELL, Partie, Licytacja, 3,0,0, DoppkeEA, Magic, 0, Magenta); AN = ArrSell TimeToStr (CurTime ()); ObjectCreate (AN, OBJ_ARROW, 0, Czas # 91; 1 # 93;, Wysoki # 91; 1 # 93; 6 * Punkt, 0,0,0,0); ObjectSet (AN, OBJPROP_ARROWCODE, 234); ObjectSet (AN, OBJPROP_COLOR, Magenta); } Closed_Bars = Bars; return (0); }
Oto, co staram się osiągnąć z moim EA:
Mam te zewnętrzne dane wejściowe:
Partie = 0,03;
Target_In_Dollars = 5; To jest cel, w którym strzelam do pary z wszystkimi otwartymi rozkazami (maks. 3), która mówi stopowi końca do kopnięcia
Trailing_Stop = 50;
Max_Orders = 3;
Closed_Bars = 0;
Distance_Back = 24;
ADX = 75; Handel nie otworzy się, jeśli ADR 8 okresów przekroczy 75
extern int Magic = 717171;
Oto, co ma się wydarzyć ... Gdy pasek zamyka EA, sprawdź ponownie 24 bary dla sygnału, jeśli jest to jego sygnał (sygnał jest spełniony i ADX lt; 75 i nie przekracza maksymalnej liczby zamówień na), otwiera kolejność z .03 lotami w cenie wywoławczej (bez SL lub TP w momencie składania zamówienia). Kiedy łączna cena wszystkich otwartych zleceń na tym wykresie z tą samą liczbą magiczną (717171) łącznie 5 USD lub więcej, powinna zmodyfikować wszystkie otwarte zamówienia na tym wykresie za pomocą tego magicznego numeru z końcowym zatrzymaniem.
Chociaż nie ma błędów, EA nie działa tak jak wyjaśniono. Jestem pewien, że jest to oparte na strukturze i nawiasach itp. ...
Z góry dziękuję każdemu, kto poświęcił czas na trzymanie mojej ręki tym razem. Oto kod:
Wstawiony kod/ --------------------------------------------- --------------------- /| DoppkeEA.mq4 |/ ----------------------------------------------- ------------------- extern double Lots = 0,03; extern double Target_In_Dollars = 5; extern int Trailing_Stop = 50; extern int Max_Orders = 3; extern int Closed_Bars = 0; extern int Distance_Back = 24; extern int ADX = 75; extern int Magic = 9348670; int start () {int EAOrdersTotal = 0; int mTotal = OrdersTotal (); for (int i = mTotal-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == Magic OrderSymbol () == Symbol ()) EAOrdersTotal ; } if (OrderProfit () gt; = Target_In_Dollars) {{OrderSelect (i, SELECT_BY_POS, MODE_TRADES); RefreshRates (); if (OrderType () == OP_BUY OP_SELL OrderMagicNumber () == Magic OrderSymbol () == Symbol ()) if (OrderStopLoss () == 0) OrderModify (OrderTicket (), OrderOpenPrice (), NormalizeDouble (Bid-Point * Trailing_Stop) , Cyfry), OrderTakeProfit (), 0, niebieski);/OrderClose (OrderTicket (), OrderLots (), Bid, 3, Blue); }} double sig = Najniższy (NULL, 0, MODE_LOW, Distance_Back, 0); if (EAOrdersTotal lt; Max_Orders) if (iADX (NULL, 0, 8, PRICE_CLOSE, MODE_MAIN, 0) lt; ADX) if (Closed_Bars! = Bars sig == 1) {RefreshRates (); OrderSend (Symbol (), OP_BUY, Partie, Ask, 3,0,0, DoppkeEA, Magic, 0, Blue); string AN = ArrBuy TimeToStr (CurTime ()); ObjectCreate (AN, OBJ_ARROW, 0, Czas # 91; 1 # 93;, Niski # 91; 1 # 93; -6 * Punkt, 0,0,0,0); ObjectSet (AN, OBJPROP_ARROWCODE, 233); ObjectSet (AN, OBJPROP_COLOR, niebieski); } sig = Najwyższy (NULL, 0, MODE_HIGH, Distance_Back, 0); if (EAOrdersTotal lt; Max_Orders) if (iADX (NULL, 0, 8, PRICE_CLOSE, MODE_MAIN, 0) lt; ADX) if (Closed_Bars! = Bars sig == 1) {RefreshRates (); OrderSend (Symbol (), OP_SELL, Partie, Licytacja, 3,0,0, DoppkeEA, Magic, 0, Magenta); AN = ArrSell TimeToStr (CurTime ()); ObjectCreate (AN, OBJ_ARROW, 0, Czas # 91; 1 # 93;, Wysoki # 91; 1 # 93; 6 * Punkt, 0,0,0,0); ObjectSet (AN, OBJPROP_ARROWCODE, 234); ObjectSet (AN, OBJPROP_COLOR, Magenta); } Closed_Bars = Bars; return (0); }