Jak optymalizować cBota
W cTrader możliwe jest tworzenie cBotów z dowolną liczbą konfigurowalnych parametrów wpływających na ich zachowanie, takich jak poziomy ochrony zleceń lub domyślne wolumeny zleceń. Rodzi to pytanie, w jaki sposób traderzy mogą określić optymalne wartości tych parametrów. Na szczęście cTrader oferuje wbudowane narzędzie, które może obsłużyć optymalizację, oszczędzając traderom cenny czas.
W tym przewodniku skupiamy się na tym, jak użytkownicy mogą optymalizować swoje cBoty i pokazujemy, dlaczego optymalizacja cBotów jest niezbędna dla każdego programisty Algo.
Jak działa optymalizacja cBotów
Pomyśl o optymalizacji jako o serii backtestów. Każdy przebieg backtestingu odbywa się na tych samych danych, ale wykorzystuje różne wartości dla wszelkich parametrów zakodowanych w cBocie.
Rozważ cBota, który może reagować na przypadki, gdy średnie kroczące z szybkim i wolnym okresem przecinają się (szybka średnia krocząca przecina wolną średnią kroczącą). Chcemy mieć możliwość dostosowania, dla ilu szybkich i wolnych okresów cBot otrzymuje dane.
Nasz cBot powinien zatem mieć następujące dwa parametry.
1 2 3 4 5 | |
Aby zdefiniować optymalne wartości parametrów, musielibyśmy obszernie przetestować, jak cBot działa w różnych warunkach rynkowych i przy różnych wartościach dla dwóch powyższych parametrów. Gdybyśmy mieli przeprowadzić te testy ręcznie, zajęłyby one dużo czasu bez dostarczenia łatwego do interpretacji zestawu wyników.
Na szczęście możemy sprawić, aby cTrader uruchomił te testy automatycznie, a po ich zakończeniu dostarczył nam określone wartości parametrów, które pozwalają cBotowi osiągnąć najlepsze możliwe wyniki. Ten proces jest znany jako optymalizacja cBota.
Dostęp do optymalizacji cBota
Aby uzyskać dostęp do optymalizacji cBota, wykonaj następujące czynności.
Najpierw wybierz instancję cBota, którą chcesz zoptymalizować. W razie potrzeby utwórz nową instancję, klikając ikonę plus i wybierając symbol lub wybierając Dodaj instancję w menu kontekstowym, które otwiera się po kliknięciu ikony Więcej.
Następnie przejdź do zakładki Optymalizacja znajdującej się zaraz na prawo od zakładki Backtesting. Ekran centralny w tej zakładce powinien wyglądać następująco.

Konfiguruj ustawienia optymalizacji i parametry cBota
Ponieważ optymalizacja to seria backtestów, możesz skonfigurować te same ustawienia, co w przypadku zwykłego backtestingu. Aby to zrobić, kliknij ikonę koła zębatego i zmień wartości w nowo otwartym menu.

Aby wybrać dokładne parametry, które cTrader ma zoptymalizować, kliknij przycisk Parametry bezpośrednio na prawo od ikony koła zębatego.

W tej podsekcji włącz lub wyłącz flagi po lewej stronie nazwy każdego parametru, aby uwzględnić/wykluczyć te parametry z procesu optymalizacji. Zauważ, że parametr Timeframe jest obecny dla wszystkich cBotów niezależnie od ich konfiguracji.
Chcemy, aby optymalizacja określiła optymalne wartości wolnych i szybkich okresów, które nasz cBot będzie uwzględniał przy starcie. Nie chcemy jednak jeszcze próbować innych typów średnich kroczących.
Zdefiniuj kryteria i algorytm optymalizacji
Możliwe jest określenie, jakich dokładnie kryteriów cTrader będzie używał do wyboru optymalnych wartości parametrów spośród przebiegów backtestingu, które przeprowadzi.
Aby to zrobić, kliknij przycisk Kryteria reprezentowany przez ikonę linii skierowanej w górę. Zobaczysz następującą sekcję.

Ustawienia dla każdego kryterium obejmują dwa menu. W menu po lewej stronie wybierz, czy kryterium powinno być minimalizowane czy maksymalizowane. W menu po prawej stronie wybierz kryterium, które powinno być minimalizowane lub maksymalizowane z zestawu predefiniowanych opcji. Nowe kryteria można dodać, klikając Dodaj kryterium.
Na powyższym zrzucie ekranu chcemy, aby cTrader zmaksymalizował nasz zysk netto i liczbę transakcji zyskownych, które wykonuje nasz cBot. Jednocześnie chcemy zminimalizować maksymalny procent spadku kapitału.
Ze względu na zwięzłość ten artykuł nie obejmuje niestandardowych kryteriów optymalizacji i metody GetFitness(). Aby dowiedzieć się więcej na ich temat, zapoznaj się z naszą dokumentacją techniczną.
Aby wybrać konkretny algorytm optymalizacji, kliknij przycisk Algorytm na prawo od przycisku Kryteria. Powinna otworzyć się następująca podsekcja.

