Forex/ya_Wieloryb1

Z Rainsted
Skocz do: nawigacji, wyszukiwania

Koncepcja "wieloryb" polega na wyjściu ze stanu wąskiego (średnie poziome i względnie równoległe do siebie) silnym odbiciem od SMA200 (głowa), gdzie po korekcie tego ruchu ma wystąpić znacznie większy drugi ruch (tułów — stan szeroki). Jednak drugi ruch może nie nastąpić, jeśli pierwszy będzie na tyle znaczący, że odciągnie średnie od siebie.

Robot wstępnie uruchomiony we wrześniu 2024 roku, wymaga jeszcze dalszego dopracowania. Głównym celem jest przeniesienie algorytmów do obiektu zarządzającego okresem, aby następnie użyć to do jednoczesnej analizy na wielu okresach. Robot "Wieloryb1" z założenia ma służyć do testów strategii na M15 w zakresie podanych przykładów (nie jest planowane poszukiwanie innych przykładów na danych historycznych ani dodanie algorytmu uczenia — ewentualne następne przykłady mogą pochodzić z kolejnych filmów). Może być również uruchamiany na M30, H1, H4 — jednak nie będzie to optymalizowane. Również wcześniejsze otwieranie pozycji na podstawie świeczek M1, M2 i M5 będzie raczej realizowane osobnym robotem np. "Wieloryb2" albo robotem wg koncepcji "trifecta".

Podstawy merytoryczne

Podstawą do opracowania robota jest film Olivera Veleza (kod YouTube: yQLzFKxtXy8), w którym omówienie strategii zajmuje około godziny. Film został opublikowany (jako transmisja na żywo) 7 września 2024. Film ma charakter marketingowy i po około 80 miutach Oliver oferuje program szkolenia oraz dostarczania kapitału dla przeszkolonych traderów. W celu zapoznania się ze szczegółami oferty należy się skontaktować z autorem filmu. Tworzenie robota do opisanej strategii jest zupełnie niezależnym działaniem, uwzględnia również wskazówki przekazane w innych filmach (jest ich około dwa tysiące, przy czym wiele z nich to powtórzenia).

Film: Day Trading & Swing Trading - Critical Global Update

W filmie podane były przykłady na EURUSD z końca maja, czerwca, lipca i sierpnia 2024, odpowiadające scenariuszowi 5 robota ya_SwingOVT1. Tematem do weryfikacji jest użycie SMA30 zamiast SMA20 (tzn. SMA30 bardziej odpowiada liniom pokazanym na filmie, ale mowa jest o SMA20 — z optymalizacji zaś wychodzi średnia pomiędzy 35 a 40).

Czas filmu Data i godzina Maska Filtr 200' Opis sytuacji
0:29:29 2024-08-13 14:30 512 -9 0.5 zaczyna się od dużej świeczki na M1, również z wąskiego stanu
0:45:29 2024-08-28 4:47 2048 -11 1.0 na M1 duża świeczka w dół od SMA200/M5 i nie wraca to już do powyżej, następnie 10:16 duża świeczka od SMA30/M15 a od SMA200/M2
0:50:34 2024-08-23 16:00 1024 -10 0.0 na M1 silne przebicie w górę SMA200 z M2/M5, następnie cofnięcie i ponowne wybicie w górę
0:54:29 2024-08-02 10:45 256 -8 0.5 na M1 9:49, ale większy wyrzut jest 14:30
0:54:54 2024-07-29 9:40 128 -7 0.6 na M1 nieudany powrót w górę po spadnięciu ze SMA200 na M2/M5
0:55:42 2024-07-23 9:10 64 -6 0.2 na M1 odbicie w dół od SMA200/M5 (SMA200/M2 odbite wcześniej 7:58)
0:56:09 2024-07-10 20:30 32 -5 0.6 nieprecyzyjnie, nie ma istotnego wybicia przed 14:30
0:59:34 2024-07-03 8:45 16 -4 0.7
1:04:49 2024-06-12 10:15 8 -3 0.4
1:05:31 2024-06-07 14:30 4 -2 1.2
1:05:50 2024-05-31 9:45 1 1 1.0
1:05:50 2024-06-03 15:45 2 -1 1.7 Duże pochylenie SMA200! Rozmiar pierwszej świeczki wybijającej jest na granicy (1.5), kolejne dwie dopiero złożone razem dają sygnał (po 1.3).
  • Maska oznacza wartość bitową uruchamiającą wariant scenariusza, aby możliwe było testowanie każdego zestawu warunków osobno (przypisanie chronologiczne). Poszczególne warianty dają różne liczby otwartych pozycji, jak również różnią się procentem pozycji zyskownych. W zależności od oczekiwanego ryzyka można pozostawić włączone tylko te warianty, które dają największą liczbę zyskownych pozycji.
  • Filtr jest liczbą wybierającą maski zawierające tylko jeden bit ustawiony, aby łatwiej było sprawdzić warianty w pętli iteracyjnej, w powyższym przypadku od -11 do 1 (0 oznacza wyłączenie).
  • 200' to przybliżona wartość pochylenia SMA200. Jest istotna o tyle, że z optymalizacji wychodzą wartości około 1.3, ale przykład z 06-03 tę wartość przekracza (również w potencjalnym przykładzie z 08-29).

