Przejdź do treści
Wszystkie strategie

Strategie

Replikacja źródłowej strategii long/cash SPY z kontrariańskim sygnałem z poprzedniej sesji

Wynik: Porzucona

SpyPreviousSessionContrarian

Podsumowanie wyniku

SpyPreviousSessionContrarian próbowała replikować strategię kontrariańską opartą na znaku stopy zwrotu SPY, z realizacją na otwarciu następnej sesji. QA ustaliła, że wielkość pozycji wyliczana według ceny zamknięcia w chwili decyzji pozwalała na wejście przy ekspozycji 100.7458%, mimo stałego limitu 100% NAV. Raport testu dymnego zawierał również tylko jedną zamkniętą pozycję wśród 1,647 świec dziennych, przez co sposób realizacji zleceń pozostał niewyjaśniony. Po trzech iteracjach strategię porzucono podczas weryfikacji, przed przeglądem backtestu, optymalizacją i oceną ryzyka.

Hipoteza

Wiernie zaimplementuj kontrariański sygnał z artykułu na dziennych świecach SPY.USEQ. Punkt odniesienia return_lookback=1: oblicz log(close_t/close_(t-1)), kup po ujemnej stopie zwrotu, a sprzedaj po nieujemnej. Ostatnia zakończona stopa zwrotu dotyczy poprzedniego przedziału względem okresu prognozy; nie dodawaj opóźnienia o kolejną sesję. Nie dodawaj RSI, progu krachu, stop lossa, celu ani modelu predykcyjnego. Zinterpretuj źródłowe DFL=1 jako ekspozycję bez dźwigni, ograniczoną do 100% kapitału rachunku NAV, przy użyciu całych akcji. Zarządzanie ryzykiem obejmuje wyjście według sygnału i ograniczenie wielkości pozycji. Utrzymuj istniejącą liczbę akcji przez kolejne sesje z ujemną stopą zwrotu, unikając zbędnych zamknięć i ponownych otwarć. Decyzje są realizowane na otwarciu następnej sesji, więc wejście nie może przynieść zysku z poprzedzającej je luki nocnej. Wyszukaj return_lookback wśród 1–3 sesji wokół bazowego okresu jednego dnia ze źródła; zachowaj jawny raport replikacji punktu odniesienia. Prognoza wynosi około 50–90 zamkniętych pozycji rocznie.

Jawny cel replikacji odróżnia tę regułę znaku stopy zwrotu z jednego okresu od ogólnego powrotu do średniej RSI i momentum tygodniowego. Wyszukiwanie w snapshotach nie znalazło dokładnego dopasowania dla strategii kontrariańskiej SPY. Koszty akcji i długa historia dzienna pozwalają na wierny test możliwy do wykonania. Zgodność ze źródłem ma pierwszeństwo przed dodawaniem opcji, krótkiej sprzedaży lub niezwiązanych filtrów w celu spełnienia limitów.

verification_loop: Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczny] position_size() ustala liczbę całych akcji jako floor(NAV z chwili podjęcia decyzji / cena zamknięcia), mimo że zlecenie jest realizowane na otwarciu następnej sesji. Luka wzrostowa przez noc może sprawić, że wartość pozycji przy wejściu przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszą cenę bez zmiany……Pokaż więcejPokaż mniej

