Mga Estratehiya
Tapat na port ng Myquant ADX_DMI_STOCK: per-stock na SMA(5/20) golden cross na kinukumpirma ng tumataas na ADX(14) at +DI>-DI, long-only sa 64 SSE large caps (CNEQ 1-DAY), 6.8% trailing stop mula sa high na ina-arm sa +35%, 6.8% loss stop, 22-day na lockout bago muling pumasok
Resulta: Inabandona
MyquantAdxDmiStockCneq
Buod ng Resulta
Muling nagawa ng MyquantAdxDmiStockCneq ang daily long-only na SMA crossover na may kumpirmasyong ADX/DMI sa 64 Shanghai large caps at dumaan ito sa dalawang iteration. Ipinadala ng pagsusuri sa backtest ang mga naka-freeze na tuntunin para sa chronological validation sa kabila ng balik na 6.80%, Sharpe na 0.133 at drawdown na 34.113% sa 689 saradong trade. Hindi nagdulot ng pagbuti ang mga huling parameter at iniwan ito ng analyst dahil bumagsak sa mahigpit na minimum ng mga positibong taon at lumampas sa nakarehistrong limitasyon ng drawdown. Tinatanggihan ng pasya ang sinubok na nakapirming replika, hindi ang mga konsepto ng ADX/DMI sa pangkalahatan.
Hypothesis
Hiniling ang tapat na port, at katutubong merkado ng source ang CNEQ. CNEQ ang 0.1% ng corpus samantalang BINANCE ang 58.5%, kaya nagdaragdag ito ng pagkakaiba-iba. Ang tanging paglihis ay ang pagsukat ng open_vol mula 5000 tungo sa 500 shares para sa account na 100k. Sadyang hindi isinama ang leverage sa plano ng optimization.
Hindi pumapasa sa mahigpit na kinakailangan sa pagkakapare-pareho kada taon sa kalendaryo ang sinubok na nakapirming replika ng Myquant ADX_DMI_STOCK at lumalampas ito sa nakarehistrong limitasyon sa drawdown. Hindi sapat na dahilan para maglaan ng pondo sa hinaharap ang halos break-even na PF, konsentradong kita at mas mahinang performance kaysa benchmark. Tinatanggihan nito ang nakapirming replika sa sinubok na uniberso ng CNEQ, hindi ang mga konsepto ng ADX/DMI sa pangkalahatan. Lampas sa itinakdang minimum sa ekonomiks na 0.20% ang karaniwang netong kita sa bawat trade na 0.556%; hindi ito pagtanggi dahil sa minimum na bayarin. Hindi dahilan ng pagtanggi ang kawalan ng tiyak na estadistikong konklusyon. Walang naitatag na depekto sa implementasyon o matatag na pagbuti sa OOS, at nakapirmi ang mga halaga ng kontrata.
Implementasyon
Port ng ADX_DMI_STOCK ni Myquant sa 64 Shanghai large caps (CNEQ, 1-DAY bars). Para sa bawat stock, bumibili ang open_vol = 500 shares kapag may SMA5/SMA20 golden cross na may tumataas na ADX(14) at +DI > -DI. Kapag kulang ang cash, bumibili ito ng buong 100-share lot na kasya, at nilalaktawan ang buy kung walang kasya. Pagkatapos ng bawat signal, may 22-trading-day na lockout bago muling pumasok. Mga exit: death cross na may bumababang ADX at -DI > +DI; 6.8% loss stop; at 6.8% trailing stop mula sa pinakamataas na close, na umaandar lamang kapag tumaas na ng 35% ang posisyon. Hindi kailanman ibinebenta sa araw ding binili ang shares (T+1). Napupunan ang market order sa open ng susunod na session.
Inaayos ng Iteration 2 ang pagkabigo ng Layer 3 na cash_overspend. Sanhi: hanggang 64 stock ang maaaring magpasya na bumili sa iisang araw, at bawat isa ay nakakita sa buong malayang balanse dahil hindi nagtatabi ng cash ang NautilusTrader para sa mga market order na hindi pa napupunan. Binabasa ng affordability cap ng batayang template ang balanse ring iyon, at maaaring mas mataas ang next-open fill kaysa sa close na ginamit sa pagpapasya. Ayos: (a) ibinabawas na ngayon sa magagamit na cash ang cash na nakalaan sa mga hindi pa napupunang BUY order ng strategy na ito, gaya ng naka-freeze na cash ng Myquant; inaalis ang reserbasyon kapag wala nang bukas na BUY order sa stock na iyon. (b) Nililimitahan din ang bawat buy sa buong lot na kasya sa magagamit na cash sa close × (1 + fill_gap_reserve) × (1 + taker fee). Tumutugma ang fill_gap_reserve = 0.10 sa pang-araw-araw na price limit ng CNEQ +10%. Hindi binago ang lohika ng signal, stop at exit. Bagong engineering parameter ang fill_gap_reserve; hindi ito puwedeng i-tune at wala ito sa plano ng pananaliksik.
Mga Resulta ng Beripikasyon
Payagan ang mga pasya sa exit sa mismong araw ng fill dahil isinasagawa ang order sa open ng susunod na session at natutupad na ang T+1. Halimbawa, ihambing ang araw ng fill sa araw ng bar gamit ang <=, o alisin ang guard para sa mga pasya sa pagsasara ng bar. Kung hindi, idagdag ito sa mga isiniwalat na paglihis ng port.
Hinaharang ng _sellable() ang anumang exit na pinagpasyahan sa bar ng araw na napunan ang posisyon: ts_opened day < bar day. Sa next-open fill ng platform, napupunan sa open ng D+1 ang buy na pinagpasyahan sa pagsasara ng araw D. Isasagawa sa open ng D+2 ang exit na pinagpasyahan sa pagsasara ng D+1, na pinapayagan ng T+1. Sa source, napupunan ang order sa D, kaya maaaring kumilos ang mga stop sa D+1. Kaya inaantala ng port nang isang session ang exit na pasok sa kondisyon. Sa aktuwal, ang -6.8% loss stop lamang ang maaaring ma-trigger sa araw ng fill: halos imposibleng mangyari sa loob ng isang bar ang trailing stop na armado sa +35% at ang agarang death cross matapos ang golden cross. Kapag na-trigger ang loss stop, itinatakda rin ang day_acted, kaya nilalaktawan ang pagsusuri ng signal para sa bar na iyon. Maliit ang epekto at konserbatibo ang resulta.
Opsyonal na itakda ang panimulang _entry_high mula sa position.avg_px_open sa unang paglitaw ng posisyon.
Itinatakda ang panimulang high ng trailing stop sa pagsasara ng unang bar habang hawak ang posisyon, hindi sa presyo ng fill. Sa mga pagsasara lamang ina-update ang high. Mahalaga lamang ito kapag tumaas na ng 35% ang posisyon, kaya bale-wala ang epekto sa trade.
Walang kailangang baguhin para sa tapat na port. Itala ito para sa pagsusuri ng panganib.
Nakapirming 500 shares ang open_vol, hindi laki na nakabatay sa equity. Ito ang scaling na nakasaad sa hypothesis mula sa 5000 shares ng source sa 1M na cash, kaya tapat ito. Malaki pa rin ang pagbabago ng halagang inilalagak sa bawat entry ayon sa presyo: halimbawa, laging bumabalik sa halagang cash para sa laki ng lot ang 600519 sa humigit-kumulang 1,500+ CNY, samantalang gumagamit ng humigit-kumulang 1.5% ng equity ang 3-CNY bank stock.
Kumita ang smoke run ng +18.9% sa humigit-kumulang 6 taon (CAGR 2.7%, Sharpe na 0.25, PF 1.11), na may beta na 0.66 sa equal-weight basket at alpha na humigit-kumulang 0. 36.4% ang maximum drawdown, lampas sa limitasyong 30% max_drawdown_pct ng kontrata. Ibig sabihin ng 1,851-araw na tagal ng drawdown ay lugi pa ang portfolio sa dulo, at nalugi ng 23% ang calm-vol tercile. Naka-freeze sa kontrata ang bawat parameter kaya walang paraan para mag-tune. Dapat suriin ng analyst ang drawdown sa buong kasaysayan laban sa limitasyong 30% at subukan kung higit pa sa beta ng long basket ang resulta. Humigit-kumulang 5% ng equity ang karaniwang posisyon, ayon sa disenyo (500 shares bawat entry), kaya maihahambing ang ekonomiks kada trade. Higit na mas mataas sa CNEQ na gastos ang karaniwang trade na +1.13%, kaya hindi bayarin ang problema.
Pagsusuri ng Backtest
- Sharpe
- 0.13
- Kabuuang Return
- 6.80%
- Max Drawdown
- 34.11%
- Kabuuang Trade
- 689
- Win Rate
- 27.1%
- Profit Factor
- 1.02
Nagbibigay ang 689 saradong trade ng gumaganang sampol para sa chronological validation gamit ang mga nakapirming tuntunin. Long ang lahat ng naitalang posisyon, walang nagsara sa araw ng entry, at sumusunod ang dami sa fallback na lot na 100 shares.
Ang karaniwang netong kita sa bawat trade ay 0.556%, lampas sa minimum na 0.15% CNEQ sa pagsusuri. Walang naitatag na depekto sa implementasyon o accounting.
Mahina ang pinagsama-samang performance: PF 1.018, Sharpe na 0.133 at kabuuang balik na 6.80%. Humigit-kumulang 4.059 percentage point ang hindi pa narerealisa.
Nananatili ang mga alalahanin sa QA: beta na 0.661, negatibong alpha at information ratio, at drawdown na 34.113% laban sa idineklarang limitasyong 30%. Nagbalik ang benchmark ng 20.78%, na may humigit-kumulang 23.44% drawdown sa detalyadong sinampol na kurba.
Naka-freeze ang bawat parameter ng kontrata. Magpatuloy sa validation gamit ang mga nakapirming halaga sa halip na mag-tune; kailangang lutasin ang idineklarang paglabag sa panganib bago ito maisulong.
Pagsusuri
Long ang lahat ng 689 saradong trade, walang exit sa parehong araw, at wasto ang pagtatalaga ng laki ng lot na 100 shares. Nagkakatugma ang accounting.
Ang karaniwang netong kita sa bawat trade ay 0.556%, lampas sa itinakdang 0.20% na hangganan sa ekonomiks. Walang matitinding pagbabago sa sensitivity.
Bigo ang itinakdang minimum kada taon: 5 lamang sa 9 taong may exposure ang positibo, laban sa hinihinging 60%.
34.113% ang drawdown laban sa nakarehistrong limitasyong 30%. PF ay 1.018, Calmar ay 0.0224, at nag-aambag ang 2024 ng 155% sa netong kita.
6.80% ang balik ng strategy kumpara sa 20.78% ng equal-weight basket; drawdown na 34.11% ito kumpara sa humigit-kumulang 23.44% sa sinampolang kurba ng benchmark. Negatibo ang alpha at information ratio.
Hindi nagdulot ng pagbuti ang mga huling parameter; kapareho ang baseline na resulta. Walang tiyak na konklusyon sa pooled OOS at sa kabuluhan ng holdout; hindi ito ebidensiyang pinabulaanan. Nananatiling estadistikong tugma sa OOS ang pagpapanatili ng 22.4% sa holdout.
Babala: hindi pa narerealisa sa katapusan ng backtest ang 4.059 percentage point ng headline na 6.802%; humigit-kumulang CNY 2,815 ang PnL ng mga saradong trade.
Mas mataas kaysa sa mga hula ang bilang ng trade sa buong kasaysayan at kita bawat trade; mas mababa naman ang win rate at kabuuang balik. Humigit-kumulang 0.392 ang pooled OOS Sharpe, lampas sa hinulaang 0.3 sa ibang saklaw ng ebidensiya, ngunit hindi pa ito napatutunayan. Ang hindi pagtugma sa hula ay hindi mga minimum para itakwil ang resulta.
mahigpit na ipinatupad
walang tiyak na konklusyon
Kasaysayan ng Iterasyon
Bumagsak ang verification (Layer 3 — sandbox backtest): cash_overspend: itinigil ng NautilusTrader ang backtest sa 2020-06-04 01:30:00+00:00 dahil naging negatibo ang balanse ng CASH (spot) account. Mas malaki sa magagamit na cash ang halaga ng order, kasama ang komisyon. Itakda ang laki ng buy batay sa free cash / (price x (1 + taker fee)), o gamitin ang mga entry helper ng FactoryStrategy na naglilimita ng spot buy sa halagang kayang bayaran ng account. Uri ng bar na ginamit: 600000.CNEQ-1-DAY-LAST-EXTERNAL, Mga naprosesong bar: 0 Tiyaking nakakagawa ng mga trade ang strategy mo gamit ang ibinigay na data at mga parameter.
Buod ng Resulta
Hindi pinatutunayan ng pag-abot sa minimum na kita sa bawat trade ang pagiging viable ng portfolio kung bumagsak ang pagkakapare-pareho kada taon sa kalendaryo at ang nakarehistrong limitasyon sa drawdown.
Iniwan ng analyst ang nakapirming replika dahil 5 lamang sa 9 taong may exposure ang positibo (55.6% kumpara sa mahigpit na minimum na 60%), at lumampas ang drawdown sa nakarehistrong limitasyong 30%. Pumasa ang ekonomiks ng bayarin; hindi dahilan ng pagtanggi ang walang tiyak na konklusyon sa OOS at kabuluhan sa holdout, at hindi umabot sa pagsusuri ng panganib.
Tapat nitong isinalin sa 64 Shanghai large caps noong CNEQ ang long-only na daily SMA(5/20) crossover strategy ni Myquant, at kinumpirma ang mga entry gamit ang tumataas na ADX(14) at +DI na mas mataas sa -DI.
Nagbalik ang backtest ng 6.80% na may Sharpe na 0.133 sa 689 saradong trade, maximum drawdown na 34.113% at profit factor na 1.018. Ang karaniwang netong kita sa bawat trade ay 0.556%, samantalang 20.78% ang balik ng equal-weight benchmark; hindi pa narerealisa ang 4.059 percentage point ng kita ng strategy.
Pagsusuri
ADX_DMI_STOCK
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.