Warianty z maskami 64 oraz 128 są przykładami przebicia SMA200 z następującym cofnięciem i silnym odbiciem od SMA200, gdy po odbiciu osiągana jest jeszcze większa odległość od SMA200 na zamknięciu. Jednocześnie SMA20/SMA30 są po niesprzyjającej stronie, ich odległość od SMA200 jest znacząca (ponad 30% zakresu dla stanu wąskiego), a SMA200 ma niewielkie pochylenie (poniżej połowy zakresu). Częściowe podobieństwo mają również warianty z maskami 1 (SMA20 i SMA30 są po różnych stronach SMA200) oraz 8 (formacja na 10 świeczek). Dla wariantów z maską 2 i 2048 cofnięcie nie sięga SMA200. Natomiast dla wariantów z maską 16 i 512 jest najpierw sytuacja odwrotna, tzn. odbicie od SMA200 po przebiciu i cofnięciu nie uzyskuje większej odległości, a dla wariantu z maską 32 nie ma odbicia po cofnięciu.

Cele do osiągnięcia

Robot ma być rozwijany w minimalnym zakresie, z ograniczeniem konceptów pochodzących z innych źródeł.

  • Otwieranie pozycji w podanych przykładach. Jeśli któryś z przykładów nie jest otwierany, to należy zidentyfikować przyczyny. Dopuszczalne jest pominięcie niektórych przykładów, jeśli optymalizacja doprowadzi do takiej zmiany parametrów, że dotychczasowe warunki dla przykładu przestaną działać. Istotne jest też, aby warunki otwierające przykład (wariant) nie generowały jednocześnie wielu pozycji zakończonych stratami w przedziale czasu zawierającym przykłady.
  • Każdy z przykładów powinien być rozegrany algorytmem w możliwie najbardziej idealny sposób. Szczególnie dotyczy to przestawiania SL oraz otwierania dodatkowych pozycji. Reguły dotyczące TP nie zostały precyzyjnie określone. Początkowy TP podawany jako mnożnik TP:SL powinien być używany głównie do uzyskania zysku pod kątem optymalizacji, jeśli błędne działanie skutkuje powstaniem strat. Do testów na danych historycznych zalecane jest wyłączenie początkowego TP, bo zaburza on testy przestawiania SL.
  • Warunki otwierające każdy z przykładów powinny generować zysk na danych historycznych z wcześniejszych kilku lat. Powinny być dodatkowo otwierane co najmniej dwa istotnie zyskowne zagrania, a wskaźnik zysku powinien być powyżej 2.0 (najlepiej powyżej 3.0).
  • Odwrócenie warunków do otwierania pozycji w przeciwną stronę również powinno wykazywać zysk na danych historycznych. Jednocześnie nie powinno być znaczącej asymetrii rezultatów.
  • Wykres zysku w żadną stronę nie powinien wykazywać falowania, tzn. pozycje stratne nie powinny konsumować wypracowanego zysku, chyba że ten zysk był niewielki względem całości zysku w przedziale kilku lat. Falowanie jest dopuszczalne jako wtórny skutek wykonania optymalizacji, która zmieni warunki otwierania pozycji. W takim przypadku konieczny jest ponowny przegląd warunków otwierania pozycji. Warunki otwierania pozycji mogą się zmieniać wraz z dopracowaniem obsługi otwartej pozycji, ponieważ wcześniej stratne pozycje mogą w kolejnych wersjach być zamykane z zyskiem.

