Pokaż wyniki od 1 do 8 z 8

Wątek: Zamów logikę otwarcia i najlepsze praktyki

  1. #1
    Potrzebuję pomocy w prawidłowym ustawieniu logiki w celu otwarcia zamówienia .... Jaka jest najlepsza praktyka, aby otworzyć zamówienie, jeśli cena spadnie na linię? (również z Slippage)
    =============================

    Zmienne do otwierania zamówień:
    Wstawiony kod int i;/Indeks prętów int Counted_bars;/Liczba zliczonych słupków Counted_bars = IndiorCounted ();/Liczba zliczonych słupków i = Bars-Counted_bars-1;/Indeks pierwszego niezliczonego while (igt; = 0)/Pętla dla niezliczonych słupków {double MA_Line = iCustom (NULL, przedział czasu, MA StdDev, MA_Period, 1, 6, 0, 0, i); double S_Line1 = iCustom (NULL, przedział czasowy, MA StdDev, MA_Period, 1, 6, 0, 1, i); double S_Line2 = iCustom (NULL, przedział czasowy, MA StdDev, MA_Period, 1, 6, 0, 2, i); double S_Line3 = iCustom (NULL, przedział czasowy, MA StdDev, MA_Period, 1, 6, 0, 3, i); double S_Line4 = iCustom (NULL, przedział czasowy, MA StdDev, MA_Period, 1, 6, 0, 4, i); double U_StopLoss = iCustom (NULL, przedział czasowy, MA StdDev, MA_Period, 1, 6, 0, 5, i); double L_StopLoss = iCustom (NULL, przedział czasowy, MA-StdDev, MA_Period, 1, 6, 0, 5, i); double B_Line1 = iCustom (NULL, przedział czasowy, MA-StdDev, MA_Period, 1, 6, 0, 1, i); double B_Line2 = iCustom (NULL, przedział czasowy, MA-StdDev, MA_Period, 1, 6, 0, 2, i); double B_Line3 = iCustom (NULL, przedział czasowy, MA-StdDev, MA_Period, 1, 6, 0, 3, i); double B_Line4 = iCustom (NULL, przedział czasowy, MA-StdDev, MA_Period, 1, 6, 0, 4, i); double StochBuyLine = iStochastic (Symbol (), 0,14,3,3,1,1,0, i); double StochSellLine = iStochastic (Symbol (), 0,14,3,3,1,1,1, i); ja--; }
    Logika wymagająca przeglądu i porady:

    Wstawiony kod, jeśli (Zbywalny) jeszcze się zepsuł; jeśli CurrentPrice lt; MA_Line {if StochBuyLinegt; StochSellLine StochBuyLinelt = 10 CurrentPrice = B_Line4 {OpenBuyOrder @ Line4LotSize} else jeśli StochBuyLinegt; StochSellLine StochBuyLinelt = 10 CurrentPrice = B_Line3 {OpenBuyOrder @ Line3LotSize} else jeśli StochBuyLinegt; StochSellLine StochBuyLinelt = 10 CurrentPrice = B_Line2 {OpenBuyOrder @ Line2LotSize} else jeśli StochBuyLinegt; StochSellLine StochBuyLinelt = 10 CurrentPrice = B_Line1 {OpenBuyOrder @ Line1LotSize}} else {if StochSellLinegt; StochBuyLine StochSellLinegt = 90 CurrentPrice = B_Line4 {OpenBuyOrder @ Line4LotSize} else jeśli StochSellLine StochSellLinegt = 90 CurrentPrice = B_Line3 {OpenBuyOrder @ Line3LotSize} Inaczej jeśli StochSellLinegt; StochBuyLine StochSellLinegt; = 90 CurrentPrice = B_Line2 {OpenBuyOrder @ Line2LotSize} Inaczej jeśli StochSell Linegt; StochBuyLine StochSellLinegt; = 90 CurrentPrice = B_Line1 {OpenBuyOrder @ Line1LotSize} # 91; czcionka = quot # 93;} # 91;font # 93;

  2. #2
    Kilka rzeczy: 1. Jeśli ten pierwszy blok kodu pochodzi z EA. Pozbądź się pętli while. To nie jest potrzebne. Albo przypisz i = 0 dla bieżącego paska, albo i = 1 dla poprzedniego paska. Nie musisz się cofać w czasie, ponieważ twój EA naprawdę nie obchodzi, co się stało 3000 barów temu. 2. Gdzie masz currentprice = B_Line4 (i reszta) znak single = jest operatorem przypisania. Aby sprawdzić równość, potrzebujesz dwóch znaków ==. 3. Na tym samym przedmiocie jest bardzo mało prawdopodobne, że cena będzie dokładnie taka sama jak wartość dla twoich linii. Jeśli linia ma wartość 123.4554332, a cena jest równa 123,45, mt4 uzna je za nie równe. Użyj NormalizeDouble lub sprawdź, czy cena przekroczyła linię. 4. Sprawdź kody błędów za pomocą funkcji ordersend. ordersend zwróci liczbę całkowitą. 5. Slippage należy do Ciebie. Ale mogę zagwarantować, że to, co działa w wersji demonstracyjnej, niekoniecznie będzie działać na żywo. Dlatego sprawdzaj kody błędów za pomocą funkcji ordersend. Czasami musisz uderzyć serwer 2-3 razy, zanim przyjmie on zamówienie.

  3. #3
    Użyj NormalizeDouble lub sprawdź, czy cena przekroczyła linię. Czy możesz pokazać mi przykład sprawdzenia krzyżowego? ... chociaż wolałbym logikę, aby spróbować ją zdobyć, póki nie trafi w linię ... więc myślę, że NormalizeDouble powinien być taki, jak ja to robię

  4. #4
    jeśli szukasz przejścia przez przejście w górę ..... jeśli (Otwórz [0] lt; linia Zamknij [0] gt; = linia) przekroczyła dół, jeśli (Otwórz [0] gt; line Close [0] lt; = linia) przekreślona

  5. #5
    Mam ... co zwykle jest najlepszą praktyką? uderzanie w linię lub przejście?

  6. #6

    Cytat Zamieszczone przez ;
    Mam ... co zwykle jest najlepszą praktyką? uderzanie w linię lub przejście?
    Zrobiłbym krzyż. Czasami cena skacze o 2 pipsy lub więcej i po prostu przeskakuje ponad równowagę. Możesz sprawdzić przekierowanie, a następnie upewnić się, że cena mieści się w granicach 1-2 pipsów linii.

  7. #7
    więc czy mogę zrobić coś takiego? Wstawiony kod, jeśli line4tradeslt; 1 StochBuyLinegt; StochSellLine StochBuyLinelt; = 10 CurrentPrice = = B_Line4 ((Otwórz # 91; 0 # 93; lt; wiersz Zamknij # 91; 0 # 93; gt; = wiersz) || (Otwórz # 91; 0 # 93; gt; linia Zamknij # 91; 0 # 93; lt; = linia))

  8. #8
    Wygląda na to, że moja ostatnia odpowiedź na to prześlizgnęła się przez szczeliny

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.