Mga Estratehiya
Hummingbot 'BollinGridController' (ni hummingbot, Apache-2.0), tapat na port: BB(100,2.0) %B-breach fade na naglulunsad ng one-sided maker grid na ang laki ay batay sa lapad na BB, na may triple-barrier (3% SL / 2% bawat-level na TP / 45-minutong limitasyon sa oras / trailing na 1.5%-0.3%) sa WLDUSDT.BINANCE 3m, long-short
Resulta: Inabandona
HummingbotBollinGridWld
Buod ng Resulta
Matapos ang dalawang iteration, sinubukan ng HummingbotBollinGridWld ang Bollinger Band fade na may maker grid sa mga WLDUSDT 3-minutong bar. Nagtala ang backtest nito ng 886 saradong posisyon, -100% return, at Sharpe ratio na -11.91. Iniwan ito ng pagsusuri sa backtest bago mag-optimize dahil negatibo ang expectancy, at hiwalay na tinukoy ang mga alalahanin sa pagiging tapat ng execution. Para sa salin sa platform at sizing na ito ang pagtanggi, hindi para sa orihinal na controller sa notional scale nitong $100.
Hypothesis
Humiling ang user ng tapat na port. Eksaktong pinanatili ang default connector/pair ng source (binance_perpetual, WLD-USDT) at interval (3m), at may WLDUSDT.BINANCE-3-MINUTE data mula 2023-07-24. Sobra ang representasyon ng BINANCE bilang venue (61.5%), pero hindi ginagalaw ang instrument sa corpus, long-short ang saklaw (17% bucket), maikli ang horizon (1m-15m), at ibang-iba sa istruktura ang mekanismo (one-sided maker grid na may triple barrier) sa taker z-score fade sa pipeline. Masisira ang pagiging tapat sa source kapag inilipat sa ibang venue. Proporsyonal ang pag-scale ng laki mula 100 USDT tungo sa $100k. Nakatakda ang leverage sa 2.0 bilang margin headroom lamang, at dapat magtugma rito ang hypothesis at config.
Hindi sapat na dahilan para mag-optimize ang nasukat na negatibong expectancy sa 886 saradong posisyon. Tinatanggihan nito ang tinukoy na WLD 3-minutong salin sa platform na may proporsyonal na equity sizing at modelong execution costs, hindi ang controller ng Hummingbot sa orihinal nitong notional scale na $100. Hiwalay na suriin ang natitirang inventory sa dulo, fills sa pagsasara ng executor, at sizing matapos maubos ang kapasidad bago ituring ang implementasyong ito bilang tapat na reproduksiyon ng execution.
Implementasyon
Salin ng Stratmill sa Hummingbot BollinGridController: mga fade trade na sumasalungat sa mga paglagpas sa Bollinger sa bawat 3 minuto, gamit ang mga one-sided maker grid, mga take profit sa orihinal na antas na LIMIT, at mga hadlang ng executor. Itinatama nito ang pag-quantize ng kapasidad ng grid, mga maker entry, mga hangganan ng grid na kumikita, at pagtutuos ng gastos para sa mga natitirang antas.
Pinananatili ang signal ng Bollinger na dati nang pumasa, pati ang merkado at mga parameter ng pananaliksik na WLD. Tinutugunan ang lahat ng limang natuklasan sa QA gamit ang naka-pin na source ng GridExecutor: bilang ng mga antas batay sa floor nang walang idinadagdag na antas, minimum na kapasidad na may buffer at nakaikot, mga target na TP sa orihinal na antas na may pasibong pagsasaayos, paghinto ng executor sa hangganang kumikita, pagtanggal at pagtutugma ng gastos na partikular sa antas, at mga post-only entry na niro-round palayo sa merkado. Nananatiling susuriin ng pipeline ang naitamang ekonomiks; hindi pinatutunayan ng naunang liquidation na walang bentahe ang naitamang implementasyon.
Mga Resulta ng Beripikasyon
Opsyonal: sabihin sa paglalarawan ang pagpapalit sa barrier check sa pagsasara ng bar. Mahirap ilarawan ang mga intrabar stop ng bawat executor sa netted na posisyon, kaya katanggap-tanggap ang kasalukuyang paraan.
Sinusuri lang ang mga barrier ng executor (stop_loss 3%, trailing na 1.5%/0.3%, limit_price, time_limit, hangganan ng dulo/simula) sa pagsasara ng bawat 3m bar. Sinusuri ang mga ito ng GridExecutor ng Hummingbot sa bawat control tick (~1s). Maaaring maisauli nang higit pa ang trailing delta na 0.3% na sinusukat sa pagsasara ng 3m kaysa sa 0.3% na intrabar, at maaaring lumampas ang stop-loss exit sa 3% (ang pinakamalaking iisang lugi ay $6.2k). Sapilitang paglihis ito ng platform: netted ang account kaya walang deadline o nakabukas na stop para sa bawat executor. Hindi ito salungat sa nakasulat na hypothesis.
Panatilihing nakamapa ang tag hanggang dumating ang cancel o fill event, para umabot ang late fill sa kasalukuyang market-flatten path na 'ex is None'.
Inaalis ng _close_executor ang tag ng bawat nakabinbing order sa _omap bago makumpirma ang cancel. Kung mapunan ang level entry sa pagitan ng kahilingan sa cancel at pagkumpirma nito, walang mahahanap na tag ang on_order_filled at babalik ito, kaya maiiwang hindi nasusubaybayang net inventory na hindi kailanman isasara ng executor. Hindi mangyayari ang race na ito sa backtest na walang latency o sa simulated paper venue (agarang pinoproseso ang mga cancel), kaya impormasyon lamang ito.
Walang kailangan.
Sinasabi ng teksto ng hypothesis na nililimitahan ng min_order_amount_quote ang grid sa 8 antas. Inilalapat ng code ang 5% buffer ng source: 6% x 1.05 = 6.3% ng notional ng executor, kaya max_possible = 7. Sa aktuwal, karaniwang unang naglilimita ang terminong int(grid_range/0.005) (2-5 antas sa karaniwang lapad ng banda). Sinusunod ng code ang aritmetika ng naka-pin na GridExecutor, kaya pagkakaiba lang ito sa pagkakasulat ng hypothesis.
Pagsusuri ng Backtest
- Sharpe
- -11.91
- Kabuuang Return
- -100.00%
- Max Drawdown
- 100.00%
- Kabuuang Trade
- 886
- Win Rate
- 36.2%
- Profit Factor
- 0.23
Kasama sa mga isinara na posisyon ng 886 ang parehong direksyon: 454 long at 432 short.
Napatunayan ang pang-ekonomiyang alalahanin ng QA: ang karaniwang netong kita bawat trade ay -0.341% kumpara sa pinakamababang pamantayan ng pagsusuri sa Binance futures na +0.15%, ang PF ay 0.230, at nalulugi ang account ng 100%.
-$246,648 ang kabuuang PnL ng mga saradong trade; kahit idagdag muli ang $39,449 na komisyon, malaki pa rin ang lugi. Nagdagdag ang iniulat na modelong impact ng $148,198 na gastos.
Kailangan ding suriin ang pagiging tapat ng execution: nanatiling bukas ang huling net short nang halos 49 araw kahit may 45-minutong limitasyon ang executor. Hindi nito mag-isang tinutukoy ang sanhi.
Saklaw ng katalogo ang 3.2 taon, ngunit 31 araw lamang ang saklaw ng ebidensiya para sa epektibong pang-araw-araw na return bago maubos ang equity. Ang mga return ng na-sample na buy-and-hold sa buong panahon ay -73.69%, na may humigit-kumulang 97.62% na drawdown; hindi tumutugma ang mga ito sa panahon kung kailan may natitirang kapital ang estratehiya.
Kasaysayan ng Iterasyon
Panatilihin ang mga tuntunin ng source sa bilang ng level at quantization, at tahasang pangasiwaan ang mga kasong zero ang level.
Gumagamit ang mga linya 148-150 ng Source grid_executor.py ng floor(range/min_step), nang walang +1. Nagdaragdag ng isang antas ang linya 243 ng port, kaya nagbabago ang pagitan at alokasyon. Naglalapat din ang source ng buffer na 5% sa minimum na notional at pag-ikot ng dami bago tukuyin ang kapasidad. [Naka-pin na source](https://raw.githubusercontent.com/hummingbot/hummingbot/9af100d6822da7d2d0291a906c730ef172284ee2/hummingbot/strategy_v2/executors/grid_executor/grid_executor.py).
Kalkulahin ang mga target mula sa lv['p'] at panatilihin ang passive-price adjustment ng source.
Itinatakda ng Source grid_executor.py lines 397-429 ang TP batay sa orihinal na presyo ng level at inaayos ang mga target na marketable. Sa halip, itinatakda ng Port line 360 ang TP batay sa aktuwal na fill price. Kaya iba ang exits ng mga capped entry. [Naka-pin na source](https://raw.githubusercontent.com/hummingbot/hummingbot/9af100d6822da7d2d0291a906c730ef172284ee2/hummingbot/strategy_v2/executors/grid_executor/grid_executor.py).
Itala ang mga hangganan ng simula at wakas at ipatupad ang paglabas ng executor sa kumikitang hangganan.
Tinatapos ng mga linya 554-563 ng Source grid_executor.py ang BUY grid kapag nasa ibabaw ito ng end_price o ang SELL grid kapag nasa ilalim ito ng start_price. Hindi kasama sa _check_barriers ng port ang paglabas na ito at hindi nito pinananatili ang mga hangganang iyon. [Naka-pin na source](https://raw.githubusercontent.com/hummingbot/hummingbot/9af100d6822da7d2d0291a906c730ef172284ee2/hummingbot/strategy_v2/executors/grid_executor/grid_executor.py).
Ibawas ang saradong quantity na minultiply sa lv['fp']; itugma ang cost at inventory ng executor sa natitirang holdings ng mga level pagkatapos ng bawat fill.
Inaalis ng antas na TP ang gastos na karaniwan sa executor, sa halip na ang gastos ng antas na isinasara. Kapag pantay ang dami ng napunan sa 1 at 2, iniiwan ng pagsasara sa unang antas ang batayang gastos na 1.5 para sa imbentaryong aktuwal na binuksan sa 2. Gumagamit ang mga susunod na pasya sa stop-loss at trailing ng maling presyong break-even.
Gamitin ang post_only=True para sa mga grid entry at i-normalize ang mga presyo palayo sa market. Panatilihin ang hiwalay na pangangasiwa para sa mga take-profit na LIMIT.
Gumagamit ang mga entry order ng post_only=False kahit open_order_type ang naka-freeze na LIMIT_MAKER. Maaaring i-round ng price normalization ang nilalayong passive offset papunta sa market, kaya posibleng mapunan ang order bilang taker.
Buod ng Resulta
Suriin ang fills sa pagsasara ng executor, ang natitirang inventory sa dulo, at ang sizing matapos maubos ang kapasidad bago ituring na tapat na reproduksiyon ng orihinal na controller ang saling ito na naka-scale sa equity.
Naglabas ang pagsusuri sa backtest ng hatol na itigil dahil hindi sapat na dahilan ang nasukat na negatibong inaasahang kita para sa pag-optimize; hindi na isinagawa ang pag-optimize at mga susunod na pagsusuri. Kinailangan ding suriin ang katapatan ng pagpapatupad dahil nanatili ang panghuling imbentaryo nang lampas na lampas sa 45-minutong limitasyon ng executor.
I-port ang BollinGridController ng Hummingbot sa mga WLDUSDT Binance 3-minutong bar; i-fade ang mga breach sa Bollinger Band gamit ang maker grid at barrier exit, na may proporsyonal na equity sizing.
Iniulat ng backtest ang return na -100%, Sharpe ratio na -11.91, at pinakamataas na drawdown na 100% sa 886 posisyong naisara. Ang karaniwang netong return bawat trade ay -0.341%, na may profit factor na 0.230.
Pagsusuri
BollinGridController
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.