Dodatkowe koncepty

  • Rozważane jest użycie okresu H1 (dla M15, lub 3-5 razy dłuższego dla innego okresu podstawowego) w celu ustalenia pozycji SMA200 na tym dłuższym okresie. W paru przypadkach dało się zauważyć, że sukces wybicia ze SMA200/M15 zależy od położenia SMA200/H1 — jeśli wybicie następuje w stronę blisko położonej SMA200/H1, to ma mniejsze szanse powodzenia, niż jeśli jest w kierunku od SMA200/H1. Póki co nie jest planowana analiza świeczek na H1 (ewentualnie będzie w algorytmie typu "trifecta").
  • Przetestowana jest korelacja zdarzeń z fazami Księżyca (cykl o długości 2551443 sekund). Statystyka zysków wg daty otwarcia wykazała straty w okolicy nowiu (2 dni) oraz pełni (5 dni). Jednak wyłączenie otwierania pozycji podczas pełni poprawiło efekty jedynie w przypadku wariantu z maską 256 (wskaźnik zysku poprawił się z 1.5 na 1.9, a zysk się zwiększył o 24%). Dla pozostałych wariantów albo było pogorszenie, albo nie było różnicy. Przy okazji kolejnych przeglądów warunków będą testowane inne zależności, np. zyskowność dodatkowych pozycji. Ponowny przegląd warunków wykazał wpływ pełni również w innych wariantach (słabe sygnały podczas pełni mają mniejszą wartość, na silne nie ma to wpływu).

Elementy składowe strategii

Robot jest wariantem robota ya_SwingOVT1, ale rozwijanym niezależnie od niego. Funkcjonalności będą wymieniane pomiędzy obydwoma robotami — stąd bardzo duże podobieństwa. Główną różnicą jest rozgrywanie odbicia od SMA200 w dwóch ruchach, a analiza "szyn" SMA20 i SMA40 będzie tu pozostawiona jako opcja albo usunięta.

Proste średnie kroczące

Używane są proste średnie kroczące (arytmetyczne) z ceny zamknięcia świec. Przedstawione średnie są wg opisanej strategii — istotność tych średnich wynika z używania ich przez traderów przeszkolonych przez Olivera w ciągu ostatnich 30 lat.

  • SMA20 — średnia krocząca z zamknięcia ostatnich 20 świeczek.
  • SMA30 — średnia krocząca z zamknięcia ostatnich 30 świeczek — używana zamiast SMA20 przy otwieraniu pozycji.
  • SMA40 — średnia krocząca z zamknięcia ostatnich 40 świeczek.
  • SMA200 — średnia krocząca z zamknięcia ostatnich 200 świeczek. Główna średnia, od której mają się zaczynać ruchy.
  • SMA13 — średnia krocząca z zamknięcia ostatnich 13 świeczek, używana pomocniczo w jednym scenariuszu.
  • SMA8 — średnia krocząca z zamknięcia ostatnich 8 świeczek, używana pomocniczo w jednym scenariuszu.

Wzajemne położenie średnich SMA20 (SMA30?) i SMA200 określa stan rynku:

  • Stan wąski — średnie blisko siebie, najczęściej jedna lub obie poziome albo mają niewielki kąt nachylenia do poziomu (stan oczekiwania na wybicie).
  • Stan szeroki — średnie oddalone od siebie, SMA200 ma względnie duże nachylenie do poziomu (otwieranie pozycji nie jest zalecane).
  • Stan podwójnie szeroki — stan szeroki, w którym dodatkowo cena znajduje się równie daleko od SMA20, jak SMA20 od SMA200 (zamykanie pozycji od SMA200, ewentualne otwieranie pozycji w kierunku do SMA200).

Stan podwójnie szeroki jest określany linią pomocniczą (oznaczaną jako 200°), będącą odbiciem SMA200 względem SMA20. Jeśli SMA20 jest powyżej SMA200, to linia 200° jest dwukrotnie dalej i oddziela obszar, w którym SL podciągany jest co każdą świeczkę — a jeśli świeczka ma otwarcie w tym obszarze, to pozycje mogą być zamykana na jej zamknięciu.

Pochylenie średnich

Dla średnich SMA30 i SMA200 liczone jest pochylenie przy użyciu regresji liniowej, najczęściej z ostatnich 3 wartości. Uzyskana w ten sposób wartość jest następnie dzielona przez cenę z początku dnia i mnożona przez 1000 i liczbę okresów w dobie (96 dla M15), aby uzyskać wartość w promilach na dobę z przedziału 0.1 do 1000. Wartości graniczne pochyleń podaje się w parametrach, mogą one być inne dla różnych instrumentów.

Formacje świecowe

Podstawową formacją jest świeca wybijająca stan wąski (scenariusz 5) mająca otwarcie blisko SMA200 albo przebijająca SMA200 nagłym ruchem (korpus świecy znacznie większy niż dotychczasowe świece).

