Lumaktaw papunta sa nilalaman
Lahat ng estratehiya

Mga Estratehiya

Quantiacs ML Voting BTC Spot: Tatlong-Taong Kontrata sa Pagsasanay

Resulta: Inabandona

QuantiacsMlVotingCryptoBtc

Buod ng Resulta

Inangkop ng run na ito ang ensemble ng pagboto ng Quantiacs na ML para sa pang-araw-araw na spot na BTCUSDT, at pinalitan ang panahon ng pagsasanay na 10 taon (3650 araw) ng orihinal na bersyon, na hindi kayang suportahan ng makukuhang kasaysayan, ng rolling window na 3 taon (1095 araw). Ipinadala ito ng pagsusuri sa backtest sa optimization dahil mas mataas nang malaki ang karaniwang balik sa bawat trade na 3.13% kaysa sa minimum na 0.25% para sa spot, kahit lumampas na ang drawdown sa limitasyong 30%. Pagkaraan ng 3 pag-ulit, tinalikuran ito ng analyst: halos kasinglalim ng sa buy-and-hold ang drawdown na 79.3%, samantalang mas mababa nang malaki ang balik; hindi maihiwalay sa ingay ang IC ng signal; nag-ambag ang 2021 ng 204% sa kita; at walang suportang pasulong na ibinigay ang holdout. Binanggit ng analyst na ang tinatanggihan lamang nito ay ang adaptasyon sa platform, hindi ang orihinal na notebook na 3650 araw.

Hypothesis

Hango sa strategy-ml-voting-crypto ng Quantiacs sa commit 42fdb1963f3204a4a85405dc2b53a205be622d16. Panatilihin ang umiiral na Ridge/SGD hard-voting ensemble, araw-araw na BTC long-o-flat na exposure at taunang refit. Palitan ang hindi maisasagawang 3650-araw na kinakailangan sa pagsasanay ng nakapirming rolling training window na 1095 araw at 1096 warm-up bar, upang maiwan ang 2245 ng ibinigay na 3341 bar para sa pagsusuri bago ang mga optimization partition. Magsanay lamang gamit ang nakumpletong next-day label; alisin ang pinakahuling row na wala pang label sa halip na lagyan ng artipisyal na down label. Panatilihin ang BTCUSDT.BINANCE_SPOT, nang walang leverage o short. Isagawa sa close ng signal bar, na katumbas sa capability registry ng next-bar-open execution sa tuloy-tuloy na venue. Hindi ma-fetch ang naka-pin na notebook; sinuri ang mga detalye ng implementasyon sa umiiral na QuantiacsMlVotingCryptoBtc_v2.py. Adaptation ito para sa platform, hindi eksaktong reproduksiyon ng returns ng source.

May kinalaman ang pagkabigo sa hindi magagamit na warm-up history, hindi sa nasukat na performance. Pinananatili ng mas maikling training window ang pangunahing mekanismo habang ginagawang maisasagawa ang pagsusuri. Panatilihin ang BTC dahil binabago ng gawaing ito ang tahasang reproduksiyon na BTC; magugulo ang pag-aayos kung babaguhin ang mga asset. Ayusin muna ang mas maikling window bago magsubok. Hindi ibinigay ang kasalukuyang konsentrasyon sa corpus at mga bilang ng portfolio.

premise_falsified: tinatanggihan nito ang pag-aangkop ng Research Lead sa platform ng strategy-ml-voting-crypto ng Quantiacs (Ridge kasama ang hard vote na 42 SGD, rolling training na 1095 araw, taunang refit, spot long-or-flat na BTCUSDT). Hindi nito tinatanggihan ang orihinal na notebook ng may-akda ng source na 3650 araw ang haba, at wala itong ginagayang returns mula sa source. Sa sapat na sample, walang impormasyong dala ang forecast ng classifier: ang IC ng isinagawang signal ay -0.012 (t = -0.59) sa 2,244……Magpakita ng higit paMagpakita ng mas kaunti