verification_loop: Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczny] position_size() ustala liczbę całych akcji jako floor(NAV z chwili podjęcia decyzji / cena zamknięcia), mimo że zlecenie jest realizowane na otwarciu następnej sesji. Luka wzrostowa przez noc może sprawić, że wartość pozycji przy wejściu przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszą cenę bez zmiany wielkości pozycji, a _release_held_orders przekazuje pierwotną liczbę akcji. Dostarczony sandbox pokazuje naruszenie limitu: peak_entry_leverage i peak_margin_utilization wynoszą 1.007458 (100.7458%). Użycie get_equity_mtm() nie rozwiązuje problemu ustalenia wielkości pozycji według ceny wykonania. To błąd w ustalaniu wielkości pozycji przy wejściu, a nie zwykła zmiana dźwigni istniejącej pozycji. (wiersz 64) — poprawka: Wstrzymaj składanie tego zlecenia, dopóki wspólny moduł dopasowywania zleceń backtestu i zwalnianie przetrzymywanych zleceń paper trading nie będą ustalać liczby całych akcji przy wejściu według ceny wykonania i dostępnych NAV, z uwzględnieniem kosztów wejścia, przed dopasowaniem. Sprawdź wejścia po luce wzrostowej i ponownie uruchom jawny punkt odniesienia return_lookback=1. Stały bufor ustalony w chwili decyzji nie może zagwarantować limitu przy dowolnie dużych lukach nocnych; nie zmieniaj stałych warunków ekspozycji ani nie odczytuj przyszłej ceny otwarcia na świecy decyzyjnej. - [ostrzeżenie] Raport testu dymnego zawiera tylko jedną zamkniętą pozycję wśród 1,647 przetworzonych świec dziennych, wobec prognozy hipotezy wynoszącej około 50–90 pozycji rocznie. Reguły znaku stopy zwrotu są osiągalne i wydają się poprawnie zaimplementowane; dostarczone podsumowanie nie pozwala ustalić, czy brakujące wejścia wynikają z odrzucenia zlecenia, utrzymującego się stanu zlecenia w toku czy innego problemu z realizacją. Współczynnik zysku do straty równy zero przy jednej zyskownej transakcji nie dowodzi błędu księgowego. (wiersz 45) — poprawka: Sprawdź datowane decyzje, zlecenia, transakcje, liczniki entry_diag oraz stan odrzuceń i zleceń w toku w tym samym okresie, szczególnie po pierwszym zamknięciu pozycji. Uzgodnij kwalifikujące się epizody ujemnych stóp zwrotu ze złożonymi i zrealizowanymi wejściami, zanim zaufasz raportowi replikacji punktu odniesienia; nie rozluźniaj sygnału, by sztucznie zwiększyć liczbę transakcji.

Implementacja

Replikacja dziennego sygnału long/cash opartego na znaku stopy zwrotu na SPY, z realizacją na otwarciu następnej sesji. Punkt odniesienia return_lookback=1 pozostaje jawny. Składanie zlecenia jest wstrzymane: obecny mechanizm realizacji nie gwarantuje wymaganego limitu 100% NAV przy wejściu.

Zachowuje sygnał stopy zwrotu, reguły wejścia i wyjścia, ustalanie wielkości pozycji w całych akcjach oraz niezmienioną konfigurację badawczą z poprzedniej implementacji. Do wstępnej wielkości pozycji w chwili decyzji wykorzystuje wycenę według wartości rynkowej NAV; nie rozwiązuje to problemu luk overnight. Inspekcja potwierdza, że next_open_ticks jedynie dostarcza ceny, a _release_held_orders przekazuje wielkości zleceń bez ich zmiany. Usunięcie krytycznego problemu QA wymaga wspólnych zmian w mechanizmie……Pokaż więcejPokaż mniej

Zachowuje sygnał stopy zwrotu, reguły wejścia i wyjścia, ustalanie wielkości pozycji w całych akcjach oraz niezmienioną konfigurację badawczą z poprzedniej implementacji. Do wstępnej wielkości pozycji w chwili decyzji wykorzystuje wycenę według wartości rynkowej NAV; nie rozwiązuje to problemu luk overnight. Inspekcja potwierdza, że next_open_ticks jedynie dostarcza ceny, a _release_held_orders przekazuje wielkości zleceń bez ich zmiany. Usunięcie krytycznego problemu QA wymaga wspólnych zmian w mechanizmie realizacji, wykraczających poza zakres zapisu tego zadania: przed dopasowaniem zlecenia w backteście i handlu papierowym należy ustalać wielkość pozycji w całych akcjach na podstawie możliwej do uzyskania ceny, dostępnego NAV i kosztów wejścia. Ostrzeżenie dotyczące jednej pozycji pozostaje nierozstrzygnięte: nie dostarczono rejestru z datami ani diagnostyki odrzuceń i zleceń w toku, a za weryfikację odpowiada potok. Po poprawce mechanizmu realizacji ponownie uruchom jawnie określony punkt odniesienia dla jednej sesji i sprawdź tę diagnostykę; żadna reguła wejścia nie została osłabiona w celu sztucznego wygenerowania transakcji.