W pozostałych scenariuszach pozycja jest otwierana po wystąpieniu odpowiedniej formacji świec. W uproszczeniu: objęcie hossy, objęcie bessy, ważka, nagrobek, duże marubozu — o ile występują w okolicy średnich i są zgodne z jej pochyleniem. Jeśli poprzednia świeca ma mały korpus i knoty zbliżonej długości, jest ona ignorowana, a do porównania brana jest wcześniejsza świeca.

Rozmiar średniej świecy

Co do zasady, za istotne świece uważane są te, które wyróżniają się swoim rozmiarem OC (chyba że jest knot z jednej strony). W związku ze zmiennością w ciągu doby, tworzona jest tabela podziału doby na kilka przedziałów (4 albo 8) w którym rozmiary świec są uśredniane osobno (ale również z wartością z poprzedniego przedziału). W związku z testami i rozwojem algorytm może się zmieniać w czasie.

Głównym warunkiem otwarcia pozycji jest przekroczenie rozmiaru średniej świecy. Dla robota ya_SwingOVT1 był przyjęty próg 250% średniego rozmiaru, jednak podane przykłady (EURUSD/M15) wymagały obniżenia progu do 150%, a w niektórych przykładach dopiero połączenie dwóch kolejnych świec daje taki rozmiar, wtedy łącznie muszą osiągnąć 200%.

Średni rozmiar maksymalnych świec

Od wersji 254.090 dodane jest zapamiętywanie maksymalnego rozmiaru HL świecy w ciągu doby i następnie wartość ta jest uśredniana arytmetycznie z wartościami z ostatnich 20 dni. Póki co świece większe od połowy tego rozmiaru są uwzględniane w statystykach FNFT. W planach jest używanie tego mechanizmu również do rozpoznania reakcji na największe świece danego dnia.

Scenariusze

Scenariuszem jest określony zestaw warunków, który powoduje otwarcie pozycji. Działanie scenariusza włącza się poprzez podanie niezerowej wartości, przy czym 1 oznacza zezwolenie na otwieranie pozycji BUY, a 2 — SELL, natomiast 3 w obydwie strony. Dodatkowe liczby +4, +8 mogą załączać pozycje STOP oraz LIMIT. Rozdzielenie poszczególnych scenariuszy służy przede wszystkim do testowania robota na danych historycznych i określania ich efektywności niezależnie od siebie.

Co do zasady otwarcie pozycji następuje na zmianie koloru, czyli gdy korpus świecy przeciwnej do trendu zostaje zanegowany przez korpus świecy zgodnej z trendem. Zmianą koloru jest również świeca z dużym knotem i małym korpusem na jednym z końców. Definicje poszczególnych scenariuszy mogą się nieznacznie zmienić w miarę dalszych testów, jednak planowane jest utrzymanie pierwotnie ustalonej numeracji.

Ze względu na podobieństwa z robotem ya_SwingOVT1 póki co zachowana jest numeracja scenariuszy.

W wersji 249.290 działał tylko scenariusz 5, scenariusz 1 został dodany w wersji 249.918, ale nie jest niezależny i wymaga otwarcia pozycji w scenariuszu 5. Pozostałe będą ewentualnie uruchamiane w przyszłości.

Scenariusz 1: SMA30

Zmiana koloru w pobliżu SMA30, jako drugi ruch po wybiciu stanu wąskiego w scenariuszu 5 (który jest głównym scenariuszem).

Scenariusz 2: SMA40

Zmiana koloru pomiędzy SMA20 i SMA40, wymagane jest uzyskanie minimalnych pochyleń (i zgodnych) na tych średnich. Scenariusz opcjonalny, ewentualnie może być usunięty w przyszłości albo zmieniony na inny algorytm.

Scenariusz 3: SMA13

Zmiana koloru w pobliżu SMA13.

Scenariusz 4: SMA8

Zmiana koloru w pobliżu SMA8.

Scenariusz 5: gwałtowne wybicie

Na mocnej (gwałtownej) świecy wybijającej stan wąski, mającej początek w bliskiej okolicy SMA200. Główny scenariusz robota, warunkujący wykonanie scenariuszy 1 oraz 3 w następnej kolejności. SL początkowy ustawiany za SMA200 albo za linią OC ostatnich świeczek przed wybiciem, zależnie co jest dalej. Zalecany pierwotny TP to 500% wielkości SL, na wypadek bardzo intensywnego ruchu. Później SL i TP są zmieniane w miarę rozwoju sytuacji. Aktualnie od wersji 251.210 ustawianie pierwotnego TP jest domyślnie wyłączone, aby testować i optymalizować algorytmy osiągania największego zysku — ustawienie pierwotnego TP może poprawić wyniki, ale również ogranicza poszukiwanie lepszych poziomów zamknięcia.

