Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

sistem dagangan ai berbilang ejen

Sistem dagangan AI berbilang ejen menggunakan jawatankuasa LLM untuk satu dagangan. Lihat seni bina, kos pasaran apabila isyarat dibersihkan, dan perangkap ujian belakang yang terlibat.

Sistem dagangan AI berbilang ejen membahagikan satu keputusan dagangan kepada beberapa contoh model bahasa besar, memberikan setiap contoh peranan, dan menggabungkan output mereka menjadi satu pesanan. Senarai biasa termasuk pembaca berita, penganalisis asas, penganalisis carta, pemeriksa risiko, dan ejen pengurus yang menjadi pengadil. Sehingga Julai 2026, beberapa rangka kerja sumber terbuka dalam bentuk ini berada dalam topik dagangan algoritma di GitHub dengan beberapa ratus bintang setiap satu. Halaman ini menguraikan seni bina, memisahkan bukti yang diterbitkan daripada tuntutan README, dan meletakkan data pasaran pada kos yang perlu ditanggung oleh mana-mana versi sistem ini.

Apa itu sistem dagangan AI berbilang ejen sebenarnya

Seni bina ini adalah sebuah jawatankuasa dengan seorang pengerusi. Setiap ejen adalah templat gesaan, suapan data, dan skema output. Ejen berita menerima tajuk utama dan mengembalikan label. Ejen asas menerima ekstrak pemfailan dan mengembalikan skor. Ejen pengerusi menerima label dan skor tersebut dan mengembalikan pesanan.

Tiga sifat berikut daripada reka bentuk itu, dan setiap satu perlu dinamakan sebelum sebarang tuntutan prestasi.

Setiap ejen biasanya berkongsi satu model asas. Lima gesaan terhadap pemberat yang sama menghasilkan pendapat yang berkorelasi, jadi undian lima ejen bukanlah lima anggaran bebas. Rangka jawatankuasa mencadangkan kepelbagaian yang tidak disediakan oleh pelaksanaan.

Sistem ini adalah saluran paip teks yang dibalut di sekitar keputusan berangka. Model membaca perkataan dan mengeluarkan token. Saiz kedudukan, jenis pesanan, penempatan henti, dan logik keluar adalah kod biasa yang terletak di bawahnya, dan kebanyakan yang menentukan hasil terletak dalam kod itu dan bukannya dalam gesaan.

Perjalanan pergi balik jawatankuasa mengambil masa beberapa saat. Ini boleh digunakan untuk pengimbangan semula mingguan dan tidak relevan pada kelajuan intrahari, di mana pembuat pasaran memetik dan memetik semula dalam mikrosaat.

Apa yang disokong oleh penyelidikan dan apa yang tidak

Kerja yang diterbitkan mengenai model bahasa dalam kewangan terbahagi kepada tiga tuntutan dengan kekuatan yang sangat berbeza.

Pengekstrakan dan pengelasan adalah tuntutan yang kukuh. Model melabelkan sentimen, mengeluarkan angka daripada pemfailan, dan memampatkan dokumen panjang dengan ketepatan yang memerlukan model khusus beberapa tahun lalu. Ia boleh diukur pada teks yang diasingkan dan ia bertahan.

Penerangan tentang keadaan pasaran adalah tuntutan bercampur. Model menulis akaun yang lancar tentang rejim, dan akaun tersebut biasanya konsisten dengan data yang ditunjukkan kepada model. Sama ada penerangan itu membawa maklumat yang belum dibawa oleh harga adalah soalan yang berasingan, dan kertas kerja yang mengujinya dengan teliti melaporkan kesan kecil dengan bar ralat yang lebar.

Keuntungan adalah tuntutan yang lemah. Kebanyakan README repositori melaporkan ujian belakang dan bukannya rekod prestasi yang dibiayai, dan jarak antara keluk ekuiti dalam sampel dan akaun langsung adalah jarak tertua dalam dagangan kuantitatif. Meletakkan model bahasa dalam gelung tidak memendekkannya.

Lantai kos yang perlu diatasi oleh isyarat

Setiap dagangan merentasi spread, dan lintasan itu adalah lantai yang perlu diatasi oleh strategi sebelum apa-apa lagi. Spread sebut harga median sepanjang waktu biasa, 22 Jun hingga 26 Jun 2026, untuk enam nama yang disenaraikan di AS:

