Magsimula sa libreng pampublikong data para sa pag-test
Kung naikonekta mo na ang DB mo pero wala kang mailagay, magsimula sa isa sa tatlong ito. Lahat ay libre at walang API key, at kasama na ang loader script at ang eksaktong mga value na pipiliin sa screen (table, column). Nakaayos ang script sa pagdagdag ng parser, kaya kung may gusto kang source, isang entry lang ang idadagdag.
Kunin ang mga fetcher
I-clone ang fetcher repo sa VPS (ang server na may agent). Ang tanging dependency ay pg. ★ Dapat write account ang DATABASE_URL sa .env. Normal na tanggihan ng read-only na account ang INSERT — para lang sa integration ng SoriTrading ang account na iyon.
git clone https://github.com/Value-Connect-Global-Inc/soritrading-fetchers ~/soritrading-fetchers cd ~/soritrading-fetchers && npm install cp .env.example .env # DATABASE_URL
https://github.com/Value-Connect-Global-Inc/soritrading-fetchers · Open source · isang folder = isang fetcher · kusang nirerehistro sa cron
Ang tatlo sa ibaba ay **panimulang halimbawa**. May iba pa sa repo gaya ng VIX, crypto implied volatility (DVOL), yield curve, dollar index, market cap ng stablecoin at DeFi TVL — lahat libre at walang key. Patakbuhin ang `node run.mjs list` para sa buong listahan. Walang value ang market data sa mga holiday ng US (wala, hindi 0), at nagsisimula ang DVOL noong Marso 2021.
Paano basahin ang screen ng Data settings
Pamamahala ng agent → piliin ang agent → tab na Data settings. Ikaw lang ang nagdadagdag at nagbubura sa screen na ito — binabasa lang ng AI ang mga dataset, at hindi kailanman idinidikit sa chat ang connection string. Mula itaas, ganito ang pagkakasunod ng screen.
- Koneksyon sa external na DB — Ilagay ang pangalan ng koneksyon (hal. main) at ang connection string. Naka-encrypt itong sine-save sa device ng agent lang at hindi napupunta sa server. Pagbukas ng screen, kusang binabasa ng agent ang listahan ng table ([Suriin ang koneksyon] kung gusto mong basahin muli).
- Mga table at dataset — Isang hanay bawat table sa DB: pangalan ng table · tinatayang bilang ng row · komento ng table, at sa ilalim nito ang mga dataset na bumabasa sa table na iyon.
- Antas ng visibility sa AI (kanan ng hanay ng table) — Pribado (default — hindi alam ng AI na may ganoong table) · pangalan lang · hanggang column · hanggang sample · pinapayagan ang query. Pumili at pindutin ang [I-save ang visibility]. Totoong data ang naipapadala sa AI sa antas na columns, sample at query, kaya huwag buksan ang mga table na may personal na impormasyon. Mga table lang sa public schema ang mabubuksan.
- Mga pangalan ng dataset (sa ilalim ng hanay ng table) — Ito ang value na tinatawag ng estratehiya gamit ang ctx.data(pangalan). [+ Magdagdag ng dataset mula sa table na ito] → piliin ang pangalan, column ng oras at column ng value; pupunuin ang paglalarawan mula sa komento ng table, at mabubuksan lang ang [I-save] kapag pumasa ang [Test]. Maaaring maglagay ng ilang pangalan sa iisang table (kapag hinahati sa filter ang series bawat exchange o simbolo, o kapag ibang pangalan ang gamit ng lumang estratehiya). Badge ng estado: magagamit · hindi pa nasusuri · hindi nakakonekta. Pindutin ang real-time na badge sa tabi nito para makita ang setting ng paggising (poll · notify · redis) — sapat na ang default para sa karamihan.
- Mga kinakalkulang dataset (SQL) — Mga value na kailangang kalkulahin gaya ng moving average, lag, o pinagsamang ilang table. Dahil kayang magbasa ng SQL ng maraming table, hiwalay itong tinitipon at hindi sa ilalim ng isang table. Karamihan ng kalkulasyon ay magagawa sa code ng estratehiya gamit ang dalawang ctx.data, kaya gamitin lang ang SQL kapag kailangan ang buong kasaysayan (moving average, ranggo). Ang SQL na nairehistro sa lumang paraan ay narito rin: [Nasuri ang SQL] · [Burahin], o kung simple ang hugis, sabay-sabay itong mako-convert sa pagpili ng table.
- Mga dataset na hindi nakita ang table — Kapag wala sa kasalukuyang listahan ang idineklarang table, hindi nawawala ang dataset kundi nananatili rito kasama ang dahilan: hindi pa natatanggap ang listahan ng table (hindi ibig sabihing wala) · walang ganoong table sa DB (pinalitan ang pangalan o binura) · walang ganoong pangalan ng koneksyon sa device na ito.
- Dalawa ang saklaw — Sa device lang na kasalukuyang bukas sine-save ang antas ng visibility sa AI. Ang mga dataset ay nalalapat sa lahat ng device na may parehong pangalan ng koneksyon. Kung marami kang device, piliin ang visibility sa bawat isa.
1. Fear & Greed Index
alternative.me0 (matinding takot) hanggang 100 (matinding kasakiman), isang beses kada araw. Buong kasaysayan mula Pebrero 2018. Isang axis ng sentimyento na hindi nakikita sa presyo lang — pinakamainam bilang unang test.
node run.mjs fear-greed
Koneksyon: main · Table: fear_greed Pangalan: fg · Column ng oras: ts · Column ng value: v
2. Hash rate ng Bitcoin
blockchain.comMetric ng chain mismo (TH/s). Ibang axis ito sa presyo kaya magagamit bilang filter ng regime. Malalaki ang value at mabagal ang trend, kaya mas mabuting gamitin ang ratio sa moving average kaysa sa hilaw na value.
node run.mjs btc-hashrate
Koneksyon: main · Table: btc_hashrate Pangalan: hashrate · Column ng oras: ts · Column ng value: v
3. Federal funds rate ng US (pagsasanay)
FRED (DFF)Araw-araw na effective federal funds rate — karaniwang value para sa filter ng macro regime. ★ Paalala: dumarating na ang parehong value bilang base indicator na base_fedfunds (ctx.data('base_fedfunds') — kinokolekta ng agent mula sa FRED). Kapag ipinasok ang parehong value sa dalawang daan, hindi malalaman sa resulta kung alin ang ginamit, kaya gamitin lang ito bilang pagsasanay sa integration.
node run.mjs fed-funds
Koneksyon: main · Table: macro_fed_funds Pangalan: dff · Column ng oras: ts · Column ng value: v
Pana-panahong pagkolekta (cron)
Inirerehistro sa crontab ang bawat fetcher ayon sa sarili nitong iskedyul. Hindi dumarami ang mga linya kahit patakbuhin muli, at hindi gagalawin ang cron na ikaw mismo ang naglagay. Napupunta ang log sa log file ng bawat fetcher sa folder na logs.
node run.mjs --install-cron
- Inirerekomenda ang epoch na segundo para sa column ng oras (awtomatikong nakikilala rin ang millisecond at ISO, at nakatala sa tsUnit ng ulat ng beripikasyon kung paano ito binasa).
- Ligtas na patakbuhin muli ang script — walang duplicate at ang mga mas bagong value lang ang naa-update (upsert). Patakbuhin lang ito muli nang pana-panahon para sa bagong data.
- May data fingerprint (bilang ng row · hash) ang mga resulta ng backtest — kapag nagbago ang laman ng DB, nagbabago ang fingerprint, at ang dalawang resultang magkaiba ang fingerprint ay hindi pareho ang kondisyon.
- Sa agent din tumatakbo ang mga backtest na gumagamit ng external na data — lahat ng backtest ay sa agent (aking store) lang tumatakbo.
- Nakikita ng AI ang mga table na binigyan mo ng antas ng visibility (totoong data ang naipapadala sa antas na columns, sample at query) — huwag i-expose ang mga table na may personal na impormasyon.
Narito ang lahat ng dokumentasyon — Gabay