Wyniki weryfikacji

Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczny] position_size() ustala liczbę całych akcji jako floor(NAV z chwili podjęcia decyzji / cena zamknięcia), mimo że zlecenie jest realizowane na otwarciu następnej sesji. Luka wzrostowa przez noc może sprawić, że wartość pozycji przy wejściu przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszą cenę bez zmiany wielkości pozycji,……Pokaż więcejPokaż mniej

Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczny] position_size() ustala liczbę całych akcji jako floor(NAV z chwili podjęcia decyzji / cena zamknięcia), mimo że zlecenie jest realizowane na otwarciu następnej sesji. Luka wzrostowa przez noc może sprawić, że wartość pozycji przy wejściu przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszą cenę bez zmiany wielkości pozycji, a _release_held_orders przekazuje pierwotną liczbę akcji. Dostarczony sandbox pokazuje naruszenie limitu: peak_entry_leverage i peak_margin_utilization wynoszą 1.007458 (100.7458%). Użycie get_equity_mtm() nie rozwiązuje problemu ustalenia wielkości pozycji według ceny wykonania. To błąd w ustalaniu wielkości pozycji przy wejściu, a nie zwykła zmiana dźwigni istniejącej pozycji. (wiersz 64) — poprawka: Wstrzymaj składanie tego zlecenia, dopóki wspólny moduł dopasowywania zleceń backtestu i zwalnianie przetrzymywanych zleceń paper trading nie będą ustalać liczby całych akcji przy wejściu według ceny wykonania i dostępnych NAV, z uwzględnieniem kosztów wejścia, przed dopasowaniem. Sprawdź wejścia po luce wzrostowej i ponownie uruchom jawny punkt odniesienia return_lookback=1. Stały bufor ustalony w chwili decyzji nie może zagwarantować limitu przy dowolnie dużych lukach nocnych; nie zmieniaj stałych warunków ekspozycji ani nie odczytuj przyszłej ceny otwarcia na świecy decyzyjnej. - [ostrzeżenie] Raport testu dymnego zawiera tylko jedną zamkniętą pozycję wśród 1,647 przetworzonych świec dziennych, wobec prognozy hipotezy wynoszącej około 50–90 pozycji rocznie. Reguły znaku stopy zwrotu są osiągalne i wydają się poprawnie zaimplementowane; dostarczone podsumowanie nie pozwala ustalić, czy brakujące wejścia wynikają z odrzucenia zlecenia, utrzymującego się stanu zlecenia w toku czy innego problemu z realizacją. Współczynnik zysku do straty równy zero przy jednej zyskownej transakcji nie dowodzi błędu księgowego. (wiersz 45) — poprawka: Sprawdź datowane decyzje, zlecenia, transakcje, liczniki entry_diag oraz stan odrzuceń i zleceń w toku w tym samym okresie, szczególnie po pierwszym zamknięciu pozycji. Uzgodnij kwalifikujące się epizody ujemnych stóp zwrotu ze złożonymi i zrealizowanymi wejściami, zanim zaufasz raportowi replikacji punktu odniesienia; nie rozluźniaj sygnału, by sztucznie zwiększyć liczbę transakcji.

Wstrzymaj składanie tego zlecenia, dopóki wspólny moduł dopasowywania zleceń backtestu i zwalnianie przetrzymywanych zleceń paper trading nie będą ustalać liczby całych akcji przy wejściu według ceny wykonania i dostępnych NAV, z uwzględnieniem kosztów wejścia, przed dopasowaniem. Sprawdź wejścia po luce wzrostowej i ponownie uruchom jawny punkt odniesienia return_lookback=1. Stały bufor ustalony w chwili decyzji nie może zagwarantować limitu przy dowolnie dużych lukach nocnych; nie zmieniaj stałych warunków ekspozycji ani nie odczytuj przyszłej ceny otwarcia na świecy decyzyjnej.

position_size() ustala liczbę całych akcji jako floor(NAV z chwili podjęcia decyzji / cena zamknięcia), mimo że zlecenie jest realizowane na otwarciu następnej sesji. Luka wzrostowa przez noc może sprawić, że wartość pozycji przy wejściu przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszą cenę bez zmiany wielkości pozycji, a _release_held_orders przekazuje pierwotną liczbę akcji. Dostarczony sandbox pokazuje naruszenie limitu: peak_entry_leverage i peak_margin_utilization wynoszą 1.007458 (100.7458%). Użycie get_equity_mtm() nie rozwiązuje problemu ustalenia wielkości pozycji według ceny wykonania. To błąd w ustalaniu wielkości pozycji przy wejściu, a nie zwykła zmiana dźwigni istniejącej pozycji.

