Mga Estratehiya
Hummingbot PMM V1 (pure market making, ng hummingbot) — tapat na port sa BTCUSDT.BINANCE_SPOT, 1 buy + 1 sell limit level sa mid ±1%, 30s na refresh, 60s na delay matapos ang fill, naka-OFF ang inventory skew (mga default ng source)
Resulta: Inabandona
HummingbotPmmV1BtcSpot
Buod ng Resulta
Sinubukan ng hypothesis na ito na i-port ang symmetric limit-order market maker na PMM V1 ng Hummingbot sa BTCUSDT spot ng Binance. Sapilitan lang ang mga pagbabago sa platform: nakapirming sizing sa 25% ng panimulang equity, refresh sa bawat 1-minutong bar, at mga pagsusuri sa spot balance. Hindi natapos ng strategy ang coding: matapos ang 3 pag-ulit, inabandona ang run dahil sa dahilan na 'coding_stuck_3_timeouts'. Walang nagawang backtest, optimization o hatol ng analyst.
Hypothesis
Pag-aayos sa Iteration 2 para sa pagkabigo sa Layer 2. Walang orders_inflight() o account_for_venue() method ang mock cache na ginamit sa synthetic tests. Gumagamit na ngayon ang code ng getattr para tingnan ang mga ito at nilalaktawan kapag wala. Nasa tunay na NautilusTrader cache ang dalawang method, kaya walang pagbabago sa backtest at paper trading. Wala nang iba pang binago. Gaya pa rin ng dati ang mga pag-aangkop sa platform: pumapalit ang pagsasara ng bar sa mid ng order book, tumatakbo ang refresh at fill delay ayon sa orasan ng bar, itinatakda ang nakapirming base order amount mula sa equity, at nakabatay sa spot balance ang bawat panig. Alalahanin ang panganib sa gilid: 1% ang mga spread at nagbabayad ng 0.10% maker fee ang bawat fill, kaya kikita lang ang strategy kung pabalik-balik ang galaw ng BTC sa saklaw na humigit-kumulang 2%. Sa iisang direksiyong trend, maiiwan itong may hawak na BTC o cash sa isang panig.
coding_stuck_3_timeouts
Implementasyon
Tapat na port ng Hummingbot PMM V1 (pure market making) sa BTCUSDT spot, gamit ang pagsasara ng 1-minutong bar bilang mid price. Naglalagay ito ng isang GTC limit buy sa mid × (1 − 1%) at isang GTC limit sell sa mid × (1 + 1%). Kinakansela nito ang mga nakaabang na quote at naglalagay ng bago sa bawat bar, dahil mas maikli sa isang bar ang 30 s na refresh. Pagkatapos ng fill, naghihintay ang panig na iyon ng 60 s bago muling mag-quote. Nakapirmi ang base quantity ng order at itinatakda ito minsan sa simula: 25% ng panimulang equity na hinati sa unang close. Naka-off ang inventory skew at naka-disable ang mga price band, gaya ng nasa source. Naglalagay lang ng buy kung sapat ang malayang USDT, at ng sell kung sapat ang hawak na BTC.
Kasaysayan ng Iterasyon
Nabigo ang beripikasyon (Layer 2 — synthetic scenarios): Mga parameter na ginamit: ['buy_spread', 'price_floor', 'sell_spread', 'price_ceiling', 'filled_order_delay', 'order_refresh_time', 'quote_balance_buffer', 'order_amount_equity_frac'] Tiyaking itinatakda ng __init__ ang lahat ng attribute mula sa self.parameters.get(). - steady_uptrend: AttributeError: walang attribute na 'orders_inflight' ang '_MockCache' (timestamp ng bar: 1735689660000) - steady_downtrend: AttributeError: walang attribute na 'orders_inflight' ang '_MockCache' (timestamp ng bar: 1735689660000) - flat_ranging: AttributeError: walang attribute na 'orders_inflight' ang '_MockCache' (timestamp ng bar: 1735689660000) - volatility_spike: AttributeError: walang attribute na 'orders_inflight' ang '_MockCache' (timestamp ng bar: 1735689660000) - zero_volume: AttributeError: walang attribute na 'orders_inflight' ang '_MockCache' (timestamp ng bar: 1735689660000) - price_gap: AttributeError: walang attribute na 'orders_inflight' ang '_MockCache' (timestamp ng bar: 1735689660000)
sandbox_timeout: Nabigo ang beripikasyon (Layer 3 — sandbox backtest): lumampas sa 300s na wall-clock limit ang smoke test sa humigit-kumulang 20000-bar na window (30 araw ng BTCUSDT.BINANCE_SPOT-1-MINUTE-LAST-EXTERNAL). Halos palaging nangangahulugan ito ng gawaing kada bar na lumalaki kasabay ng history — halimbawa, muling pag-scan sa buong funding/supplementary series, o muling pagbuo ng list at pagtawag sa min()/sorted() sa loob ng calculate_signal()/on_bar() sa bawat bar. Paunang kalkulahin ang mga nakaayos na timestamp array ONCE sa __init__ at gumamit ng bisect, o mag-cache ng mga lookup ayon sa timestamp, para O(log n) sa halip na O(n) ang gastos kada bar.
Buod ng Resulta
Sapat ang pagiging komplikado ng mga port na mabigat sa pamamahala ng order (kanselahin/mag-quote muli sa bawat bar, maghintay ng pagkilala sa kanselasyon, at tingnan ang spot balance) para mag-time out ang yugto ng coding. Dapat magsimula ang susunod na pagtatangka sa mas simple at maliit na implementasyong matatapos sa takdang oras ng coding.
Inabandona ang run sa yugto ng coding dahil sa dahilan na 'coding_stuck_3_timeouts' matapos ang 3 pag-ulit, kaya hindi na umabot sa beripikasyon, pagsusuri ng backtest, optimization, pagsusuri ng analyst at pagsusuri ng panganib.
Tapat na port ng PMM V1 pure market maker ng Hummingbot sa BTCUSDT.BINANCE_SPOT, gamit ang 1-minutong bar at naglalagay ng isang buy at isang sell limit order sa mid ±1%. Nagre-refresh sa bawat bar, naghihintay ng 60 s matapos ang fill bago muling mag-quote, walang inventory skew, at walang stop-loss, take-profit o time exit.
Walang datos ng performance: walang laman ang ulat ng backtest at walang optimization report, kaya walang naitalang return, Sharpe o bilang ng trade.
Pagsusuri
PMMV1
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.