Scenariusz ma opcję pozycji LIMIT, ustawianych na 32% pomiędzy końcem świecy uruchamiającej scenariusz a SMA200. W podanych przykładach z 2024 roku na EURUSD poprawia zysk o 40%. Pozycja LIMIT jest wyłączana po 5 świeczkach (75 minut dla M15). Jeśli zostanie otwarta druga pozycja w ten sposób, to w planach jest osobne prowadzenie każdej z nich — jedna zostanie zamknięta na TP, a SL drugiej będzie przestawiany na BE albo wartość zysku z pierwszej pozycji (tzn. sumarycznie obie na BE). W razie cofnięcia ceny zbyt blisko SMA200 i braku świeczki potwierdzającej wcześniejszy kierunek obie pozycje będą miały przestawiony TP na BE wspólne dla obu pozycji.

Po korekcie pierwotnego ruchu dalsze otwieranie pozycji jest wykonywane w ramach scenariusza 1, ewentualnie 3 albo 4, o ile pierwszy ruch nie doprowadził do stanu szerokiego pomiędzy średnimi.

Warianty scenariusza

Dla każdego z 12 przykładów został opracowany osobny zestaw warunków otwarcia pozycji. Zdarza się, że przykłady otwierane są spełnieniem warunków innego przykładu, ale na potrzeby testów warunki otwarcia każdego przykładu są odrębne. Warunki zostały tak dobrane, aby były otwierane pozycje w podanych przykładach oraz aby jednoczenie nie było straty na danych od 2019 roku. Jednocześnie optymalizacja ogólna może powodować, że przykład przestanie być otwierany (dotyczy np. 06-03 i 07-03). Od wersji 249.641 dodana została symetria warunków, tzn. zostały utworzone i sprawdzone warunki do otwarcia pozycji dla analogicznej sytuacji w przeciwną stronę. Dobór warunków może być jeszcze dopracowywany w przyszłych wersjach, aby zmniejszyć odsetek stratnych pozycji, ale będzie to miało niski priorytet.

Warianty otwarcia pozycji obejmują zestaw warunków, wybranych z poniższych:

  • Typ świecy: marubozu (oznaczenie wewnętrzne: "M"), duży korpus ze średnim knotem od strony SMA200 ("W"), duży korpus ze średnim knotem korekty ("A"), dwie kolejne świece w tę samą stronę.
  • Otwarcie świecy blisko SMA200 albo gwałtowne przebijanie SMA200.
  • Zawężenie przedziału OC ostatnich świec do pięciokrotności rozmiaru średniej świecy.
  • Pochylenie SMA200 poniżej połowy zadanej wartości albo pomiędzy połową a wartością graniczną.
  • Rozmiar OC świecy większy niż wielokrotność średniego rozmiaru świecy.
  • Zamknięcie świecy wybijającej poza OC pięciu poprzednich świec.
  • Średnia szybka (SMA30) po odpowiedniej stronie średniej wolnej (SMA200).
  • Pomijanie sygnałów w godzinach nocnych (22:00 do 3:00 czasu polskiego).
  • Pomijanie sygnałów podczas pełni Księżyca.

Scenariusz 6: SMA200

Odbicie na SMA200, o ile nie gwałtowne przebicie.

Scenariusz 7: pierwsze wybicie

Wybicie ze stanu wąskiego, gdy następuje przebicie SMA200, po czym jest cofnięcie w stronę SMA200, wyprowadzone w tę samą stronę, co przebicie.

Parametry

Zależnie od ustawionych parametrów robot może działać nieco inaczej. Zrozumienie znaczenia parametrów może wymagać zapoznania się ze szczegółami strategii.

Stan wąski

Stan wąski "makro" ma miejsce, gdy średnie SMA20 i SMA200 są do siebie zbliżone, a ich pochylenie (szczególnie SMA200) zbliża się do poziomu. Jednocześnie cena oscyluje w okolicy tych średnich. Stan wąski może przejść w stan równoległości (trendu) albo w stan wąski na innej wartości ceny, albo w stan szeroki, jeśli średnie się od siebie oddalą.

Szerokość stanu wąskiego

Szerokość ta wyrażona jest w promilu wartości ceny, podzielonym dodatkowo przez liczbę okresów w dobie. Dla EURUSD na M15 przeważnie jest to wartość pomiędzy 85 a 170.

Pochylenie średnich

Określa jakie pochylenie jest uznawane za ułożenie średnich "w poziomie", jako promil ceny w ciągu doby. Osobne ustawienie dla SMA20 (zalecane 6 do 11) oraz SMA200 (zalecane od 1.0 do 1.7).