premise_falsified: tinatanggihan nito ang pag-aangkop ng Research Lead sa platform ng strategy-ml-voting-crypto ng Quantiacs (Ridge kasama ang hard vote na 42 SGD, rolling training na 1095 araw, taunang refit, spot long-or-flat na BTCUSDT). Hindi nito tinatanggihan ang orihinal na notebook ng may-akda ng source na 3650 araw ang haba, at wala itong ginagayang returns mula sa source. Sa sapat na sample, walang impormasyong dala ang forecast ng classifier: ang IC ng isinagawang signal ay -0.012 (t = -0.59) sa 2,244 arawang obserbasyon. Market beta ang P&L: beta 0.74, correlation 0.86, alpha -12%/yr, IR -0.84. Ang maximum drawdown ay 79.3% sa buong kasaysayan at 53.6% sa 725-araw na holdout, lagpas sa paunang itinakdang limitasyong 30%, at halos kasinglalim ng paghawak sa BTC (mga 77% sa 2021-22) habang mas mababa ang returns. Bagsak din ang takbo sa pamantayang HARD positive-years (4 sa 7). 2021 ang bumubuo sa 204% ng tubo, flat o negatibo ang 2024-2026, at may Sharpe na 0.165 (t = 0.23) ang holdout na may sapat na statistical power. Paghahambing sa fee floor: avg_trade_return_pct ang 3.13% kumpara sa floor na 0.25% BINANCE_SPOT, kaya hindi bayarin ang sanhi. Ipinakikita ng limang bangin sa mga parameter ng signal na nakatayo ang baseline Sharpe na 0.71 sa makikitid na ridge. Nakatakda na sa kontrata ang lahat ng parameter, at babawasan lang ng pagbaba sa capital_fraction ang drawdown nang hindi lumilikha ng alpha o impormasyon. Walang ibinigay na alalahanin tungkol sa edge ng QA. Wala nang ibang karaniwang pagbasa ang hindi nasubok: hindi maisasagawa ang window na 3650 araw batay sa magagamit na kasaysayan, at mas masama ang mas maiikling window na 821 araw.

Implementasyon

Bersyon ng Quantiacs ML voting na isinalin sa BTCUSDT.BINANCE_SPOT araw-araw na bar. Gumagamit ang estratehiya ng hard-voting ensemble na may 42 miyembrong RidgeClassifier at 42 miyembrong SGDClassifier, na muling ipinatupad sa numpy gamit ang mga default ng scikit-learn, batay sa apat na feature: trend ng LWMA(70) ROC, stochastic %D(14,3), LWMA(14) ng true range na hinati sa close, at SMA(5)/SMA(60) ng volume. Nagsasanay ang bawat modelo sa nakapirming rolling window na 1095 araw, gamit lamang ang mga label na pataas/pababa para sa susunod na araw na kumpleto na. Nagaganap ang unang pag-fit kapag natapos ang 1096-bar warm-up; pagkatapos, muling nagfi-fit ang modelo taun-taon sa grid ng kalendaryong nakaangkla sa 2014-01-01. Nagiging long ang estratehiya kapag higit sa kalahati ng mga boto ng 84 ang nagsasabing pataas, at flat kung hindi. Ginagaya ng market order sa pagsasara ng signal bar ang open ng susunod na bar, bilang katumbas sa platform sa venue na 24/7.

Ipinatutupad nito ang binagong hipotesis sa pamamagitan ng pag-edit sa previous_code. Nagbabago ang train_period_days mula 3650 tungo sa 1095. Nagiging 1096 ang min_bars_required (ang paunang pagsasanay), at pinalalaki ang pangunahing buffer ng bar (_max_bars) upang magkasya ito. Sinisimulan ang mga history deque gamit ang mga bar na iyon mula sa paunang pagsasanay sa unang sinusuring bar, dahil hindi tinatawag ng base ang calculate_signal habang nagaganap ang paunang pagsasanay. Sinasanay ng……Magpakita ng higit paMagpakita ng mas kaunti

