Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

Momentum sa Pagbuo na Nilaktawan ang Isang Buwan: Long-Short US mga ETF ng Sektor

Resulta: Inabandona

SkippedMonthSectorMomentum

Buod ng Resulta

Sinubukan ng SkippedMonthSectorMomentum kung hinuhulaan ng momentum sa pagbuo na lumalaktaw ng isang buwan sa walong sector ETF na US ang susunod na 21 session, gamit ang librong top-2 long / bottom-2 short. Sa 3 pag-ulit, hindi pumasa ang code sa pagsusuri ng Layer 4 QA. Sinukat ng lohika ng rotation ang mga bagong leg habang isinasagawa pa ang pagsasara sa lumang cohort at umasa sa muling pagpasok sa eksaktong timestamp, kaya hindi buo at hindi balanse ang mga cohort. Itinuring na hindi kumakatawan sa hypothesis ang nag-iisang sukat sa sandbox (Sharpe -0.02, PF 0.98, -0.125% bawat posisyon sa 178 posisyon). Inabandona ang run bago ang pagsusuri ng backtest, pag-optimize, at mga yugto ng analyst o risk.

Hypothesis

Subukan kung hihigitan ng mga nangungunang sektor ang mga nahuhuling sektor sa susunod na 21 trading session batay sa panahon ng pagbuo na tumatagal ng maraming buwan. I-trade ang walong likidong sector ETF na US gamit ang magkakasabay na daily bar: bilhin ang dalawang sektor na may pinakamataas na ranggo at i-short ang dalawang may pinakamababa. Alisin ang pinakahuling 21 session sa mga kita sa panahon ng pagbuo upang ihiwalay ang pananatili ng momentum sa katamtamang panahon sa agarang pagbaligtad. Pag-aangkop ito, hindi pagkopya sa orihinal na pag-aaral sa mga decile ng stock. Suriin ang mga kasunod na maisasagawang kita, hindi ang mga average sa panahon ng pagbuo na ipinakita sa source.

May kongkretong mekanismo ng cross-sectional momentum ang source. Hindi sinasadyang ine-exponentiate ng orihinal na code ang mga indibidwal na log return sa halip na ang rolling sum ng mga ito, samantalang dapat magkahiwalay na maganap ang pagraranggo sa bawat petsa. Panatilihin ang mga itinamang mekanikang ito at subukan ang bersiyong pangsektor na lumalaktaw ng isang buwan. Long-only exposure ang pinakamalaking kawalan ng balanse sa portfolio sa 83.2%; nagdaragdag ang panukalang ito ng long-short at exposure sa……Magpakita ng higit paMagpakita ng mas kaunti

May kongkretong mekanismo ng cross-sectional momentum ang source. Hindi sinasadyang ine-exponentiate ng orihinal na code ang mga indibidwal na log return sa halip na ang rolling sum ng mga ito, samantalang dapat magkahiwalay na maganap ang pagraranggo sa bawat petsa. Panatilihin ang mga itinamang mekanikang ito at subukan ang bersiyong pangsektor na lumalaktaw ng isang buwan. Long-only exposure ang pinakamalaking kawalan ng balanse sa portfolio sa 83.2%; nagdaragdag ang panukalang ito ng long-short at exposure sa maraming instrumento. Kulang ang timbang ng Hyperliquid, ngunit mayroon na roon ng rotation batay sa relatibong lakas. Paulit-ulit na pumapalya sa estruktura ang mga panukala sa options. Naiiba ang pagraranggo batay sa kita ng sektor sa panahon ng pagbuo sa pag-angkla sa pinakamataas na presyo sa loob ng 52 linggo at sa mga pumalyang pagpasok ayon sa kalendaryo. Iskedyul sa pagpapatakbo ang muling pagbabalanse, hindi sinasabing may anomalya sa kalendaryo. Hindi alam ang konsentrasyon ng corpus, kaya hindi maaaring igiit na bihirang ginamit noon ang mga partikular na instrumentong ito.