Liczba świeczek do regresji

Pochylenie jest wyznaczane jako aproksymacja do funkcji liniowej pewnej liczby ostatnich wartości średniej. Liczba 3 działa wystarczająco dobrze i jej zwiększanie nie wydaje się poprawiać znacząco wyników. Przy niektórych testach lepiej wypadała wartość 4.

Testy

Głównym zakresem testów są przedstawione w filmie przykłady od maja do sierpnia 2024 na EURUSD. Na innych filmach pokazywane są zagrania na USDJPY.

EURUSD, M15

  • Filtr — ustawienie tylko jednego bitu w masce, wygodne do uruchomienia w optymalizacji w celu sprawdzenia każdego wariantu osobno.
  • Maska — liczba dodana do sumy załącza dany wariant.
  • Przykład — dzień i miesiąc przykładu (rok 2024) omówionego w filmie
  • Wersja — numer wersji robota w nagłówku, a w wierszu: liczba pozycji na danych od 2019, wskaźnik zysku, procenty zyskownych pozycji BUY oraz SELL.
Filtr Maska Przykład Wersja 252.120 Wersja 252.130 Wersja 253.241 Wersja 254.090
1 1 05-31 40, 11.86, 82%, 83% 40, 11.86, 82%, 83% 49, 4.40, 86%, 56% 47, 4.76, 90%, 56%
-1 2 06-03 63, 2.41, 67%, 67% 53, 3.24, 67%, 65% 24, 4.64, 58%, 75% 20, 4.98, 63%, 75%
-2 4 06-07 74, 3.99, 70%, 70% 74, 3.99, 70%, 70% 12, 55.56, 100%, 67% 12, 55.56, 100%, 67%
-3 8 06-12 63, 2.10, 52%, 47% 32, 2.81, 79%, 23% 24, 6.05, 83%, 83% 22, 8.34, 100%, 83%
-4 16 07-03 31, 2.77, 67%, 50% 21, 5.19, 77%, 63% 16, 15.68, 60%, 100% 18, 26.28, 60%, 100%
-5 32 07-10 27, 2.96, 57%, 83% 27, 2.96, 57%, 83% 24, 2.69, 50%, 75% 20, 3.96, 63%, 75%
-6 64 07-23 86, 2.49, 83%, 55% 136, 2.86, 79%, 67% 27, 4.64, 71%, 77% 18, 6.78, 75%, 80%
-7 128 07-29 44, 2.86, 50%, 65% 34, 3.40, 56%, 67% 32, 4.64, 70%, 68% 40, 3.30, 92%, 54%
-8 256 08-02 113, 2.36, 53%, 63% 113, 2.36, 53%, 63% 34, 2.93, 67%, 50% 30, 3.68, 73%, 50%
-9 512 08-13 200, 3.04, 69%, 67% 97, 3.04, 85%, 74% 87, 4.71, 91%, 59% 87, 5.60, 84%, 75%
-10 1024 08-23 60, 3.44, 84%, 59% 60, 3.44, 84%, 59% 38, 9.57, 90%, 56% 38, 9.57, 90%, 56%
-11 2048 08-28 48, 9.59, 100%, 76% 48, 9.59, 100%, 76% 28, 10.94, 86%, 86% 26, 11.39, 86%, 100%

Ze względu na podobieństwo warunków wielu wariantów często zdarza się jednoczesne ich spełnienie, przez co włączenie wszystkich wariantów da mniejszą liczbę pozycji niż suma powyższych.

Zmiany w kolejnych wersjach

Lista zmian w kolejnych wersjach