Ipinatutupad nito ang binagong hipotesis sa pamamagitan ng pag-edit sa previous_code. Nagbabago ang train_period_days mula 3650 tungo sa 1095. Nagiging 1096 ang min_bars_required (ang paunang pagsasanay), at pinalalaki ang pangunahing buffer ng bar (_max_bars) upang magkasya ito. Sinisimulan ang mga history deque gamit ang mga bar na iyon mula sa paunang pagsasanay sa unang sinusuring bar, dahil hindi tinatawag ng base ang calculate_signal habang nagaganap ang paunang pagsasanay. Sinasanay ng initial_refit_after_warmup ang unang modelo sa unang sinusuring bar sa halip na maghintay sa susunod na taunang hangganan. Inaalis ng completed_labels_only ang pinakabagong hilera na wala pang label sa pagsasanay sa halip na gamitin ang artipisyal na label na 0 ng pinagmulan. Binabawasan ng fee_cash_buffer_pct (0.2%) ang notional ng spot buy. Hindi nagbabago ang mga tampok, ensemble, tuntunin sa pagboto, lohika ng long-o-flat, taunang grid ng muling pagsasanay ayon sa kalendaryo, venue at 1.0 na leverage. Paraan (b) ang kontrol sa panganib: paglabas batay sa signal kasama ang posisyong katumbas o mas mababa sa 100% ng equity. Inalis ang hindi ginagamit na predict_each_day at mga parameter ng muling pagsasanay pagkatapos magsumite; hindi kailanman nakaapekto ang mga ito sa pagpapatupad. Ginagamit sa pagpapatupad ang kakayahang use_equivalent na next_bar_open_fill, ibig sabihin, pagpuno sa pagsasara ng bar ng signal.

Mga Resulta ng Beripikasyon

I-persist ang restart anchor (model_trained_ts) at mag-refit sa eksaktong window na iyon, o idokumento na nagre-refit ang restart sa kasalukuyang bar.

Landas ng restart: scalar ang model_period/model_trained_ts/model_valid, pero hindi ang mga timbang ng SGD/Ridge. Pagkatapos ng paper restart, magre-refit lang ang branch na `elif self._sgd_w is None and self.model_valid` kung na-restore bilang True ang model_valid. Kung hindi maibalik ang mga na-persist na scalar, magre-refit ito sa restart bar (first_fit), kaya nababago ng restart kung aling data ang pinag-ensayuhan ng modelo. Hindi ito nakaaapekto sa backtest.

Opsyonal: itugma ang pagkakasunod ng update ng sklearn (add, saka shrink) kung nais ng mas malapit na pagkakapareho sa source.

Pinaliliit ng numpy SGD ang mga timbang (wscale *= 1 - eta*alpha) bago idagdag ang hinge update. Idinadagdag muna ng _plain_sgd ng scikit-learn ang update saka pinaliliit ang mga timbang. Kaya tinatantiya lamang ng mga boto ang SGDClassifier ng sklearn; hindi nila kinokopya ito nang eksaktong bit bawat bit. Nasa hipotesis na mismo na hindi ito eksaktong reproduksiyon, kaya hindi ito pagkakaiba.

Iwan itong dokumentadong walang ginagawa o alisin sa kontrata sa susunod na rebisyon.

Binabasa ang prediction_lookback_days pero hindi ito kailanman ginagamit. feature_window sa halip ang ginagamit ng mga feature ng prediction; sapat na iyon para sa indicator chain, kaya walang epekto sa asal.

Ipinapakita ng sandbox (1304 araw, hindi in-optimize at nakapirming kontrata) ang PF 0.9995, humigit-kumulang -0.07% kabuuang kita at 53.6% pinakamalaking pagbaba, na lampas sa limitasyong 30% max_drawdown ng kontrata. Ang iniulat na avg_trade_return_pct ay 0.34%, ngunit negatibo ang inaasahang kita sa dolyar, at ang impact_cost_pct ay 103% ng kabuuang kita bago gastos, kaya inuubos ng tinantiyang epekto kasama ang komisyon (humigit-kumulang $13k sa $12.9M na ipinagpalit) ang kabuuang kita bago gastos. Humigit-kumulang 99.4% ng equity ang inilalagak sa bawat pagpasok, na may ~10-araw na paghawak, at ~$94k lamang ang kapasidad. Dapat pag-ugnayin ng analyst ang tanda ng inaasahang kita sa % laban sa USD (L200) at tiyakin kung makakamit man lang ang limitasyon sa pagbaba, dahil walang maaaring i-tune (tunable = {}).

Pagsusuri ng Backtest

Sharpe
0.47
Kabuuang Return
96.61%
Max Drawdown
79.32%
Kabuuang Trade
62
Win Rate
56.5%
Profit Factor
1.15

Nagbibigay ang pag-aayos sa warm-up ng 2245 nasuring bar at 62 saradong long trade lamang, na tugma sa mekanismong long-o-flat at sizing na nakabatay sa kapital.

