Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

Pooled Nasdaq Q-Learning (2-Taóng Rolling Training): Pinipiling Daily Exposure mula sa mga State na may SMA-Difference

Resulta: Inabandona

PooledNasdaqQLearningSmaStateUseq

Buod ng Resulta

Isinasakatuparan ng strategy na ito ang panukala sa pooled-equity Q-learning paper bilang policy na nire-refit kada quarter, may 36 state at SMA-difference, at nagte-trade nang long, short o cash sa anim na large cap ng Nasdaq. Matapos ang 4 iteration, kabilang ang rebisyon ng kontrata na nag-ayos sa warm-up para magsimula ang trading noong 1994, maayos na tumakbo ang backtest ngunit halos walang edge: Sharpe na 0.043, profit factor na 1.016, average trade na 0.033% at drawdown na 20.6% na hindi na nabawi. Itinuring ng backtest review ang mga resultang ito bilang rolling out-of-sample test at napansing nagpapalit ng sign ang mga kumikitang state sa bawat era, na kahawig ng ingay mula sa multiple testing. Iniwan ang strategy bago ang optimization, kaya hindi na narating ang mga yugto ng analyst, risk at promotion.

Hypothesis

Hango sa papel nina Chang, Lizardi at Shah ang mungkahing ito ng Research Lead: isinasakatuparan nito ang pooled-equity Q-learning gamit ang kasalukuyan at naunang normalized SMA difference bilang discrete state, na may long, short at cash na mga aksyon. CONTRACT REVISION lamang ang ginagamit mula sa evaluation window; hindi binago ang mekanismo, mga instrumento at aksyon. Walang tinukoy na reproducible bins, learning settings o estadistikal na confidence procedure ang papel, kaya hayagang pinili ng Research Lead……Magpakita ng higit paMagpakita ng mas kaunti

Hango sa papel nina Chang, Lizardi at Shah ang mungkahing ito ng Research Lead: isinasakatuparan nito ang pooled-equity Q-learning gamit ang kasalukuyan at naunang normalized SMA difference bilang discrete state, na may long, short at cash na mga aksyon. CONTRACT REVISION lamang ang ginagamit mula sa evaluation window; hindi binago ang mekanismo, mga instrumento at aksyon. Walang tinukoy na reproducible bins, learning settings o estadistikal na confidence procedure ang papel, kaya hayagang pinili ng Research Lead ang mga iyon. State: normalized SMA difference d_t = (SMA(close,5) - SMA(close,10)) / close, hinati gamit ang mga edge na [-0.02, -0.005, 0, 0.005, 0.02] (6 bins); state = (bin(d_t), bin(d_{t-1})) -> 36 states, pinagsama sa nakapirming basket ng anim na stock (ADBE, AMGN, CSCO, INTC, MSFT, QCOM noong USEQ). Training: tabular Q model na one-step (discount 0), learning rate = 1 / bilang ng pagbisita sa state-action pair (ibig sabihin, running mean ng net reward), sinanay gamit ang naunang 504 daily observation bawat stock (2 taon, pooled = ~3,000 state observation), kung saan ang reward para sa long/short ay return mula next-open hanggang next-open matapos ibawas ang 0.05% round-trip cost floor, at 0 ang cash. Muling inaangkop ang model sa simula ng bawat sinusuring deployment window at pinananatiling nakapirmi sa buong window (walang update habang isinasagawa ang evaluation). Execution: isinasagawa sa susunod na session open ang mga desisyon sa bawat daily close (USEQ next_open_fill, suportado); walang market-on-close order ang platform, kaya nagiging exposure mula next-open hanggang next-open ang exposure mula simula hanggang katapusan ng araw sa source—pagsasakatuparan ito, hindi tapat na pagkopya. CHANGES kumpara sa nabigong kontrata (lahat ay pinili ng Research Lead): (1) pinaikli ang training window mula 1,260 tungo sa 504 bars at ang itinakdang warm-up mula 1,272 tungo sa 516 bars (504 training + 10 SMA + 2 lag), kaya may magagamit na bars ang window 0 pagkaraan ng warm-up; (2) idineklarang magsisimula sa 1994-01-03 ang evaluation history, sa halip na sa simula ng data na ADBE/QCOM (QCOM listahan ng 1991-12-13), kaya magagamit bilang pre-window warm-up history sa bawat leg ang unang ~2 taon, sa halip na kainin ang window 0; (3) ibinaba ang min_state_samples mula 100 tungo sa 50 para bumagay sa mas maliit na pooled training sample (karaniwang ~84 observation bawat state).

