MGL4 Loop-Code do składania Zamówienia
Pokaż wyniki od 1 do 5 z 5

Wątek: MGL4 Loop-Code do składania Zamówienia

  1. #1
    cześć ludzie,

    Wiem, że to musi być głupie pytanie, ale nie wiem jeszcze, jak podejść do rozwiązania.

    Chcę złożyć 3 zlecenia oczekujące, wszystkie oddalone od siebie o 20 pipsów. Nie chcę mieć kodu OrderOpen trzy razy. Wiem, że jest lepszy sposób, myślę, że nazywa się to pętlą
    Wstawiony kod PipsApart = 0;/ta wartość musi wynosić 20 dla każdego dodatkowego zamówienia Currentbit = Bit PipsApart; PriceBuyStop = Aktualna oferta Pipsy w odstępie; SLBuyStop = Bieżąca oferta-(StopLoss*Point*FourFiveDigitBrokerCalc); TPBuyStop = Bieżąca oferta (TakeProfit*Point*FourFiveDigitBrokerCalc); OrderSendReliable(Symbol(),OP_BUYSTOP,Partie,Price BuyStop,3,SLBuyStop,TPBuyStop,BBT-PendSellStop,0,wygaśnięcie,CLR_NONE); Jak mam teraz uruchomić to trzy razy i zasadniczo dodać 20 pipsów do
    Zmienna PipsApart?

    Dziękuję Ci.

  2. #2
    Wstawiony kod int Liczba prób = 10; podwójne sekundy między próbami = 2,5; for (int i=1; ilt;=NumberOfPrób; i ) {/pętla dla wymaganej liczby prób int OrderNum = OrderSend(#91;color=Blue#93;lt;lt;...parametry...g t ;gt;#91;/kolor#93; int NumerBłędu = GetOstatniBłąd(); if (OrderNum gt; 0) przerwa;/utworzono prawidłowe zamówienie, stąd wyjście z pętli if (ErrorNum #91;color=Blue#93;lt;lt;...spełnia dowolny warunek...gt;gt;#91;/color#93 {/wystąpił błąd Sleep(SecondsBetweenAttempts*1000);/czekaj określoną liczbę sekund RefreshRates();/częstotliwość odświeżania i powtórz pętlę, aby ponowić próbę } else { break;/wyjdź z pętli } } Mike, coś takiego jak powyższe powinno zadziałać (chociaż wpisałem to z głowy i nie testowałem). Jeśli tworzysz zamówienia oczekujące, nie ma problemu. Jeśli jednak tworzysz zlecenia rynkowe, prawdopodobnie będziesz musiał dodać SL i TP jako osobny krok ModifyOrder(), aby uniknąć błędu 130 #8212; Nieprawidłowe przystanki. Dawid

  3. #3

    Cytat Zamieszczone przez ;
    Cześć ludzie, wiem, że to musi być głupie pytanie, ale nie wiem jeszcze, jak podejść do rozwiązania. Chcę złożyć 3 zlecenia oczekujące, wszystkie oddalone od siebie o 20 pipsów. Nie chcę mieć kodu OrderOpen trzy razy. Wiem, że jest lepszy sposób, myślę, że nazywa się to pętlą
    Wyjaśnienie pętli MQL4 for
    http://docs.mql4.com/basis/operators/fornp. coś takiego: Wstawiony kod dla (PipsApart = 0; PipsApart lt;= 40; PipsApart =20) {/ta wartość musi wynosić 20 dla każdego dodatkowego zamówienia Currentbit = Bit PipsApart; PriceBuyStop = Aktualna oferta Pipsy w odstępie; SLBuyStop = Bieżąca oferta-(StopLoss*Point*FourFiveDigitBrokerCalc); TPBuyStop = Bieżąca oferta (TakeProfit*Point*FourFiveDigitBrokerCalc); OrderSendReliable(Symbol(),OP_BUYSTOP,Partie,Price BuyStop,3,SLBuyStop,TPBuyStop,BBT-PendSellStop,0,wygaśnięcie,CLR_NONE); }

  4. #4
    Dziękuję Ci! To pomogło. Teraz mam problem, że EA próbuje dokonać transakcji, podczas gdy handel jest zabroniony. Jak mogę powiedzieć w powyższym kodzie, że jeśli handel nie jest dozwolony, program musi czekać x sekund i ponownie sprawdzić, czy handel jest dozwolony, przed złożeniem zamówienia…?

  5. #5

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Używamy cookies
Używamy cookies, aby jak najlepiej dostosować witrynę do Twoich potrzeb. Kontynuowanie przeglądania tej strony, oznacza zgodę na używanie plików cookies. Aby uzyskać więcej informacji zapoznaj się z naszą Polityką Prywatności.