Tumutugma ang PnL ng mga saradong trade sa $96,605.51. Positibo kapwa ang dollar expectancy ($1,558.15) at average net trade return (3.125%); lampas ang huli sa 0.25% spot review floor.

Hindi pinatutunayan ng buong kasaysayan ang mga alalahanin tungkol sa negatibong inaasahang kita at labis na epekto ng QA: PF ang 1.147 at sinisipsip ng epekto ang 5.64% ng kabuuang kita bago gastos. Kumpirmado ang alalahanin sa panganib: umaabot sa 79.32% ang pagbaba laban sa nakapirming limitasyong 30%.

Mas mababa ang return ng estratehiya na 96.61% kaysa return ng buy-and-hold na 572.87%. Tinatayang 76.43% ang drawdown ng nakaimbak na kurba ng benchmark na sinample. Mahinang ebidensya ng bentahe sa aktibong prediksyon ang negatibong alpha, IR -0.8353 at forecast na IC -0.0124 (t=-0.59).

Pagsusuri

Malinis ang pagpapatupad at wasto ang accounting: pagtatapos batay lamang sa mga naisakatuparan (end_unrealized_pct 0), 3.98% ng kabuuang kita bago gastos ang mga komisyon, 5.6% ang epekto, at walang mga label na gumagamit ng impormasyong mula sa hinaharap (completed_labels_only).

Mas mataas nang malaki ang per-trade return ng 3.13% kaysa sa 0.25% BINANCE_SPOT fee floor. Hindi ito pagkabigo dahil sa fee edge.

Pasok ang bilang ng trade na 62 sa paunang itinakdang prediksiyong 60 o higit pa, at sapat ang statistical power ng holdout (41 trade sa loob ng 725 araw; hindi kulang sa power).

Nalabag ang limitasyon sa panganib. 79.3% ang max drawdown sa buong kasaysayan, laban sa paunang itinakdang 30% na limitasyon, at 53.6% sa holdout. Tinukoy ng optimizer na rejected ang kinalabasan (risk_or_economic_evidence_failed).

Beta ang return, hindi edge. 0.74 ang beta, 0.86 ang benchmark correlation, -12.0%/yr ang alpha at -0.84 ang information ratio. Kasinglalim ng drawdown na 2021-22 ng buy-and-hold ng 79% ang drawdown nitong BTC (humigit-kumulang 77%), sa halos 66% na panahong nasa merkado. Nagbalik ang estratehiya ng +97% mula 2020-08 hanggang 2026-10, samantalang ilang daang porsyento ang ibinalik ng paghawak sa BTC sa parehong panahon.

Walang impormasyong dala ang forecast. IC ang -0.012 ng isinagawang signal (t = -0.59) sa 2,244 arawang obserbasyon, at -0.0078% bawat bar ang net edge (hatol: rejected_no_information).

Hindi pumapasa sa HARD gate para sa mga positibong taon sa kalendaryo: 4 sa 7 taon (57%), laban sa 60% floor. 2021 ang pinagmulan ng 204% ng kita, at flat o negatibo ang bawat taon mula 2024 hanggang 2026 (-0.04%, -20.9%, -9.7%).

0.165 ang Sharpe sa holdout (t = 0.23). Hindi ito makabuluhan, at walang ibinibigay na suporta para sa susunod na panahon ang holdout.

May mga cliff ang sensitivity sa 5 (train_period_days sa 821, trend_lwma_period, stochastic_d_period, volume_short_sma_period, minimum_training_feature_rows). Nasa makikitid na ridge ang baseline Sharpe na 0.71, na tugma sa ingay.

Ang PF ay 1.148, mas mababa sa 1.3 floor. 0.89 ang payoff ratio: $24.3k ang average na lugi laban sa $21.5k na average na panalo.