Sprawdź datowane decyzje, zlecenia, transakcje, liczniki entry_diag oraz stan odrzuceń i zleceń w toku w tym samym okresie, szczególnie po pierwszym zamknięciu pozycji. Uzgodnij kwalifikujące się epizody ujemnych stóp zwrotu ze złożonymi i zrealizowanymi wejściami, zanim zaufasz raportowi replikacji punktu odniesienia; nie rozluźniaj sygnału, by sztucznie zwiększyć liczbę transakcji.

Raport testu dymnego zawiera tylko jedną zamkniętą pozycję wśród 1,647 przetworzonych świec dziennych, wobec prognozy hipotezy wynoszącej około 50–90 pozycji rocznie. Reguły znaku stopy zwrotu są osiągalne i wydają się poprawnie zaimplementowane; dostarczone podsumowanie nie pozwala ustalić, czy brakujące wejścia wynikają z odrzucenia zlecenia, utrzymującego się stanu zlecenia w toku czy innego problemu z realizacją. Współczynnik zysku do straty równy zero przy jednej zyskownej transakcji nie dowodzi błędu księgowego.

Historia iteracji

Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczne] Wielkość pozycji przy wejściu wynosi floor(NAV / decision_close), ale zlecenie rynkowe jest realizowane po otwarciu następnej sesji. Wzrostowa luka overnight powoduje zatem, że nominał wejścia przekracza limit 100% NAV określony w hipotezie. Dostarczone środowisko testowe potwierdza peak_entry_leverage=1.007458 oraz avg_position_pct=100.7458%. Bazowe margin_capped_size sprawdza kurs zamknięcia w chwili podjęcia decyzji, a……Pokaż więcejPokaż mniej

Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczne] Wielkość pozycji przy wejściu wynosi floor(NAV / decision_close), ale zlecenie rynkowe jest realizowane po otwarciu następnej sesji. Wzrostowa luka overnight powoduje zatem, że nominał wejścia przekracza limit 100% NAV określony w hipotezie. Dostarczone środowisko testowe potwierdza peak_entry_leverage=1.007458 oraz avg_position_pct=100.7458%. Bazowe margin_capped_size sprawdza kurs zamknięcia w chwili podjęcia decyzji, a submit_order sprawdza przed realizacją; żaden z tych mechanizmów nie zmniejsza rozmiaru oczekującego zlecenia przy otwarciu następnej sesji. Twierdzenie w konfiguracji, że zabezpieczenia wykonania zmniejszają wielkość pozycji, nie znajduje potwierdzenia w sprawdzonej ścieżce ani w tym wyniku. (wiersz 55) — poprawka: Przy granicy realizacji po otwarciu następnej sesji egzekwuj wielkość pozycji w całych akcjach <= floor(dostępny NAV / rzeczywista cena realizacji), z uwzględnieniem kosztów realizacji, używając wyłącznie ceny dostępnej przy tym otwarciu. W razie potrzeby skoordynuj poprawkę mechanizmu realizacji na poziomie platformy; nie odczytuj kursu otwarcia następnej świecy przy kursie zamknięcia chwili podjęcia decyzji ani nie zmieniaj po cichu stałego notional_fraction. Ponownie przeprowadź weryfikację i potwierdź, że ekspozycja przy wejściu nigdy nie przekracza 1.0. - [ostrzeżenie] Środowisko testowe wykazuje tylko jedną zamkniętą pozycję w ciągu 1,647 dziennych świec, podczas gdy hipoteza przewiduje około 50–90 pozycji rocznie. Reguły znaku można uruchomić i są poprawnie zaimplementowane, więc samo to nie dowodzi wady strategii, ale test dymny nie wykazuje wielokrotnego działania wejść i wyjść. Implikowane zaangażowanie wynosi około 100.75% kapitału własnego, co jest zgodne z odrębnie stwierdzonym naruszeniem limitu. (wiersz 39) — poprawka: Po skorygowaniu wielkości pozycji przy realizacji sprawdź diagnostykę odrzuconych wejść i zleceń w toku oraz rejestr zamkniętych pozycji. Zanim oprzesz się na wynikach dla pełnej historii, potwierdź, że kolejne przejścia znaku między ujemnym a nieujemnym generują oczekiwane wejścia i wyjścia po otwarciu następnej sesji.

