Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

Port ng FxBizday: EUR/USD US-session na long window sa EURUSDT spot (ginagawang flat ang sell-EUR window)

Resulta: Inabandona

FxBizdayEurUsdtSpot

Buod ng Resulta

Ini-port ng FxBizdayEurUsdtSpot ang long half ng EUR/USD-session strategy na FxBizday ng QuantRocket sa EURUSDT spot pair ng Binance. Hawak nito ang EUR mula 11:00 hanggang 16:00 oras ng New York tuwing weekday at flat kung hindi. Pagkaraan ng 4 iteration, invalid mismo ang buong backtest: mayroon lamang itong 1 closed trade dahil pinigilan ng sell cap na batay sa volume at free EUR ang pagsara ng posisyong 2020-01-07, at mukhang accounting artifact ang 61% na pagbaba ng equity na ipinapasuri sa engine. Ipinakita pa rin ng hiwalay na ebidensiya na hindi kayang bayaran ng ideya ang mga gastos nito: mga 0.45 bp gross edge kada window, 20 bp kada round trip, at -0.54% average kada trade sa sandbox ng QA. Tinalikuran ito ng analyst sa yugto ng pagsusuri ng backtest, at ang bersiyong spot na long-only lang ang tinanggihan, hindi ang orihinal na long/short strategy sa venue ng FX na mura ang gastos.

Hypothesis

Port ito ng open-source na Moonshot strategy na “FxBizday” ng QuantRocket (Apache-2.0, quantrocket-codeload/fx-bizday). Kredito: QuantRocket. Itinitrade ng source ang spot na EUR.USD sa IB IDEALPRO mula sa 1-oras na bar, at nasa oras ng New York ang mga oras. Tuwing weekday, short ito ng EUR.USD 100% ng kapital habang bukas ang Europa at hindi bukas ang US (oras ng pagsisimula ng bar mula 03:00 hanggang bago ang 11:00 NY); long ng 100% habang bukas ang US at sarado na ang Europa (11:00 hanggang 16:00 NY); at flat……Magpakita ng higit paMagpakita ng mas kaunti

Port ito ng open-source na Moonshot strategy na “FxBizday” ng QuantRocket (Apache-2.0, quantrocket-codeload/fx-bizday). Kredito: QuantRocket. Itinitrade ng source ang spot na EUR.USD sa IB IDEALPRO mula sa 1-oras na bar, at nasa oras ng New York ang mga oras. Tuwing weekday, short ito ng EUR.USD 100% ng kapital habang bukas ang Europa at hindi bukas ang US (oras ng pagsisimula ng bar mula 03:00 hanggang bago ang 11:00 NY); long ng 100% habang bukas ang US at sarado na ang Europa (11:00 hanggang 16:00 NY); at flat kung hindi, pati buong weekend. Ang tesis ay presyur ng pagbebenta ng lokal na currency sa oras ng negosyo ng bawat rehiyon. VENUE SUBSTITUTION, sa payak na sabi: walang FX venue ang platform (IDEALPRO). Ang tanging instrumentong may ilang taong kasaysayan ng EUR/USD dito ay EURUSDT.BINANCE_SPOT, ang kaparehong halaga ng palitan na EUR kada dolyar na sinisipi laban sa USDT. Spot ang account na CASH at hindi ito puwedeng mag-short, kaya nagiging FLAT (hawak ang USDT) ang -1 (sell-EUR) window ng source, at eksaktong ini-port ang +1 (buy-EUR) window nito. Long half ng tuntunin ng source ang sinusubok nito, hindi ang buong long/short book. Mga 2 linggo pa lang ang nakolektang kasaysayan ng tanging shortable na instrumentong EUR/USD na hawak namin, ang EURC_USDC-PERPETUAL.DERIBIT; kulang ito para masubukan. Kabilang sa iba pang pagbabago ang Binance spot fee na 0.10% bawat side sa halip na SpotFXCommission kasama ang 0.1 bp na slippage; kapital na $100k; at pagpuno ng venue na 24/7 sa market order sa pagsasara ng signal bar, katumbas ng fill sa pagbubukas ng susunod na bar ayon sa registry; close-to-close rin ang accounting ng Moonshot sa parehong panahon. Walang stop, target, filter o scaling ng sizing ang source, at wala ring idinagdag. Babala sa gastos, hindi hatol: malaki ang isang round trip bawat weekday sa 0.20% RT kumpara sa intraday na EUR/USD drift. Ang backtest ang magpapasya.