Pumalya ang kontrata, hindi ang agham: nagsimula sa simula ng data ang itinakdang warm-up na 1,272 bar, kaya walang masusuring bar ang window 0 at hindi nakapasa sa inner validation ang iisang nakapirming kandidato (error sa imprastraktura ang SSL ng window 64). Pinanatili ang idea, mga instrumento at mekanismo. Mga binago: training window mula 1,260 -> 504 bars at warm-up mula 1,272 -> 516 bars; idineklarang magsisimula ang evaluation sa 1994-01-03 para mauna ang ~2 taon ng history sa window 0 bilang warm-up sa bawat leg; min_state_samples 100 -> 50 para makabuo pa rin ng states ang mas maliit na pooled sample. Walang idinagdag na parameter na maaaring i-tune — nananatili itong eksperimento na may nakapirming parameter, kaya walang bagong search degree of freedom ang rebisyon.

premise_falsified. Saklaw ng hatol na ito ang bersyon ng pooled Q-learning idea nina Chang, Lizardi at Shah na binuo ng Research Lead: 36 mga state na SMA-difference, rolling refit kada quarter gamit ang dalawang taon ng datos, HAC confidence gate, at exposure mula next-open hanggang next-open sa ADBE, AMGN, CSCO, INTC, MSFT at QCOM. Hindi hatol ito sa mismong papel. Pinipili lamang ang policy ng bawat quarter mula sa naunang dalawang taon, kaya ang full-history backtest na ito ay rolling out-of-sample test na ng……Magpakita ng higit paMagpakita ng mas kaunti

premise_falsified. Saklaw ng hatol na ito ang bersyon ng pooled Q-learning idea nina Chang, Lizardi at Shah na binuo ng Research Lead: 36 mga state na SMA-difference, rolling refit kada quarter gamit ang dalawang taon ng datos, HAC confidence gate, at exposure mula next-open hanggang next-open sa ADBE, AMGN, CSCO, INTC, MSFT at QCOM. Hindi hatol ito sa mismong papel. Pinipili lamang ang policy ng bawat quarter mula sa naunang dalawang taon, kaya ang full-history backtest na ito ay rolling out-of-sample test na ng nakapirming pamamaraan. Walang nasusukat na edge ang pamamaraan. Sa 1,203 trade mula 1994 hanggang 2019: average trade na 0.058% kumpara sa USEQ floor na 0.05% (mas pinili ang 0.10%), profit factor na 1.03, Sharpe na 0.08 (95% CI -0.32 hanggang 0.47), at kabuuang +5.7% sa loob ng 26 taon. Lumabag sa paunang itinakdang limit na 15% ang max drawdown na 20.6%, at hindi na nabawi ng strategy ang peak nitong 1998 (binura ng luging 2000 na $17.3k ang 1995-98). Walang parameter na maaaring i-tune ang plano, kaya uulitin lamang ng walk-forward ang tuntuning ito at hindi makatutulong ang optimization. Sinusuportahan ang alalahanin ni QA tungkol sa multiple testing: nagbabago ang sign ng mga aktibong state sa bawat era. Hindi bayarin ang sanhi dahil zero ang commissions; walang gross edge ang strategy. Bagong hypothesis ang ibang pagbasa sa source (end-of-day exposure, ibang bins), hindi pagwawasto sa hypothesis na ito.

Implementasyon

Pooled tabular Q-learning (gamma 0, alpha 1/bilang ng pagbisita) sa 36 SMA(5)-SMA(10) difference states (kasalukuyan + naunang bin) sa ADBE, AMGN, CSCO, INTC, MSFT, QCOM na daily USEQ bars. Long/short/cash na mga aksyon, reward = return mula next-open hanggang next-open matapos ibawas ang 0.05% RT. Sinasanay ang model sa naunang 504 session (rolling) at isang beses na nire-refit sa simula ng bawat 3-buwang calendar deployment window, at nakapirmi sa pagitan. Gagawin lamang ang aksyon kung Q >= 0.1%, n >= 50 at HAC t >= 1.96. Isinasagawa sa susunod na session open ang mga desisyon sa close. Bawat leg ay 10% ng equity (gross <= 60%), na may 5% reduce-only intrabar stop.

