AlgoVesta MCP सर्वर: Claude, ChatGPT, Cursor और Gemini को अपने असली Exchange और MetaTrader 5 खातों पर ट्रेड करने दें
यह क्या है: AlgoVesta एक होस्टेड Model Context Protocol (MCP) सर्वर चलाता है जो एक HTTPS लिंक के ज़रिए AI असिस्टेंट को बीस असली ट्रेडिंग टूल देता है। उस एक लिंक को Claude, ChatGPT, Cursor, Claude Code, Gemini CLI या किसी भी MCP-सक्षम क्लाइंट में पेस्ट करें, और असिस्टेंट बैलेंस पढ़ सकता है, पोज़िशन खोल-बंद कर सकता है, stop-loss और take-profit बदल सकता है, और अपनी हर कार्रवाई का ऑडिट कर सकता है 16 क्रिप्टो एक्सचेंजों और MetaTrader 5 फॉरेक्स पर एक साथ — उन जोखिम सेटिंग्स का उपयोग करके जो आपने पहले ही AlgoVesta में सेव की हैं, एक सर्वर-साइड policy wall के पीछे जिसे कोई भी प्रॉम्प्ट ओवरराइड नहीं कर सकता। हर कनेक्शन $5,000 के paper बैलेंस से शुरू होता है और हर कार्रवाई एक ed25519-signed रसीद लौटाती है।
Model Context Protocol AI असिस्टेंट को बाहरी सिस्टम से जोड़ने का एक ओपन स्टैंडर्ड है। ज़्यादातर ट्रेडिंग-संबंधित MCP सर्वर मार्केट डेटा को चैट विंडो में स्ट्रीम करते हैं। यह सर्वर एक्ज़ीक्यूट करता है: यह एक order-routing लेयर है जिसके आगे एक deterministic risk engine है, और AI कॉलर है — कभी अथॉरिटी नहीं।
क्विक स्टार्ट
सेटअप तीन चरणों का है और इसके लिए किसी कोड की ज़रूरत नहीं। पूरा फ्लो MCP Connection टैब में है, आपके AlgoVesta पैनल के।
खोलें MCP Connection टैब और एक key जनरेट करें। नई keys डिफ़ॉल्ट रूप से paper scope में होती हैं। पूरा लिंक एक बार दिखाया जाता है — उसे तभी कॉपी कर लें।
लिंक को अपने AI क्लाइंट में एक custom MCP सर्वर के रूप में पेस्ट करें। कोई API key AlgoVesta से बाहर नहीं जाती, कोई कोड नहीं, कोई लोकल इंस्टॉल नहीं।
उससे बात करें। “मेरा पोर्टफोलियो कैसा है?” “ETHUSDT पर 5x पर $200 का long सिम्युलेट करें।” “मेरी आधी BTC पोज़िशन बंद करें।”
आपका कनेक्शन URL कुछ इस तरह दिखता है:
https://api.algovesta.com/u/avmcp_<your-key>/mcp
वह URL एक क्रेडेंशियल है। जिसके पास भी यह है वह इसकी scope के भीतर आपके खातों पर कार्रवाई कर सकता है। इसे पासवर्ड की तरह मानें: इसे कभी किसी सार्वजनिक चैट, स्क्रीनशॉट, शेयर की गई repository या सपोर्ट टिकट में पेस्ट न करें। अगर यह लीक हो जाए, तो इसे पैनल से revoke करें — revocation नए कनेक्शनों पर तुरंत प्रभावी होता है और सेकंडों के भीतर खुली event streams को गिरा देता है।
कौन-से AI असिस्टेंट कनेक्ट हो सकते हैं
कोई भी क्लाइंट जो Streamable HTTP पर MCP बोलता है, कनेक्ट हो सकता है। नीचे दी गई तालिका में वह दर्ज है जो लाइव सर्वर के विरुद्ध सत्यापित किया गया, असली सीमाओं सहित — इनमें से कुछ AI प्रोडक्ट की सीमाएं हैं, AlgoVesta की नहीं, और आप इनसे टकराएंगे चाहे आप कोई भी MCP सर्वर उपयोग करें।
| AI क्लाइंट | लिंक कहां पेस्ट करें | नोट्स और असली सीमाएं |
|---|---|---|
| Claude (वेब, डेस्कटॉप, iOS, Android) | Customize → Connectors → Add custom connector | पूरा समर्थन। टूल के शीर्षक और confirmation डायलॉग सीधे सर्वर से आते हैं। |
| Claude Code | claude mcp add --transport http | कमांड-लाइन। स्क्रिप्टेड या दोहराए जाने वाले workflow के लिए उपयोगी। |
| Cursor | mcp.json, वह "url" फ़ील्ड | पूरा समर्थन। ध्यान दें कि key का नाम है url यहां — Gemini CLI एक अलग नाम उपयोग करता है। |
| ChatGPT | Developer mode / custom connector | केवल पेड प्लान। Custom MCP connectors फ्री प्लान पर उपलब्ध नहीं हैं, और पहले developer mode सक्षम करना ज़रूरी हो सकता है। यह एक OpenAI प्रतिबंध है। |
| Gemini CLI | ~/.gemini/settings.json, वह "httpUrl" फ़ील्ड | केवल CLI। Gemini वेब ऐप custom MCP सर्वर को सपोर्ट नहीं करता। उपयोग करें httpUrl key का, न कि url. |
| कोई भी अन्य MCP-सक्षम क्लाइंट | उसकी अपनी MCP / connector सेटिंग्स | सर्वर स्टैंडर्ड को लागू करता है, इसलिए कोई भी क्लाइंट जो Streamable HTTP पर remote MCP सपोर्ट करता है, बिना किसी विशेष सेटअप के काम करेगा। |
Cursor उदाहरण (mcp.json):
{
"mcpServers": {
"algovesta": {
"url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
Gemini CLI उदाहरण (~/.gemini/settings.json) — ध्यान दें httpUrl:
{
"mcpServers": {
"algovesta": {
"httpUrl": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
Claude Code:
claude mcp add --transport http algovesta https://api.algovesta.com/u/avmcp_<your-key>/mcp
ट्रांसपोर्ट और प्रोटोकॉल
| ट्रांसपोर्ट | Streamable HTTP, स्टेटलेस, JSON रिस्पॉन्स। हर रिक्वेस्ट स्वतंत्र रूप से authenticated होती है। |
| सर्वर का नाम | AlgoVesta |
| Secret-link एंडपॉइंट | https://api.algovesta.com/u/<key>/mcp |
| OAuth एंडपॉइंट | https://api.algovesta.com/mcp |
| टूल लिस्ट में बदलाव | tools.listChanged = true। क्लाइंट reconnect पर टूल लिस्ट को रिफ्रेश करते हैं, इसलिए नए टूल और पैरामीटर connector को हटाए और दोबारा जोड़े बिना दिखाई देते हैं। |
| Event स्ट्रीम | Server-sent events, यहां /mcp/events और /u/<key>/events, tenant-isolated, साथ में Last-Event-ID reconnect। |
| Machine-readable schema | /mcp/tools.json — सभी 20 टूल का पूरा JSON Schema, ठीक वैसा ही जैसा क्लाइंट प्राप्त करता है। |
प्रमाणीकरण और scopes
कनेक्ट करने के दो तरीके हैं, और दोनों एक ही tenant context में परिणत होते हैं। टूल कभी भी user ID को पैरामीटर के रूप में स्वीकार नहीं करते — पहचान केवल authenticated कनेक्शन से पढ़ी जाती है, यही वजह है कि cross-account पहुंच केवल निषिद्ध नहीं बल्कि संरचनात्मक रूप से असंभव है।
Secret link
इस रूप की एक key avmcp_<32-byte urlsafe random>, जो URL पथ में embedded है। इसे एक Argon2id hash और एक SHA-256 lookup hash के रूप में संग्रहीत किया जाता है; plaintext केवल निर्माण के क्षण में मौजूद होता है और बाद में कभी पुनर्प्राप्त नहीं किया जा सकता। हर key अपनी खुद की scope, अपना खुद का लेबल और अपनी खुद की revocation स्थिति रखती है, ताकि आप Cursor में एक paper key और Claude में एक live key चला सकें और किसी को भी स्वतंत्र रूप से बंद कर सकें।
OAuth 2.1
उन क्लाइंट के लिए जो एक उचित authorization flow पसंद करते हैं। समर्थित grants हैं authorization_code और refresh_token, रोटेटिंग refresh tokens के साथ। PKCE, साथ में S256 अनिवार्य है — इसके बिना कोई रिक्वेस्ट अस्वीकार कर दी जाती है। Dynamic client registration उपलब्ध है, इसलिए ज़्यादातर क्लाइंट खुद को कॉन्फ़िगर कर लेते हैं। Discovery दस्तावेज़:
GET https://api.algovesta.com/.well-known/oauth-authorization-server
GET https://api.algovesta.com/.well-known/oauth-protected-resource
POST https://api.algovesta.com/mcp/oauth/register
GET https://api.algovesta.com/mcp/oauth/authorize
POST https://api.algovesta.com/mcp/oauth/token
तीन scopes
| Scope | यह क्या कर सकता है | आपको यह कैसे मिलता है |
|---|---|---|
read | पोर्टफोलियो, कीमतें, पेंडिंग ऑर्डर, सिमुलेशन, policy पूर्वावलोकन, रसीद सत्यापन, channel replay। कोई ऑर्डर नहीं दिया जा सकता। | सीधे बनाई जाती है। |
paper | जो कुछ भी इसमें है read, साथ ही $5,000 के वर्चुअल बैलेंस पर paper engine के विरुद्ध execute किए गए ऑर्डर। नई keys के लिए डिफ़ॉल्ट। | सीधे बनाई जाती है। |
live | ऊपर दिया गया सब कुछ, साथ ही आपके कनेक्ट किए गए exchanges और MetaTrader 5 खातों पर असली ऑर्डर। | दूसरा factor आवश्यक। एक वैध authenticator (TOTP) कोड, या आपके खाते के ई-मेल पर भेजा गया एक confirmation कोड जो 10 मिनट के लिए वैध होता है। यह सर्वर-साइड लागू किया जाता है, बिना किसी अपवाद के। |
Scopes को क्रमबद्ध किया गया है, इसलिए एक टूल जिसे चाहिए paper अस्वीकार कर देता है एक read key जिसमें है insufficient_scope। इसलिए सिम्युलेटेड और असली पैसे के बीच की सीमा key की अपनी विशेषता है, न कि किसी प्रॉम्प्ट, सेटिंग या मॉडल के निर्णय की।
टूल संदर्भ — सभी 20 टूल
यही वे टूल हैं जो आपका असिस्टेंट देखता है। Read टूल को आपसे पहले पूछे बिना कॉल करना सुरक्षित है; छह write टूल उन क्लाइंट में confirmation दिखाते हैं जो इसे सपोर्ट करते हैं, और उनमें से तीन — place_order, close_position और cancel_order — की annotations में उन्हें अतिरिक्त रूप से destructive के रूप में चिह्नित किया गया है।
| टूल | Scope | प्रकार | उद्देश्य |
|---|---|---|---|
get_portfolio_context | read | read-only | एक ही कॉल में हर कनेक्टेड खाता |
get_market_price | read | read-only | ताज़गी की जानकारी के साथ लाइव कीमत |
simulate_order | read | read-only | policy निर्णय सहित एक Dry-run |
place_order | paper / live | destructive | एक पोज़िशन खोलता है |
close_position | paper / live | destructive | पूरी तरह या आंशिक रूप से बंद करता है |
modify_position | paper / live | write | stop-loss और take-profit बदलता है |
list_open_orders | read | read-only | पेंडिंग limit ऑर्डर |
cancel_order | paper / live | destructive | एक पेंडिंग ऑर्डर रद्द करता है |
compile_policy | read | read-only | सामान्य-भाषा के नियमों को एक policy पूर्वावलोकन में बदलता है |
verify_receipt | read | read-only | signature और hash chain जांचता है |
replay_channel | read | read-only | एक Telegram चैनल को आपके नियमों के विरुद्ध back-test करता है |
get_trade_history | read | read-only | क्रिप्टो, MT5 और paper में बंद ट्रेड्स और परफॉर्मेंस |
compare_venues | read | read-only | मापे गए price और spread के आधार पर जुड़े हुए exchanges को rank करता है |
list_strategies | read | read-only | TradingView रणनीतियाँ; webhook URL कभी नहीं लौटाया जाता |
create_strategy | paper / live | write | नई रणनीति, वास्तविक धन execution हमेशा बंद रखते हुए |
update_strategy | paper / live | write | रणनीति सेटिंग्स; auto_trade को मना कर दिया जाता है |
backtest_my_signals | read | read-only | आपके अपने पिछले सिग्नल अलग सेटिंग्स के साथ दोबारा चलाता है (कतारबद्ध जॉब) |
simulate_policy | read | read-only | आपके वास्तव में बंद किए गए ट्रेडों पर रिस्क पॉलिसी लागू करता है (कतारबद्ध जॉब) |
import_tradingview_backtest | read | read-only | TradingView एक्सपोर्ट को असली फ़ीस और स्लिपेज के साथ दोबारा जोड़ता है (कतारबद्ध जॉब) |
get_job_status | read | read-only | कतारबद्ध जॉब की प्रगति और परिणाम |
get_portfolio_context
कोई पैरामीटर नहीं लेता। यह authenticated key से संबंधित हर exchange खाते, हर MetaTrader 5 खाते और paper खाते का एक normalized दृश्य लौटाता है — और कुछ नहीं। यही वह कॉल है जो “मैं कैसा कर रहा हूं?” को सोलह की जगह एक ही सवाल बना देती है।
बाकी की तुलना में दो फ़ील्ड ज़्यादा मायने रखते हैं। क्रिप्टो खातों के लिए, balance और equity यह बताते हैं केवल futures वॉलेट; spot पैसा अलग से इसमें दर्शाया जाता है spot_balance, इसलिए एक असिस्टेंट जो केवल पढ़ता है balance गलती से यह निष्कर्ष निकाल सकता है कि आपके पास कुछ नहीं है। MetaTrader 5 खातों के लिए, positions_source या तो होता है live_ea, जिसका अर्थ है कि पोज़िशन लिस्ट को टर्मिनल के विरुद्ध सत्यापित किया गया, या unavailable, जिसका अर्थ है कि टर्मिनल तक पहुंचा नहीं जा सका। इस unavailable स्थिति में एक खाली पोज़िशन लिस्ट का अर्थ नहीं है “कोई खुली पोज़िशन नहीं” — इसका अर्थ है अज्ञात, और टूल का विवरण मॉडल को यही कहने का निर्देश देता है, न कि आपको आश्वस्त करने का।
get_market_price
पैरामीटर: venue, symbol। लौटाता है {ok, venue, symbol, last, bid, ask, ts, source, age_sec}। कीमतें एक साझा cache से आती हैं जो लगभग हर सेकंड रिफ्रेश होती है; miss होने पर सर्वर exchange को एक लाइव REST कॉल करता है। अगर मान 10 सेकंड से पुराना है या बिल्कुल भी प्राप्त नहीं किया जा सकता, तो यह स्पष्ट रूप से बताया जाता है — एक stale कीमत को कभी लाइव कीमत के रूप में नहीं दिखाया जाता। अगर वह symbol किसी भी कनेक्टेड exchange पर मौजूद नहीं है, तो एक informational DEX कीमत इस स्पष्ट चेतावनी के साथ लौटाई जा सकती है कि आप इसे अपने कनेक्टेड venues पर ट्रेड नहीं कर सकते।
simulate_order
आवश्यक: venue, symbol, side, order_type, idempotency_key। कोई ऑर्डर नहीं भेजता। यह अपेक्षित fill, margin पर असर और policy निर्णय, साथ ही सर्वर द्वारा निकाली गई absolute stop-loss और take-profit कीमतें लौटाता है। यह एक read ऑपरेशन है, इसलिए एक अच्छा व्यवहार करने वाला असिस्टेंट बिना अनुमति मांगे इसे कॉल करता है, आपको एक सारांश दिखाता है, और कुछ भी रखने से पहले ठीक एक बार confirmation मांगता है।
place_order
आवश्यक: venue, symbol, side, order_type, idempotency_key। वैकल्पिक: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.
यह idempotency_key सजावट नहीं है। अगर वही key एक ही उपयोगकर्ता के लिए दो बार आती है, तो संग्रहीत रिस्पॉन्स दोबारा चलाया जाता है और कोई दूसरा ऑर्डर नहीं खोला जाता — यही आपकी सुरक्षा करता है जब कोई क्लाइंट timeout के बाद दोबारा कोशिश करता है, कोई फ़ोन confirmation के बीच में सिग्नल खो देता है, या कोई मॉडल एक टूल को दो बार कॉल करता है।
आकार जानबूझकर स्पष्ट रखा गया है। क्रिप्टो के लिए आप तीन फ़ील्ड में से ठीक एक भेजते हैं, और उनका मतलब अलग-अलग होता है:
| फ़ील्ड | अर्थ | 5x पर उदाहरण |
|---|---|---|
size_usd | पोज़िशन का मूल्य (notional) | size_usd=100 → $100 की पोज़िशन, आपके $20 पैसे |
margin_usd | आपकी अपनी जेब से collateral | margin_usd=20 → $100 की पोज़िशन |
risk_pct | उपयोग किए गए free बैलेंस का प्रतिशत margin के रूप में। यह stop-distance जोखिम आकार नहीं है; stop-loss की दूरी गणना में शामिल नहीं होती। | risk_pct=1 $2,000 के बैलेंस पर → $20 margin → $100 की पोज़िशन |
फॉरेक्स और MetaTrader 5 के लिए, आकार इसमें दिया जाता है lots इसकी जगह, और leverage बिल्कुल नहीं भेजा जाता — प्रोडक्ट unleveraged है और आकार lot वॉल्यूम से आता है। आपका बताया गया lot आकार ठीक वैसे ही उपयोग किया जाता है और कभी किसी सुविधाजनक मान पर round नहीं किया जाता; अगर यह आपके ब्रोकर की सीमाओं से बाहर पड़ता है तो ऑर्डर अस्वीकार कर दिया जाता है और अनुमत सीमा वापस बताई जाती है।
ऑर्डर आकार सहनशीलता। Exchanges केवल कुछ निश्चित lot वृद्धि स्वीकार करते हैं, इसलिए मांगी गई राशि को निकटतम वैध चरण से मिलाया जाता है। अगर विचलन 20% के भीतर रहता है तो ऑर्डर आगे बढ़ता है और सटीक विचलन आपको वापस बताया जाता है; 20% से आगे ऑर्डर नहीं खोला जाता, और आपको अंकों में बताया जाता है कि कौन-सी नज़दीकी राशियां काम करेंगी। वह सीमा sizing function से गुज़रे हर असली ऑर्डर को दोबारा चलाकर चुनी गई थी, अंतर्ज्ञान से नहीं।
छोड़े गए फ़ील्ड आपकी सेव की गई सेटिंग्स पर वापस चले जाते हैं। अगर आप stop-loss, take-profit या leverage नहीं बताते, तो असिस्टेंट को उन फ़ील्ड को खाली छोड़ने का निर्देश दिया गया है, और सर्वर उन्हें आपके पैनल में सेव की गई प्राथमिकताओं से भरता है — ठीक वही मान जो मैनुअल पैनल और Telegram बॉट उपयोग करते हैं। रिस्पॉन्स बताता है कि कौन-से फ़ील्ड सेव की गई सेटिंग्स से आए, इसमें prefs_used। यह एक मापी गई विफलता की वजह से मौजूद है: जब वे फ़ील्ड अनिवार्य थे तो मॉडल को मान गढ़ने पड़ते थे, और पांच में से पांच ऑर्डर ने एक ग्राहक की अपनी कॉन्फ़िगरेशन को ओवरराइड कर दिया था।
close_position
आवश्यक: venue, symbol, side, idempotency_key। वैकल्पिक: fraction (0 से 1], account, ticket। क्रिप्टो और MetaTrader 5 दोनों के लिए काम करता है। बंद करना जोखिम घटाता है, इसलिए policy wall इसे कभी नहीं रोकता — केवल kill switch ही रोकता है। एक ही idempotency key के साथ दस कॉल ठीक एक ही close करते हैं। अगर कोई मेल खाती पोज़िशन मौजूद नहीं है तो आपको मिलता है POSITION_NOT_FOUND साथ में वे पोज़िशन जो हैं उस venue पर खुली हुई, ताकि असिस्टेंट अंदाज़ा लगाने की बजाय खुद को सही कर सके।
MetaTrader 5 में कोई आंशिक close नहीं है — Expert Advisor पूरी तरह बंद करता है — इसलिए उपयोग करें fraction=1 वहां। जब एक ही symbol पर कई MT5 पोज़िशन खुली हों, ticket अनिवार्य हो जाता है, और जब तक लक्ष्य अस्पष्ट रहता है कुछ भी बंद नहीं किया जाता.
modify_position
आवश्यक: venue, symbol, side, idempotency_key, साथ ही इनमें से कम से कम एक new_sl / new_tp. stop-loss हटाया नहीं जा सकता — अनिवार्य-SL नियम यहां भी लागू होता है। क्रम की जांच होती है: एक long को चाहिए new_sl < mark < new_tp, एक short को इसका उल्टा। केवल एक तरफ भेजने से दूसरी तरफ अपने वर्तमान मान पर बनी रहती है, मिटती नहीं। बंद करने की तरह ही, एक अस्पष्ट MT5 ticket का मतलब है कि कुछ भी संशोधित नहीं किया जाता।
list_open_orders
वैकल्पिक: venue। यह पेंडिंग limit ऑर्डर सूचीबद्ध करता है, साथ में order_ref, venue, symbol, side, entry कीमत, आकार और बनने का समय।
किसी असिस्टेंट से अपने ओपन ऑर्डर की समीक्षा करवाने से पहले एक बात जान लेना ज़रूरी है: यह टूल जिन पेंडिंग ऑर्डर को ट्रैक करता है, वे पेपर (paper) ऑर्डर बुक में होते हैं। MCP के ज़रिए लाइव एक्सचेंज पर दिए गए ऑर्डर मार्केट ऑर्डर के रूप में भेजे जाते हैं, इसलिए वे पेंडिंग रहने के बजाय तुरंत भर जाते हैं, और लाइव अकाउंट पर खाली लिस्ट का मतलब है कि कुछ गायब नहीं हुआ बल्कि कुछ भी पेंडिंग नहीं है।
cancel_order
आवश्यक: venue, order_ref, idempotency_key। अगर यह reference आपका नहीं है तो जवाब होता है NOT_FOUND — कभी भी यह संकेत नहीं देता कि किसी और का ऑर्डर मौजूद है। बंद करने की तरह, यह जोखिम घटाने वाला है और policy wall इसे नहीं रोकता।
compile_policy
आवश्यक: natural_text। आप सामान्य भाषा में एक नियम लिखते हैं — “एक ट्रेड पर 2% से ज़्यादा जोखिम कभी न लें, 10 से ऊपर कोई leverage नहीं, केवल BTC और ETH” — और यह एक JSON policy में compile हो जाता है, जो इस रूप में लौटाया जाता है preview। Compile करना कभी कुछ भी सक्रिय नहीं करता। सक्रियण पैनल से या इसके ज़रिए एक अलग, सोच-समझकर उठाया गया कदम है POST /api/mcp/policies/{policy_id}/activate, जिसका मतलब है कि कोई मॉडल आपके नियमों के बारे में बात करके उन्हें ढीला नहीं कर सकता।
verify_receipt
आवश्यक: receipt_id। लौटाता है signature_valid और chain_valid; एक कार्रवाई तभी सत्यापित मानी जाती है जब दोनों सही हों। रसीदें ed25519-signed होती हैं और प्रति उपयोगकर्ता hash-chained होती हैं, इसलिए किसी पहले की रसीद में बदलाव करने से बाद की हर रसीद टूट जाती है और chain_valid false हो जाती है। सार्वजनिक key यहां उपलब्ध कराई जाती है /mcp/receipts/pubkey, ताकि आप इस endpoint पर भरोसा किए बिना स्वतंत्र रूप से सत्यापित कर सकें। पुरानी HMAC-युग की रसीदें लौटाती हैं legacy=true.
replay_channel
आवश्यक: वैकल्पिक: आवश्यक: कोई पैरामीटर नहीं। आपकी TradingView रणनीतियों को उनकी सेटिंग्स, वैकल्पिक: आवश्यक: channel_ref। वैकल्पिक: days (90 तक, डिफ़ॉल्ट 30), policy_override। “अगर मैंने पिछले X दिनों में इस Telegram चैनल को अपने नियमों के तहत फॉलो किया होता तो क्या होता?” का जवाब देता है, इसके पुराने सिग्नल को paper-style में दोबारा चलाकर, जिसमें हर सिग्नल policy wall से गुज़रता है ताकि अस्वीकृत सिग्नल कभी न खुलें। प्रगति इस रूप में आती है replay_progress events के रूप में। परिणाम 24 घंटे के लिए cache किए जाते हैं और यह टूल प्रति घंटे 5 replays तक सीमित है। आउटपुट: {trades:[...], summary:{total_pnl, win_rate, max_drawdown,
.get_trade_history
venue, symbol, days (1–365, डिफ़ॉल्ट 30), limit (1–200, डिफ़ॉल्ट 50), market (crypto / forex / paper)। तीनों सोर्स के बंद ट्रेड्स को एक ही लिस्ट में, सबसे नए सबसे पहले, साथ में एक summary के साथ लौटाता है। यह summary जानबूझकर conservative है: avg_rr केवल उन ट्रेड्स से calculate किया जाता है जहां entry, stop-loss और exit तीनों पता हों, और rr_sample बताता है कि ऐसे कितने ट्रेड्स थे; जब कई अकाउंट currencies मिक्स होती हैं तो total_pnl null होता है, इसके बजाय pnl_by_currency दिया जाता है; कमीशन कहीं भी रिकॉर्ड नहीं होता, इसलिए fee हमेशा null रहता है और क्रिप्टो PnL gross (फ़ीस काटने से पहले) होता है। अगर कोई सोर्स पढ़ा नहीं जा सकता, तो उसे पूरी लिस्ट जैसा दिखाने के बजाय incomplete_sources उस सोर्स का नाम बताता है।compare_venues
symbol। वैकल्पिक: market (डिफ़ॉल्ट futures, या spot), side। हर जुड़े हुए क्रिप्टो exchange के लिए लाइव कीमत लौटाता है — और जिन venues पर bid/ask पब्लिश होता है, वहां basis points में spread, साथ ही venues के बीच का price gap भी। यह कोई venue खुद नहीं चुनता: आपका ऑर्डर फिर भी एक venue नाम करता है। ट्रेडिंग फ़ीस, ऑर्डर बुक डेप्थ और slippage basis.not_measured के अंतर्गत लिस्ट होते हैं और कभी अनुमानित (estimate) नहीं किए जाते, और जो venue bid/ask पब्लिश नहीं करता वह उसके spread को ज़ीरो मानकर rank किए जाने के बजाय not_comparable_on_spread में दिखता है। इसलिए cheapest_measured का मतलब है “सबसे कम मापा गया spread”, न कि “कुल मिलाकर सबसे सस्ता”।list_strategies
plan_limit और can_create_more के साथ लौटाता है। auto_trade हर रणनीति के लिए अलग से बताया जाता है ताकि असिस्टेंट आपको बता सके कि कौन सी लाइव (वास्तविक धन के साथ) हैं। webhook URL, demo URL और HMAC secret रिस्पॉन्स से हटा दिए जाते हैं — सिर्फ़ webhook_url_configured और has_hmac_secret ही दिखाए जाते हैं, क्योंकि URL खुद एक क्रेडेंशियल है।create_strategy
name। आवश्यक: idempotency_key। auto_trade बंद रखते हुए एक TradingView रणनीति बनाता है; यह field MCP के ज़रिए writable नहीं है, इसलिए नई बनाई गई रणनीति तब तक असली ऑर्डर नहीं लगा सकती जब तक आप खुद पैनल में इसे आर्म न करें। आपकी योजना की रणनीति सीमा लागू होती है — सीमा पार होने पर यह चुपचाप कुछ न करने के बजाय एक कोडेड plan-limit एरर लौटाता है।update_strategy
strategy_id, changes, idempotency_key। leverage (1–20 तक क्लैम्प्ड), risk percentage (0.1–50), stop-loss और take-profit प्रतिशत, trailing और break-even सेटिंग्स, allowed symbols, target account और रणनीति सिग्नल स्वीकार करती है या नहीं — यह सब बदलता है। auto_trade, status और ip_allowlist को मना कर refused_fields में लौटाया जाता है; डिलीट करना सिर्फ़ पैनल से हो सकता है। reverse_enabled ऑन करने पर एक warning लौटता है, क्योंकि उसके बाद से एक BUY सिग्नल SHORT खोलता है।
backtest_my_signals
वैकल्पिक: days (1–90), source, symbols, margin_usd, leverage, sl_pct, tp_pct, max_hold_minutes, taker_fee_bps, partial_tp. आपको वास्तव में मिले सिग्नल को असली mainnet ऐतिहासिक एक-मिनट बार पर दो बार चलाता है: एक बार हर सिग्नल के अपने स्टॉप, टेक-प्रॉफ़िट और लीवरेज के साथ, और एक बार आपकी सेटिंग्स के साथ। तुरंत job_ref लौटाता है; परिणाम get_job_status से लिया जाता है। हर परिणाम में coverage (कितने सिग्नल वास्तव में सिम्युलेट हो सके और बाक़ी क्यों नहीं) और assumptions (फ़ीस, स्लिपेज, आंशिक टेक-प्रॉफ़िट, और क्या मॉडल नहीं किया गया) रहता है। जिन सिग्नल में स्टॉप नहीं है, स्टॉप एंट्री की ग़लत तरफ़ है, या ऐतिहासिक मूल्य डेटा नहीं है, उन्हें गिनकर छोड़ दिया जाता है — अनुमान कभी नहीं लगाया जाता।
simulate_policy
वैकल्पिक: policy_text (सामान्य भाषा), rules (पहले से कंपाइल), days (1–365). किसी रिस्क पॉलिसी को आपके वास्तव में बंद किए गए ट्रेडों पर लागू करता है और बताता है कि किसे किस नियम से रोका जाता और PnL में कितना अंतर आता। job_ref लौटाता है। हर परिणाम में दो सीमाएँ लिखी होती हैं: ऑर्डर के समय के खाता-स्तर पर निर्भर नियम (खुली पोज़ीशन संख्या, दैनिक हानि, बैलेंस) शून्य के साथ आँके जाते हैं, क्योंकि वह स्थिति बंद ट्रेडों से दोबारा नहीं बनाई जा सकती — इसलिए वे नियम ज़्यादा नहीं, कम गिने जाते हैं; और PnL आपके दर्ज वास्तविक परिणामों से आता है, हर मुद्रा के लिए अलग बताया जाता है और मुद्राओं के बीच कभी जोड़ा नहीं जाता।
import_tradingview_backtest
अनिवार्य: csv_text. वैकल्पिक: taker_fee_bps, slippage_bps, leverage. TradingView के Strategy Tester (List of Trades) से निर्यात किया गया CSV लेकर उसे असली लागतों के साथ दोबारा जोड़ता है: प्रवेश और निकास दोनों पर टेकर फ़ीस और मापी गई स्लिपेज। Pine Script कभी चलाया या व्याख्यायित नहीं जाता — केवल आपकी निर्यात की गई ट्रेड सूची दोबारा गणना होती है — और कीमतें वैसी ही रहती हैं जैसी TradingView ने बताईं। जिन पंक्तियों में मात्रा कॉलम नहीं है उन पर फ़ीस नहीं लग सकती, इसलिए वे आशावादी रहती हैं और उनकी संख्या बताई जाती है। job_ref लौटाता है।
get_job_status
वैकल्पिक: job_ref. रेफ़रेंस देने पर उस जॉब की स्थिति और पूरा होने पर उसका परिणाम लौटाता है; बिना आर्ग्युमेंट के आपकी हाल की जॉब सूची देता है। status इनमें से एक होता है: PENDING, RUNNING (progress में प्रतिशत), DONE, FAILED (पुनःप्रयास निर्धारित), DEAD या CANCELLED. जॉब एक-एक करके चलते हैं, इसलिए queue_position बताता है कि आपसे आगे कितने हैं। जो रेफ़रेंस आपका नहीं है उसे वही “नहीं मिला” उत्तर मिलता है जो किसी अस्तित्वहीन रेफ़रेंस को — इसलिए जॉब रेफ़रेंस गिनकर खोजे नहीं जा सकते।
परिणाम हमेशा के लिए नहीं रहते, और इन सीमाओं को उन पर निर्भर होने से पहले जान लेना ज़रूरी है। केवल हाल की 20 पूरी हुई जॉब अपना पूरा परिणाम बनाए रखती हैं; पुरानी जॉब को उनके सारांश तक सीमित कर दिया जाता है और वे result_pruned: true के साथ वापस आती हैं, जिसका मतलब है कि विस्तृत पंक्तियाँ जा चुकी हैं और उन्हें फिर से बनाने के लिए जॉब को दोबारा चलाना पड़ता है। सब कुछ 30 दिनों बाद हटा दिया जाता है। बैकटेस्ट और पॉलिसी रन भी आपके खाते के बैकटेस्ट इतिहास में लिखे जाते हैं, और परिणाम उस run_id को साथ रखता है जिसके तहत उन्हें संग्रहीत किया गया था।
Policy wall
यही वह हिस्सा है जो किसी language model को टूल सौंपने को उचित ठहराता है। आपके नियम एक बार JSON में compile किए जाते हैं, एक तय schema के विरुद्ध validate किए जाते हैं, और फिर मूल्यांकित किए जाते हैं server-side और निश्चयात्मक रूप से हर ऑर्डर पर। मॉडल इनका मूल्यांकन कभी नहीं करता, इनके इर्द-गिर्द कोई रास्ता कभी नहीं देखता, और इन्हें ढीला करने के लिए कभी नहीं मनाया जा सकता — न तो आपके द्वारा किसी अधीरता के क्षण में, और न ही किसी वेबपेज या Telegram संदेश के ज़रिए डाले गए प्रॉम्प्ट से जिसे वह पढ़ बैठा हो। उल्लंघन एक hard reject है जिसके साथ एक audit प्रविष्टि दर्ज होती है।
| नियम | प्रकार | अर्थ |
|---|---|---|
max_risk_per_trade_pct | संख्या, 0–100 | खाते में एक ट्रेड के हिस्से की ऊपरी सीमा |
max_order_size_usd | संख्या > 0 | ऑर्डर मूल्य पर पूर्ण सीमा |
max_daily_loss_usd | संख्या > 0 | इस नुकसान के बाद उस दिन ट्रेडिंग रोक दें |
max_open_positions | पूर्णांक | समवर्ती सीमा (concurrency limit) |
leverage_cap | संख्या, 1–1000 | आपकी अपनी leverage सीमा |
venue_scope | array | AI को नामित venues तक सीमित करें |
symbol_whitelist | array | केवल ये symbol ट्रेड किए जा सकते हैं |
symbol_blacklist | array | ये symbol कभी ट्रेड नहीं किए जाते |
allowed_sides | array | केवल long, केवल short, या दोनों |
notes | string | आपकी अपनी टिप्पणी |
एक compiled policy जो schema validation में विफल होती है उसे बिल्कुल भी सक्रिय नहीं किया जा सकता। कोई आंशिक-वैध policy नहीं होती।
सुरक्षा मॉडल
| डिफ़ॉल्ट रूप से Paper | हर नई key शुरू होती है paper scope में $5,000 के वर्चुअल बैलेंस के साथ। असली पैसे तक पहुंचना एक स्पष्ट, अलग कार्रवाई है। |
| Stop-loss अनिवार्य है | अगर न तो कोई स्पष्ट stop-loss है और न ही कोई सेव किया गया डिफ़ॉल्ट, तो ऑर्डर अस्वीकार कर दिया जाता है। इसे बाद में भी हटाया नहीं जा सकता। |
| Idempotency | हर write टूल को क्लाइंट द्वारा बनाई गई कम से कम 8 अक्षरों की key चाहिए। दोहराव संग्रहीत रिस्पॉन्स को दोबारा चलाते हैं, दो बार कार्रवाई करने के बजाय। |
| Kill switch | POST /api/mcp/freeze सब कुछ एक साथ रोक देता है; उसके बाद हर टूल लौटाता है user_frozen. /unfreeze इसे पलट देता है। |
| Per-key revocation | बाकी को छुए बिना एक क्लाइंट को revoke करें। खुली event streams सेकंडों के भीतर गिर जाती हैं। |
| हस्ताक्षरित रसीदें | हर कार्रवाई पर ed25519 signature और एक प्रति-उपयोगकर्ता hash chain, जिसे सार्वजनिक key के विरुद्ध सत्यापित किया जा सकता है। |
| Audit log | हर कॉल को टूल के नाम, arguments, परिणाम और latency के साथ रिकॉर्ड किया जाता है, जिसे यहां पढ़ा जा सकता है GET /api/mcp/audit और पैनल में। |
| Tenant isolation | टूल user ID स्वीकार नहीं कर सकते; पहचान केवल authenticated कनेक्शन से आती है। |
| केवल-ट्रेड keys | आपकी exchange API keys withdrawal अनुमति के बिना बनाई जाती हैं और AES-256 encrypted संग्रहीत की जाती हैं। ऑर्डर निश्चित AlgoVesta ट्रेडिंग IP से भेजे जाते हैं जिन्हें आप exchange पर allowlist करते हैं। |
Leverage के बारे में, साफ़ शब्दों में: AlgoVesta आपके अपने खाते पर कोई leverage सीमा नहीं लगाता — यह आपका exchange करता है, और आप अपनी खुद की सीमा इसके साथ सेट कर सकते हैं leverage_cap policy नियम। MetaTrader 5 के ज़रिए फॉरेक्स इस रास्ते में unleveraged है और lots के अनुसार आकार तय होता है। अगर कोई आपको बताता है कि यह प्लेटफॉर्म “leverage को 20x पर सीमित करता है” तो वह किसी ऐसी चीज़ का वर्णन कर रहा है जो मौजूद ही नहीं है।
त्रुटियां
| कोड | HTTP | यह कब होता है |
|---|---|---|
unauthorized | 401 | गुम, अमान्य या revoke की गई key |
insufficient_scope | 401 | टूल को key के पास मौजूद से ऊंचे scope की ज़रूरत है |
forbidden | 403 | इस खाते के लिए अनुमति नहीं है |
user_frozen | 403 | Kill switch सक्रिय है |
policy_violation | 403 | एक नियम ने ऑर्डर को अस्वीकार कर दिया; रिस्पॉन्स सूचीबद्ध करता है कौन-सा |
idempotency_conflict | 409 | वही key अलग arguments के साथ दोबारा उपयोग की गई |
validation_failed | 422 | गलत रूप से बने या परस्पर विरोधी arguments |
rate_limited | 429 | बहुत ज़्यादा कॉल; retry_after शामिल है |
डोमेन-स्तर के इनकार transport त्रुटियों की बजाय संरचित परिणामों के रूप में आते हैं, ताकि असिस्टेंट उन पर कार्रवाई कर सके: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN। त्रुटि संदेश कभी आंतरिक विवरण लीक नहीं करते, और कभी किसी और के खाते के बारे में कुछ भी उजागर नहीं करते।
Rate limits
| सीमा का दायरा | सीमा |
|---|---|
| सभी टूल कॉल, प्रति key | 60 प्रति मिनट |
place_order | 10 प्रति मिनट |
replay_channel | 5 प्रति घंटा (परिणाम 24 घंटे cache किए गए) |
| Live-scope confirmation ई-मेल | 1 प्रति मिनट |
Live events
एक tenant-isolated server-sent event स्ट्रीम यहां उपलब्ध है /mcp/events (OAuth) और /u/<key>/events (secret link), साथ में Last-Event-ID reconnection, ताकि गिरा हुआ कनेक्शन दोबारा शुरू होने के बजाय फिर से जुड़ जाए। Event के प्रकार: fill, policy_rejected, position_closed, sl_hit, tp_hit, और replay_progress एक channel replay के दौरान।
Venues — 16 exchanges और MetaTrader 5
एक कनेक्शन इन सभी तक पहुंचता है। एक venue AI के लिए तभी उपलब्ध होता है जब आप उसे AlgoVesta में कनेक्ट करते हैं; जिसे आपने कनेक्ट नहीं किया उसके बारे में पूछने पर मिलता है VENUE_NOT_CONNECTED अंदाज़े की बजाय।
| Exchange | venue मान |
बाज़ार | Passphrase चाहिए |
|---|---|---|---|
| Binance | binance | Spot, futures | नहीं |
| Bybit | bybit | Spot, futures | नहीं |
| OKX | okx | Spot, futures | हां |
| KuCoin | kucoin | Spot, futures | हां |
| Gate.io | gateio | Spot, futures | नहीं |
| Bitget | bitget | Spot, futures | हां |
| Kraken | kraken | Spot, futures | नहीं |
| Coinbase | coinbase | Spot | नहीं |
| BingX | bingx | Spot, futures | नहीं |
| Hyperliquid | hyperliquid | Futures | नहीं |
| Backpack | backpack | Spot, futures | नहीं |
| HTX | htx | Spot, futures | नहीं |
| BloFin | blofin | Spot, futures | हां |
| Phemex | phemex | Spot, futures | नहीं |
| WOO X | woo | Spot, futures | हां (Application ID) |
| CoinEx | coinex | Spot, futures | नहीं |
| MetaTrader 5 (forex, metals, indices) | mt5 | Lots, unleveraged रास्ता | Broker login |
| Paper engine | paper | $5,000 वर्चुअल | — |
इनमें से छह — Binance, Bybit, OKX, Gate.io, KuCoin और Bitget — को futures और spot दोनों पर असली पैसे से end to end सत्यापित किया गया है, जिसमें stop-loss और take-profit की exchange पर ही मौजूदगी और दर्ज मानों से ठीक-ठीक मेल पुष्टि की गई है। हर exchange की अपनी विशेषताएं हैं, और ये अंतर कमियां नहीं बल्कि जानबूझकर हैं: Bybit और Bitget spot पर दूसरा take-profit leg स्वीकार नहीं करते, OKX spot को raw API के ज़रिए भेजा जाता है ताकि cash खाता चुपचाप margin खाता न बन जाए, Binance spot खरीदने से पहले एक न्यूनतम notional लागू करता है, और KuCoin market खरीद cost mode में की जाती है।
Spot और futures को हमेशा अलग रखा जाता है। दोनों बाज़ारों पर वही symbol एक अलग row, एक अलग price feed और एक अलग key है — एक कभी दूसरे में मिलता नहीं।
बिना किसी इंस्टॉलेशन के MetaTrader 5
फॉरेक्स के लिए आपको कुछ भी इंस्टॉल नहीं करना पड़ता। कोई VPS किराए पर लेना नहीं है, अपनी मशीन पर कोई MetaTrader टर्मिनल चालू रखना नहीं है, जोड़ने के लिए कोई Expert Advisor नहीं है और खरीदने के लिए कोई third-party bridge खाता नहीं है। AlgoVesta MetaTrader 5 टर्मिनल को अपने खुद के managed सर्वर पर चलाता है और उन्हें चौबीसों घंटे आपके broker से जुड़ा रखता है। आप अपनी खाता जानकारी एक बार दर्ज करते हैं और उसके बाद आपका AI असिस्टेंट उस खाते पर ट्रेड कर सकता है। असिस्टेंट को लौटाया गया पोज़िशन डेटा टर्मिनल के विरुद्ध सत्यापित होता है, और जब इसे सत्यापित नहीं किया जा सकता तो टूल खाली खाता होने का संकेत देने की बजाय यही बताता है।
रोडमैप — global equities
Interactive Brokers (IBKR) के ज़रिए global stock ट्रेडिंग की योजना है, जिसका लक्ष्य है 170 global equities क्रिप्टो और फॉरेक्स जैसे ही MCP कनेक्शन से पहुंच योग्य। यह एक रोडमैप आइटम है और यह आज लाइव नहीं है; इस पेज पर इस पैराग्राफ के अलावा कुछ भी इसका वर्णन नहीं करता, और मौजूदा कोई भी टूल equities ट्रेड नहीं कर सकता। जब यह लॉन्च होगा तो यह अतिरिक्त के रूप में दिखाई देगा venue मानों के रूप में, उन्हीं टूल, उसी policy wall और उन्हीं रसीदों के तहत।
मापी गई latency
ये माप हैं, मार्केटिंग के आंकड़े नहीं।
| चरण | मापा गया |
|---|---|
| रिक्वेस्ट intake और parsing | 17–67 ms (median 38 ms) |
| MetaTrader 5 पर end to end | लगभग 1 सेकंड (849 ms मापा गया; बंद करने में 702 ms) |
| एक क्रिप्टो exchange पर end to end | लगभग 3 सेकंड (2,785 ms मापा गया) |
| Paper engine | Median 318 ms — कोई exchange round trip नहीं |
आपके AI क्लाइंट के अंदर बिताया गया समय — मॉडल का सोचना, और आपका confirm करना — इसमें शामिल नहीं है और आमतौर पर यही हावी रहेगा। यह सर्वर एक low-latency execution venue नहीं है और इसे वैसा बेचा भी नहीं जाता।
पैनल REST एंडपॉइंट
जो कुछ भी AI खुद नहीं कर सकता और नहीं करना चाहिए, वह सब आपके सामान्य logged-in सेशन के पीछे रहता है।
POST /api/mcp/keys create a key (live requires 2FA)
GET /api/mcp/keys list keys
DELETE /api/mcp/keys/{key_id} revoke a key
POST /api/mcp/live-code send the live-scope confirmation code
POST /api/mcp/freeze | /api/mcp/unfreeze kill switch
GET /api/mcp/status connection status
GET /api/mcp/policies list policies
POST /api/mcp/policies/compile compile without activating
POST /api/mcp/policies/{id}/activate activate
POST /api/mcp/policies/{id}/deactivate deactivate
GET /api/mcp/audit audit log
GET /api/mcp/receipts receipts
GET /api/mcp/receipts/{receipt_id}/verify verify one receipt
GET /api/mcp/pubkey receipt public key
GET /api/mcp/paper | POST /api/mcp/paper/reset
आपके पास क्या होना चाहिए
MCP कनेक्शन खुद ही प्रोडक्ट का हिस्सा है और अलग से नहीं बेचा जाता। व्यवहार में जो चीज़ आपको सीमित करती है वह यह है कि AI को क्या तक पहुंचना है: paper ट्रेडिंग को केवल एक खाता चाहिए, जबकि live ट्रेडिंग को एक सक्रिय पेड प्लान और उस प्लान द्वारा अनुमत कनेक्टेड खातों की ज़रूरत है — और असली पैसे पर live MetaTrader 5 ट्रेडिंग के लिए अतिरिक्त रूप से आपको उस खाते के लिए स्पष्ट रूप से opt in करना ज़रूरी है। exchange keys और MetaTrader खातों की संख्या पर प्लान सीमाएं यहां सूचीबद्ध हैं pricing पेज। इनमें से कुछ भी मायने रखने से पहले आप $5,000 के paper बैलेंस पर सब कुछ आज़मा सकते हैं।
अक्सर पूछे जाने वाले सवाल
live , और वह scope केवल दूसरे factor के बाद ही जारी किया जाता है। तब तक वही असिस्टेंट समान टूल के साथ $5,000 के paper बैलेंस के विरुद्ध चलता है, ताकि किसी भी असली पैसे तक पहुंच बनने से पहले आप पूरा workflow अभ्यास कर सकें।get_portfolio_context इन सभी को एक ही कॉल में लौटाता है। जब आपके पास एक ही बाज़ार में एक से अधिक खाते हों, तो account पैरामीटर अनिवार्य हो जाता है और एक अस्पष्ट रिक्वेस्ट को डिफ़ॉल्ट पर भेजने की बजाय अस्वीकार कर दिया जाता है।POST /api/mcp/freeze। उसके बाद हर टूल लौटाता है user_frozen जब तक आप unfreeze नहीं करते। इसके बजाय एक ही क्लाइंट को काटने के लिए, बस उस key को revoke करें — बाकी काम करते रहेंगे।verify_receipt टूल, या इस सार्वजनिक key के विरुद्ध स्वतंत्र रूप से /mcp/receipts/pubkey। किसी पुरानी रसीद को संपादित करने से उसके बाद की हर रसीद के लिए chain टूट जाती है, और यही वजह है कि छेड़छाड़ का पता चल जाता है।अपने खातों से एक AI असिस्टेंट कनेक्ट करें
$5,000 के paper बैलेंस पर शुरू करें। कोई कार्ड नहीं, इंस्टॉल करने के लिए कुछ नहीं, और live सीमा तब तक बंद रहती है जब तक आप जानबूझकर इसे नहीं खोलते।
एक फ्री खाता बनाएं अवलोकन देखेंसंबंधित: AI असिस्टेंट के लिए MCP · MCP ट्रेडिंग सर्वर: Claude और ChatGPT — 16 एक्सचेंज + MT5 · समर्थित exchanges · MetaTrader 5 फॉरेक्स · TradingView automation · MCP ट्रेडिंग सर्वर क्या है · सुरक्षा · pricing.
ट्रेडिंग में जोखिम होता है। Automation इसे दूर नहीं करता, और AI असिस्टेंट निवेश सलाह नहीं है। Paper पर शुरू करें।