verification_loop: Pumalya ang beripikasyon (Layer 4 — pagsusuri ng QA) [class=code_defect]: - [edge_concern] Paunang smoke test (hindi in-optimize, formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, -0.125% bawat posisyon; halos walang edge matapos ang gastos sa pangungutang. Dahil sa depekto sa ibaba, hindi nito sinukat ang hypothesis ayon sa itinakda dahil hindi buo at kulang sa laki ang mga cohort. Sukatin muli matapos ayusin bago bigyang-kahulugan ang resulta. Mahaba rin ang runtime: 249 s para sa……Magpakita ng higit paMagpakita ng mas kaunti

verification_loop: Pumalya ang beripikasyon (Layer 4 — pagsusuri ng QA) [class=code_defect]: - [edge_concern] Paunang smoke test (hindi in-optimize, formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, -0.125% bawat posisyon; halos walang edge matapos ang gastos sa pangungutang. Dahil sa depekto sa ibaba, hindi nito sinukat ang hypothesis ayon sa itinakda dahil hindi buo at kulang sa laki ang mga cohort. Sukatin muli matapos ayusin bago bigyang-kahulugan ang resulta. Mahaba rin ang runtime: 249 s para sa 1,653 daily bar sa 8 pangalan, at tinatayang ~949 s para sa buong kasaysayan. Di-inaasahang mabagal ito para sa O(8) na loop sa bawat bar at dapat itong i-profile. - [kritikal] Hindi muling binubuo ng rotation ang cohort na 2 long/2 short. Sa calculate_signal, ipinapadala ang close_position para sa mga lumang leg, saka agad tinatawag ang _open_pending(). Nagkukuwera ng mga command ang SimulatedExchange ng backtest (use_message_queue), at may latency_ms=100 ang USEQ, kaya wala pang napupunan sa mga pagsasara. (a) Mga bagong piniling pangalan: kasama pa rin sa `gross` ang buong lumang cohort (~0.6 x equity), kaya ~0 ang `budget - gross`. Dahil dito, nagiging 0 ang notional (bit CLEARED, kaya inaalis ang leg sa buong siklong 21 session) o natitira lamang ang bahagi nito (kulang ang laki ng leg). (b) Mga pangalang hawak na at muling napili: pinananatili ang bit ng mga ito (`continue`) at nilalayong muling pumasok mula sa on_position_closed. Ngunit mapupunan ang pagsasara sa rotation_ts + 100 ms, kaya maagang nagbabalik ang `self.clock.timestamp_ns() != self._rotation_ts`, at walang tumatawag sa _open_pending bago ang susunod na rotation. Mananatiling walang posisyon ang mga pangalang iyon sa buong cycle. Bunga nito, pagkatapos ng unang rotation, nagpapalit-palit ang libro sa buo, bahagya o walang laman na mga cohort, at hindi balanse ang long at short batay sa dolyar. Makikita ito sa sandbox. Humigit-kumulang 65 rotation x 4 leg ≈ 260 posisyon ang inaasahan, ngunit 178 lang ang naitala; ang avg_position_pct ay 13.7% kumpara sa target na 15%. Hindi ang aktuwal na tine-trade ang hypothesis (top-2 long / bottom-2 short tuwing 21 session). (linya 168) — ayusin: Gumamit ng permanenteng estado ng rotation sa halip na pagtutugma ng eksaktong timestamp. Panatilihin ang mga nakabinbing bit hanggang sa susunod na rotation. Sa pagkalkula ng `gross`, huwag isama ang mga posisyong may nakabinbing reduce-only na pagsasara (pinapalitan ang mga ito). Sukatin ang bawat leg batay sa _rotation_equity * leg_equity_fraction. Sa on_position_closed, at bilang fallback sa simula ng bawat pangunahing bar, tawagin ang _open_pending kapag may natitirang bit at wala nang pagsasara ng naunang cohort na isinasagawa. Alisin ang guard na `clock == _rotation_ts`, o palitan ito ng 'parehong rotation bucket'. I-clear lang ang bit kapag naisumite na talaga ang order, o kapag ang laki ay - [babala] Permanente ang paghinto dahil sa drawdown ng portfolio (15%) sa natitirang bahagi ng run, nang walang muling pagsisimula. Sa 25-taong backtest, maaaring tuluyang magwakas ang trading dahil sa isang drawdown at lumiit ang sample. Tugma ito sa nakasaad na paglalarawan, kaya babala lamang ito, ngunit dapat malaman ng analyst kung naganap ang paghinto. (linya 133) — ayusin: Itala ang petsa ng paghinto. Isaalang-alang ang muling pagsisimula sa susunod na rotation kapag nakabawi ang equity, o ang panahon ng paghinto batay sa mga session, kung pinahihintulutan ito ng hypothesis. - [babala] Para sa mga petsang wala sa ibinigay na talahanayan ng pagsasara na XNYS, ginagamit ang bilang ng mga weekday. Iba ang pagnunumero ng session sa fallback na iyon, kaya lumilipat ang yugto ng rotation sa hangganan ng talahanayan (bago ang 1998 / pagkatapos ng 2030). Hindi ito nakaaapekto sa sandbox o sa saklaw ng backtest. (linya 117) — ayusin: Katanggap-tanggap muna ito. Palawakin ang talahanayan, o gamitin ang src/data/market_calendar kung maaari itong i-import, upang manatiling tuloy-tuloy ang yugto.

Implementasyon

Estratehiya sa momentum ng sektor sa 8 SPDR ETF ng sektor gamit ang daily USEQ bar. Niraranggo ang bawat ETF batay sa return sa panahon ng pagbuo: ratio ng endpoint price sa loob ng formation_sessions, hindi kasama ang pinakahuling 21 session. Tuwing 21 XNYS session, ayon sa iskedyul na nakatali sa kalendaryo, isinasara ng strategy ang lahat ng leg, binibili ang mga ETF na kabilang sa nangungunang 2 at sini-short ang mga kabilang sa pinakamababang 2. Katumbas ng 15% ng equity ang bawat leg (60% gross). May 12% stop ang bawat leg na nakabinbin sa venue, at pinatitigil ng drawdown ng portfolio na 15% ang trading.

Inaayos ng Iteration 3 ang pagkabigo sa Layer 2. May mga timestamp ang mga sintetikong test bar na wala sa ibinigay na talahanayan ng pagsasara ng XNYS, at nagtaas ang strategy ng ValueError para sa mga ito. Ang mga petsang wala sa talahanayan ay itinatakda na ngayon sa numero ng sesyon na binibilang batay sa mga araw ng trabaho. Nakadepende lamang ang numerong iyon sa timestamp ng bar, kaya nagtutugma pa rin ang mga restart, backtest at paper. Pinananatili ng mga petsang nasa talahanayan ang eksaktong grid ng sesyon ng XNYS. Wala nang ibang binago.

Mga Resulta ng Beripikasyon

Pumalya ang beripikasyon (Layer 4 — pagsusuri ng QA) [class=code_defect]: - [edge_concern] Paunang smoke test (hindi in-optimize, formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, -0.125% bawat posisyon; halos walang edge matapos ang gastos sa pangungutang. Dahil sa depekto sa ibaba, hindi nito sinukat ang hypothesis ayon sa itinakda dahil hindi buo at kulang sa laki ang mga cohort. Sukatin muli matapos ayusin bago bigyang-kahulugan ang resulta. Mahaba rin ang runtime: 249 s para sa 1,653 daily bar sa……Magpakita ng higit paMagpakita ng mas kaunti

Pumalya ang beripikasyon (Layer 4 — pagsusuri ng QA) [class=code_defect]: - [edge_concern] Paunang smoke test (hindi in-optimize, formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, -0.125% bawat posisyon; halos walang edge matapos ang gastos sa pangungutang. Dahil sa depekto sa ibaba, hindi nito sinukat ang hypothesis ayon sa itinakda dahil hindi buo at kulang sa laki ang mga cohort. Sukatin muli matapos ayusin bago bigyang-kahulugan ang resulta. Mahaba rin ang runtime: 249 s para sa 1,653 daily bar sa 8 pangalan, at tinatayang ~949 s para sa buong kasaysayan. Di-inaasahang mabagal ito para sa O(8) na loop sa bawat bar at dapat itong i-profile. - [kritikal] Hindi muling binubuo ng rotation ang cohort na 2 long/2 short. Sa calculate_signal, ipinapadala ang close_position para sa mga lumang leg, saka agad tinatawag ang _open_pending(). Nagkukuwera ng mga command ang SimulatedExchange ng backtest (use_message_queue), at may latency_ms=100 ang USEQ, kaya wala pang napupunan sa mga pagsasara. (a) Mga bagong piniling pangalan: kasama pa rin sa `gross` ang buong lumang cohort (~0.6 x equity), kaya ~0 ang `budget - gross`. Dahil dito, nagiging 0 ang notional (bit CLEARED, kaya inaalis ang leg sa buong siklong 21 session) o natitira lamang ang bahagi nito (kulang ang laki ng leg). (b) Mga pangalang hawak na at muling napili: pinananatili ang bit ng mga ito (`continue`) at nilalayong muling pumasok mula sa on_position_closed. Ngunit mapupunan ang pagsasara sa rotation_ts + 100 ms, kaya maagang nagbabalik ang `self.clock.timestamp_ns() != self._rotation_ts`, at walang tumatawag sa _open_pending bago ang susunod na rotation. Mananatiling walang posisyon ang mga pangalang iyon sa buong cycle. Bunga nito, pagkatapos ng unang rotation, nagpapalit-palit ang libro sa buo, bahagya o walang laman na mga cohort, at hindi balanse ang long at short batay sa dolyar. Makikita ito sa sandbox. Humigit-kumulang 65 rotation x 4 leg ≈ 260 posisyon ang inaasahan, ngunit 178 lang ang naitala; ang avg_position_pct ay 13.7% kumpara sa target na 15%. Hindi ang aktuwal na tine-trade ang hypothesis (top-2 long / bottom-2 short tuwing 21 session). (linya 168) — ayusin: Gumamit ng permanenteng estado ng rotation sa halip na pagtutugma ng eksaktong timestamp. Panatilihin ang mga nakabinbing bit hanggang sa susunod na rotation. Sa pagkalkula ng `gross`, huwag isama ang mga posisyong may nakabinbing reduce-only na pagsasara (pinapalitan ang mga ito). Sukatin ang bawat leg batay sa _rotation_equity * leg_equity_fraction. Sa on_position_closed, at bilang fallback sa simula ng bawat pangunahing bar, tawagin ang _open_pending kapag may natitirang bit at wala nang pagsasara ng naunang cohort na isinasagawa. Alisin ang guard na `clock == _rotation_ts`, o palitan ito ng 'parehong rotation bucket'. I-clear lang ang bit kapag naisumite na talaga ang order, o kapag ang laki ay - [babala] Permanente ang paghinto dahil sa drawdown ng portfolio (15%) sa natitirang bahagi ng run, nang walang muling pagsisimula. Sa 25-taong backtest, maaaring tuluyang magwakas ang trading dahil sa isang drawdown at lumiit ang sample. Tugma ito sa nakasaad na paglalarawan, kaya babala lamang ito, ngunit dapat malaman ng analyst kung naganap ang paghinto. (linya 133) — ayusin: Itala ang petsa ng paghinto. Isaalang-alang ang muling pagsisimula sa susunod na rotation kapag nakabawi ang equity, o ang panahon ng paghinto batay sa mga session, kung pinahihintulutan ito ng hypothesis. - [babala] Para sa mga petsang wala sa ibinigay na talahanayan ng pagsasara na XNYS, ginagamit ang bilang ng mga weekday. Iba ang pagnunumero ng session sa fallback na iyon, kaya lumilipat ang yugto ng rotation sa hangganan ng talahanayan (bago ang 1998 / pagkatapos ng 2030). Hindi ito nakaaapekto sa sandbox o sa saklaw ng backtest. (linya 117) — ayusin: Katanggap-tanggap muna ito. Palawakin ang talahanayan, o gamitin ang src/data/market_calendar kung maaari itong i-import, upang manatiling tuloy-tuloy ang yugto.

Kasaysayan ng Iterasyon

Pumalya ang beripikasyon (Layer 1.5 — pagkakatugma ng hypothesis/config) [class=hypothesis_mismatch]: - Inaayos ng optimization_plan ang leverage sa 1.0

Pumalya ang beripikasyon (Layer 2 — mga sintetikong sitwasyon): Mga ginamit na parameter: ['leverage', 'min_notional', 'skip_sessions', 'stop_loss_pct', '_optimization_plan', 'formation_sessions', 'max_gross_exposure', 'rebalance_sessions', 'leg_equity_fraction', 'xnys_closure_offsets', 'selection_count_per_side', 'portfolio_drawdown_stop_pct'] Tiyaking itinatakda ng __init__ ang lahat ng attribute mula sa self.parameters.get(). - steady_uptrend: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS;……Magpakita ng higit paMagpakita ng mas kaunti

Pumalya ang beripikasyon (Layer 2 — mga sintetikong sitwasyon): Mga ginamit na parameter: ['leverage', 'min_notional', 'skip_sessions', 'stop_loss_pct', '_optimization_plan', 'formation_sessions', 'max_gross_exposure', 'rebalance_sessions', 'leg_equity_fraction', 'xnys_closure_offsets', 'selection_count_per_side', 'portfolio_drawdown_stop_pct'] Tiyaking itinatakda ng __init__ ang lahat ng attribute mula sa self.parameters.get(). - steady_uptrend: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS; i-refresh ang metadata ng kalendaryo (timestamp ng bar: 1735705980000) - steady_downtrend: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS; i-refresh ang metadata ng kalendaryo (timestamp ng bar: 1735705980000) - flat_ranging: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS; i-refresh ang metadata ng kalendaryo (timestamp ng bar: 1735705980000) - volatility_spike: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS; i-refresh ang metadata ng kalendaryo (timestamp ng bar: 1735705980000) - zero_volume: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS; i-refresh ang metadata ng kalendaryo (timestamp ng bar: 1735705980000) - price_gap: ValueError: Wala ang session sa ibinigay na kalendaryong XNYS; i-refresh ang metadata ng kalendaryo (timestamp ng bar: 1735705980000)

Buod ng Resulta

Sa mga event-driven na rotation na may maraming leg, panatilihin ang estado ng rotation sa magkakasunod na bar at sukatin ang mga bagong leg batay sa equity ng rotation, hindi kasama ang mga posisyong kasalukuyang isinasara; huwag ipagpalagay na mapupunan ang mga pagsasara sa mismong timestamp ng pagpapadala sa mga ito.

Matapos ang 3 pag-ulit, inabandona ang run sa verification loop dahil pumalya sa kritikal na depekto sa code ang pagsusuri ng Layer 4 QA. Hindi muling binuo ng rotation ang cohort na 2 long/2 short: hindi pa tapos ang mga pagsasara sa ilalim ng latency na 100 ms USEQ nang sukatin ang mga bagong leg at suriin ang muling pagpasok sa eksaktong timestamp. Dahil dito, may mga leg na naalis o kulang ang laki (178 posisyon kumpara sa inaasahang humigit-kumulang 260, 13.7% average na posisyon kumpara sa target na 15%) at hindi balanse ang libro batay sa halaga ng dolyar.

Mag-long sa dalawang ETF ng sektor na may pinakamalakas na return sa pagbuo sa loob ng maraming buwan, at mag-short sa dalawang may pinakamahina (US sa walo). Laktawan ang pinakahuling 21 session at mag-rebalance tuwing 21 trading session upang makuha ang momentum ng sektor sa katamtamang panahon, hiwalay sa panandaliang pagbaligtad.

Walang naitalang buong backtest o optimization. Ang tanging ebidensiya ng performance ay ang QA hindi inoptimize na smoke test sa sandbox (formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, at -0.125% bawat posisyon. Sinabi ng QA na hindi nito sinukat ang hypothesis dahil bahagya lamang ang mga cohort at kulang ang laki ng mga ito.

Dahilan ng Pag-abandona

verification_loop: Nabigo ang beripikasyon (Layer 4 — pagsusuri ng QA) [class=code_defect]: - [edge_concern] Paunang pagsubok (hindi inoptimize, formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, -0.125% bawat posisyon; halos walang lamang matapos ibawas ang mga gastos sa paghiram. Dahil sa depektong nasa ibaba, hindi nito sinukat ang hypothesis ayon sa itinakda, sapagkat hindi kumpleto at kulang sa laki ang mga cohort. Sukatin muli pagkatapos ng pag-aayos bago bigyang-kahulugan ang anumang resulta.……Magpakita ng higit paMagpakita ng mas kaunti

verification_loop: Nabigo ang beripikasyon (Layer 4 — pagsusuri ng QA) [class=code_defect]: - [edge_concern] Paunang pagsubok (hindi inoptimize, formation=126): 178 saradong posisyon, PF 0.98, Sharpe -0.02, -0.125% bawat posisyon; halos walang lamang matapos ibawas ang mga gastos sa paghiram. Dahil sa depektong nasa ibaba, hindi nito sinukat ang hypothesis ayon sa itinakda, sapagkat hindi kumpleto at kulang sa laki ang mga cohort. Sukatin muli pagkatapos ng pag-aayos bago bigyang-kahulugan ang anumang resulta. Mataas din ang oras ng pagpapatakbo: 249 s para sa 1,653 pang-araw-araw na bar sa 8 pangalan, at tinatayang ~949 s para sa buong kasaysayan. Para sa loop na O(8) na umuulit sa bawat bar, di-inaasahang mabagal ito at dapat suriin ang pagganap. - [critical] Hindi muling binubuo ng rotation ang cohort na 2 long/2 short. Sa calculate_signal, isinusumite ang close_position para sa mga lumang leg, saka agad tinatawag ang _open_pending(). Pumipila ng mga utos ang SimulatedExchange sa backtest (use_message_queue), at ang USEQ ay may latency_ms=100, kaya wala pang naisagawang pagsasara. (a) Mga bagong piniling pangalan: kasama pa rin sa `gross` ang buong lumang cohort (~0.6 x equity), kaya nasa ~0 ang `budget - gross`. Dahil dito, 0 ang notional (bit CLEARED, kaya inaalis ang leg sa buong siklo na 21 sesyon) o natitira lamang ang bahagi nito (kulang ang laki ng leg). (b) Mga pangalang dati nang hawak at muling napili: pinananatili ang bit ng mga ito (`continue`) at nilalayong pumasok muli mula sa on_position_closed. Ngunit napupunan ang pagsasara sa rotation_ts + 100 ms, kaya maagang bumabalik ang `self.clock.timestamp_ns() != self._rotation_ts`, at walang tumatawag sa _open_pending bago ang susunod na rotation. Nananatiling walang posisyon ang mga pangalang iyon sa buong siklo. Epekto: pagkatapos ng unang rotation, salit-salit na buo, bahagya, o walang laman ang mga cohort sa book, at hindi magkatimbang sa dolyar ang long at short. Ipinapakita ito ng sandbox. Tinatayang 65 rotation x 4 leg ≈ 260 inaasahang posisyon, ngunit 178 lamang ang naitala, at ang avg_position_pct ay 13.7% kumpara sa target na 15%. Hindi ang hypothesis (top-2 long / bottom-2 short tuwing 21 sesyon) ang aktuwal na naitatrade. (line 168) — pag-aayos: Gumamit ng nagpapatuloy na estado ng rotation sa halip na pagtutugma sa eksaktong timestamp. Panatilihin ang mga nakabinbing bit hanggang sa susunod na rotation. Sa pagkukuwenta ng `gross`, huwag isama ang mga posisyong may nakabinbing reduce-only na pagsasara (pinapalitan ang mga ito). Ibase ang laki ng bawat leg sa _rotation_equity * leg_equity_fraction. Sa on_position_closed, at bilang fallback sa simula ng bawat pangunahing bar, tawagin ang _open_pending kapag may natitira pang bit at wala nang pagsasara ng naunang cohort na isinasagawa. Alisin ang guard na `clock == _rotation_ts`, o palitan ito ng 'kaparehong rotation bucket'. I-clear lamang ang isang bit kapag aktuwal nang naisumite ang isang order, o kapag ang laki ay - [warning] Permanente ang paghinto dahil sa pagbaba ng portfolio (15%) hanggang sa matapos ang run, at walang muling pag-activate. Sa backtest na 25 taon, maaaring tuluyang magpatigil sa trading ang iisang pagbaba ng halaga, na nagpapaliit sa sample. Alinsunod ito sa nakasaad na paglalarawan, kaya babala lamang ito, ngunit dapat malaman ng analyst kung na-trigger ang paghinto. (line 133) — pag-aayos: Itala ang petsa ng paghinto. Isaalang-alang ang muling pag-activate sa susunod na rotation kapag nakabawi na ang equity, o magtakda ng panahong pahinga na sinusukat sa mga sesyon, kung pinahihintulutan ito ng hypothesis. - [warning] Para sa mga petsang wala sa ibinigay na talaan ng pagsasara ng XNYS, gumagamit ng bilang ng mga araw ng trabaho bilang fallback. Iba ang pagnunumero ng sesyon sa fallback na iyon, kaya lumulundag ang yugto ng rotation sa hangganan ng talaan (bago ang 1998 / pagkatapos ng 2030). Hindi nito naaapektuhan ang sandbox o ang panahon ng backtest. (line 117) — pag-aayos: Katanggap-tanggap muna ito. Palawakin ang talaan, o gamitin ang src/data/market_calendar kung maaari itong i-import, upang manatiling tuloy-tuloy ang yugto.

Pagsusuri

pag-uulit ng momentum strategy - Mga Panahon ng Formation

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.