Tinanggihan ng Research Lead REVISED ang hypothesis na ito dahil hindi gumana ang naunang premise. Ipatupad mula sa simula ang hypothesis na REVISED (tingnan ang paglalarawan ng hypothesis)—huwag gamitin muli ang naunang estratehiya. Dahilan ng rebisyon: Hindi nasukat na performance ang problema, kundi ang hindi makuhang warm-up history. Napapanatili ng mas maikling training window ang pangunahing mekanismo at nagiging posible ang pagsusuri. Panatilihin ang BTC dahil binabago ng gawaing ito ang isang tahasang reproduksiyon ng BTC; makakagulo sa pag-aayos ang pagpapalit ng mga asset. Ayusin muna ang mas maikling window bago magsubok. Hindi ibinigay ang kasalukuyang konsentrasyon ng corpus at bilang ng mga portfolio.

Kasaysayan ng Iterasyon

Bumagsak ang beripikasyon (Layer 2 — mga sintetikong sitwasyon): Mga ginamit na parameter: ['random_seed', 'ensemble_pairs', 'capital_fraction', 'predict_each_day', 'trend_roc_period', 'stochastic_period', 'train_period_days', 'trend_lwma_period', '_optimization_plan', 'training_cutoff_date', 'volatility_lwma_period', 'volume_long_sma_period', 'volume_short_sma_period', 'prediction_lookback_days', 'minimum_training_feature_rows', 'historical_retrain_interval_days', 'source_post_submit_retrain_interval_days']……Magpakita ng higit paMagpakita ng mas kaunti

Bumagsak ang beripikasyon (Layer 2 — mga sintetikong sitwasyon): Mga ginamit na parameter: ['random_seed', 'ensemble_pairs', 'capital_fraction', 'predict_each_day', 'trend_roc_period', 'stochastic_period', 'train_period_days', 'trend_lwma_period', '_optimization_plan', 'training_cutoff_date', 'volatility_lwma_period', 'volume_long_sma_period', 'volume_short_sma_period', 'prediction_lookback_days', 'minimum_training_feature_rows', 'historical_retrain_interval_days', 'source_post_submit_retrain_interval_days'] Tiyaking itinatalaga ng __init__ ang lahat ng attribute mula sa self.parameters.get(). - steady_uptrend: ValueError: dependency_contract_conflict: kailangan ng tapat na pagpapatakbo ng source ang sklearn VotingClassifier, RidgeClassifier at SGDClassifier; hindi pinapayagan ng gawain at Layer 1 import allowlist ang sklearn. Kailangan ang beripikadong pinapayagang implementasyon at nalutas na mga bersiyon ng source dependency bago maisagawa ang reproduksiyong ito. (timestamp ng bar: 1737331200000) - steady_downtrend: ValueError: dependency_contract_conflict: kailangan ng tapat na pagpapatakbo ng source ang sklearn VotingClassifier, RidgeClassifier at SGDClassifier; hindi pinapayagan ng gawain at Layer 1 import allowlist ang sklearn. Kailangan ang beripikadong pinapayagang implementasyon at nalutas na mga bersiyon ng source dependency bago maisagawa ang reproduksiyong ito. (timestamp ng bar: 1737331200000) - flat_ranging: ValueError: dependency_contract_conflict: kailangan ng tapat na pagpapatakbo ng source ang sklearn VotingClassifier, RidgeClassifier at SGDClassifier; hindi pinapayagan ng gawain at Layer 1 import allowlist ang sklearn. Kailangan ang beripikadong pinapayagang implementasyon at nalutas na mga bersiyon ng source dependency bago maisagawa ang reproduksiyong ito. (timestamp ng bar: 1737331200000) - volatility_spike: ValueError: dependency_contract_conflict: kailangan ng tapat na pagpapatakbo ng source ang sklearn VotingClassifier, RidgeClassifier at SGDClassifier; hindi pinapayagan ng gawain at Layer 1 import allowlist ang sklearn. Kailangan ang beripikadong pinapayagang implementasyon at nalutas na mga bersiyon ng source dependency bago maisagawa ang reproduksiyong ito. (timestamp ng bar: 1737331200000) - zero_volume: ValueError: dependency_contract_conflict: kailangan ng tapat na pagpapatakbo ng source ang sklearn VotingClassifier, RidgeClassifier at SGDClassifier; hindi pinapayagan ng gawain at Layer 1 import allowlist ang sklearn. Kailangan ang beripikadong pinapayagang implementasyon at nalutas na mga bersiyon ng source dependency bago maisagawa ang reproduksiyong ito. (timestamp ng bar: 1737331200000) - price_gap: ValueError: dependency_contract_conflict: kailangan ng tapat na pagpapatakbo ng source ang sklearn VotingClassifier, RidgeClassifier at SGDClassifier; hindi pinapayagan ng gawain at Layer 1 import allowlist ang sklearn. Kailangan ang beripikadong pinapayagang implementasyon at nalutas na mga bersiyon ng source dependency bago maisagawa ang reproduksiyong ito. (timestamp ng bar: 1737331200000)

