मल्टी-एजेंट AI ट्रेडिंग सिस्टम क्या है
मल्टी-एजेंट AI ट्रेडिंग सिस्टम LLM समितियों पर ट्रेड चलाते हैं। आर्किटेक्चर, सिग्नल क्लियर होने पर बाजार लागत, और बैकटेस्ट के जाल देखें।
एक मल्टी-एजेंट AI ट्रेडिंग सिस्टम एक ट्रेडिंग निर्णय को कई बड़े भाषा मॉडल इंस्टेंस में विभाजित करता है, प्रत्येक इंस्टेंस को एक भूमिका देता है, और उनके आउटपुट को एक एकल ऑर्डर में विलय कर देता है। सामान्य टीम में एक समाचार पाठक, एक मौलिक विश्लेषक, एक चार्ट विश्लेषक, एक जोखिम जांचकर्ता और एक प्रबंधक एजेंट होता है जो मध्यस्थता करता है। जुलाई 2026 तक, इस आकार के कई ओपन-सोर्स फ्रेमवर्क GitHub पर एल्गोरिदमिक-ट्रेडिंग विषय में मौजूद हैं, जिनमें से प्रत्येक के कुछ सौ स्टार हैं। यह पृष्ठ आर्किटेक्चर की व्याख्या करता है, प्रकाशित साक्ष्य को README के दावों से अलग करता है, और उन लागतों पर बाजार डेटा प्रस्तुत करता है जिन्हें इसके किसी भी संस्करण को पार करना होता है।
मल्टी-एजेंट AI ट्रेडिंग सिस्टम वास्तव में क्या है
यह आर्किटेक्चर एक अध्यक्ष के साथ एक समिति है। प्रत्येक एजेंट एक प्रॉम्प्ट टेम्पलेट, एक डेटा फ़ीड और एक आउटपुट स्कीमा है। समाचार एजेंट को हेडलाइन मिलती हैं और वह एक लेबल लौटाता है। मौलिक एजेंट को फाइलिंग के अंश मिलते हैं और वह एक स्कोर लौटाता है। अध्यक्ष एजेंट को वे लेबल और स्कोर मिलते हैं और वह एक ऑर्डर लौटाता है।
उस डिज़ाइन से तीन गुण निकलते हैं, और प्रदर्शन के किसी भी दावे से पहले प्रत्येक का नाम लेना उचित है।
प्रत्येक एजेंट आमतौर पर एक आधार मॉडल साझा करता है। समान भार के विरुद्ध पाँच प्रॉम्प्ट सहसंबद्ध राय उत्पन्न करते हैं, इसलिए पाँच-एजेंट का वोट पाँच स्वतंत्र अनुमान नहीं है। समिति का ढाँचा एक विविधीकरण का सुझाव देता है जो कार्यान्वयन प्रदान नहीं करता है।
सिस्टम एक संख्यात्मक निर्णय के चारों ओर लिपटी एक टेक्स्ट पाइपलाइन है। मॉडल शब्द पढ़ता है और एक टोकन उत्सर्जित करता है। पोजीशन साइज़िंग, ऑर्डर प्रकार, स्टॉप प्लेसमेंट और एग्ज़िट लॉजिक सामान्य कोड हैं जो नीचे बैठे हैं, और अधिकांश चीज़ें जो परिणाम निर्धारित करती हैं, वे प्रॉम्प्ट के बजाय उस कोड में रहती हैं।
एक समिति का राउंड ट्रिप सेकंड लेता है। यह साप्ताहिक पुनर्संतुलन के लिए कार्य करने योग्य है और इंट्राडे गति पर अप्रासंगिक है, जहाँ बाजार निर्माता माइक्रोसेकंड में कोट और रीकोट करते हैं।
अनुसंधान क्या समर्थन करता है और क्या नहीं
वित्त में भाषा मॉडल पर प्रकाशित कार्य बहुत अलग ताकत के तीन दावों में विभाजित होता है।
निष्कर्षण और वर्गीकरण मजबूत दावा है। मॉडल भावना को लेबल करते हैं, फाइलिंग से आंकड़े निकालते हैं, और लंबे दस्तावेज़ों को ऐसी सटीकता से संक्षिप्त करते हैं जिसके लिए कुछ साल पहले एक बेस्पोक मॉडल की आवश्यकता होती थी। यह आयोजित-आउट टेक्स्ट पर मापने योग्य है और यह कायम है।
बाजार की स्थिति का विवरण मिश्रित दावा है। मॉडल एक शासन के बारे में धाराप्रवाह विवरण लिखते हैं, और वे विवरण आमतौर पर उस डेटा के अनुरूप होते हैं जो मॉडल को दिखाया गया था। क्या विवरण में वह जानकारी है जो कीमत पहले से नहीं रखती है, यह एक अलग प्रश्न है, और जो पेपर इसका सावधानीपूर्वक परीक्षण करते हैं, वे व्यापक त्रुटि बैंड के साथ छोटे प्रभावों की रिपोर्ट करते हैं।
लाभप्रदता कमजोर दावा है। अधिकांश रिपॉजिटरी README एक वित्त पोषित ट्रैक रिकॉर्ड के बजाय एक बैकटेस्ट की रिपोर्ट करते हैं, और इन-सैंपल इक्विटी कर्व और लाइव खाते के बीच की दूरी मात्रात्मक ट्रेडिंग में सबसे पुरानी दूरी है। लूप में भाषा मॉडल डालने से वह दूरी कम नहीं होती है।
लागत तल जिसे एक सिग्नल को पार करना होता है
प्रत्येक ट्रेड एक स्प्रेड को पार करता है, और वह पार करना वह तल है जिसे एक रणनीति किसी और चीज़ से पहले साफ करती है। नियमित घंटों पर माध्य कोटेड स्प्रेड, 22 जून से 26 जून, 2026, छह यूएस-सूचीबद्ध नामों के लिए:
हर आंकड़े के पीछे का पूरा SQL
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एक आधार अंक एक प्रतिशत अंक का सौवां हिस्सा है। पैनल में सबसे संकीर्ण नाम, SPY, ने उस सप्ताह में 0.27 आधार अंकों का माध्य स्प्रेड कोट किया। सबसे चौड़ा, RIOT, ने 7.09 कोट किया। एक राउंड ट्रिप स्प्रेड का दो बार भुगतान करता है, इसलिए पहले नाम में एक प्रवेश और निकास 0.55 आधार अंक पीछे शुरू होता है और अंतिम नाम में वही जोड़ी 14.19 पीछे शुरू होती है। एक एजेंट जो अपनी बुक को सप्ताह में दो बार पलटता है, वह उस टोल का लगभग सौ बार एक वर्ष भुगतान करता है, और टोल वसूला जाता है चाहे कॉल सही थी या गलत। एक स्टॉक का व्यापार करने में क्या खर्च आता है बाकी बिल का विवरण देता है।
शोर जिसे एक दिशात्मक कॉल को हराना होता है
दिशा कॉल को एक वितरण के विरुद्ध वर्गीकृत किया जाता है जो अधिकतर छोटी संख्याएँ हैं। कैलेंडर 2025 में प्रत्येक SPY सत्र, उसके क्लोज़-टू-क्लोज़ मूव के आकार के अनुसार क्रमबद्ध:
हर आंकड़े के पीछे का पूरा SQL
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))आधा वर्ष आधे प्रतिशत के अंदर बैठा। under 0.25% बैंड में 24.9% सत्र थे और 0.25 to 0.5% बैंड में 24.1% थे। दूसरे छोर पर, 13 सत्र 2% and up चले, 5.2% वर्ष का।
इसे स्प्रेड पैनल के बगल में रखें। एक आधार अंक 0.01% है। 0.3% का एक विशिष्ट सत्र मूव एक तंग स्प्रेड का तीस गुना और चौड़े स्प्रेड का लगभग चार गुना है। अंकगणित एक धैर्यवान, सही कॉल के लिए जगह छोड़ता है और तेज़, सीमांत कॉल के लिए बहुत कम।
व्यापार योग्य ब्रह्मांड वास्तव में कहाँ बैठता है
एजेंट फ्रेमवर्क कवरेज का विज्ञापन करते हैं, अक्सर हर सुबह सैकड़ों टिकर स्कैन किए जाते हैं। डॉलर वॉल्यूम दिखाता है कि उस सूची का कितना हिस्सा आकार को अवशोषित कर सकता है। प्रत्येक यूएस-सूचीबद्ध नाम जो 30 जून, 2026 को नियमित घंटों के दौरान कारोबार करता था, उस सत्र के डॉलर वॉल्यूम में उसकी रैंक के अनुसार समूहित:
हर आंकड़े के पीछे का पूरा SQL
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)दस नामों ने सत्र के डॉलर वॉल्यूम का 22.5% हिस्सा लिया, लगभग $205.04 बिलियन। अगले 40 ने 20.5% लिया। दूसरे छोर पर, 10966 नाम जो 1000 से आगे रैंक करते हैं, उन्होंने आपस में 12.9% साझा किया, लगभग $117.83 बिलियन पूरी पूंछ में फैला हुआ।
चौड़ाई का विज्ञापन करना सस्ता है और व्यापार करना महंगा है। एक समिति जो तीन हजार नामों को रैंक करती है, वह अपने अधिकांश रैंकिंग प्रयास को उस पूंछ में खर्च करती है, जहाँ उपरोक्त स्प्रेड पैनल एक गोलाई त्रुटि के बजाय एक वास्तविक लागत है।
ये बैकटेस्ट सिस्टम को क्यों चापलूस बनाते हैं
एक चापलूस बैकटेस्ट का सबसे बड़ा एकल स्रोत विंडो का चुनाव है। कैलेंडर वर्ष के अनुसार SPY, 2016 से 2025 तक, वर्ष की उच्चतम और निम्नतम क्लोज़िंग कीमत के बीच के अंतर के साथ:
हर आंकड़े के पीछे का पूरा SQL
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एक सिस्टम जिसे केवल 2021 पर परीक्षण किया गया, एक वर्ष जो 28.7% अधिक बंद हुआ, एक बढ़ती टेप प्राप्त करता है। वही सिस्टम जिसे केवल 2022 पर परीक्षण किया गया, जो -20% बंद हुआ, एक गिरती टेप प्राप्त करता है। उच्चतम और निम्नतम क्लोज़ के बीच वर्ष-दर-वर्ष का अंतर 68% तक पहुँच गया 2020 में और शांत वर्षों में भी 25.3% से ऊपर रहा।
विंडो समस्या के शीर्ष पर चार जाल बैठते हैं, और उनमें से एक अकेले भाषा मॉडल का है।
- प्रशिक्षण डेटा के माध्यम से आगे की ओर देखना। 2025 के माध्यम से टेक्स्ट पर प्रशिक्षित एक मॉडल ने पहले ही पढ़ लिया है कि 2023 का एक ट्रेड कैसे निकला। 2023 पर एक बैकटेस्ट एक ऐसा प्रश्न पूछता है जिसका उत्तर मॉडल जानता है, और मूल्य श्रृंखला का कोई भी फेरबदल उस ज्ञान को नहीं हटाता है।
- टिकर सूची में उत्तरजीविता। आज की लिस्टिंग से इकट्ठा किया गया एक ब्रह्मांड उन नामों को छोड़ देता है जो रास्ते में डीलिस्ट हो गए।
- फिल धारणाएँ। एक बैकटेस्ट जो हर ऑर्डर को मिडपॉइंट पर भरता है, वह ऊपर के पूरे लागत पैनल को मिटा देता है।
- प्रॉम्प्ट वेरिएंट पर चयन। बीस प्रॉम्प्ट वाक्यांशों का प्रयास किया गया और सबसे अच्छा रिपोर्ट किया गया, वही ओवरफिटिंग है जिसने भाषा मॉडल के अस्तित्व में आने से बहुत पहले पैरामीटर स्वीप को त्रस्त किया था।
भाषा मॉडल एजेंट कहाँ प्रशंसनीय रूप से मदद करते हैं
पिच का ईमानदार संस्करण README संस्करण की तुलना में संकीर्ण है और फिर भी उपयोगी है।
पढ़ने की मात्रा सबसे स्पष्ट जीत है। एक एजेंट जो रात भर एक वॉचलिस्ट पर हर फाइलिंग और हेडलाइन के माध्यम से काम करता है और एक संरचित सारांश लौटाता है, वह मानवीय ध्यान के घंटे बचाता है, और आउटपुट स्रोत के विरुद्ध जाँचने योग्य है।
एक शासन का सादे भाषा में वर्णन करना दूसरा है। फैलाव, चौड़ाई और अस्थिरता पर एक दैनिक पैराग्राफ, उन्हीं संख्याओं से उत्पन्न जो एक मानव पढ़ेगा, एक उपयोगी ब्रीफिंग दस्तावेज़ है, भले ही इसमें कोई पूर्वानुमान न हो।
प्रक्रिया स्वच्छता तीसरी है। एक एजेंट जो एक बताई गई स्थिति सीमा का उल्लंघन करने वाले ऑर्डर को अस्वीकार करता है, या एक ऐसी रणनीति को ध्वजांकित करता है जो कमाई की तारीख पर व्यापार करने वाली है, उन नियमों को लागू करता है जिन्हें एक विचलित मानव छोड़ देता है।
उन तीनों में से कोई भी बाजार में बढ़त नहीं है। ये तीनों अनुसंधान और संचालन कार्य हैं, जहाँ आज मापने योग्य लाभ बैठते हैं। कम अस्थिरता विसंगति जैसे एक दस्तावेजी प्रभाव को वास्तविक माने जाने से पहले बड़े नमूनों और बार-बार आउट-ऑफ-सैंपल प्रतिकृति की आवश्यकता थी, और एक नया एजेंट फ्रेमवर्क उसी बार को पूरा करता है या इसे साफ नहीं करता है। सबसे अच्छे दिनों को खोना दिखाता है कि बार-बार स्विच करने से लंबी अवधि के धारक को क्या खर्च आता है।
चिकित्सकों द्वारा वर्णित अनुशासन
सार्वजनिक रूप से इन प्रणालियों को चलाने वाली टीमें उसी अनुक्रम का वर्णन करती हैं। दिनों के बजाय महीनों के लिए सिम्युलेटेड फिल पर आगे का परीक्षण, क्योंकि एक पेपर रिकॉर्ड केवल वास्तविक समय की गति से जमा होता है। एक आउट-ऑफ-सैंपल स्ट्रेच रखें जो प्रॉम्प्ट ने कभी नहीं देखा। हर प्रॉम्प्ट, हर प्रतिक्रिया और हर ऑर्डर को लॉग करें, क्योंकि एक समिति जिसे दोबारा नहीं चलाया जा सकता, उसे डीबग नहीं किया जा सकता। मॉडल के बाहर बैठे निश्चित नियमों के साथ पोजीशन का आकार निर्धारित करें। किसी भी स्ट्रेच को लाभदायक कहने से पहले उपरोक्त पैनलों से हर लागत की गणना करें।
सामान्य प्रश्न
क्या मल्टी-एजेंट AI ट्रेडिंग सिस्टम वास्तव में पैसा कमाते हैं?
सार्वजनिक साक्ष्य पतला है। अधिकांश ओपन-सोर्स प्रोजेक्ट एक ऑडिटेड लाइव रिकॉर्ड के बजाय एक बैकटेस्ट प्रकाशित करते हैं, और भाषा मॉडल रणनीतियों के बैकटेस्ट में एक विशिष्ट दोष होता है: मॉडल को उस टेक्स्ट पर प्रशिक्षित किया गया था जो परीक्षण अवधि का वर्णन करता है। एक अनऑडिटेड इक्विटी कर्व सॉफ्टवेयर को प्रदर्शित करता है, न कि किसी बढ़त को।
क्या LLM एजेंटों की एक समिति एक एकल मॉडल से बेहतर है?
एक समिति कुछ फ़ॉर्मेटिंग और पार्सिंग त्रुटियों को कम करती है और आउटपुट में संरचना जोड़ती है। यह स्वतंत्र जानकारी नहीं जोड़ता है जब प्रत्येक एजेंट उसी अंतर्निहित डेटा पर उसी आधार मॉडल से पूछताछ करता है। पाँच सहसंबद्ध राय मोटे तौर पर एक राय के रूप में वोट करती हैं, जिसमें अतिरिक्त विलंबता और अतिरिक्त टोकन लागत जुड़ी होती है।
क्या कोई AI एजेंट बाजार निर्माता से तेज़ व्यापार कर सकता है?
नहीं। एक भाषा मॉडल राउंड ट्रिप सेकंड में चलता है जबकि पेशेवर कोटिंग सिस्टम सह-स्थित हार्डवेयर पर माइक्रोसेकंड में काम करते हैं। कोई भी रणनीति जिसका लाभ गति पर निर्भर करता है, वह इन प्रणालियों की क्षमता के बाहर बैठती है, जो दिनों और हफ्तों के क्षितिज को प्रशंसनीय जमीन के रूप में छोड़ देती है।
LLM ट्रेडिंग एजेंटों के लिए सबसे बड़ा बैकटेस्ट जाल क्या है?
प्रशिक्षण-डेटा आगे की ओर देखना। पारंपरिक बैकटेस्ट भविष्य की कीमतों को निर्णय में लीक होने से बचाते हैं, लेकिन एक मॉडल के भार पहले से ही परीक्षण विंडो के बारे में प्रकाशित टिप्पणी को एन्कोड करते हैं। वॉक-फॉरवर्ड विंडो और आउट-ऑफ-सैंपल स्प्लिट भार में पके ज्ञान को नहीं हटाते हैं, और एकमात्र स्वच्छ परीक्षण प्रशिक्षण कटऑफ के बाद की अवधि है।
पेपर-ट्रेडिंग अवधि को कितने समय तक चलने की आवश्यकता है?
उपयोगी फ्रेमिंग कैलेंडर लंबाई के बजाय नमूना आकार है। एक रणनीति जो साप्ताहिक व्यापार करती है, वह प्रति वर्ष लगभग पचास अवलोकन उत्पन्न करती है, जो किसी बढ़त के दावे के लिए एक छोटा नमूना है। चिकित्सक आम तौर पर एक अच्छे स्ट्रेच को नहीं, बल्कि एक ड्रॉडाउन देखने के लिए पर्याप्त ट्रेड चाहते हैं।
इस पृष्ठ पर प्रत्येक पैनल वास्तविक यूएस बाजार डेटा पर एक संग्रहीत, संस्करणित क्वेरी है। इसके पीछे SQL पढ़ने के लिए किसी भी पैनल को खोलें, या Strasmore टर्मिनल पर उन्हीं तालिकाओं के विरुद्ध अपनी स्वयं की क्वेरी चलाएँ।