Sanhi ng zero-trade: iniakma ng nakaraang code ang Q-table ONCE gamit ang unang 504 sesyon ng takbo at ni-freeze ito sa buong backtest. Ipinakikita ng offline replay ng gate sa datos ng catalog na walang estadong pumapasa sa Q>=0.1% & HAC z>=1.96 (pinakamataas na z na 1.1-1.9) ang mga window na 2 taon na nagsisimula sa 2019-2021 at 2023-2026, kaya nanatiling cash ang sandbox window na nagsimula roon. Pag-aayos (pagpapatupad sa sariling hipotesis na 'muling mag-akma minsan sa simula ng bawat sinusuring deployment……Magpakita ng higit paMagpakita ng mas kaunti

Sanhi ng zero-trade: iniakma ng nakaraang code ang Q-table ONCE gamit ang unang 504 sesyon ng takbo at ni-freeze ito sa buong backtest. Ipinakikita ng offline replay ng gate sa datos ng catalog na walang estadong pumapasa sa Q>=0.1% & HAC z>=1.96 (pinakamataas na z na 1.1-1.9) ang mga window na 2 taon na nagsisimula sa 2019-2021 at 2023-2026, kaya nanatiling cash ang sandbox window na nagsimula roon. Pag-aayos (pagpapatupad sa sariling hipotesis na 'muling mag-akma minsan sa simula ng bawat sinusuring deployment window at manatiling naka-freeze sa kabuuan nito' at sa pamagat nitong '2-taong rolling training'): rolling sample buffer na 504 sesyon, muling pag-aakma sa bawat hangganan ng quarter sa kalendaryo (refit_every_months=3, na nakaangkla sa timestamp ng bar at tumutugma sa humigit-kumulang 90-araw na window ng muling pagkakalibrate ng platform), at walang pagkatuto sa loob ng window. Sa replay, nag-a-activate ang humigit-kumulang kalahati ng mga taunang window ng 1-3 estado, kaya nagkakaroon ng mga trade tuwing nakakahanap ang gate ng makabuluhang estado. Hindi binago ang lahat ng threshold ng gate, estado, gantimpala, pagtakda ng laki at stop. Bagong nakapirming parameter ang refit_every_months na nagtatakda lamang ng haba ng deployment window, na binabanggit ng plano ngunit hindi nito itinatakda ang laki.

Mga Resulta ng Beripikasyon

Katanggap-tanggap itong pagsasakatuparan ng tuntuning hindi tinukoy ng kontrata. Kung nais ng Research Lead ng mahigpit na iisang policy bawat evaluation window, dapat ilagay sa kontrata ang haba ng deployment window.

Sinasabi ng hypothesis na isang beses nire-refit ang model sa simula ng bawat sinusuring deployment window at pinananatiling nakapirmi rito, ngunit hindi nito sinasabi kung gaano kahaba ang window. Itinatakda ng code ang window sa isang calendar quarter (refit_every_months=3, bagong nakapirming parameter na kinukuha mula sa timestamp ng bar, alinsunod sa check 20). Sa walk-forward na may reset_with_warmup, nagre-refit ang strategy sa simula ng bawat outer window. Kapag tumawid sa hangganan ng Enero/Abril/Hulyo/Oktubre ang ~90-araw na outer window, nagre-refit din ito minsan sa gitna ng window. Walang natututuhan sa pagitan ng mga refit, kaya hindi ito update habang sinusuri; gayunman, maaaring tumakbo ang dalawang nakapirming policy sa iisang sinusuring window.

Opsyonal: buuin ang series para sa bawat state sa lahat ng training session, gamit ang zero sa mga session na hindi lumitaw ang state, bago ilapat ang Bartlett lags.

Inilalapat ng _hac_z ang mga Newey-West lag nito (hac_lags=5) sa pinagsunod-sunod na listahan ng mga session kung kailan naganap ang state na iyon, hindi sa magkakasunod na calendar session. Kaya ang lag na 1 ay “nakaraang paglitaw ng state na ito,” na maaaring ilang linggo na ang nakalipas. Tama ang pag-cluster sa mga pooled sample sa parehong araw. Tinatantiya lamang ang bahagi ng serial correlation, at maaaring magkaiba nang kaunti ang HAC z-stat kumpara sa calendar-session na HAC.

Walang kailangan.

Ang min_bars_required() ay pinapalitan ng slow_sma+3 (13), samantalang ang nakarehistrong warm-up ay 516 na bar. Hindi ito nakapipinsala: hawak ng estratehiya ang cash hanggang magkaroon ang _train_buf ng 504 na may label na sesyon (humigit-kumulang 516 bar, katugma ng warm-up ng kontrata), at nakahanay pa rin ang mga leg dahil sa base barrier.

Sa bawat muling pag-aakma, sinusubok kung makalalagpas sa Q>=0.1% at HAC z>=1.96 ang isa sa 36 estado x 2 aksyon, kaya humigit-kumulang 3-4 estado ang maaaring pumasa dahil lamang sa pagkakataon sa antas na 5%. Natuklasan sa sariling replay ng developer na nag-a-activate ang humigit-kumulang kalahati ng mga window na 2 taon ng 1-3 estado. Kaya maaaring ingay mula sa maramihang pagsusuri ang alinmang aktibong estado sa halip na matatag na bentahe ng SMA estado. Suriin kung gaano katagal nananatiling aktibo ang mga estado sa magkakasunod na muling pag-aakma bago magtiwala sa positibong resulta.

Pagsusuri ng Backtest

Sharpe
0.04
Kabuuang Return
2.86%
Max Drawdown
20.64%
Kabuuang Trade
1329
Win Rate
48.0%
Profit Factor
1.02

Ginagawa ng code ang sinasabi ng binagong kontrata. Pinagsasama sa anim na stock at nire-refit kada quarter gamit ang naunang 504 session ang 36-state table (SMA(5)-SMA(10)/close, kasalukuyan at naunang bin). Nananatili itong nakapirmi sa pagitan ng mga refit, sinasala gamit ang Q>=0.1% at HAC z>=1.96, at isinasagawa sa susunod na open na may 5% stop. Naging maayos ang pag-aayos sa warm-up: nagsimula ang trading noong Abril 1994.

Malaki at maaasahan ang sample: 1,203 nakasarang trade sa loob ng 26-taóng development period (1994 hanggang Okt 2019). Malinis ang audit ng input.

Out-of-sample test na ng pamamaraan ang backtest na ito. Inaangkop lamang ang policy ng bawat quarter sa naunang dalawang taon at pagkatapos ay tine-trade ito nang walang pagbabago. Walang parameter na maaaring i-tune ang plano, kaya uulitin lamang ng walk-forward ang kaparehong tuntunin. Hindi makapagdaragdag ng edge ang optimization; narito na ang ebidensiya kung mayroon nito.

Halos walang net edge. Ang Sharpe ay 0.079 (95% CI -0.32 hanggang 0.47, probabilistic Sharpe 0.58), ang profit factor ay 1.033, at ang kabuuang return ay +5.7% sa loob ng 26 taon (CAGR 0.21%). Ang average na return kada trade ay 0.058% ng notional, bahagyang lampas sa USEQ na floor na 0.05% at mas mababa sa gustong 0.10%. Ang win rate ay 48.5% at ang payoff ratio ay 1.10.

Hindi na nababawi ng strategy ang peak nito bago ang -2000. Ang maximum drawdown na 20.6% ay lampas sa limit ng kontrata na 15%, at tumatagal nang 7,214 araw ang drawdown. Noong 2000, nalugi ng $17.3k ang strategy, na bumura sa lahat ng kinita noong 1995-1998 (+$16.4k). Mula noon, halos zero ang taunang P&L. Ang 2013-2015 (+$9.7k) lang ang positibong takbo, at matagal na nanatiling cash ang strategy (2007, 2010, 2012, 2016-2018).

Napatunayan ang alalahanin ni QA. Pinapadaan ng gate ang iilang state sa bawat refit, at hindi nananatili ang sign ng mga trade mula rito. Sinusundan ang mga panahong kumita (1996-98, 2013-15) ng mga panahong nalugi (2000, 2011) nang walang pare-parehong asal. Ganyan ang itsura ng ingay mula sa multiple testing, hindi ng matatag na edge sa SMA state.

Pagsusuri

Backtest gate: - Naglabas ang backtest ng ZERO trade — hindi kailanman na-trigger sa totoong data ang kondisyon sa pagpasok

Kasaysayan ng Iterasyon

Opsyonal na pangasiwaan ang on_position_changed kapag nagpalit ang panig, para mailagay muli ang stop anuman ang pagkakasunod-sunod ng pagpuno.

Sa pagbaligtad, isinusumite sa parehong bar ang pagsasara at ang kabaligtarang entry. Inilalagay ang bagong stop sa on_position_opened, at kinakansela ng on_position_closed ang bawat reduce-only order sa instrumento. Gumagana lamang ito dahil napupunan ang pagsasara bago ang bagong entry sa susunod na open, ayon sa developer. Kung entry muna ang punan ng engine, babaligtad ang netting position sa iisang PositionChanged event sa halip na sunod-sunod na pagsasara at pagbubukas, at walang stop ang bagong leg.

Walang kailangang baguhin sa backtest. Para sa paper, isaalang-alang ang pag-init ng buong 1272-bar training window mula sa history sa pagsisimula.

Nakadepende sa uptime ng proseso ang progreso ng training (_train_days at mga Q/count/HAC accumulator) at hindi ito nai-save. Kung mag-restart ang paper node bago mag-freeze, magsisimula muli ang training sa ibang window. Nananatiling naka-save ang mismong string ng frozen policy, kaya hindi naaapektuhan ang node na na-freeze na. Mahalaga lang ito kapag may restart, na hindi kritikal sa beripikasyon.

Wala.

Sadyang itinatakda ng override na min_bars_required sa slow_sma+3, kaya walang epekto rito ang babala sa Layer-1 base_shadow. Hiwalay na pinangangasiwaan ng _train_days ang training gating.

Hindi kailangan ng pagbabago sa code kung ang platform ang naglalagay ng window. Opsyonal na itala ang bilang ng sample sa bawat leg sa oras ng pag-freeze para makita kung kakaunti ang mga sample sa maagang pool.

Gumagamit ang training ng unang 504 naka-align na session na nakikita ng run, saka pinananatiling nakapirmi ang table sa natitirang bahagi nito. Tugma ito sa kontrata (minsan lang mag-refit kada sinusuring window, boundary_policy reset_with_warmup). Gayunman, hindi kailanman binabasa ng code ang parameters.data_start = 1994-01-03. Kung magsisimula ang run nang mas maaga roon (ADBE nagsisimula ang history sa 1986), gagamitin sa training ang anumang leg na nakalista noon, at maaaring mas maliit sa ~3,000 sample ang pool. Sa iisang full-history backtest, pamamahalaan ng isang maagang table ang buong history.

Opsyonal na buuin ang cluster series sa buong session grid (zero sa mga araw na walang state) para maging calendar lags ang mga lag.

Gumagana ang mga Newey-West lag sa _hac_z sa magkakasunod na entry ng pinagsunod-sunod na listahan ng session ng state (mga araw na naganap ang state), hindi sa mga calendar session lag. Tama ang paghawak sa pag-cluster sa parehong araw. Tinatantiya ang serial correlation gamit ang mga kapitbahay sa loob ng state, na maaaring ilang linggo ang pagitan. Ipinauubaya ng hypothesis sa Research Lead ang HAC procedure, kaya katanggap-tanggap itong pagtatantiya, hindi pagkakaiba.

Iwanang gaya nito maliban kung tumukoy ang Research Lead ng cool-off pagkatapos ng stop.

Pagkapuno ng 5% intrabar stop, muling papasok sa parehong panig ang susunod na bar kung L/S pa rin ang state mapping. Hindi tinutukoy ng hypothesis ang mangyayari pagkatapos ng stop, kaya tapat ito rito, ngunit maaaring paulit-ulit na matamaan ng stop sa masamang galaw ng trend.

Walang kailangang baguhin sa code ayon sa kontrata. Dapat isaalang-alang ito ng analyst sa pagbasa sa mga numero ng full history at umasa sa windowed evaluation.

Sa loob ng isang backtest, isang beses lang natututuhan ang policy gamit ang unang 504 naka-align na session at hindi na muling nire-refit (update_during_evaluation=false). Lubos na nakadepende ang pag-refit sa bawat deployment window sa muling pagpapatakbo ng evaluator sa bawat window gamit ang sarili nitong warm-up (boundary_policy reset_with_warmup). Kaya tine-trade ng karaniwang full-history backtest ang policy na 1994-1996 hanggang 2026.

Opsyonal: ilipat ito sa submit_stop_order(..., reduce_only=True, crossed_policy='market') para maging pare-pareho ang kahulugan ng session at venue.

Ang proteksiyon na stop ay isang raw na reduce-only stop_market na ipinadala kasama ng submit_order mula sa on_position_opened. Nasa 5% ang trigger nito mula sa presyo ng open fill, kaya hindi ito nalalampasan kapag inilagay at isa itong wastong intrabar stop. Hindi ito dumadaan sa mga helper na submit_stop_order/_submit_stop_market, kaya nalalampasan ang pangangasiwa ng mga helper sa session-venue. Walang itinakdang emulation_trigger.

Buod ng Resulta

Kapag nire-refit ang natutunang policy gamit ang rolling window at pinananatiling nakapirmi sa pagitan ng mga refit, ebidensiya na ng walk-forward ang karaniwang backtest. Kung wala itong ipinakitang gross edge, gaya rito kung saan nagbabago ang sign ng mga aktibong state sa bawat era, maaga itong iwan sa halip na i-optimize; dapat bagong hypothesis ang ibang pagbasa sa source.

Inabandona ito ng backtest review dahil premise_falsified. Dahil sa quarterly rolling refit, out-of-sample test na ng nakapirming pamamaraan ang backtest, at ipinakita ng test na iyon na walang gross edge (zero ang commissions). Lumabag sa paunang itinakdang limit na 15% ang max drawdown na 20.6%, at hindi na nabawi ng strategy ang peak nitong 1998. Dahil walang parameter na maaaring i-tune, hindi makatutulong ang optimization.

Isang bersiyon para sa Research Lead ng pinagsama-samang ideya ng Q-learning nina Chang, Lizardi at Shah: isang nakapirming tabular Q-table sa 36 na ni-normalize na SMA(5)-SMA(10) na mga estado ng pagkakaiba, pinagsama-sama sa ADBE, AMGN, CSCO, INTC, MSFT at QCOM sa USEQ. Muling iniakma ang talahanayan kada quarter gamit ang nakaraang 504 sesyon at maaari itong pumili ng long, short o cash, na isinasagawa sa susunod na open sa ilalim ng HAC confidence gate.

Nagsagawa ang backtest sa buong kasaysayan ng 1,329 trade para sa +2.86% kabuuang kita, Sharpe na 0.043, profit factor na 1.016, karaniwang trade na 0.033% ng notional at 20.6% pinakamataas na drawdown. Sa pagsusuri ng backtest, na sumaklaw sa 1994-2019, binanggit ang 1,203 trade, +5.7% sa kabuuan, Sharpe na 0.079 (95% CI -0.32 hanggang 0.47) at karaniwang trade na 0.058% kumpara sa USEQ na hangganang 0.05%.

Pagsusuri

Pag-optimize ng mga Kita Gamit ang Hurst Exponent at Q Learning sa mga Estratehiya sa Momentum at Mean Reversion

Pagsusuri

max_drawdown_pct

Nabigo ang backtest o walang ibinalik na ulat

Nabigo ang max_drawdown_pct constraint o walang ebidensiya para rito

mga kandidatong undefined; walang PBO na para lamang sa mga nakaligtas

Ang Stratmill ay isang tool para sa pananaliksik at paper trading, hindi payo sa pananalapi o isang broker. Ang mga resulta ng backtest at paper trading ay hypothetical. May panganib ng pagkalugi ang pangangalakal.