EN
Artykuły / 18.4 Filtry i wskaźniki
Filtry i wskaźnikiszkic

Funkcje opcjonalne w bocie domyślnie wyłączone: dlaczego i jak

14.11.20263 min czytania

W skrócie: każda funkcja, której strategia nie potrzebuje do działania, ma w moim bocie osobny przełącznik i domyślnie jest wyłączona. Domyślny zestaw ustawień daje wtedy zawsze bota bez dodatków, a każdy dodatek muszę świadomie włączyć i przetestować osobno. To mało efektowna zasada, ale oszczędza mi więcej czasu niż jakakolwiek optymalizacja.

Co to znaczy w praktyce

Do bota dodaję zwykle filtr, dodatkowe wyjście albo ochronę. Każda z tych rzeczy dostaje parę: przełącznik i parametry. Przełącznik jest logiczny, parametry mają zakresy, w których wyłączona wartość jest dostępna. Gdy przełącznik jest wyłączony, kod funkcji w ogóle się nie wykonuje, a w logu nie powstaje żaden ślad.

Wyjątkiem jest to, co stanowi rdzeń strategii. W jednym z moich botów wyjście z kanału i zmiana indykatora jest częścią reguły, więc ma ustawienie włączone, i to jest opisane w pliku z zasadami bota jako decyzja celowa. Wyjątek ma być widoczny i uzasadniony, a nie domyślny.

Trzy powody

Wyniki są porównywalne. Testuję bota z domyślnymi ustawieniami i mam punkt odniesienia. Każdy dodatek mierzę względem niego, zmieniając jedną rzecz naraz. Gdyby kilka dodatków było domyślnie włączonych, nie wiedziałbym, który z nich dał poprawę ani który pogorszył wynik.

Nowa wersja nie zmienia zachowania po cichu. Dodaję funkcję, bump wersji, bot na koncie działa tak samo jak przedtem, bo przełącznik jest wyłączony. Dopiero osobna decyzja włącza nową funkcję na konkretnym koncie. To ważne przy flocie: wdrożenie nowej wersji nie powinno być jednocześnie zmianą strategii.

Mniej filtrów, mniej dopasowania. Z mojej serii testów na złocie wynika wprost: jeśli dwa warianty dają ten sam wynik (taką samą liczbę zaliczonych i oblanych cykli), wybieram ten z mniejszą liczbą filtrów. W jednym teście dodatkowy filtr dawał cztery zaliczone cykle więcej, w innym dwa. Zostały opcjami, ale referencja pozostała bez nich, bo różnica mieściła się w szumie.

Jak to robię w kodzie

Przełącznik ma nazwę zaczynającą się od “użyj” i jest pierwszy w swojej grupie inputów. Funkcja najpierw sprawdza przełącznik, dopiero potem liczy cokolwiek. Opisy inputów są po polsku, krótkie i mówią, co robi funkcja, gdy jest włączona. Wartość “wyłączone” musi być osiągalna także dla parametru liczbowego, żeby optymalizacja mogła porównać wariant z funkcją i bez niej.

Co gdy opcja okaże się potrzebna

Jeśli test pokazuje trwałą poprawę na latach osobno i na drugim brokerze, włączam opcję w ustawieniach produkcyjnych konkretnego bota, a nie zmieniam wartości domyślnej w kodzie. Domyślny zestaw zostaje czystym punktem odniesienia.

Checklista

  • Czy każda nowa funkcja ma własny przełącznik?
  • Czy domyślnie jest wyłączona?
  • Czy wyłączona funkcja nie wykonuje kodu i nie pisze do logu?
  • Czy stan “wyłączone” jest osiągalny w zakresie optymalizacji?
  • Czy wyjątki (funkcje rdzenia) są opisane jako decyzje celowe?
  • Czy przy remisie wybieram wariant z mniejszą liczbą filtrów?

[DO UZUPEŁNIENIA: przykład funkcji, która była domyślnie włączona i zmieniła zachowanie bota po cichu]

Powiązane

Źródła

Brak źródeł zewnętrznych - własne zasady i testy (październik-listopad 2026).

Ostrzeżenie: artykuł ma charakter edukacyjny i nie jest poradą inwestycyjną. Wyniki z przeszłości nie gwarantują przyszłych. Handel na rynkach finansowych wiąże się z ryzykiem utraty kapitału.