Wersja 254.280

  • Ponieważ pomijanie niektórych wariantów podczas pełni Księżyca dało dobre rezultaty, przetestowane zostało pomijanie pozycji podczas nowiu. Również w ten sposób można łatwo uzyskać zwiększenie wskaźnika zysku z 5.75 do ponad 9.0, przy nieznacznie mniejszym zysku (-2%) i mniejszej liczbie otwieranych pozycji (-12%).
  • Poprawione warunki dla wariantów z maskami 64 i 128, ponieważ po uwzględnieniu FNFT oraz nowiu pogorszyła się symetria. Po zmianach zysk od 2019 przekracza $4500 dla 0.1 lota, a ogólny wskaźnik zysku jest powyżej 8.0. Przykład z maską 16 otwiera się dla maski 512 — wymaga to poprawienia warunków.
  • Sprawdzone zostało ustawianie TP na wartość odległą o średni rozmiar największej dziennej świecy z ostatnich 20 dni. Najlepszy rezultat jest dla 120% tego rozmiaru, jednak nie poprawia wyników w sposób znaczący. Ustawianie takiego TP dla pierwszej pozycji poprawia wskaźnik zysku (do około 10.0) kosztem dużo mniejszego zysku (-20%). Ustawianie TP dla drugiej pozycji po zamknięciu pierwszej nie poprawia wyników.
  • Minimalny wskaźnik zysku to obecnie 2.26 dla pozycji SELL z maską 128, poza tym poniżej 4.0 ma wariant z maską 256 w obie strony, z maską 2024 tylko dla BUY (SELL 100% zyskownych), a z maską 1 tylko SELL. Pozostałe warianty mają wskaźnik zysku co najmniej 4.0 w każdą stronę, a sumarycznie w obie strony — co najmniej 5.5. Obecny cel na modyfikacje warunków to zwiększenie wskaźnika zysku powyżej 4.0 dla wszystkich wariantów w obie strony. Weryfikacja warunków ma jednak niski priorytet wobec innych funkcjonalności.
  • Z optymalizacji pomijania nowiu wynikły dwa okresy: jeden trwający 6 dni (podobnie jak dla pełni, tylko z przesunięciem o 14 dni), drugi 2 ostatnie dni z tych 6. Ponieważ warunek pomijania nowiu przez 6 dni nie poprawił wyników dla H4, sprawdzony został warunek pomijania tylko dwóch dni i dał nieznaczną poprawę. Warunek pomijania tylko 2 dni został również sprawdzony dla M15 i dał nieznaczną poprawę dla wariantów z maskami 2 i 128. Wskaźnik zysku przekroczył 8.7.
  • W panelu sterującym dodany osobny przycisk uruchomienia robota [GO]. Przycisk w stanie szarym blokuje otwieranie pozycji w bardzo podstawowy sposób. Przycisk wprowadzony, aby można było tymczasowo wyłączyć działanie robota bez blokowania innych robotów.

Dalsze kierunki prac:

  • Lepsze określenie TP dla pierwszego i drugiego ruchu (liczenie świeczek, wykrywanie świeczek wyczerpania).
  • Weryfikacja warunków dla przykładów i ich zapis w formie masek bitowych. Spełnienie potrzebnych warunków da liczby z pewnego zbioru i jednocześnie uprościć to powinno symetrię otwierania pozycji.
  • Zwiększenie pozycji na pierwszej zmianie koloru.

Wersja 254.090

  • Poprawka w powiększaniu tablicy modułu Audytor (zapamiętywanie otwieranych pozycji w celu przewijania wykresu). Wcześniejsza wersja robota (uruchomiona na demo) zalogowała przekroczenie indeksu i otworzyła tylko jedną pozycję zamiast dwóch. Działanie będzie nadal obserwowane. Użycie modułu Audytor było potrzebne do testów na danych historycznych, cel użycia na żywo musi jeszcze być przemyślany i być może należałoby to wyłączyć.
  • Ponieważ dla przykładów z H4 początek wirtualnej doby został ustalony na UTC+1 z czasem letnim dla USA (a dla M15 nie ma to znaczenia), ponownie zostały zoptymalizowane godziny otwierania (uwzględniane dla niektórych wariantów). Po optymalizacji godziny te to >9:00 i <18:00 (pierwsze możliwe otwarcie to 9:15, ostatnie to 17:45). Ustawienia te są zapisane na stałe i ewentualnie później będzie to przerobione na pobierane z parametrów otwarcia rynku.
  • Dodany został mechanizm rozpoznawania przerwy w danych. Dla aktualnej świecy wyliczany jest znacznik czasu zamknięcia następnej i w tym czasie jest spodziewana aktualizacja ceny OnTick(). Jeśli aktualizacja ceny zostanie wykonana po czasie zapamiętanym w znaczniku (czyli brak danych dla świecy kolejnej po aktualnej), zostanie to potraktowane jako konieczność ponownego wczytania danych historycznych, podobnie jak po uruchomieniu. Główne zastosowanie to przywrócenie prawidłowej pracy robota po hibernacji komputera. Obserwowane będzie jeszcze pomijanie oczekiwania na świeczki podczas przerwy w notowaniach, wykorzystujące funkcję SymbolInfoSessionTrade(). Mechanizm przeładowania danych jest wyłączony, gdy robot jest uruchamiany w Testerze Strategii. Do przemyślenia jest zastosowanie dla M1/M2 w godzinach nocnych, ponieważ zdarzają się minuty bez odnotowanej ceny (zauważone np. dla DE40) i przeładowywanie w takim przypadku nic nie poprawi.
  • Wykonane pierwsze testy konceptu FNFT (sformatowanego podobnie do RSI), do puli warunków dodane jako >30, >70, <30 i <70. Nieznacznie poprawia się wskaźnik zysku dla niektórych wariantów. Słabe rezultaty mogą wynikać z niedoskonałego wyliczania "wskaźnika" FNFT, jak również może mieć on większe znaczenie przy dużych odległościach od średnich (niż odbicie od SMA200). Przydatność będzie jeszcze weryfikowana przy kolejnym przeglądzie warunków (dla wariantu z maską 128 wskaźnik zysku zmalał do 1.57 dla pozycji SELL, za to niemal wszystkie pozycje BUY są zyskowne). Ogólnie na danych od 2019 zysk przekroczył $4300 dla 0.1 lota, a wskaźnik zysku jest 5.75.
  • Przy obecnej optymalizacji warunków dla poszczególnych wariantów nie występuje seria pozycji stratnych od września 2024.

