luktom visual order editor (aktualizacja do wersji 1.5)
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.
6 odpowiedzi do wpisu "luktom visual order editor (aktualizacja do wersji 1.5)"
korjol
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
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
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
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
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
Czesc Łukasz! Póki co ea działa poprawnie, ja nie zauważyłem niepożądanych zachowań. Świetna robota! pozdrawiam