Jak kodować zatrzymania oparte na czasie
Pokaż wyniki od 1 do 9 z 9

Wątek: Jak kodować zatrzymania oparte na czasie

  1. #1
    Cześć wszystkim,

    Muszę zakodować ea z następującymi warunkami: Wprowadź długą pozycję przy zamknięciu każdego dnia, gdy cena zamknięcia jest wyższa niż jakiekolwiek zamknięcie w poprzednich 8 dniach, a 50-dniowy SMA jest również powyżej 100 -dnia SMA. Ustaw stop-loss na najniższym poziomie 8 dni. Wprowadź krótką pozycję na koniec każdego dnia, gdy cena zamknięcia jest niższa niż jakiekolwiek zamknięcie w poprzednich 8 dniach, a 50-dniowy SMA jest również niższy niż 100-dniowy SMA. Ustaw stop-loss na poziomie 8-dniowym. Długa pozycja zostanie opuszczona po 22 dniach lub jeśli zostanie zatrzymana. Jednak wszystkie długie pozycje zostaną opuszczone przed ich 22-dniowym wyjściem w oparciu o czas, jeśli cena zamknie się niżej niż kiedykolwiek w poprzednich 8 dniach lub jeśli 50-dniowy SMA zostanie zamknięty poniżej 100-dniowego SMA. Krótka pozycja zostanie opuszczona po 22 dniach lub jeśli zostanie zatrzymana. Jednak WSZYSTKIE krótkie pozycje zostaną opuszczone przed ich 22-dniowym wyjściem w oparciu o czas, jeżeli cena będzie wyższa niż kiedykolwiek w poprzednich 8 dniach lub jeśli 50-dniowa SMA zamknie się powyżej 100-dniowego SMA. Jak mogę zakodować wyjście na 22-dniowych pozycjach? Jak mogę to zrobić z więcej niż jedną pozycją na raz? Możliwe jest zbudowanie indioru, aby wykonać to zadanie? Można to zrobić za pomocą molanis sb i cib?

    tnx i pozdrawiam

  2. #2

    Cytat Zamieszczone przez ;
    Jak mogę zakodować wyjście na 22-dniowych pozycjach? Jak mogę to zrobić z więcej niż jedną pozycją na raz?
    Nie testowane - spróbuj najpierw na demo! Powinien przechodzić przez wszystkie otwarte pozycje. Jeśli symbol i numer magii pasują, sprawdzi, jak długo pozycja jest już ot (aktualny czas - czas otwarcia), jeśli jest to gt; = określone dni, spróbuje zamknąć pozycję. Wstaw funkcję na końcu swojego EA. Następnie można wywołać funkcję, schemat TimeBased (Symbol (), MAGICNUMBER, TIMEBASED-SL-DAYS) ;, na przykład TimeBased (Symbol (), 12345,22); Wstawiony kod void TimeBased (symbol łańcucha, int magicnumber, int TimeBasedSLdays) {wynik bool; for (int cnt = OrdersTotal () - 1; cntgt; = 0; cnt--) {if (! OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES)) kontynuuj; jeśli (OrderSymbol ()! = symbol) kontynuuj; jeśli (OrderMagicNumber ()! = magicnumber) kontynuuj; {if (TimeCurrent () - OrderOpenTime () gt; = (TimeBasedSLdays * 86400)) {while (IsTradeContextBusy ()) Uśpienie (100); RefreshRates (); if (OrderType () == OP_BUY) result = OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_BID), 9999, CLR_NONE); if (OrderType () == OP_SELL) result = OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_ASK), 9999, CLR_NONE); }/if (TimeCurrent () - ...}}/for (int cnt = OrdersTotal () - 1; cntgt; = 0; cnt--) {}

  3. #3
    Tnx bardzo, Fxdaytrader
    Spróbuję tego i powiadomię Cię

  4. #4
    2 Załącznik (ów) Witaj Fxdaytrader, próbowałem wstawić Twój kod do treści ea. Nie miałem ostrzeżeń o błędach, ale wyniki testów są takie same z modami i bez nich. Oto dwa rodzaje łatwości. Nr 2 to ea z zatrzymaniem opartym na czasie. Czy mógłbyś im spojrzeć? Tnx

    https://www.forex-instant.com/attach...0688299098.mq4
    https://www.forex-instant.com/attach...2217515810.mq4

  5. #5
    1 Załącznik (i) powinien działać teraz, wygląda na to, że nie został zaimplementowany poprawnie ... Obliczenie, jeśli bazowany na czas-sl został trafiony, wygląda następująco: if (TimeCurrent () - OrderOpenTime ()) gt; = (TimeBasedSLdays * 86400) NASTĘPNIE ZAMKNIJ ZAMÓWIENIE Nie testowałem tego, ale myślę, że powinno działać. Nie wiem, co robi twój EA, jeśli wcześniej zamknie pozycje, to SL-tim-based nie uruchamia się.
    https://www.forex-instant.com/attach...2212.timebased

  6. #6
    Tnx bardzo fxdaytrader
    Dałeś duży impuls do mojej pracy. Jeśli mogę Ci przeszkadzać dalej, jak mogę zmodyfikować funkcję, aby zamiast tego ustawić stop na podstawie godziny?

  7. #7
    zobacz mój post powyżej: różnica między czasem bieżącym a czasem porządkowym jest porównywana z: (TimeBasedSLdays * 86400) Co to znaczy? 86400 sekund = (1 minuta x 60 minut) * 24 godziny = (60 sekund * 60 minut) * 24 godziny, tak więc (TimeBasedSLdays * 60) to minuty, które chcesz zatrzymać, (TimeBasedSLdays * 60 * 60), lub: ( TimeBasedSLdays * 3600) godziny

  8. #8

  9. #9
    ponieważ może należeć do tego wątku również jedna szybka wskazówka: znajdź prostego menedżera SL, który jest oparty na czasie
    https://www.forex-instant.com/crypto...ode-teach.html

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.