Wersja 253.241

  • Wyłączony mechanizm, który mógł przestawiać zyskowne pozycje na przedwczesne zamknięcie na BE, ponieważ po spełnieniu warunków nie był uwzględniany kierunek pozycji. Szybkie sprawdzenie wykazało, że nie ma to wpływu na zysk i wskaźnik zysku na danych historycznych, natomiast mogło ukierunkować optymalizację na pominięcie potencjalnych zysków.
  • Ponowny przegląd warunków otwierania pozycji po zlokalizowaniu błędu w określaniu typu świeczek (nieprawidłowe zaokrąglenie). W miarę możliwości warunki są zaostrzane tak, aby wskaźnik zysku przekraczał 3.0 (ewentualnie 2.5, jeśli wariant wykazuje asymetrię, tzn. gdy zwiększany wskaźnik zysku w jedną stronę skutkuje zmniejszeniem w stronę przeciwną).
  • Dodany mechanizm zapisywania listy otwieranych pozycji do pliku, plik ten następnie może być wczytany wskaźnikiem ya_Audytor w celu sprawniejszego przewijania wykresu do istotnych świeczek. Jest to jednoczenie zaczątek mechanizmu śledzenia, który docelowo ma pozwolić na analizę, jak kolejne wersje robota radzą sobie z miejscami, gdzie powinna albo nie powinna być otwierana pozycja.
  • Wstępnie dodany drugi ring, mający składać świeczki M15 w H1 i obliczać SMA20 i SMA200 dla H1. Wynika to z obserwacji, że nieudane wybicia od SMA200/M15 często rozbijają się na SMA200/H1, co wymaga dalszej analizy statystycznej. Aktualny mechanizm obliczania średnich jest oparty na buforowaniu, co pozwala obliczać wstępne wartości średnich przed zamknięciem świecy (testowane na D1 w celu otwarcia pozycji przed godziną zamknięcia), ale również komplikuje obsługę wielu okresów.

Robot Podstrony Dodatkowe informacje
2301 ya_ScalperRB Zmiany Wybijanie poprzednich szczytów i dołków (RB).
2302 ya_Wybijacz Zmiany Pozycje STOP na zewnątrz ruchu we wskazanych godzinach (Orchard).
2403 ya_FAB4 Zmiany Rozgrywanie otwarcia indeksów giełdowych (OVT).
2405 ya_SwingOVT1 Zmiany Równoległość średnich na S&P500/D1 (OVT).
2406 ya_Wieloryb1 Zmiany Wybicia ze SMA200 — przykłady EURUSD/M15 (OVT).
2507 ya_Wieloryb4 Zmiany Wybicia ze SMA200 — przykłady EURUSD/H4 oraz USDJPY/H1 (OVT).
2508 ya_LK2410 Zmiany Rozgrywanie z podziałem na sesje Azja/Londyn/NY (LK).
Wskaźnik Podstrony Dodatkowe informacje
ya_M2OVT Wyliczanie średnich dla M2 całodobowych i sesyjnych (OVT).
ya_D1OVT Wyliczanie średnich sesyjnych z łączeniem świeczek M30 — S&P500/D1 (OVT).
ya_H4OVT Wyliczanie średnich dla H4 z łączonych świeczek H1 i ustawianej północy (OVT).
ya_Audytor Przewijanie wykresu wg listy wygenerowanej przez robota (własny).
ya_CandlesM2 Prostokąty obrazujące świece M2 na wykresie M1 (OVT).
ya_Kalibrator Przetwarzanie plików CSV (własny).