luktom visual order editor (aktualizacja do wersji 1.5)

Kategoria: Wskaźniki i EA dla MT4 | 16 lutego 2009 o 19:33 | Odpowiedzi: 6 | Permalink

Dzięki współpracy czytelników tego bloga udało się wyłapać błędy w funkcjonalności zamykania części pozycji w moim produkcie luktom visual order editor.

Wersja 1.5 wnosi poprawki dotyczące zgłaszanych błędów funkcji close part. Główna zmiana polega na tym, że dla pozycji otwartych po rynku domyślnym poziomem jest cp_closedlevel. Jest to wymuszone specyfiką platformy MetaTrader, która w przypadku zamknięcia części pozycji zmienia ticket zlecenia w arkuszu (a właściwie tworzy nowe zlecenie o pomniejszonej liczbie lotów). W stosunku do pozycji oczekujących nic się nie zmienia - nadal domyślnym poziomem jest cp_level.

Skutkiem ubocznym wprowadzonych zmian jest możliwość poślizgu w ustalonym poziomie kolejnego zamknięcia spowodowanym tym, że jest on wyznaczany względem ceny bieżącej dla momentu przebicia linii close part - no ale niestety tutaj nie jestem w stanie wiele poradzić.

Wersję 1.5 uważam za ciągle otwartą do poprawek i zapraszam do testów i zgłaszania uwag, gdyby coś nadal nie chodziło tak jak powinno.

Przejdź do strony o EA »

6 odpowiedzi do wpisu "luktom visual order editor (aktualizacja do wersji 1.5)"

  • korjol

    17 lutego 2009 o 11:20

    Czyli w pierwszej kolejnoci umieszczmy cp_closedlevel? to jest pierwszy poziom na ktorym nastepuje redukcja pozcji? A polecenie cp_level okresla za ile bedzie kolejny poziom?

  • luktom

    17 lutego 2009 o 11:23 | Odwiedź stronę WWW autora

    W przypadku pozycji otwartych po cenie rynkowej - tak, jest to pierwszy poziom po którym nastąpi redukcja pozycji. Ogólnie: z oczekującymi zostaje po staremu, natomiast do rynkowych stosujemy tylko i wyłącznie cp_closelevel. cp_level do pozycji po rynku nie ma żadnego zastosowania.

  • BryQ

    17 lutego 2009 o 14:51

    Niestety pierwsze testy pokazuja, ze tez nie dziala jak powinno. Nadal zamyka albo wszystko jednoczesnie, albo w odleglosci kilku pipsow (nijak ma sie te kilka pipsow do cp_closedlevel). Np. otwieram pozycje na 3 loty, 1 lota zamyka mi na poziomie cp_closedlevel (ok), pozostale dwie np. 2 pipsy wyzej (przy cp_closedlevel ustwionym np na 10). Zauwazylem przy tym, ze po zamknieciu pozycji (1 lota na 3 w moim przypadku) nie zmienia sie polozenie "lvoe_cp" (wartosc pozostaje ta sama), natomiast zmienia sie jej label ("lvoe_cp" + poprawny ticket). Czyli reasumujac: - dochodzi do cp_closedlevel (ok) - zamyka czesc pozycji (ok) - kasuje stary poziom (czyli stary obiekt lvoe_cp+ticket) (ok) - tworzy nowy obiekt lvoe_cp+nowy ticket, ale na starym poziomie (wrong) Mam nadzieje, ze pomoze to. Logi bym wyslal, ale i tak z nich nic nie widac... wiec jak chcesz to ci na priv podesle. Powodzenia! BryQ

  • BryQ

    17 lutego 2009 o 16:56

    Dobra rozkminilem :) W okresleniu poziomu cp, w funkcji ObjectCreate korzystasz z predefiniowanej wartosci Ask oraz Bid. http://docs.mql4.com/predefined/variables/Bid Takie uzycie w skrypcie wymaga jej odswiezenia, poniewaz bierze ona cene w momencie uruchomienia skryptu (dla EA juz tak nie jest). Odswieza sie funkcja RefreshRates(). Zatem wystarczy dodac te funkcje gdzies w ciele np. funkcji start(). http://docs.mql4.com/windows/RefreshRates Pozdro BryQ

  • luktom

    17 lutego 2009 o 17:28 | Odwiedź stronę WWW autora

    Heh, 15 minut temu też na to wpadłem, jednak teraz postanowiłem dokładnie przetestować, więc nie opublikowałem od razu. No i gratuluje rozwiązania - bo właśnie o to chodziło :) Plik na serwerze zaaktualizowany, można pobierać z poprawką (oznaczona nadal jako wersja 1.5).

  • korjol

    14 marca 2009 o 07:47

    Czesc Łukasz! Póki co ea działa poprawnie, ja nie zauważyłem niepożądanych zachowań. Świetna robota! pozdrawiam