Mga Estratehiya
ETH Spot long-only limit grid na nakaangkla sa trailing anchor, may +2% take-profit sa bawat lot at hard grid-floor stop (muling binuo mula sa ‘Python Simple Grid’ ng FMZ; ETHUSDT.BINANCE_SPOT, resolusyon ng fill na 1H, walang leverage)
Resulta: Inabandona
EthSpotTrailingAnchorLotGrid1H
Buod ng Resulta
Muling binuo ng strategy ang FMZ fixed-ladder grid bilang ETH spot grid na may anchor sa takdang oras, 2% geometric na pagitan (humigit-kumulang 10x ng 0.20% spot round trip), take-profit sa bawat lot, at floor stop para limitahan ang lugi sa breakout. Hindi ito nakalagpas sa verification. Sa kabuuang 3 iteration, paulit-ulit na lumampas sa limitasyong 300s ang Layer-3 sandbox backtest sa window na 833 araw at 1 oras. Ayon sa mga tala ng developer sa iteration-3, O(n_nodes) na ang gastos kada bar at iniuugnay ang mga timeout sa araw ding iyon sa ParquetDataCatalog glob ng runner sa host na mabigat ang load. Inabandona ang run nang walang sukatan ng backtest, at walang sumunod na yugto ang isinagawa.
Hypothesis
Inaayos ng Iteration 3 ang Layer-3 sandbox_timeout sa pamamagitan ng pagbabagong para lamang sa performance; kapareho ang trading logic ng v2. O(n_nodes<=10) na ang trabaho kada bar, walang history buffer, dagdag na data o O(1) na paghahanap ng order. Nag-timeout din sa araw na iyon ang iba pang O(1) strategy (LtcMomentumMeanReversionRegression_v3, ConnorsRsi2IndexEtfPullbackUseq_v3), at ipinakita ng profiling sa mga run na iyon na napunta ang oras sa ParquetDataCatalog glob ng runner sa humigit-kumulang 126k na mga direktoryo ng data ng bar; nasa ~33 ang load average ng host. Pinagaan pa ang proseso kada bar: paunang kinukuwenta ang mga pangalan ng attribute sa halip na gumawa ng f-string para sa bawat field, at binabasa lamang ang equity ng account kapag kailangang mag-arm ng idle na node. Ayon sa aral na L155(c), hindi ito ang sanhi rito: naaalis ang posibilidad na ang gastos kada bar na lumalaki kasabay ng saklaw ang sanhi. Kaya kung mag-timeout uli ito, problema iyon sa sandbox o catalog, hindi depekto sa code.
verification_loop: sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na wall-clock limit sa humigit-kumulang 20000-bar na window (833 araw ng ETHUSDT.BINANCE_SPOT-1-HOUR-LAST-EXTERNAL). Halos palaging nangangahulugan ito na lumalaki kasabay ng history ang trabaho kada bar — halimbawa, muling pag-scan sa buong serye ng funding/dagdag na data, o muling pagbuo ng listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang ayusin ang mga naka-sort na timestamp array na ONCE sa __init__ at gamitin ang bisect, o mag-cache ng mga lookup na nakatali sa timestamp, para O(log n) sa halip na O(n) ang gastos kada bar.
Implementasyon
Long-only na ETH spot geometric limit grid sa mga bar na 1H. Ang anchor ay ang close sa oras ng pag-angkla. Umaangat lamang ang anchor kasunod ng pagtaas habang walang laman ang book, at hindi ito gumagalaw habang may hawak na mga lot. Naglalagay ang mga node na k=1..5 ng GTC limit BUY sa anchor*(1-2%)^k, bawat isa ay para sa 18% ng equity. Nilalagyan ang bawat napunang lot ng sarili nitong limit SELL sa fill*(1+2%). Muling nag-a-arm ang node kapag napunan ang sell na iyon. Kung magsara ang bar sa ibaba ng grid floor (ang huling node bawas isang hakbang), kinakansela ng strategy ang lahat ng order, ibinebenta sa market ang inventory at naka-pause nang 24h bago muling mag-angkla.
Mga Resulta ng Beripikasyon
sandbox_timeout: Nabigo ang verification (Layer 3 — sandbox backtest): lumampas ang smoke test sa 300s na wall-clock limit sa humigit-kumulang 20000-bar na window (833 araw ng ETHUSDT.BINANCE_SPOT-1-HOUR-LAST-EXTERNAL). Halos palaging nangangahulugan ito na lumalaki kasabay ng history ang trabaho kada bar — halimbawa, muling pag-scan sa buong serye ng funding/dagdag na data, o muling pagbuo ng listahan at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang ayusin ang mga naka-sort na timestamp array na ONCE sa __init__ at gamitin ang bisect, o mag-cache ng mga lookup na nakatali sa timestamp, para O(log n) sa halip na O(n) ang gastos kada bar.
Buod ng Resulta
Hindi naaayos ng pagbabawas sa code ng strategy kada bar ang timeout ng sandbox na malamang ay dulot ng ibang bagay (sinisisi ng mga tala sa iteration-3 ang catalog glob ng runner sa overloaded na host), kaya dapat kumpirmahin at i-escalate ang timeout na dulot ng imprastraktura bago gumugol ng mga iteration sa pagbabago ng code.
Matapos ang 3 iteration, inabandona ito sa verification loop dahil lumampas sa 300s na wall-clock limit ang Layer-3 sandbox backtest sa humigit-kumulang 20,000 bar (833 araw) na ETHUSDT.BINANCE_SPOT na 1-hour na window. Hindi na naabot ang mga yugto ng backtest review, analyst review at risk review.
Isang long-only na spot limit grid na walang leverage sa ETHUSDT, sa BINANCE_SPOT (resolusyon ng fill na 1H): magkakahiwalay na fixed-size na limit-buy lot sa mga geometric na hakbang na 2% sa ibaba ng trailing anchor na nakatakda sa isang takdang oras; isinasara ang bawat lot sa sarili nitong take-profit na +1 hakbang ang layo, at ginagamit ang hard grid-floor stop para likidahin ang book kapag may breakdown. Muling binuo nito ang ‘Python Simple Grid’ ng FMZ nang wala ang saklaw na pinili batay sa hindsight, pagitan na mas mababa sa bayarin, at kawalan ng stop ng script na iyon.
Walang datos ng performance: walang laman ang ulat ng backtest at walang ulat ng optimization, kaya hindi nakabuo ang strategy ng return, Sharpe o bilang ng trade.
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.