negative_expectancy: Humigit-kumulang 0.45 bp gross kada 5-oras na window ang intraday EUR/USD drift na nasasaklaw ng US-session long window ng FxBizday. Galing ang bilang sa diagnostic ng signal na naisagawa sa buong kasaysayan: 11,856 obserbasyon, IC 0.03, hatol na rejected_after_costs. 20 bp ang gastos sa Binance spot kada round trip bago ang impact. Paghahambing sa fee floor: pinatakbo ng sandbox ng QA ang rule ayon sa disenyo sa loob ng 594 arawang round trip at nakakuha ng avg_trade_return_pct -0.54%……Magpakita ng higit paMagpakita ng mas kaunti

negative_expectancy: Humigit-kumulang 0.45 bp gross kada 5-oras na window ang intraday EUR/USD drift na nasasaklaw ng US-session long window ng FxBizday. Galing ang bilang sa diagnostic ng signal na naisagawa sa buong kasaysayan: 11,856 obserbasyon, IC 0.03, hatol na rejected_after_costs. 20 bp ang gastos sa Binance spot kada round trip bago ang impact. Paghahambing sa fee floor: pinatakbo ng sandbox ng QA ang rule ayon sa disenyo sa loob ng 594 arawang round trip at nakakuha ng avg_trade_return_pct -0.54% kumpara sa +0.25% BINANCE_SPOT floor, na may PF 0.006. Mas mababa sa 0.01% ang inaasahang gross kada trade, kumpara sa fee na 0.20% pa lang. Humigit-kumulang 40x na mas maliit ang edge kada trade kaysa sa mga gastos, at naka-freeze ang lahat ng parameter, kaya hindi mababago ng optimization o pag-aayos ng exit ang direksiyon ng resulta. Kumpirmado ang alalahanin ng QA. Hiwalay na depekto ito at hindi batayan ng hatol na ito: invalid mismo ang buong backtest. Mayroon itong 1 closed trade, at hindi kailanman na-exit ang posisyong 46k-EUR na binuksan noong 2020-01-07, dahil hindi ito nasaklaw ng volume/4 at free-EUR sell cap sa should_exit. Bumaba rin ang equity ng 61% noong 2020-01-13, samantalang mga -$600 lang ang PnL ng posisyon. Mukha itong artifact ng balanse/valuation ng CASH-account na EUR (hindi pa beripikado ang mekanismo) at dapat ipasuri sa engine. Saklaw: tinatanggihan lamang nito ang long-only na port na pinalitan ng spot sa EURUSDT.BINANCE_SPOT sa 0.10% bawat side. Hindi nito tinatanggihan ang long/short FxBizday ng QuantRocket sa IB IDEALPRO, kung saan mga 0.1-0.2 bp ang gastos, o ang susunod na pagsubok sa shortable na instrumentong EUR/USD na mura ang gastos kapag sapat na ang kasaysayan nito.

Implementasyon

Salin ng long window ng FxBizday ng QuantRocket sa orasang EURUSDT spot bar; long sa mga oras ng pagsisimula ng bar na 11–16 New York tuwing weekday, at flat ang target sa lahat ng iba pang window.

Pinananatili ang dating signal, nakapirming mga parameter at instrumento. Nililimitahan ang mga buy sa malayang quote cash at mga sell sa malayang EUR, binabantayan ang mga nakabinbing pagsasara, at nag-iiwan ng isang dagdag na balanse na EUR sa ibaba ng tinatayang liquidity para sa single fill. Pinigilan ng sobrang paggastos sa cash ang pagsusuri sa edge; kailangang kumpirmahin ng beripikasyon ng pipeline ang pag-aayos na ito. Kung may natitirang alikabok sa position ledger na hindi maibenta dahil sa pag-round ng mga balanse ng account, kailangan itong itugma sa engine.

Mga Resulta ng Beripikasyon

Ilista ang limitasyon ng liquidity para sa iisang fill bilang sapilitang paglihis sa port, upang maikumpara ng analyst ang aktuwal na exposure (exposure_pct, karaniwang laki ng posisyon) sa timbang na 100% ng source.