hypothesis_revised: Hindi makapagsimula ang backtest dahil hindi matutupad ang nakarehistrong research contract sa kasaysayan ng instrumentong ito: kulang ang mga bar para sa nakarehistrong warm-up: nakarehistro sa research contract ang 3650 war

Opsyonal: kapag False ang model_valid, subukang muli ang pagsasanay sa mga susunod na bar sa loob ng parehong panahon, basta nakabatay pa rin ito sa kalendaryo at gumagamit lamang ng nakaraang data.

Sa mga hangganan lang ng panahon sa kalendaryo tumatakbo ang retraining (tuwing 365 araw mula 2014-01-01). Nagsisimula ng bagong panahon ang unang bar ng bawat run at nagsasanay sa bar na 1, na pumapalya (mas kaunti sa 2 row), kaya nananatiling flat ang estratehiya hanggang sa susunod na hangganan, pagkalipas ng hanggang 365 araw. Sa buong kasaysayan (BTCUSDT spot mula 2017-08), lumilitaw ang unang magagamit na modelo bandang 2017-12-31 at sinasanay sa humigit-kumulang 136 row. Hindi rin inuulit ang pagsasanay sa loob ng panahon kapag pumalya ito. Sapat ang 3650-bar warmup ng kontrata para sa mga walk-forward window, kaya hindi ito depekto.

I-persist at i-restore nang tahasan ang model_valid, kasama ng model_period at model_trained_ts.

Sangay ng restart refit: itinatakda sa False ang model_valid sa simula ng _train, kaya nakadepende ang `elif self._sgd_w is None and self.model_valid` sa pag-restore ng model_valid mula sa snapshot. Para lamang ito sa persistence ng live/paper restart; walang epekto sa backtest.

Gamitin ang np.einsum('ij,ij->i', W, x) para sa dot product ng bawat miyembro. Pareho ang resulta nito, pero humigit-kumulang 42x na mas mura bawat hakbang.

Runtime: umabot ng 102 s ang sandbox; humigit-kumulang 143 s ang tinatayang baseline laban sa target na 120 s, at true ang runtime_review_required. Bumubuo ang bawat hakbang ng `(W @ x.T).diagonal()` ng matrix na 42x42 para makuha ang 42 dot product.

Buod ng Resulta

Madaling malampasan ng classifier na long-o-flat na BTC ang minimum na bayarin ngunit wala pa ring kakayahang magtaya, kaya suriin ang IC ng signal at ang alpha laban sa buy-and-hold bago umasa sa positibong kita sa bawat trade.

Inabandona ito ng analyst pagkatapos ng optimization bilang premise_falsified. 79.3% ang drawdown sa buong kasaysayan at 53.6% sa holdout, laban sa paunang itinakdang limitasyong 30%. Walang impormasyong dala ang forecast, market beta ang karamihan ng return, hindi ito pumasa sa HARD positive-years gate (4 sa 7 taon), at hindi makabuluhan ang Sharpe na 0.165 sa holdout (t=0.23).

Platform adaptation ito ng strategy-ml-voting-crypto ng Quantiacs: classifier na Ridge kasama ang 42-SGD hard-voting, sinanay sa rolling window na 1095 araw at nire-refit taun-taon; araw-araw nitong hinawakan ang BTCUSDT spot nang long o flat, walang leverage o short.

Sa loob ng 2,245 sinuring pang-araw-araw na bar (2020-08-18 hanggang 2026-10-10), nagsagawa ito ng 62 long trade at nagbalik ng 96.6% (Sharpe 0.47, factor ng kita 1.147, karaniwang balik sa bawat trade 3.13%), samantalang nagbalik ang buy-and-hold ng 572.87%; 79.3% ang pinakamalaking pagbaba, 0.74 ang beta, -12%/taon ang alpha at IC -0.012 ang signal (t=-0.59).

Pagsusuri

strategy-ml-voting-crypto

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.