Algorytm wyszukiwania wyczerpującego jest bardzo dokładny, ale wymaga dużych zasobów. Gdy wybrana jest opcja Siatka, cTrader tworzy siatkę wszystkich możliwych wartości parametrów i uruchamia wszystkie backtesty wymagane do ich przetestowania. Chociaż ten proces jest dokładny, może zająć trochę czasu.
Na szczęście cTrader zawiera opcję Algorytm genetyczny. Ten algorytm naśladuje dobór naturalny, traktując każdy przebieg jako osobnika, parametry cBota jako geny, a stopień dopasowania do kryteriów optymalizacji jako zdolność adaptacji. Algorytm genetyczny zatrzymuje się, gdy wykryje, że jakiekolwiek zmiany określonych wartości parametrów przyniosłyby malejące korzyści dla efektywności cBota.
Ponieważ algorytm genetyczny wymaga mniej zasobów niż wyszukiwanie wyczerpujące, a jednocześnie nadal daje dokładne wyniki, zalecamy wybranie tej metody optymalizacji.
Przydziel zasoby i przeprowadź optymalizację cBota
Aby przeprowadzić optymalizację cBota, wybierz zakres danych historycznych, na których cTrader uruchomi przebiegi backtestingu. Aby to zrobić, użyj suwaka kalendarza u góry zakładki Optymalizacja lub menu po jego lewej i prawej stronie.
Zauważ, że optymalizacja to proces wymagający dużych zasobów, którego ukończenie może zająć trochę czasu. Ponieważ chcemy otrzymać wyniki stosunkowo szybko, wybierzemy jeden rok jako okres optymalizacji.

cTrader pozwala również na określenie dokładnego procentu zasobów procesora przydzielonych do procesu optymalizacji. Aby dostosować to ustawienie, kliknij przycisk Zasoby po lewej stronie lewego menu kalendarza.

W nowo pojawiającej się sekcji przeciągnij suwak, aby zwiększyć lub zmniejszyć użycie procesora.
Po zakończeniu przydzielania zasobów powinieneś być gotowy do przystąpienia do optymalizacji. Aby to zrobić, kliknij przycisk Odtwórz po prawej stronie prawego menu kalendarza. Po załadowaniu przez cTrader danych historycznych zobaczysz przebiegi optymalizacji dodawane do ekranu centralnego w czasie rzeczywistym.

U góry siatki zobaczysz również aktualną liczbę przebiegów, upłynięty czas i pozostały czas optymalizacji.
Wszystkie ukończone przebiegi zostaną oznaczone zielonym znacznikiem wyboru. Wszystkie przebiegi, podczas których Twój cBot osiągnął stop out, zostaną natomiast oznaczone szarym znacznikiem wyboru.
Uwaga
Możesz zapisywać i ładować wyniki optymalizacji, co pozwala przenosić je między różnymi urządzeniami.
Interpretuj i zastosuj wyniki optymalizacji
W centralnej siatce cTrader wyświetli kilka wskaźników dla każdego przebiegu backtestingu, w tym liczbę transakcji zyskownych wykonanych przez Twojego cBota i maksymalny procent spadku kapitału.
Szczególnie godna uwagi jest kolumna Dopasowanie, która wyświetla wynik dopasowania dla każdego przebiegu. Pomyśl o wyniku dopasowania jako o wskaźniku, który ocenia stopień, w jakim przebieg zmaksymalizował/zminimalizował wybrane kryteria optymalizacji. Wyższe wyniki dopasowania wskazują na wyższy stopień dopasowania do tych kryteriów.
Aby szybko wybrać przebieg z najwyższym wynikiem dopasowania, po prostu włącz flagę Automatycznie wybierz najlepszy przebieg znajdującą się tuż nad centralną siatką. Zauważ, że możesz włączyć flagę Automatycznie wybierz najlepszy przebieg podczas trwania optymalizacji, a cTrader będzie dynamicznie wyszukiwał najlepsze możliwe wartości parametrów.

Jak widać w kolumnie Dopasowanie, przebieg numer 33 zapewnił najlepszy możliwy wynik dopasowania w porównaniu do wszystkich innych przebiegów.
Możemy bezpiecznie kliknąć Zastosuj obok przebiegu 33, a wartości parametrów użyte podczas tego przebiegu zostaną natychmiast zastosowane do naszej instancji cBota.

Domyślne wartości parametrów Slow periods i Fast periods wynosiły odpowiednio 10 i 5.
Podobnie jak w przypadku backtestingu, wyświetlacz Trade Watch zapewni wykres kapitału i szczegółowe statystyki transakcji podsumowujące działania podjęte przez naszego cBota podczas danego przebiegu. Należy pamiętać, że wykres kapitału jest wyświetlany tylko dla 20 najlepszych przebiegów z centralnej siatki.

Stale rosnące linie Balance i Equity tylko potwierdzają fakt, że przebieg 33 dostarczył wartości parametrów niezbędnych do efektywnego funkcjonowania naszego cBota.
Podsumowanie
Krótko mówiąc, optymalizacja cBotów to potężne narzędzie zapewniające, że Twoi zautomatyzowani doradcy handlowi są skonfigurowani właściwie. Zdecydowanie zalecamy przeprowadzenie wielu rund optymalizacji z różnymi kryteriami, aby uzyskać wyobrażenie o tym, jakie wartości parametrów byłyby najlepsze dla cBotów, które sam opracowałeś lub nabyłeś od innych programistów.