Nililimitahan ng position_size() ang entry sa isang fill sa close tick (bar volume/4, ni-round pababa sa hakbang na EUR), at hindi nagdaragdag ang batayang template sa bukas nang posisyon. Kaya sa manipis na EURUSDT bar, maaaring mas mababa nang malaki ang long kaysa sa timbang na 100% ng kapital ng source. Maaari ring magsimula sa susunod na bar ang entry na hindi naisagawa dahil kulang ang liquidity sa 11:00 bar. Limitasyon ito ng platform/fill engine (pinipigilan nito ang crash na cash_overspend) at binabanggit sa paliwanag sa config, pero hindi ito nakalista ng port_deviations.

Kung mas mababa sa isang base step ang natitirang dami (o mas mababa sa minimum notional), ituring na sarado ang posisyon, o hayaang itugma ng engine ang alikabok, para hindi mapigilan ang muling pagpasok.

Kapag mas mababa ang malayang EUR kaysa sa dami sa position ledger (dahil ni-round ang mga bahagyang fill), should_exit lang ang naibebentang halaga. Kung may matirang alikabok na mas maliit sa isang hakbang, nagiging 0 ang cap at tuluyan nang nagbabalik ng False ang should_exit. Hindi nagsasara ang posisyon, at dahil tinatawag lang ng batayan ang should_enter kapag flat, hindi na muling papasok ang strategy. Ipinakikita ng sandbox (594 trade, mga isa bawat weekday) na hindi ito nangyari sa aktuwal na pagsubok.

Operator: suriin kung paano nakikihalubilo ang folded impact sa sizing gamit ang buong equity bago bigyang-kahulugan ang laki ng drawdown.

Pagkatapos tumakbo, isinasama ang impact (impact_folded=true), kaya nagko-compound ang sizing sa loob ng engine sa equity na hindi pa nababawasan ng humigit-kumulang $133k na impact. Higit sa panimulang kapital ang pinagsama-samang pagkalugi sa trade (mga $199k), at avg_position_pct ang 634%. Accounting ng engine ito, hindi code ng strategy, pero dahil dito ay hindi mapagkakatiwalaan bilang sukat ang bilang na -100%/liquidation.

Sandbox: -100% (na-liquidate ang 2025-05-12), 594 saradong long trade sa loob ng humigit-kumulang 595 araw ng trabaho, na katumbas ng isang round trip bawat araw ng trabaho ayon sa disenyo. Karaniwang trade na -0.54% ng notional, PF 0.006, rate ng panalo na 1.5%. Ipinaliliwanag ng mga gastos ang resulta: $74k komisyon (0.20% round trip) at $133k nakapaloob na epekto sa $74M notional na na-trade. Humigit-kumulang 0.18% ang epekto sa bawat panig sa manipis na spot book na EURUSDT, kaya humigit-kumulang 0.55% ang……Magpakita ng higit paMagpakita ng mas kaunti

Sandbox: -100% (na-liquidate ang 2025-05-12), 594 saradong long trade sa loob ng humigit-kumulang 595 araw ng trabaho, na katumbas ng isang round trip bawat araw ng trabaho ayon sa disenyo. Karaniwang trade na -0.54% ng notional, PF 0.006, rate ng panalo na 1.5%. Ipinaliliwanag ng mga gastos ang resulta: $74k komisyon (0.20% round trip) at $133k nakapaloob na epekto sa $74M notional na na-trade. Humigit-kumulang 0.18% ang epekto sa bawat panig sa manipis na spot book na EURUSDT, kaya humigit-kumulang 0.55% ang kabuuang gastos sa bawat round trip. Ilang basis point lang ang paglihis ng EUR/USD sa loob ng 5-oras na intraday, kaya hindi kayang mabawi ng mahabang window ang gastos na ito. Sa ilalim ng pagsusuring 8, malayong mas mababa sa 0.05% ang inaasahang gross sa bawat trade, kumpara pa lang sa minimum na spot fee na 0.20%. Lumalampas sa kapital na $100k ang pinagsama-samang pagkalugi (~$199k), dahil isinama ang epekto matapos ang run: hindi ito naisama sa equity at pagtakda ng laki ng posisyon sa loob ng engine. Samakatuwid, bahagyang bunga lamang ng paraan ng pagtatala ang -100% at avg_position_pct 634%; hindi nagbabago ang direksiyon ng resulta. Naka-freeze ang mga parameter (walang laman ang hanay na maaaring i-tune), kaya hindi ito mababago ng optimization. Asahang mapabubulaanan ng buong backtest ang port dahil sa mga gastos.

Pagsusuri ng Backtest

Sharpe
-0.78
Kabuuang Return
-0.61%
Max Drawdown
0.61%
Kabuuang Trade
1
Win Rate
0.0%
Profit Factor
0.00

