Mga Estratehiya
Tapat na port ng Myquant KDJ_STOCK: arawang slow-stochastic (5,3,3), bumili kapag oversold at magbenta kapag overbought, may 22-araw na cooldown bago muling pumasok, stop na 6.8%, at trailing profit stop na ina-activate sa 20% 6.8%; long-only sa malalaking A-share ng 10 CNEQ
Resulta: Inabandona
MyquantKdjStockCneq
Buod ng Resulta
Pagkaraan ng dalawang ulit, sinubukan ng MyquantKdjStockCneq ang nakapirming pag-aangkop sa 10 stock gamit ang fill sa bukas ng susunod na session, na naiiba sa execution sa parehong pagsasara ng hypothesis. Nagbalik ito ng 8.29% sa 658 nagsarang trade, na may Sharpe na 0.186 at karaniwang netong kita bawat trade na 0.1127%. Naipagtugma ang mga komisyon, pero itinigil ng pagsusuri sa backtest ang strategy dahil mas mababa sa minimum na 0.15% sa pagsusuri ang netong kita bawat trade. Hindi naabot ang optimization at mga susunod na yugto.
Hypothesis
Inilipat sa CNEQ dahil strategy ito para sa A-share stock (CSI 800 benchmark, lot na tig-100 share, lohika ng T+1 volume_today). Hindi rin gaanong nagagamit ang CNEQ (0.3% ng corpus), at naiiba ang pagbaligtad ng oversold oscillator na may cooldown sa mga kamakailang pagkabigo ng trend-following na BCH/LTC/XLM. Walang ginagamit na BTC o instrumentong Binance.
Tanggihan ang pag-aangkop ng Myquant KDJ_STOCK na ito sa nakapirming pool gamit ang fill sa susunod na bukas na CNEQ, hindi ang stock pool ng may-akda na hindi ibinigay o ang mga resultang inaangkin niya. Sa 658 trade, 0.1127% ang karaniwang netong kita bawat trade kumpara sa minimum na 0.15% sa pagsusuri. Positibo ang inaasahang kita pero kulang sa hinihinging puwang sa ekonomiya matapos ang mga gastos. Kumpirmado ang alalahanin ni QA tungkol sa ekonomiya; hindi ang alalahanin nito sa nawawalang komisyon. Walang natukoy na depekto sa implementasyon na sapat na batayan para umulit. Hindi sapat ang baseline na mas mababa sa minimum para mag-optimize; hindi inaangking pinatutunayan ng hindi pa naisagawang sweep ng parameter na malulugi ang bawat pagsasaayos.
Implementasyon
Port ng KDJ_STOCK sa malalaking China A-share na 10 (CNEQ venue) gamit ang daily bar. Hiwalay na tine-trade ang bawat stock. Kinukuwenta nito ang slow stochastic, STOCH(5, 3 SMA, 3 SMA), sa loob ng 30 bar. Bumibili ito ng 10% ng equity sa lot na tig-100 share kapag mas mababa sa 25 ang slowK o mas mababa sa 25 ang slowD, kung walang hawak na posisyon sa stock at wala ito sa 22-araw na lockout bago muling pumasok. Nagbebenta kapag mas mataas sa 75 ang slowK o mas mataas sa 75 ang slowD. Dalawang stop na batay sa pagsasara ang inilalapat din: stop sa pagkalugi na 6.8%, at trailing stop na 6.8% mula sa pinakamataas na pagsasara na magiging aktibo lamang kapag umabot sa 20% ang kita ng posisyon. Hanggang isang aksyon lang bawat stock bawat araw. Nagpapasya sa pagsasara ng nakumpletong daily bar at nagsasagawa ng market order sa bukas ng susunod na session.
Mga Resulta ng Beripikasyon
Operator: itugma ang pagsingil ng bayad na CNEQ sa BacktestRunner._apply_fees bago pagkatiwalaan ang ekonomiya ng buong backtest.
Iniulat ng sandbox na total_commission = 0.0 sa CNEQ kahit may nakatakdang bayad na 0.05% bawat panig. Isyu ito sa pagsingil ng bayad ng platform sa CNEQ CASH account, hindi sa code ng strategy, pero pinalalaki nito nang humigit-kumulang 0.10% bawat round trip ang netong kita.
Kumpirmahin ang panimulang halaga ng orihinal na counter at itugma ito nang eksakto.
Nagsisimula sa 0 ang bilang ng re-entry lockout sa pagpasok at binubura ito kapag umabot na sa open_max_days sa pagpalit ng araw, kaya humigit-kumulang open_max_days+1 araw ng trading ang tagal. Kung itinatakda ng orihinal ang dict_open_cum_days sa 1, magkukulang ng isang araw ang panahong ito. Hindi ito mahalaga sa mekanismo, at maaaring i-tune ang open_max_days.
Research Lead: baguhin ang kontrata para sabihing 'magpasya sa nakumpletong pagsasara, magsagawa sa bukas ng susunod na session'.
Sinasabi pa rin sa teksto ng hypothesis, adaptation (2), na nangyayari ang fill sa pagsasara ng decision bar. Tama ang code na nagpapasya sa pagsasara at nagpupuno sa bukas ng susunod na session, alinsunod sa tuntunin ng platform para sa CNEQ, at dokumentado ang paglihis. Walang hindi pagtutugma, luma lang ang pananalita ng hypothesis.
Smoke run: 495 nagsarang trade, avg_trade_return_pct 0.099%, PF 1.04, Sharpe 0.12. Mas mababa ito sa minimum na 0.15% sa pagsusuri. Pabor pa nga ito sa strategy: total_commission ay 0 kahit nakatakda ang CNEQ sa 0.05% bawat panig, kaya kulang nang humigit-kumulang 0.10% sa round trip at mga 0% ang tunay na neto. Umaabot na sa 35% ng gross ang impact. Dapat itugma ng analyst ang pagsingil ng bayad na CNEQ (nauna nang na-flag ang parehong isyu sa platform para sa ShanghaiMaCompressionKdjBasket) bago basahin ang buong backtest, at asahang ang minimum na bayad ang magiging mapagpasiyang pagsubok.
Pagsusuri ng Backtest
- Sharpe
- 0.19
- Kabuuang Return
- 8.29%
- Max Drawdown
- 9.82%
- Kabuuang Trade
- 658
- Win Rate
- 60.9%
- Profit Factor
- 1.07
658 nagsarang trade sa lahat ng 10 stock; long lahat, nasa lot na tig-100 share, at walang round trip sa iisang araw.
Naresolba na ang usapin ni QA tungkol sa nawawalang bayad: tugma ang komisyon sa trade sa iniulat na CNY 5,900.65.
0.1127% ang karaniwang netong kita bawat trade, mas mababa sa minimum na 0.15% CNEQ sa pagsusuri sa mapagkakatiwalaang sample. PF ang 1.074 at 0.186 ang Sharpe.
8.29% ang kita ng strategy kumpara sa 27.55% ng basket, na may mas mababang drawdown: 9.82% kumpara sa humigit-kumulang 42.84% sa sinampol na benchmark curve.
Nangangako ang hypothesis ng execution sa parehong pagsasara, pero tama ang paggamit ng pagsusuring ito ng fill sa bukas ng susunod na session.
Kasaysayan ng Iterasyon
Itama ang kontrata ng pananaliksik at ang nakadokumentong paglihis ng port para tahasang pahintulutan ang mga desisyon sa nakumpletong daily bar at execution sa bukas ng susunod na session. Panatilihin ang suportadong market-order path; huwag angkinin o subukang magsagawa ng hindi suportadong fill sa parehong pagsasara. Suriin ang pagsisimula ng entry-high at ang pananalita tungkol sa T+1 ayon sa pinahintulutang oras bago muling isumite.
Tahasan hinihingi ng pag-aangkop ng hypothesis sa platform (2) na mapunan sa pagsasara ng decision bar ang mga daily CNEQ order. Ordinaryong market order ang ipinapadala ng port dito (pati sa routing ng pagpasok at paglabas ng dagdag na leg sa mga linya 248-252), na naisasagawa sa pagbubukas ng NEXT session sa ilalim ng src/backtesting/next_open.py. Minamarkahan mismo ng brief na hindi suportado ang same_close_fill at suportado ang next_open_fill para sa CNEQ. Dahil dito, hindi matutularan ng mga naisagawang entry at fill sa pagsasara para sa exit ang nakasaad na kontrata sa execution. Hindi ito tugma ng kontrata at engine, at hindi ito kahilingan para sa intrabar stop.
Buod ng Resulta
Dapat munang magtakda ang mga susunod na pag-aangkop ng sapat na netong puwang sa ekonomiya gamit ang execution sa susunod na bukas bago mag-optimize, nang hindi itinuturing ang resultang ito bilang hatol sa orihinal na stock pool ng may-akda o sa bawat pagsasaayos ng parameter.
Iminungkahi ng pagsusuri sa backtest na itigil dahil hindi umabot sa 0.15% CNEQ na itinakdang minimum ang karaniwang netong kita bawat trade, kaya kulang ang puwang sa ekonomiya matapos ang mga gastos. Walang natukoy na depekto sa implementasyon na sapat na batayan para umulit; hindi naabot ang optimization at mga susunod na yugto.
Iangkop ang daily stochastic na strategy ng Myquant na bumibili kapag oversold at nagbebenta kapag overbought sa 10 nakapirming malalaking China A-share, long-only, na may cooldown, stop at fill sa bukas ng susunod na session.
Nagbalik ang backtest ng 8.29% na may Sharpe na 0.186, 658 nagsarang trade at 9.82% pinakamataas na drawdown. 0.1127% ang karaniwang netong kita bawat trade, 1.074 ang profit factor, at 27.55% ang kita ng basket na pantay ang timbang.
Pagsusuri
KDJ_STOCK
Pagsusuri
kdj_stock.py
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.