Mga Estratehiya
ETH OKX vn.py AtrRsiStrategy — Tapat na Salin ng Nakatakdang Default ng Source
Resulta: Inabandona
EthOkxFrozenAtrRsiStrategy
Buod ng Resulta
Sinubukan ng EthOkxFrozenAtrRsiStrategy ang tapat na salin ng strategy na ATR/RSI ng vn.py, gamit ang sizing na kaugnay ng kapital. Nagbigay ang limang-araw na smoke test para sa beripikasyon ng -0.139% bawat trade sa 38 saradong posisyon at profit factor na 0.626. Pagkaraan ng tatlong iteration, nakita pa rin ng QA na hindi tugma sa source ang execution ng entry at trailing stop, kaya inabandona ito bago ang buong backtest o optimization.
Hypothesis
Nagbibigay ang submission ng mga executable na tuntunin sa entry at exit. Mas mahalaga ang hinihingi ng user na tapat na reproduksiyon kaysa mag-imbento ng ibang mekanismo para maabot ang diversity quota. Kulang sa kinatawan ang OKX sa 2.3% kumpara sa target nitong 5%, at pinapayagan ng strategy ang parehong direksiyon habang 82.6% long-only ang portfolio. Walang laman ang field ng konsentrasyon sa corpus, kaya hindi matitiyak ang pagiging bago sa antas ng instrumento. Ginagawang mas proporsiyonal ng ETH ang literal na limang-yunit-ng-presyong offset ng order kaysa sa murang altcoin. Sinusubok nito ang momentum sa paglawak ng volatility, hindi ang bigong mean reversion ng BTC Connors-RSI. Hindi pa beripikado ang ekonomikong kakayahang mabuhay; dapat hayaang mabigo ang mga default ng source nang walang pagsagip pagkatapos ng pagsusuri.
Implementasyon
Salin ng vn.py AtrRsiStrategy na hindi na babaguhin, sa mga bar na ETHUSDT.OKX 1 minuto. Kapag ang ATR(22) ay nasa itaas ng karaniwang halaga nito sa loob ng 10 bar at ang RSI(5) ay nasa itaas ng 66 (o nasa ibaba ng 34), pumapasok ito gamit ang limit order sa pagsasara +/- $5 (o ang katumbas na kabaligtaran para sa mga short). Lumalabas lamang ito sa pamamagitan ng 0.8% trailing stop na nire-renew kada bar. Itinatakda ang laki ng bawat pagpasok sa 10% ng equity ayon sa notional.
Inaayos ng Iteration 3 ang kritikal na depekto ng QA. Tinatanggihan ng venue ang muling isinumiteng trailing stop na lampas na sa pagsasara ng bar (reject_stop_orders=True), kaya walang exit ang posisyon. Ngayon, kapag tumawid na ang antas ng stop (stop >= close para sa long, stop <= close para sa short), isinasara ng strategy ang posisyon gamit ang market order na reduce-only sa susunod na bar. Katugma ito ng vn.py, kung saan nagti-trigger ang ganitong stop sa susunod na bar sa presyong malapit sa open. Kung hindi, nakahimpil sa venue ang muling isinumiteng STOP_MARKET gaya ng dati. Bilang pananggalang, isinasara ng on_order_rejected ang posisyon kapag tinanggihan ang anumang STOP_MARKET. Hindi nagbago ang entry logic, mga indicator, sizing at bawat nakapirming parameter. Nagbangon din ng usapin sa gilid ang QA: mga 1-minutong bar, taker sa parehong leg, at hanggang 0.8% na ibinabalik sa bawat trade. Katangian ito ng mga nakapirming default ng source; ayon sa hypothesis, dapat itong hayaang mabigo nang walang pagsagip. Walang ginawang tuning.
Mga Resulta ng Beripikasyon
Magpatupad ng mga nakabinbing stop na gaya ng source at sinusuri laban sa kasunod na market data, habang pinananatili ang kondisyonal na pag-trigger at execution sa presyo ng gap. Magdagdag ng execution hook sa engine kung kailangan; huwag itong palitan ng agarang market close. Beripikahin ang karaniwang pagtawid, pag-gap lampas at pag-gap palayo para sa parehong direksiyon.
Hindi napapanatili ng fallback para sa tumawid na stop ang execution ng source. Agad na tinatawag ng _submit_exit() ang close_position(); walang naka-configure na latency ang OKX, kaya nag-eexecute ang Nautilus sa kasalukuyang market sa pagsasara ng decision bar, sa halip na sa pagbubukas ng susunod na bar. Bukod dito, sinusuri ng vn.py ang muling itinakdang stop laban sa range ng susunod na bar: maaaring hindi ma-trigger ang long stop kapag nag-gap pabalik sa ibabaw nito ang presyo. Binabago ng walang-kondisyong market exit ang timing at mga kondisyon ng pag-trigger. Source: https://raw.githubusercontent.com/vnpy/vnpy_ctastrategy/6ef76981624bf55b2ea978f8587f74d633aafc72/vnpy_ctastrategy/backtesting.py
Ipatupad ang pag-activate sa kasunod na bar gamit ang orihinal na limit price at daming sineize sa entry. Tiyaking walang entry na mapupuno sa signal bar at na kapag nag-gap ang susunod na bar lampas sa limit, walang fill sa pagbubukas maliban kung umabot sa limit ang kasunod na range.
Agad na maisasagawa ang mga limit ng BUY sa close+$5 at ng SELL sa close-$5 kapag isinumite sa kasalukuyang order book ng Nautilus na nakabatay sa presyo ng close. Dahil post_only=False at walang latency ang OKX, maaari silang mapunan sa signal bar. Itinutugma ng source backtester ang mga umiiral na order bago tawagin ang on_bar, kaya unang nagiging kuwalipikado ang mga bagong likhang limit sa kasunod na bar, habang ipinapatupad pa rin ang limitasyon sa presyo ng mga ito. Binabago nito ang mga entry, paghawak sa gap, at kasunod na estado ng trailing stop. Pinagmulan: https://raw.githubusercontent.com/vnpy/vnpy_ctastrategy/6ef76981624bf55b2ea978f8587f74d633aafc72/vnpy_ctastrategy/backtesting.py
Kasaysayan ng Iterasyon
Nabigo ang beripikasyon (Layer 1.5 — pagkakatugma ng hypothesis/config) [class=hypothesis_mismatch]: - Itinatakda ng optimization_plan ang leverage sa 1.0
Bago tawagin ang _submit_stop_market, tiyaking hindi pa tumawid ang presyo sa stop. Para sa long, suriin kung stop >= current_close; para sa short, kung stop <= current_close. Kung tumawid na, tawagin ang self._submit_exit(position) (market close na reduce-only), na tumutugma sa pag-trigger ng stop sa susunod na bar sa vn.py. Kung hindi, isumite ang nakahintong stop gaya ng kasalukuyan. Bilang pananggalang, subaybayan din ang mga tinanggihang stop order, halimbawa sa on_order_rejected, at isara ang posisyon.
Walang kailangang baguhin; itinala ito para sa analyst.
Nakatakda ang entry_price_offset sa $5. Katumbas iyon ng humigit-kumulang 0.13-0.33% ng presyo ng ETH sa kabuuan ng kasaysayan nito, kaya palaging tumatawid sa spread ang entry limit at napupunan bilang taker sa susunod na bar. Tapat ito sa pinagmulan at hindi ito depekto. Tandaan na pinupunan ng vn.py sa mas mababa sa limit price at susunod na presyo ng pagbubukas, at kahalintulad ang kilos ng Nautilus.
Buod ng Resulta
Dapat mapanatili ng tapat na salin ang pagiging karapat-dapat ng order sa kasunod na bar, kondisyonal na pag-trigger ng stop at execution sa gap, pati ang mga kalkulasyon ng indicator.
Matapos ang tatlong pag-ulit, tinanggihan ng Layer 4 QA ang salin dahil hindi tumutugma ang haypotesis: binago ng mga paglabas sa merkado na na-trigger kapag natawid ang stop ang oras at mga kondisyon ng pag-trigger sa orihinal, samantalang maaaring mapunan ang mga limit order sa pagpasok na maipapatupad agad sa bar ng signal. Ang mga pagkalugi sa paunang pagsusuri ay usapin sa bentahe sa pangangalakal, hindi isang hiwalay na hadlang.
Isalin ang strategy na ATR/RSI na itinakda bilang default sa source ng vn.py para sa ETHUSDT.OKX na mga perpetual bar na tig-isang minuto, habang pinananatili ang mga signal at order nito at itinatakda ang laki ng mga entry sa 10% ng equity gamit ang leverage na 1.0.
Naitala ng limang-araw na smoke test para sa beripikasyon ang -0.139% bawat trade sa 38 saradong posisyon, na may profit factor na 0.626. Hindi naisagawa ang buong backtest, pag-optimize, pagsusuri ng analyst, at pagsusuri ng panganib.
Dahilan ng Pag-abandona
Pagsusuri
AtrRsiStrategy
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.