Przy granicy realizacji po otwarciu następnej sesji egzekwuj wielkość pozycji w całych akcjach <= floor(dostępny NAV / rzeczywista cena realizacji), z uwzględnieniem kosztów realizacji, używając wyłącznie ceny dostępnej przy tym otwarciu. W razie potrzeby skoordynuj poprawkę mechanizmu realizacji na poziomie platformy; nie odczytuj kursu otwarcia następnej świecy przy kursie zamknięcia chwili podjęcia decyzji ani nie zmieniaj po cichu stałego notional_fraction. Ponownie przeprowadź weryfikację i potwierdź, że ekspozycja przy wejściu nigdy nie przekracza 1.0.

Wielkość pozycji przy wejściu wynosi floor(NAV / decision_close), ale zlecenie rynkowe jest realizowane po otwarciu następnej sesji. Wzrostowa luka overnight powoduje zatem, że nominał wejścia przekracza limit 100% NAV określony w hipotezie. Dostarczone środowisko testowe potwierdza peak_entry_leverage=1.007458 oraz avg_position_pct=100.7458%. Bazowe margin_capped_size sprawdza kurs zamknięcia w chwili podjęcia decyzji, a submit_order sprawdza przed realizacją; żaden z tych mechanizmów nie zmniejsza rozmiaru oczekującego zlecenia przy otwarciu następnej sesji. Twierdzenie w konfiguracji, że zabezpieczenia wykonania zmniejszają wielkość pozycji, nie znajduje potwierdzenia w sprawdzonej ścieżce ani w tym wyniku.

Po skorygowaniu wielkości pozycji przy realizacji sprawdź diagnostykę odrzuceń wejść i zleceń w toku oraz księgę zamkniętych pozycji. Zanim oprzesz się na wynikach z pełnej historii, potwierdź, że powtarzające się przejścia znaku z ujemnego na nieujemny generują oczekiwane wejścia i wyjścia na kolejnym otwarciu sesji.

Środowisko testowe wykazuje tylko jedną zamkniętą pozycję w ciągu 1,647 dziennych świec, podczas gdy hipoteza przewiduje około 50–90 pozycji rocznie. Reguły znaku można uruchomić i są poprawnie zaimplementowane, więc samo to nie dowodzi wady strategii, ale test dymny nie wykazuje wielokrotnego działania wejść i wyjść. Implikowane zaangażowanie wynosi około 100.75% kapitału własnego, co jest zgodne z odrębnie stwierdzonym naruszeniem limitu.

Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczny] position_size() oblicza liczbę całych akcji na podstawie kapitału i ceny zamknięcia w chwili decyzji, ale akcje te są kupowane na otwarciu następnej sesji bez limitu NAV w chwili realizacji. Luka wzrostowa przez noc może zatem sprawić, że wartość pozycji przy wejściu przekroczy ustalony w hipotezie limit 100% NAV lub ekspozycji bez dźwigni. Dostarczony sandbox pokazuje tę sytuację: peak_entry_leverage=1.007458 i……Pokaż więcejPokaż mniej

Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczny] position_size() oblicza liczbę całych akcji na podstawie kapitału i ceny zamknięcia w chwili decyzji, ale akcje te są kupowane na otwarciu następnej sesji bez limitu NAV w chwili realizacji. Luka wzrostowa przez noc może zatem sprawić, że wartość pozycji przy wejściu przekroczy ustalony w hipotezie limit 100% NAV lub ekspozycji bez dźwigni. Dostarczony sandbox pokazuje tę sytuację: peak_entry_leverage=1.007458 i peak_margin_utilization=1.007458. Podstawowa funkcja pomocnicza wejścia ogranicza depozyt według ceny z chwili decyzji; next_open_ticks dostarcza późniejszą cenę otwarcia bez zmiany wielkości pozycji, a _release_held_orders przekazuje pierwotną liczbę akcji. Komentarze opisujące błąd go nie naprawiają. (wiersz 65) — poprawka: Przed dopasowaniem zleceń na otwarciu następnej sesji egzekwuj limit 1.0 NAV według znanej wówczas możliwej do uzyskania ceny, dostępnych NAV i stosownych kosztów wejścia; zaokrąglij dopuszczalną liczbę akcji w dół do pełnych akcji. Zastosuj równoważną obsługę do przetrzymywanych zleceń paper trading i sprawdź, czy wejścia po luce wzrostowej mieszczą się w limicie. Zachowaj realizację na otwarciu następnej sesji i stałe notional_fraction=1.0; ani odczyt przyszłych cen otwarcia w chwili decyzji, ani dodanie arbitralnego bufora do ceny zamknięcia nie gwarantuje spełnienia warunków. - [ostrzeżenie] Sandbox wykazuje tylko jedną zamkniętą pozycję w ciągu 1,647 świec dziennych, wobec prognozy hipotezy wynoszącej 50–90 rocznie, przy zaledwie dwóch efektywnych obserwacjach dziennych. Nie dowodzi to błędu sygnału, ale pozytywny wynik testu dymnego daje niewiele dowodów na to, że powtarzające się wejścia na otwarciu następnej sesji działają przez cały okres. (wiersz 47) — poprawka: Po skorygowaniu limitu realizacji sprawdź diagnostykę odrzuceń zleceń i zleceń w toku oraz datowaną księgę wejść i wyjść; potwierdź, że powtarzające się przejścia ujemnych i nieujemnych stóp zwrotu mogą być realizowane w całym okresie. Zachowaj jawny raport punktu odniesienia return_lookback=1.