Tapat ang port: ginagamit nito ang parehong tuntunin ng source para sa window sa simula ng NY bar; eksaktong ini-port ang long window; inaasahang flat ang sell-EUR window gaya ng idineklara; at walang idinagdag na stop o filter.

Malinis ang input data: 59,305 orasang bar mula 2020-01 hanggang 2026-10, at tanging mga nasuring pagkawala ng serbisyo ng exchange ang nawawala.

Hindi valid na panukat ang buong backtest. Sa loob ng 6.8 taon, may 1 closed trade (entry_signaled=3, entries_submitted=2), kumpara sa inaasahang humigit-kumulang 1,700 weekday window. Bukas pa rin sa dulo ng run ang ikalawang entry (2020-01-07, 46,202 EUR). Hindi natapos ang exit: nililimitahan ng should_exit ang bawat sell ayon sa volume/4 at malayang EUR, at maliwanag na hindi nasaklaw ng cap na iyon ang posisyon sa manipis na mga bar ng unang bahagi ng -2020 EURUSDT. Dahil dito, naharang ang bawat sumunod na window.

Bumabagsak ng 61% ang equity curve noong 2020-01-13, samantalang -$609 lang ang price PnL ng bukas na posisyon at -$3 ang closed PnL. Hindi tugma ang sintomas at mukhang artifact ito ng accounting sa balanse ng cash/EUR. Hindi ko pa nabeberipika ang mekanismo; kailangan itong suriin sa engine. Huwag ituring na ekonomiks ng strategy ang headline na -61%, Sharpe na -0.78 at drawdown na 0.61.

Hiwalay na sinukat ang ekonomiks at malinaw na negatibo ang mga ito. Sa sandbox ng QA, ayon sa disenyo ang pag-trade ng strategy (594 round trip, isa bawat weekday), pero nalugi ito: avg_trade_return_pct -0.54% kumpara sa +0.25% BINANCE_SPOT floor, PF 0.006, win rate na 1.5%. Natuklasan ng diagnostic ng signal sa buong kasaysayan (11,856 obserbasyon, IC 0.03, t=3.2) na mga 0.45 bp ang gross edge ng long window kada 5-oras na panahon. Kung ikukumpara sa 20 bp na round trip, mga -5.5 bp ang net kada panahon: rejected_after_costs.

Nakapirmi ayon sa kontrata ang bawat parameter (walang maaaring i-tune), kaya walang mababago ang optimization.

Pagsusuri

Naglabas ng exception ang backtest sa loob ng strategy: cash_overspend: itinigil ng NautilusTrader ang backtest noong 2020-01-13 12:00:00+00:00 dahil nag-negatibo ang balanse ng account na CASH (spot). Lumampas ang halaga ng order sa magagamit na cash, kasama ang komisyon. Itakda ang laki ng mga buy ayon sa malayang cash / (presyo x (1 + taker fee)), o gamitin ang mga entry helper ng FactoryStrategy na naglilimita sa spot buy ayon sa kayang bayaran ng account. Ayusin ang code path na nagdulot nito; hindi natapos ang backtest.

Kasaysayan ng Iterasyon

Bumagsak ang beripikasyon (Layer 3 — sandbox backtest): cash_overspend: itinigil ng NautilusTrader ang backtest noong 2026-08-12 21:00:00+00:00 dahil nag-negatibo ang balanse ng account na CASH (spot). Lumampas ang halaga ng order sa magagamit na cash, kasama ang komisyon. Itakda ang laki ng mga buy ayon sa malayang cash / (presyo x (1 + taker fee)), o gamitin ang mga entry helper ng FactoryStrategy na naglilimita sa spot buy ayon sa kayang bayaran ng account. Uri ng bar na ginamit: EURUSDT.BINANCE_SPOT-1-HOUR-LAST-EXTERNAL, mga naprosesong bar: 0 Tiyaking nakakagawa ng mga trade ang strategy mo gamit ang ibinigay na data at mga parameter.