PertanyaanTingkat kos minimum: sebaran bidaan median dalam mata asas titik tengah, waktu biasa, 22-26 Jun 2026
SQL tepat di sebalik setiap nombor
SELECT ticker,
       round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS spread_bps,
       round(2 * quantileExactIf(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), bid_price > 0 AND ask_price > bid_price) * 10000, 2) AS round_trip_bps,
       round(count() / 1e6, 1) AS quote_updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'KO', 'F', 'RIOT')
  AND sip_timestamp >= toDateTime('2026-06-22 00:00:00')
  AND sip_timestamp < toDateTime('2026-06-27 00:00:00')
  AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > bid_price) > 0
ORDER BY spread_bps
Run this yourself

Satu mata asas ialah satu peratus daripada satu peratus. Nama paling ketat dalam panel, SPY, memetik spread median sebanyak 0.27 mata asas sepanjang minggu itu. Yang paling lebar, RIOT, memetik 7.09. Perjalanan pergi balik membayar spread dua kali, jadi kemasukan dan keluar dalam nama pertama bermula 0.55 mata asas di belakang dan pasangan yang sama dalam nama terakhir bermula 14.19 di belakang. Ejen yang memusingkan bukunya dua kali seminggu membayar tol itu kira-kira seratus kali setahun, dan tol itu dikenakan sama ada panggilan itu betul atau salah. Apa kos untuk berdagang saham memperincikan baki bil.

Bunyi yang perlu diatasi oleh panggilan arah

Panggilan arah dinilai terhadap taburan yang kebanyakannya adalah nombor kecil. Setiap sesi SPY dalam kalendar 2025, diisih mengikut saiz pergerakan tutup-ke-tutupnya:

PertanyaanSaiz sesi biasa: pergerakan tutup-ke-tutup SPY mengikut kumpulan saiz, kalendar 2025
SQL tepat di sebalik setiap nombor
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(close, window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
paired AS (
    SELECT d, close_px,
           any(close_px) OVER (ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prev_px
    FROM daily
),
rets AS (
    SELECT d, round(100 * (toFloat64(close_px) / toFloat64(prev_px) - 1), 3) AS ret_pct
    FROM paired
    WHERE prev_px > 0
)
SELECT multiIf(abs(ret_pct) < 0.25, 'under 0.25%',
               abs(ret_pct) < 0.5, '0.25 to 0.5%',
               abs(ret_pct) < 1.0, '0.5 to 1%',
               abs(ret_pct) < 2.0, '1 to 2%',
               '2% and up') AS move_bucket,
       count() AS sessions,
       round(100 * count() / sum(count()) OVER (), 1) AS pct_of_sessions
FROM rets
GROUP BY move_bucket
ORDER BY min(abs(ret_pct))
Run this yourself

Separuh tahun berada di dalam setengah peratus. Jalur under 0.25% memegang 24.9% sesi dan jalur 0.25 to 0.5% satu lagi 24.1%. Di hujung yang lain, 13 sesi bergerak 2% and up, 5.2% tahun.

Letakkan itu di sebelah panel spread. Satu mata asas ialah 0.01%. Pergerakan sesi biasa sebanyak 0.3% adalah tiga puluh kali spread ketat dan kira-kira empat kali spread lebar. Aritmetik meninggalkan ruang untuk panggilan yang betul dan sabar dan sangat sedikit untuk panggilan yang cepat dan marginal.

Di mana alam semesta yang boleh didagangkan sebenarnya berada

Rangka kerja ejen mengiklankan liputan, selalunya beratus-ratus ticker diimbas setiap pagi. Jumlah dolar menunjukkan berapa banyak senarai itu boleh menyerap saiz. Setiap nama yang disenaraikan di AS yang didagangkan pada waktu biasa pada 30 Jun 2026, dikumpulkan mengikut kedudukannya dalam jumlah dolar sesi itu:

PertanyaanTempat wang didagangkan: jumlah dolar AS mengikut peringkat kedudukan kecairan, waktu biasa, 30 Jun 2026
SQL tepat di sebalik setiap nombor
WITH tv AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE toDate(toTimeZone(window_start, 'America/New_York')) = toDate('2026-06-30')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker
    HAVING sum(toFloat64(close) * toFloat64(volume)) > 0
),
ranked AS (
    SELECT ticker, dollar_volume,
           row_number() OVER (ORDER BY dollar_volume DESC) AS rk
    FROM tv
)
SELECT multiIf(rk <= 10, 'top 10 names',
               rk <= 50, 'ranks 11 to 50',
               rk <= 200, 'ranks 51 to 200',
               rk <= 1000, 'ranks 201 to 1000',
               'ranks beyond 1000') AS liquidity_tier,
       count() AS tickers,
       round(sum(dollar_volume) / 1e9, 2) AS dollar_volume_bn,
       round(100 * sum(dollar_volume) / (SELECT sum(dollar_volume) FROM tv), 1) AS pct_of_dollar_volume
FROM ranked
GROUP BY liquidity_tier
ORDER BY min(rk)
Run this yourself

Sepuluh nama membawa 22.5% daripada jumlah dolar sesi itu, kira-kira $205.04 bilion. 40 seterusnya membawa 20.5%. Di hujung yang lain, 10966 nama yang berada di kedudukan melebihi 1000 berkongsi 12.9% di antara mereka, kira-kira $117.83 bilion tersebar di seluruh ekor.

Keluasan adalah murah untuk diiklankan dan mahal untuk didagangkan. Jawatankuasa yang meletakkan kedudukan tiga ribu nama menghabiskan sebahagian besar usaha kedudukannya di ekor itu, di mana panel spread di atas adalah kos sebenar dan bukannya ralat pembundaran.

Mengapa ujian belakang ini memuji sistem

Sumber tunggal terbesar ujian belakang yang memuji adalah pilihan tetingkap. SPY mengikut tahun kalendar, 2016 hingga 2025, dengan jurang antara harga tutup tertinggi dan terendah tahun itu bersama-sama:

PertanyaanTetingkap menentukan jawapan: pulangan harga tahun kalendar SPY dan julat tertinggi-ke-terendah dalam tahun, 2016-2025
SQL tepat di sebalik setiap nombor
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(close, window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-01-01')
      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2025-12-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
),
yr AS (
    SELECT toYear(d) AS year,
           argMin(close_px, d) AS first_close,
           argMax(close_px, d) AS last_close,
           max(close_px) AS high_close,
           min(close_px) AS low_close,
           count() AS sessions
    FROM daily
    GROUP BY year
)
SELECT year,
       sessions,
       round(100 * (toFloat64(last_close) / toFloat64(first_close) - 1), 1) AS price_return_pct,
       round(100 * (toFloat64(high_close) / toFloat64(low_close) - 1), 1) AS high_low_range_pct
FROM yr
ORDER BY year
Run this yourself

Sistem yang diuji hanya pada 2021, tahun yang ditutup 28.7% lebih tinggi, mewarisi pita yang meningkat. Sistem yang sama diuji hanya pada 2022, yang ditutup -20%, mewarisi pita yang menurun. Jurang dalam tahun antara tutup tertinggi dan terendah mencapai 68% dalam 2020 dan kekal di atas 25.3% walaupun pada tahun yang lebih tenang.

Empat perangkap terletak di atas masalah tetingkap, dan salah satu daripadanya adalah milik model bahasa sahaja.

  • Pandangan ke hadapan melalui data latihan. Model yang dilatih pada teks sehingga 2025 telah membaca bagaimana perdagangan 2023 berakhir. Ujian belakang sepanjang 2023 bertanya soalan yang model tahu jawapannya, dan tiada pengocokan siri harga menghilangkan pengetahuan itu.
  • Survivorship dalam senarai ticker. Alam semesta yang dipasang daripada penyenaraian hari ini menghilangkan nama yang dinyahsenarai sepanjang perjalanan.
  • Andaian isian. Ujian belakang yang mengisi setiap pesanan pada titik tengah memadamkan keseluruhan panel kos di atas.
  • Pemilihan ke atas varian gesaan. Dua puluh frasa gesaan dicuba dan yang terbaik dilaporkan adalah overfitting yang sama yang melanda sapuan parameter lama sebelum model bahasa wujud.

Di mana ejen model bahasa mungkin membantu

Versi jujur cadangan itu lebih sempit daripada versi README dan masih berguna.

Membaca volum adalah kemenangan yang paling jelas. Ejen yang bekerja melalui setiap pemfailan dan tajuk utama pada senarai pantau semalaman dan mengembalikan ringkasan berstruktur menjimatkan jam perhatian manusia, dan output boleh disemak terhadap sumber.

Menerangkan rejim dalam bahasa biasa adalah yang kedua. Perenggan harian tentang serakan, keluasan, dan turun naik, dijana daripada nombor yang sama yang akan dibaca oleh manusia, adalah dokumen taklimat yang berguna walaupun ia tidak membawa ramalan.

Kebersihan proses adalah yang ketiga. Ejen yang menolak pesanan yang melanggar had kedudukan yang dinyatakan, atau yang menandakan strategi yang akan berdagang pada tarikh pendapatan, menguatkuasakan peraturan yang dilangkau oleh manusia yang terganggu.

Tiada satu pun daripada tiga ini adalah kelebihan dalam pasaran. Ketiga-tiganya adalah kerja penyelidikan dan operasi, di mana keuntungan yang boleh diukur terletak hari ini. Kesan yang didokumenkan seperti anomali turun naik rendah mengambil sampel besar dan replikasi luar sampel berulang sebelum sesiapa menganggapnya nyata, dan rangka kerja ejen baru memenuhi bar yang sama atau ia tidak melepasinya. Kehilangan hari terbaik menunjukkan apa kos pertukaran yang kerap kepada pemegang ufuk panjang.

Disiplin yang diterangkan oleh pengamal

Pasukan yang menjalankan sistem ini secara terbuka cenderung untuk menerangkan urutan yang sama. Ujian hadapan pada isian simulasi selama berbulan-bulan dan bukannya hari, kerana rekod kertas terkumpul hanya pada kelajuan masa nyata. Simpan regangan luar sampel yang tidak pernah dilihat oleh gesaan. Log setiap gesaan, setiap respons, dan setiap pesanan, kerana jawatankuasa yang tidak boleh dimainkan semula tidak boleh dinyahpepijat. Saiz kedudukan dengan peraturan tetap yang terletak di luar model. Kira setiap kos daripada panel di atas sebelum memanggil sebarang regangan menguntungkan.

Soalan Lazim

Adakah sistem dagangan AI berbilang ejen benar-benar menjana wang?

Bukti awam adalah tipis. Kebanyakan projek sumber terbuka menerbitkan ujian belakang dan bukannya rekod langsung yang diaudit, dan ujian belakang strategi model bahasa membawa kelemahan khusus: model itu dilatih pada teks yang menerangkan tempoh ujian. Keluk ekuiti yang tidak diaudit menunjukkan perisian, bukan kelebihan.

Adakah jawatankuasa ejen LLM lebih baik daripada model tunggal?

Jawatankuasa mengurangkan beberapa ralat pemformatan dan penghuraian serta menambah struktur pada output. Ia tidak menambah maklumat bebas apabila setiap ejen menanyakan model asas yang sama ke atas data asas yang sama. Lima pendapat yang berkorelasi mengundi kira-kira sebagai satu pendapat, dengan kependaman tambahan dan kos token tambahan yang dilampirkan.

Bolehkah ejen AI berdagang lebih pantas daripada pembuat pasaran?

Tidak. Perjalanan pergi balik model bahasa mengambil masa beberapa saat manakala sistem sebut harga profesional beroperasi dalam mikrosaat melalui perkakasan yang ditempatkan bersama. Mana-mana strategi yang keuntungannya bergantung pada kelajuan terletak di luar apa yang boleh dilakukan oleh sistem ini, yang meninggalkan ufuk hari dan minggu sebagai tanah yang munasabah.

Apakah perangkap ujian belakang terbesar yang khusus untuk ejen dagangan LLM?

Pandangan ke hadapan data latihan. Ujian belakang konvensional melindungi daripada kebocoran harga masa depan ke dalam keputusan, tetapi pemberat model sudah mengekodkan ulasan yang diterbitkan tentang tetingkap ujian. Tetingkap jalan ke hadapan dan pemisahan luar sampel tidak menghilangkan pengetahuan yang dibakar ke dalam pemberat, dan satu-satunya ujian bersih adalah tempoh selepas potongan latihan.

Berapa lama tempoh dagangan kertas perlu dijalankan?

Rangka kerja yang berguna ialah saiz sampel dan bukannya panjang kalendar. Strategi yang berdagang mingguan menghasilkan kira-kira lima puluh pemerhatian setahun, sampel yang kecil untuk sebarang tuntutan tentang kelebihan. Pengamal secara amnya mahukan cukup dagangan untuk melihat penurunan, bukan hanya regangan yang baik.


Setiap panel pada halaman ini adalah pertanyaan yang disimpan dan berversi ke atas data pasaran AS sebenar. Buka mana-mana panel untuk membaca SQL di belakangnya, atau jalankan sendiri terhadap jadual yang sama pada terminal Strasmore.

#ai agents#llm#algorithmic trading#automation#backtesting