Przed dopasowaniem zlecenia po otwarciu następnej sesji egzekwuj limit 1.0 NAV, używając znanej wówczas możliwej do uzyskania ceny, dostępnego NAV i mających zastosowanie kosztów wejścia; dozwoloną wielkość pozycji zaokrąglaj w dół do całych akcji. Zastosuj równoważne postępowanie do oczekujących zleceń papierowych i zweryfikuj, że wejścia po wzrostowej luce mieszczą się w limicie. Zachowaj realizację po otwarciu następnej sesji i stałe notional_fraction=1.0; ani odczytywanie przyszłych kursów otwarcia w chwili podejmowania decyzji, ani dodanie arbitralnego bufora opartego na kursie zamknięcia nie gwarantuje spełnienia warunków.

position_size() oblicza liczbę całych akcji na podstawie kapitału i ceny zamknięcia w chwili decyzji, ale akcje te są kupowane na otwarciu następnej sesji bez limitu NAV w chwili realizacji. Luka wzrostowa przez noc może zatem sprawić, że wartość pozycji przy wejściu przekroczy ustalony w hipotezie limit 100% NAV lub ekspozycji bez dźwigni. Dostarczony sandbox pokazuje tę sytuację: peak_entry_leverage=1.007458 i peak_margin_utilization=1.007458. Podstawowa funkcja pomocnicza wejścia ogranicza depozyt według ceny z chwili decyzji; next_open_ticks dostarcza późniejszą cenę otwarcia bez zmiany wielkości pozycji, a _release_held_orders przekazuje pierwotną liczbę akcji. Komentarze opisujące błąd go nie naprawiają.

Po skorygowaniu limitu realizacji sprawdź diagnostykę odrzuceń zleceń i zleceń w toku oraz datowaną księgę wejść i wyjść; potwierdź, że powtarzające się przejścia ujemnych i nieujemnych stóp zwrotu mogą być realizowane w całym okresie. Zachowaj jawny raport punktu odniesienia return_lookback=1.

Środowisko testowe wykazuje tylko jedną zamkniętą pozycję wśród 1,647 dziennych świec, w porównaniu z przewidywanymi w hipotezie 50–90 rocznie, przy zaledwie dwóch efektywnych dziennych obserwacjach. Nie dowodzi to wady sygnału, ale pomyślny wynik testu dymnego stanowi niewielki dowód na to, że wielokrotne wejścia po otwarciu następnej sesji działają przez cały analizowany okres.

Podsumowanie wyniku

Egzekwuj ustalanie wielkości pozycji na podstawie możliwej do uzyskania ceny, dostępnego NAV i kosztów wejścia, a następnie uzgodnij decyzje, zlecenia i realizacje, zanim uznasz wartość bazową za wiarygodną.

Po trzech iteracjach warstwa 4 QA odrzuciła ustalanie wielkości pozycji według ceny zamknięcia, ponieważ luka wzrostowa przez noc mogła naruszyć limit NAV w chwili realizacji. Niska liczba transakcji pozostała niewyjaśniona, a dalsze etapy procesu nie zostały osiągnięte.

Replikuj dzienny kontrariański sygnał long/cash na SPY, z realizacją na otwarciu następnej sesji, utrzymując pozycję przez kolejne ujemne stopy zwrotu i ograniczając ekspozycję na całe akcje do 100% NAV.