Nabigo ang beripikasyon (Layer 3 — backtest sa sandbox): cash_overspend: itinigil ng NautilusTrader ang backtest sa 2025-12-25 22:00:00+00:00 dahil naging negatibo ang isang account na CASH (spot) (mas mababa sa sero ang balanse). Mas mataas ang halaga ng isang order kaysa sa magagamit na cash, kasama na ang komisyon. Kalkulahin ang laki ng mga pagbili batay sa libreng cash / (presyo x (1 + bayad ng taker)), o gamitin ang mga entry helper ng FactoryStrategy, na naglilimita sa mga spot buy ayon sa kayang bayaran ng account. Ginamit na uri ng bar: EURUSDT.BINANCE_SPOT-1-HOUR-LAST-EXTERNAL, mga naprosesong bar: 0 Tiyaking nakakagawa ng mga trade ang iyong strategy gamit ang ibinigay na data at mga parameter.

Idagdag sa mga paglihis ng port sa hypothesis ang volume/4 na single-fill cap bilang limitasyong ipinataw ng engine. Dapat suriin ng analyst kung gaano kadalas ito sumasaklaw (mga entry na mas mababa sa target na bahagi ng equity, at mga exit na umaabot sa mga susunod na bar) bago ituring na katulad ng source rule ang mga resulta.

Paglihis sa port na hindi nakalista sa hypothesis: nililimitahan sa floor(bar volume / 4) (_one_fill_cap) ang bawat order. Kaya sa manipis na entry bar, mas maliit ang long kaysa sa 100% na kapital ng source. Kapag tumapat ang manipis na bar sa exit, ikinakalat ang pagsasara sa mga susunod na bar, na nasa flat (0/-1) window na; kaya mas tumatagal ang exposure kaysa sa 16:00 NY exit. Dahil ito sa limitasyon ng engine: nagdulot ang split fill sa 3-decimal na precision ng laki laban sa 2-decimal na balanse ng EUR ng cash_overspend sa Layer 3. Isinasaad ito ng paliwanag sa config, pero hindi ng port_deviations / derivation_note. Hindi nagbabago ang oras at direksiyon ng mga window.

Opsyonal: kapag > 0 ang signal at may natitirang bukas na posisyon, dagdagan ito hanggang sa target na laki, o tanggapin ang gawi at banggitin ito.

Maaari pa ring bukas ang bahagi ng bahagyang naisara na posisyon kapag nagsimula ang +1 window sa susunod na weekday. Magbabalik ng False ang should_exit, at hindi tatawagin ang should_enter dahil may posisyon. Sa halip na 100% ng kapital, ang natirang laki ang ititrade ng aklat sa araw na iyon. Kailangan dito ang magkakasunod na manipis na bar, kaya bihira ito.

Buod ng Resulta

Bago i-port ang isang FX intraday rule, ihambing ang gross edge nito kada trade sa round-trip cost ng target venue: hindi makakayanan ng edge na mas mababa sa isang basis point, na maaaring gumana sa gastos na IB IDEALPRO (mga 0.1-0.2 bp), ang 0.10% na spot fee bawat side.

Sa yugto ng pagsusuri ng backtest, pinili ng analyst na talikuran ito dahil negatibo ang inaasahang halaga: mga 40x na mas maliit ang edge kaysa sa 20 bp na round-trip na gastos sa Binance spot, at nakapirmi ang bawat parameter, kaya hindi ito mapapakinabangan ng optimization o pag-aayos sa exit. Hindi isinagawa ang optimization at mga susunod na yugto.

Port ito ng FxBizday ng QuantRocket na bumibili ng EUR sa 11:00-16:00 New York window tuwing weekday, batay sa palagay na gagalaw ang EUR/USD dahil sa presyur ng pagbebenta ng lokal na currency sa oras ng negosyo ng bawat rehiyon. Pinatakbo ito sa EURUSDT.BINANCE_SPOT, kung saan kinailangang manatiling flat ang short (sell-EUR) window dahil hindi puwedeng mag-short sa spot.

Hindi valid ang buong backtest (2020-01 hanggang 2026-10, 59,305 orasang bar): 1 closed trade lang ang naitala, na may kabuuang return na -61.3% at Sharpe na -0.78, dahil hindi kailanman na-exit ang posisyong binuksan noong 2020-01-07 at mukhang accounting artifact ang pagbaba ng equity. Iba pang paraan ng pagsukat ang malinaw na nagpapakitang negatibo ang ekonomiks: nagsagawa ang sandbox ng QA ng 594 round trip na may avg_trade_return_pct -0.54% at profit factor na 0.006, at natuklasan ng pagsusuri sa signal sa buong kasaysayan ang mga 0.45 bp gross edge kada 5-oras na panahon (IC 0.03, t=3.2), na may hatol na rejected_after_costs.

Pagsusuri

FxBizday

Pagsusuri

fx_bizday.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.