QA podał szczytową dźwignię przy wejściu i wykorzystanie depozytu zabezpieczającego w sandboxie na poziomie 1.007458 (100.7458%), powyżej limitu. Raport testu dymnego wykazał jedną zamkniętą pozycję wśród 1,647 świec dziennych; nie podano stopy zwrotu z backtestu ani wskaźnika Sharpe'a.

Powód porzucenia

verification_loop: Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczne] position_size() ustala wielkość pozycji w całych akcjach jako floor(NAV z chwili decyzji / kurs zamknięcia), mimo że zlecenie jest realizowane po otwarciu następnej sesji. Wzrostowa luka overnight może sprawić, że nominał wejścia przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszy kurs bez zmiany……Pokaż więcejPokaż mniej

verification_loop: Weryfikacja nie powiodła się (warstwa 4 — przegląd QA) [klasa=code_defect]: - [krytyczne] position_size() ustala wielkość pozycji w całych akcjach jako floor(NAV z chwili decyzji / kurs zamknięcia), mimo że zlecenie jest realizowane po otwarciu następnej sesji. Wzrostowa luka overnight może sprawić, że nominał wejścia przekroczy stały limit 100% NAV określony w hipotezie. Wspólne kontrole wejścia odbywają się przy składaniu zlecenia, next_open_ticks dostarcza późniejszy kurs bez zmiany wielkości pozycji, a _release_held_orders przekazuje pierwotną wielkość zlecenia. Dostarczone środowisko testowe wykazuje naruszenie: peak_entry_leverage i peak_margin_utilization wynoszą 1.007458 (100.7458%). Użycie get_equity_mtm() nie rozwiązuje problemu ustalania wielkości pozycji według ceny możliwej do uzyskania. Jest to wada ustalania wielkości pozycji przy wejściu, a nie zwykłe odchylenie dźwigni w istniejącej pozycji. (wiersz 64) — poprawka: Wstrzymaj składanie tego zlecenia, dopóki wspólny mechanizm dopasowywania zleceń w backteście i zwalnianie oczekujących zleceń papierowych nie będą egzekwować ustalania wielkości pozycji w całych akcjach na podstawie możliwej do uzyskania ceny i dostępnego NAV, z uwzględnieniem kosztów wejścia, przed dopasowaniem zlecenia. Zweryfikuj wejścia po wzrostowej luce i ponownie uruchom jawnie określony punkt odniesienia return_lookback=1. Stały bufor oparty na cenie z chwili decyzji nie może zagwarantować limitu przy dowolnej luce overnight; nie zmieniaj stałej umowy dotyczącej ekspozycji ani nie odczytuj przyszłej ceny otwarcia w chwili podejmowania decyzji na podstawie świecy. - [ostrzeżenie] Raport z testu dymnego zawiera tylko jedną zamkniętą pozycję wśród 1,647 przetworzonych dziennych świec, podczas gdy hipoteza przewiduje około 50–90 pozycji rocznie. Reguły znaku stopy zwrotu można uruchomić i wydają się poprawnie zaimplementowane; dostarczone podsumowanie nie pozwala ustalić, czy brakujące wejścia wynikają z odrzucenia zleceń, utrzymującego się stanu zlecenia w toku czy innego problemu z wykonaniem. Współczynnik zysku do straty równy zero przy jednym zyskownym zleceniu nie dowodzi wady księgowania. (wiersz 45) — poprawka: Sprawdź decyzje z datami, zlecenia, realizacje, liczniki entry_diag oraz stan odrzuceń i zleceń w toku w tym samym okresie, szczególnie po pierwszym zamknięciu pozycji. Zestaw kwalifikujące się epizody ujemnej stopy zwrotu ze złożonymi i zrealizowanymi wejściami, zanim zaufasz raportowi odtworzenia wartości bazowej; nie rozluźniaj sygnału, aby sztucznie wygenerować transakcje.

Analiza

Właściwości zabezpieczające algorytmicznych strategii inwestycyjnych z wykorzystaniem modeli długiej pamięci krótkotrwałej i szeregów czasowych dla indeksów akcji

Stratmill to narzędzie do badań i handlu na papierze (paper trading), a nie doradztwo finansowe ani broker. Wyniki backtestów i paper tradingu mają charakter hipotetyczny. Handel wiąże się z ryzykiem straty.