AlgoVesta MCP Sunucusu: Claude, ChatGPT, Cursor ve Gemini Gerçek Borsa ve MetaTrader 5 Hesaplarınızda İşlem Yapsın
Bu nedir: AlgoVesta, bir yapay zeka asistanına tek bir HTTPS bağlantısı üzerinden yirmi gerçek işlem aracı sunan barındırılan bir Model Context Protocol (MCP) sunucusu işletir. Bu tek bağlantıyı Claude, ChatGPT, Cursor, Claude Code, Gemini CLI veya MCP destekleyen herhangi bir istemciye yapıştırın; asistan bakiyeleri okuyabilir, pozisyon açıp kapatabilir, stop-loss ve take-profit'i taşıyabilir ve kendi eylemlerini şurada denetleyebilir: 16 kripto borsası ve MetaTrader 5 forex'te aynı anda — AlgoVesta'da zaten kaydettiğiniz risk ayarlarını kullanarak, hiçbir promptun geçersiz kılamayacağı sunucu taraflı bir politika duvarının arkasında. Her bağlantı 5.000 $ kağıt (paper) bakiye ile başlar ve her eylem ed25519 ile imzalanmış bir makbuz döndürür.
Model Context Protocol, yapay zeka asistanlarını harici sistemlere bağlamak için açık bir standarttır. İşlemle ilgili MCP sunucularının çoğu piyasa verisini bir sohbet penceresine akıtır. Bu ise yürütür: bir emir yönlendirme katmanıdır ve önünde deterministik bir risk motoru vardır; yapay zeka ise çağıran taraftır — asla yetkili taraf değildir.
Hızlı başlangıç
Kurulum üç adımdır ve kod gerektirmez. Tüm akış şurada yer alır: MCP Bağlantısı sekmesi, AlgoVesta panelinizde.
Şunu açın: MCP Bağlantısı sekmesi ve bir anahtar oluşturun. Yeni anahtarlar varsayılan olarak şu kapsama sahiptir: paper kapsamı. Tam bağlantı yalnızca bir kez gösterilir — o sırada kopyalayın.
Bağlantıyı, yapay zeka istemcinize özel bir MCP sunucusu olarak yapıştırın. Hiçbir API anahtarı AlgoVesta'dan çıkmaz, kod yoktur, yerel kurulum yoktur.
Onunla konuşun. “Portföyüm nasıl?” “ETHUSDT'de 5x kaldıraçla 200 $'lık bir long simüle et.” “BTC pozisyonumun yarısını kapat.”
Bağlantı URL'niz şuna benzer:
https://api.algovesta.com/u/avmcp_<your-key>/mcp
Bu URL bir kimlik bilgisidir. Onu elinde bulunduran herkes, kapsamı dahilinde hesaplarınız üzerinde işlem yapabilir. Onu bir parola gibi görün: hiçbir zaman herkese açık bir sohbete, bir ekran görüntüsüne, paylaşılan bir depoya veya destek talebine yapıştırmayın. Sızarsa panelden iptal edin — iptal, yeni bağlantılar için hemen geçerli olur ve açık olay akışlarını saniyeler içinde düşürür.
Hangi yapay zeka asistanları bağlanabilir
Streamable HTTP üzerinden MCP konuşan herhangi bir istemci bağlanabilir. Aşağıdaki tablo, gerçek sınırlamalar dahil olmak üzere canlı sunucuya karşı doğrulanan durumu kaydeder — bunların bazıları AlgoVesta'nın değil yapay zeka ürününün kısıtlamalarıdır ve hangi MCP sunucusunu kullanırsanız kullanın onlarla karşılaşırsınız.
| Yapay zeka istemcisi | Bağlantıyı nereye yapıştıracağınız | Notlar ve gerçek sınırlar |
|---|---|---|
| Claude (web, masaüstü, iOS, Android) | Ayarlar → Bağlayıcılar → Özel bağlayıcı ekle | Tam destek. Araç başlıkları ve onay iletişim kutuları doğrudan sunucudan gelir. |
| Claude Code | claude mcp add --transport http | Komut satırı. Betikli veya tekrarlanabilir iş akışları için kullanışlıdır. |
| Cursor | mcp.json, şu "url" alan | Tam destek. Anahtar adının şu olduğuna dikkat edin: url burada — Gemini CLI farklı bir tane kullanır. |
| ChatGPT | Geliştirici modu / özel bağlayıcı | Yalnızca ücretli planlar. Özel MCP bağlayıcıları ücretsiz planda sunulmaz ve önce geliştirici modunun etkinleştirilmesi gerekebilir. Bu bir OpenAI kısıtlamasıdır. |
| Gemini CLI | ~/.gemini/settings.json, şu "httpUrl" alan | Yalnızca CLI. Gemini web uygulaması özel MCP sunucularını desteklemez. Şunu kullanın: httpUrl anahtarını, şunu değil: url. |
| MCP destekleyen diğer herhangi bir istemci | Kendi MCP / bağlayıcı ayarları | Sunucu standardı uygular, bu yüzden Streamable HTTP üzerinden uzak MCP'yi destekleyen bir istemci, ona özel hiçbir şey olmadan çalışır. |
Cursor örneği (mcp.json):
{
"mcpServers": {
"algovesta": {
"url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
}
}
}
Gemini CLI örneği (~/.gemini/settings.json) — dikkat 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
Taşıma ve protokol
| Taşıma | Streamable HTTP, durumsuz (stateless), JSON yanıtları. Her istek bağımsız olarak kimlik doğrulamasından geçer. |
| Sunucu adı | AlgoVesta |
| Gizli bağlantı uç noktası | https://api.algovesta.com/u/<key>/mcp |
| OAuth uç noktası | https://api.algovesta.com/mcp |
| Araç listesi değişiklikleri | tools.listChanged = true. İstemciler yeniden bağlanıldığında araç listesini yeniler, bu yüzden yeni araçlar ve parametreler bağlayıcı kaldırılıp yeniden eklenmeden görünür. |
| Olay akışı | Şurada sunucu tarafından gönderilen olaylar: /mcp/events ve /u/<key>/events, kiracı bazında izole edilmiş, şu ile: Last-Event-ID yeniden bağlanma. |
| Makine tarafından okunabilir şema | /mcp/tools.json — 20 aracın tamamının tam JSON Şeması, istemcinin aldığı haliyle birebir. |
Kimlik doğrulama ve kapsamlar
Bağlanmanın iki yolu vardır ve ikisi de aynı kiracı bağlamına çözümlenir. Araçlar hiçbir zaman parametre olarak bir kullanıcı kimliği kabul etmez — kimlik yalnızca kimlik doğrulaması yapılmış bağlantıdan okunur; bu da hesaplar arası erişimi salt yasak olmaktan çıkarıp yapısal olarak imkansız kılar.
Gizli bağlantı
Şu biçimde bir anahtar: avmcp_<32-byte urlsafe random>, URL yoluna gömülür. Bir Argon2id özeti artı bir SHA-256 arama özeti olarak saklanır; düz metin yalnızca oluşturulduğu anda vardır ve sonrasında hiçbir zaman geri kazanılamaz. Her anahtar kendi kapsamını, kendi etiketini ve kendi iptal durumunu taşır, böylece Cursor'da bir kağıt (paper) anahtar ve Claude'da bir canlı anahtar çalıştırıp ikisini de birbirinden bağımsız olarak sonlandırabilirsiniz.
OAuth 2.1
Uygun bir yetkilendirme akışını tercih eden istemciler için. Desteklenen izin türleri (grant) şunlardır: authorization_code ve refresh_token, dönen (rotating) yenileme belirteçleriyle. Şununla PKCE: S256 zorunludur — onsuz gelen bir istek reddedilir. Dinamik istemci kaydı mevcuttur, bu yüzden çoğu istemci kendini yapılandırır. Keşif belgeleri:
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
Üç kapsam
| Kapsam | Neler yapabilir | Nasıl edinilir |
|---|---|---|
read | Portföy, fiyatlar, bekleyen emirler, simülasyonlar, politika önizlemeleri, makbuz doğrulama, kanal tekrarı. Hiçbir emir verilemez. | Doğrudan oluşturulur. |
paper | Şunun içindeki her şey: read, artı 5.000 $'lık sanal bakiye üzerinde kağıt (paper) motoruna karşı yürütülen emirler. Yeni anahtarlar için varsayılan. | Doğrudan oluşturulur. |
live | Yukarıdakilerin tamamı, artı bağlı borsalarınızda ve MetaTrader 5 hesaplarınızda gerçek emirler. | İkinci faktör gereklidir. Geçerli bir kimlik doğrulayıcı (TOTP) kodu veya hesap e-postanıza gönderilen ve 10 dakika geçerli olan bir onay kodu. Sunucu tarafında, istisnasız olarak zorunlu kılınır. |
Kapsamlar sıralıdır, bu yüzden şunu gerektiren bir araç: paper şunu reddeder: read şuna sahip anahtarı: insufficient_scope. Simüle edilmiş para ile gerçek para arasındaki sınır bu nedenle bir promptun, bir ayarın ya da modelin kararının değil, anahtarın kendisinin bir özelliğidir.
Araç referansı — 20 aracın tamamı
Bunlar asistanınızın gördüğü tam araçlardır. Okuma araçlarını önce size sormadan çağırmak güvenlidir; altı yazma aracı ise bunu destekleyen istemcilerde bir onay tetikler ve bunlardan üçü — place_order, close_position ve cancel_order — açıklamalarında ayrıca yıkıcı (destructive) olarak işaretlenmiştir.
| Araç | Kapsam | Tür | Amaç |
|---|---|---|---|
get_portfolio_context | read | salt okunur | Tek bir çağrıda bağlı her hesap |
get_market_price | read | salt okunur | Tazelik bilgisiyle birlikte canlı fiyat |
simulate_order | read | salt okunur | Politika kararını da içeren kuru deneme (dry-run) |
place_order | paper / live | yıkıcı | Bir pozisyon açar |
close_position | paper / live | yıkıcı | Tamamen veya kısmen kapatır |
modify_position | paper / live | write | Stop-loss ve take-profit'i taşır |
list_open_orders | read | salt okunur | Bekleyen limit emirleri |
cancel_order | paper / live | yıkıcı | Bekleyen bir emri iptal eder |
compile_policy | read | salt okunur | Sade dille yazılmış kuralları bir politika önizlemesine dönüştürür |
verify_receipt | read | salt okunur | İmzayı ve özet (hash) zincirini kontrol eder |
replay_channel | read | salt okunur | Bir Telegram kanalını kurallarınıza karşı geriye dönük test eder |
get_trade_history | read | salt okunur | Kripto, MT5 ve paper genelinde kapanmış işlemler ve performans |
compare_venues | read | salt okunur | Bağlı borsaları ölçülen fiyat ve spread'e göre sıralar |
list_strategies | read | salt okunur | TradingView stratejileri; webhook URL'si asla döndürülmez |
create_strategy | paper / live | write | Yeni strateji, her zaman gerçek para yürütmesi kapalı |
update_strategy | paper / live | write | Strateji ayarları; auto_trade reddedilir |
backtest_my_signals | read | read-only | Kendi geçmiş sinyallerinizi farklı ayarlarla yeniden oynatır (kuyruğa alınan iş) |
simulate_policy | read | read-only | Bir risk politikasını gerçekten kapattığınız işlemlere uygular (kuyruğa alınan iş) |
import_tradingview_backtest | read | read-only | TradingView işlem dökümünü gerçek komisyon ve slipajla yeniden hesaplar (kuyruğa alınan iş) |
get_job_status | read | read-only | Kuyruktaki bir işin ilerlemesi ve sonucu |
get_portfolio_context
Hiçbir parametre almaz. Kimlik doğrulaması yapılmış anahtara ait her borsa hesabının, her MetaTrader 5 hesabının ve kağıt (paper) hesabının normalize edilmiş bir görünümünü döndürür — başka hiçbir şey değil. “Nasıl gidiyorum?” sorusunu on altı yerine tek bir soru haline getiren çağrı budur.
İki alan diğerlerinden daha önemlidir. Kripto hesapları için, balance ve equity şunu tanımlar: yalnızca vadeli işlemler (futures) cüzdanı; spot para ayrı olarak şurada raporlanır: spot_balance, bu yüzden yalnızca şunu okuyan bir asistan: balance hiçbir şeyiniz olmadığı yanlış sonucuna varabilir. MetaTrader 5 hesapları için, positions_source ya şudur: live_ea, yani pozisyon listesi terminale karşı doğrulanmıştır, ya da unavailable, yani terminale ulaşılamamıştır. Şu durumda: unavailable boş bir pozisyon listesi asla “açık pozisyon yok” anlamına gelmez — bilinmiyor anlamına gelir ve araç açıklaması, modele sizi rahatlatmak yerine bunu söylemesi talimatını verir.
get_market_price
Parametreler: venue, symbol. Şunu döndürür: {ok, venue, symbol, last, bid, ask, ts, source, age_sec}. Fiyatlar, yaklaşık her saniye yenilenen paylaşımlı bir önbellekten gelir; önbellekte bulunamazsa sunucu borsaya tek bir canlı REST çağrısı yapar. Değer 10 saniyeden eskiyse veya hiç alınamıyorsa bu açıkça belirtilir — bayat bir fiyat asla canlıymış gibi sunulmaz. Sembol bağlı hiçbir borsada yoksa, bilgi amaçlı bir DEX fiyatı, bağlı venue'lerinizde bunu işlem yapamayacağınıza dair açık bir uyarıyla birlikte döndürülebilir.
simulate_order
Zorunlu: venue, symbol, side, order_type, idempotency_key. Hiçbir emir göndermez. Beklenen dolum (fill), marj etkisini ve politika kararını, artı sunucunun türettiği mutlak stop-loss ve take-profit fiyatlarını döndürür. Bu bir okuma işlemidir, bu yüzden düzgün davranan bir asistan izin sormadan onu çağırır, size bir özet gösterir ve herhangi bir şey yerleştirmeden önce tam olarak bir kez onay ister.
place_order
Zorunlu: venue, symbol, side, order_type, idempotency_key. İsteğe bağlı: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.
Şu idempotency_key , süs değildir. Aynı anahtar aynı kullanıcı için iki kez gelirse, saklanan yanıt yeniden oynatılır ve ikinci bir emir açılmaz — bu da bir istemci zaman aşımından sonra tekrar denediğinde, bir telefon onay sırasında sinyali kaybettiğinde veya bir model bir aracı iki kez çağırdığında sizi koruyan şeydir.
Boyutlandırma kasıtlı olarak açıktır. Kripto için üç alandan tam olarak birini geçirirsiniz ve bunlar farklı anlamlara gelir:
| Alan | Anlam | 5x'te örnek |
|---|---|---|
size_usd | Pozisyon değeri (nominal) | size_usd=100 → 100 $'lık bir pozisyon, kendi paranızdan 20 $ |
margin_usd | Kendi cebinizden teminat | margin_usd=20 → 100 $'lık bir pozisyon |
risk_pct | Kullanılan serbest bakiyenin yüzdesi marj olarak. Bu, stop mesafesine dayalı risk boyutlandırması değildir; stop-loss mesafesi hesaplamaya dahil olmaz. | risk_pct=1 2.000 $'lık bir bakiyede → 20 $ marj → 100 $'lık bir pozisyon |
Forex ve MetaTrader 5 için boyut şu şekilde verilir: lots , bunun yerine, ve leverage hiç gönderilmez — ürün kaldıraçsızdır ve boyutlandırma lot hacminden gelir. Belirttiğiniz lot boyutu tam olarak kullanılır ve asla uygun bir değere yuvarlanmaz; brokerinizin sınırlarının dışına düşerse emir reddedilir ve izin verilen aralık geri bildirilir.
Emir boyutu toleransı. Borsalar yalnızca belirli lot artışlarını kabul eder, bu yüzden istenen miktar en yakın geçerli adıma eşleştirilir. Sapma %20 içinde kalırsa emir devam eder ve tam sapma size geri bildirilir; %20'nin ötesinde emir asla açılmaz ve size, hangi yakın miktarların işe yarayacağı rakamlarla bildirilir. Bu eşik, boyutlandırma fonksiyonundan bugüne kadar verilmiş her gerçek emrin yeniden çalıştırılmasıyla seçildi, sezgiyle seçilmedi.
Belirtilmeyen alanlar, kaydedilmiş ayarlarınıza döner. Bir stop-loss, take-profit veya kaldıraç belirtmezseniz, asistana bu alanları boş bırakması talimatı verilir ve sunucu bunları panelinizde kayıtlı tercihlerden doldurur — manuel panelin ve Telegram botunun kullandığı tamamen aynı değerler. Yanıt, hangi alanların kaydedilmiş ayarlardan geldiğini şurada bildirir: prefs_used. Bu, ölçülmüş bir başarısızlık nedeniyle vardır: bu alanlar zorunlu olduğunda model değerler uydurmak zorunda kalıyordu ve beş emrin beşi de müşterinin kendi yapılandırmasını geçersiz kılıyordu.
close_position
Zorunlu: venue, symbol, side, idempotency_key. İsteğe bağlı: fraction (0 ile 1 arası, 0 hariç], account, ticket. Kripto ve MetaTrader 5 için çalışır. Kapatmak riski azaltır, bu yüzden politika duvarı bunu asla engellemez — yalnızca kill switch engeller. Aynı idempotency anahtarıyla yapılan on çağrı tam olarak bir kapatma gerçekleştirir. Eşleşen bir pozisyon yoksa şunu alırsınız: POSITION_NOT_FOUND artı şu pozisyonlarla birlikte: olan o venue'de açık olan pozisyonlar, böylece asistan tahmin etmek yerine kendini düzeltebilir.
MetaTrader 5'te kısmi kapatma yoktur — Expert Advisor tamamen kapatır — bu yüzden şunu kullanın: fraction=1 orada. Aynı sembolde birden fazla MT5 pozisyonu açıkken, ticket zorunlu hale gelir ve hedef belirsizken hiçbir şey kapatılmaz.
modify_position
Zorunlu: venue, symbol, side, idempotency_key, artı şunlardan en az biri: new_sl / new_tp. Stop-loss kaldırılamaz — zorunlu SL kuralı burada da geçerlidir. Sıralama doğrulanır: bir long için gereken: new_sl < mark < new_tp, bir short için ise tersi. Yalnızca bir tarafı göndermek, diğerini silmek yerine mevcut değerinde bırakır. Kapatmada olduğu gibi, belirsiz bir MT5 bileti hiçbir şeyin değiştirilmediği anlamına gelir.
list_open_orders
İsteğe bağlı: venue. Bekleyen limit emirlerini şununla birlikte listeler: order_ref, venue, sembol, yön, giriş fiyatı, boyut ve oluşturulma zamanı.
Bir asistandan açık emirlerinizi incelemesini istemeden önce bilmeniz gereken bir nokta var: bu aracın izlediği bekleyen emirler, paper (deneme) defterinde tutulur. MCP üzerinden canlı bir borsada verilen emirler piyasa emri olarak gönderilir, bu yüzden beklemede kalmak yerine hemen gerçekleşir; canlı bir hesapta boş bir liste görmeniz, bir şeyin kaybolduğu değil, bekleyen hiçbir emrin olmadığı anlamına gelir.
cancel_order
Zorunlu: venue, order_ref, idempotency_key. Referans size ait değilse yanıt şudur: NOT_FOUND — asla başka birinin emrinin var olduğuna dair bir ipucu değil. Kapatma gibi, riski azaltır ve politika duvarı bunu engellemez.
compile_policy
Zorunlu: natural_text. Sade dille bir kural yazarsınız — “tek bir işlemde asla %2'den fazla risk alma, 10'un üzerinde kaldıraç yok, yalnızca BTC ve ETH” — ve bu bir JSON politikasına derlenir, şu şekilde döndürülür: önizleme. Derlemek asla hiçbir şeyi etkinleştirmez. Etkinleştirme, panelden veya şu yolla yapılan ayrı, bilinçli bir adımdır: POST /api/mcp/policies/{policy_id}/activate, bu da bir modelin kurallarınız hakkında konuşarak onları gevşetemeyeceği anlamına gelir.
verify_receipt
Zorunlu: receipt_id. Şunu döndürür: signature_valid ve chain_valid; bir eylem yalnızca ikisi de doğruysa doğrulanmış sayılır. Makbuzlar kullanıcı başına ed25519 ile imzalanmış ve özet (hash) zincirine bağlanmıştır, bu yüzden daha önceki bir makbuzu değiştirmek sonraki her makbuzu bozar ve chain_valid false değerini alır. Genel anahtar şu adreste sunulur: /mcp/receipts/pubkey, böylece bu uç noktaya güvenmeden bağımsız olarak doğrulayabilirsiniz. Daha eski HMAC dönemi makbuzları şunu döndürür: legacy=true.
replay_channel
Zorunlu: channel_ref. İsteğe bağlı: days (en fazla 90, varsayılan 30), policy_override. “Bu Telegram kanalını kurallarım altında son X gün boyunca takip etseydim ne olurdu?” sorusunu, geçmiş sinyallerini kağıt (paper) tarzında yeniden oynatarak yanıtlar; her sinyal politika duvarından geçer, böylece reddedilenler asla açılmaz. İlerleme şu şekilde gelir: replay_progress olayları. Sonuçlar 24 saat önbelleğe alınır ve araç saatte 5 tekrarla sınırlıdır. Çıktı: {trades:[...], summary:{total_pnl, win_rate, max_drawdown, avg_rr, policy_rejections}}.
get_trade_history
İsteğe bağlı: venue, symbol, days (1–365, varsayılan 30), limit (1–200, varsayılan 50), market (crypto / forex / paper). Üç kaynakın tamamından kapanmış işlemleri tek bir listede, en yeniden en eskiye doğru, artı bir summary ile döndürür. Özet kasıtlı olarak muhafazakârdır: avg_rr yalnızca giriş, stop-loss ve çıkışın tamamının bilindiği işlemlerden hesaplanır ve rr_sample bunun kaç işlem olduğunu bildirir; birden fazla hesap para birimi karıştığında total_pnl null olur, onun yerine pnl_by_currency verilir; komisyon hiçbir yerde kaydedilmez, bu yüzden fee null kalır ve kripto PnL'i brüttür. Bir kaynak okunamazsa, sanki eksiksizmiş gibi kısa bir liste döndürmek yerine incomplete_sources onu adlandırır.
compare_venues
Zorunlu: symbol. İsteğe bağlı: market (varsayılan futures, veya spot), side. Bağlı her kripto borsası için canlı fiyatı ve — alış/satış (bid/ask) yayınlayan borsalarda — baz puan cinsinden spread'i, artı borsalar arasındaki fiyat farkını döndürür. Bir borsa seçmez: emriniz yine de bir tanesini adlandırır. İşlem ücretleri, emir defteri derinliği ve slipaj basis.not_measured altında listelenir ve asla tahmin edilmez; bid/ask yayınlamayan bir borsa, spread'i sıfırmış gibi sıralanmak yerine not_comparable_on_spread içinde görünür. Bu yüzden cheapest_measured, “ölçülen en düşük spread” anlamına gelir, “genel olarak en ucuz” değil.
list_strategies
Parametre yok. TradingView stratejilerinizi ayarlarıyla, plan_limit ve can_create_more ile birlikte döndürür. auto_trade her strateji için raporlanır, böylece asistan hangilerinin canlı olduğunu söyleyebilir. Webhook URL'si, demo URL'si ve HMAC gizli anahtarı yanıttan çıkarılır — yalnızca webhook_url_configured ve has_hmac_secret ifşa edilir, çünkü URL'nin kendisi bir kimlik bilgisidir.
create_strategy
İsteğe bağlı: name. Zorunlu: idempotency_key. auto_trade kapalı bir TradingView stratejisi oluşturur; alan MCP üzerinden yazılabilir değildir, bu yüzden yeni oluşturulan bir strateji, siz panelde kendiniz silahlandırana kadar gerçek emir açamaz. Paketinizin strateji kotasına tabidir — limitin üzerinde, sessizce hiçbir şey yapmak yerine kodlanmış bir plan-limiti hatası döner.
update_strategy
Zorunlu: strategy_id, changes, idempotency_key. Kaldıracı (1–20 ile sınırlı), risk yüzdesini (0.1–50), stop-loss ve take-profit yüzdelerini, trailing ve break-even ayarlarını, izin verilen sembolleri, hedef hesabı ve stratejinin sinyal kabul edip etmediğini değiştirir. auto_trade, status ve ip_allowlist reddedilir ve refused_fields içinde döndürülür; silme yalnızca panelden yapılabilir. reverse_enabled'ı açmak bir warning döndürür, çünkü o andan itibaren bir BUY sinyali bir SHORT açar.
backtest_my_signals
İsteğe bağlı: days (1–90), source, symbols, margin_usd, leverage, sl_pct, tp_pct, max_hold_minutes, taker_fee_bps, partial_tp. Gerçekten aldığınız sinyalleri gerçek geçmiş 1 dakikalık mainnet barları üzerinde iki kez oynatır: bir kez sinyalin kendi SL/TP ve kaldıracıyla, bir kez sizin ayarlarınızla. Hemen bir job_ref döner; sonucu get_job_status ile alırsınız. Her sonuç coverage (kaç sinyal gerçekten simüle edildi, kalanı neden edilemedi) ve assumptions (komisyon, slipaj, kısmi TP, modellenmeyenler) taşır. SL'siz, SL'si girişin ters tarafında olan veya geçmiş fiyat verisi bulunmayan sinyaller tahmin edilmez; sayılır ve atlanır.
simulate_policy
İsteğe bağlı: policy_text (gündelik dil), rules (derlenmiş), days (1–365). Bir risk politikasını gerçekten kapattığınız işlemlere uygular; hangilerinin hangi kuralla reddedileceğini ve PnL farkını bildirir. Bir job_ref döner. İki sınır her sonuçta yazılıdır: emir anındaki hesap durumuna bağlı kurallar (açık pozisyon sayısı, günlük zarar, bakiye) sıfırla değerlendirilir — bu durum kapanmış işlemlerden yeniden kurulamaz, dolayısıyla o kurallar olduğundan AZ sayılır; ve PnL kayıtlı gerçekleşmiş sonuçlarınızdan gelir, para birimine göre ayrı raporlanır ve farklı birimler TOPLANMAZ.
import_tradingview_backtest
Zorunlu: csv_text. İsteğe bağlı: taker_fee_bps, slippage_bps, leverage. TradingView Strategy Tester'dan dışa aktardığınız işlem listesini alır ve gerçek maliyetlerle yeniden hesaplar: giriş ve çıkışın ikisinde de taker komisyonu ve ölçülmüş slipaj. Pine Script asla çalıştırılmaz veya yorumlanmaz — yalnızca dışa aktardığınız işlem listesi yeniden hesaplanır ve fiyatlar TradingView'ın bildirdiği gibi kalır. Miktar sütunu olmayan satırlara komisyon uygulanamaz; bunlar iyimser kalır ve sayıları raporlanır. Bir job_ref döner.
get_job_status
İsteğe bağlı: job_ref. Referans verilirse o işin durumunu, bittiyse sonucunu döner; argümansız çağrılırsa son işlerinizi listeler. status şunlardan biridir: PENDING, RUNNING (progress yüzdesiyle), DONE, FAILED (yeniden deneme planlandı), DEAD veya CANCELLED. İşler sırayla koşar, bu yüzden queue_position önünüzde kaç iş olduğunu söyler. Size ait olmayan bir referans, var olmayan bir referansla AYNI “bulunamadı” cevabını alır; böylece iş referansları numaralandırılamaz.
Sonuçlar sonsuza kadar yaşamaz, bu yüzden üzerlerine bir şey inşa etmeden önce sınırları bilmekte fayda var. Yalnızca en son biten 20 iş tam sonucunu korur; daha eskileri özetlerine indirgenir ve result_pruned: true ile döner — bu, ayrıntılı satırların artık olmadığı ve onları yeniden üretmek için işin tekrar çalıştırılması gerektiği anlamına gelir. Her şey 30 gün sonra silinir. Backtest ve policy koşuları da hesabınızın backtest geçmişine yazılır ve sonuç, saklandıkları run_id'yi taşır.
Politika duvarı
Araçları bir dil modeline vermeyi savunulabilir kılan kısım burasıdır. Kurallarınız bir kez JSON'a derlenir, sabit bir şemaya karşı doğrulanır ve ardından şu şekilde değerlendirilir: sunucu tarafında ve deterministik olarak her emirde. Model bunları asla değerlendirmez, etrafından dolanmanın bir yolunu asla görmez ve onları gevşetmesi için ikna edilemez — ne sabırsızlık anınızda siz tarafından, ne de tesadüfen okuduğu bir web sayfası veya Telegram mesajı üzerinden enjekte edilen bir prompt tarafından. Bir ihlal, denetim kaydıyla birlikte kesin bir reddir.
| Kural | Tür | Anlam |
|---|---|---|
max_risk_per_trade_pct | sayı, 0–100 | Tek bir işlemin hesaptaki payının üst sınırı |
max_order_size_usd | sayı > 0 | Emir değerinde mutlak üst sınır |
max_daily_loss_usd | sayı > 0 | Bu zararın ötesinde o gün işlem yapmayı durdur |
max_open_positions | tam sayı | Eşzamanlılık sınırı |
leverage_cap | sayı, 1–1000 | Kendi kaldıraç üst sınırınız |
venue_scope | dizi | Yapay zekayı belirtilen venue'lerle sınırla |
symbol_whitelist | dizi | Yalnızca bu semboller işlem görebilir |
symbol_blacklist | dizi | Bu semboller asla işlem görmez |
allowed_sides | dizi | Yalnızca long, yalnızca short veya ikisi de |
notes | metin | Kendi notunuz |
Şema doğrulamasını geçemeyen derlenmiş bir politika hiçbir şekilde etkinleştirilemez. Kısmen geçerli bir politika yoktur.
Güvenlik modeli
| Varsayılan olarak kağıt (paper) | Her yeni anahtar şu kapsamda başlar: paper 5.000 $'lık sanal bir bakiye ile. Gerçek paraya ulaşmak, açık ve ayrı bir eylemdir. |
| Stop-loss zorunludur | Ne açık bir stop-loss ne de kaydedilmiş bir varsayılan mevcutsa, emir reddedilir. Daha sonra da kaldırılamaz. |
| Idempotency | Her yazma aracı, istemci tarafından üretilmiş en az 8 karakterlik bir anahtar gerektirir. Tekrarlar, iki kez işlem yapmak yerine saklanan yanıtı yeniden oynatır. |
| Kill switch | POST /api/mcp/freeze her şeyi bir anda durdurur; ardından her araç şunu döndürür: user_frozen. /unfreeze bunu tersine çevirir. |
| Anahtar başına iptal | Diğerlerine dokunmadan bir istemciyi iptal edin. Açık olay akışları saniyeler içinde düşer. |
| İmzalı makbuzlar | Her eylemde ed25519 imzası artı kullanıcı başına bir özet (hash) zinciri, bir genel anahtara karşı doğrulanabilir. |
| Denetim kaydı | Her çağrı, araç adı, argümanlar, sonuç ve gecikme ile kaydedilir, şurada okunabilir: GET /api/mcp/audit ve panelde. |
| Kiracı izolasyonu | Araçlar bir kullanıcı kimliği kabul edemez; kimlik yalnızca kimlik doğrulaması yapılmış bağlantıdan gelir. |
| Yalnızca-işlem anahtarları | Borsa API anahtarlarınız çekim izni olmadan oluşturulur ve AES-256 ile şifrelenmiş olarak saklanır. Emirler, borsada izin listesine (allowlist) aldığınız sabit AlgoVesta işlem IP'lerinden gönderilir. |
Kaldıraç konusunda, açıkça: AlgoVesta kendi hesabınıza bir kaldıraç üst sınırı dayatmaz — bunu borsanız yapar ve kendi üst sınırınızı şununla belirleyebilirsiniz: leverage_cap politika kuralı. MetaTrader 5 üzerinden forex bu yolda kaldıraçsızdır ve lotlarla boyutlandırılır. Bir platformun burada “kaldıracı 20x ile sınırladığını” söyleyen herkes var olmayan bir şeyi anlatıyordur.
Hatalar
| Kod | HTTP | Ne zaman oluşur |
|---|---|---|
unauthorized | 401 | Eksik, geçersiz veya iptal edilmiş anahtar |
insufficient_scope | 401 | Araç, anahtarın sahip olduğundan daha yüksek bir kapsam gerektiriyor |
forbidden | 403 | Bu hesap için izin verilmiyor |
user_frozen | 403 | Kill switch etkin |
policy_violation | 403 | Bir kural emri reddetti; yanıt hangisi olduğunu listeler |
idempotency_conflict | 409 | Aynı anahtar farklı argümanlarla yeniden kullanıldı |
validation_failed | 422 | Hatalı biçimlendirilmiş veya çelişkili argümanlar |
rate_limited | 429 | Çok fazla çağrı; retry_after dahil edilir |
Alan düzeyindeki reddedişler, taşıma hataları yerine yapılandırılmış sonuçlar olarak gelir, böylece asistan bunlar üzerinde işlem yapabilir: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN. Hata mesajları asla iç ayrıntı sızdırmaz ve başka bir hesap hakkında hiçbir şey ifşa etmez.
Hız sınırları
| Sınırın kapsamı | Sınır |
|---|---|
| Anahtar başına tüm araç çağrıları | dakikada 60 |
place_order | dakikada 10 |
replay_channel | saatte 5 (sonuçlar 24 saat önbelleğe alınır) |
| Canlı kapsam onay e-postası | dakikada 1 |
Canlı olaylar
Kiracı bazında izole edilmiş, sunucu tarafından gönderilen bir olay akışı şurada mevcuttur: /mcp/events (OAuth) ve /u/<key>/events (gizli bağlantı), şu ile: Last-Event-ID yeniden bağlanma, böylece düşen bir bağlantı yeniden başlamak yerine devam eder. Olay türleri: fill, policy_rejected, position_closed, sl_hit, tp_hit, ve replay_progress bir kanal tekrarı sırasında.
Venue'ler — 16 borsa ve MetaTrader 5
Tek bir bağlantı hepsine ulaşır. Bir venue, yapay zekaya yalnızca onu AlgoVesta'da bağladıktan sonra kullanılabilir hale gelir; bağlamadığınız bir tanesini istemek şunu döndürür: VENUE_NOT_CONNECTED bir tahmin yerine.
| Borsa | venue değer |
Piyasalar | Parola gerekli |
|---|---|---|---|
| Binance | binance | Spot, vadeli işlemler | Hayır |
| Bybit | bybit | Spot, vadeli işlemler | Hayır |
| OKX | okx | Spot, vadeli işlemler | Evet |
| KuCoin | kucoin | Spot, vadeli işlemler | Evet |
| Gate.io | gateio | Spot, vadeli işlemler | Hayır |
| Bitget | bitget | Spot, vadeli işlemler | Evet |
| Kraken | kraken | Spot, vadeli işlemler | Hayır |
| Coinbase | coinbase | Spot | Hayır |
| BingX | bingx | Spot, vadeli işlemler | Hayır |
| Hyperliquid | hyperliquid | Vadeli işlemler | Hayır |
| Backpack | backpack | Spot, vadeli işlemler | Hayır |
| HTX | htx | Spot, vadeli işlemler | Hayır |
| BloFin | blofin | Spot, vadeli işlemler | Evet |
| Phemex | phemex | Spot, vadeli işlemler | Hayır |
| WOO X | woo | Spot, vadeli işlemler | Evet (Application ID) |
| CoinEx | coinex | Spot, vadeli işlemler | Hayır |
| MetaTrader 5 (forex, metaller, endeksler) | mt5 | Lot, kaldıraçsız yol | Broker girişi |
| Kağıt (paper) motoru | paper | 5.000 $ sanal | — |
Bunlardan altısı — Binance, Bybit, OKX, Gate.io, KuCoin ve Bitget — hem vadeli işlemlerde hem de spotta gerçek parayla uçtan uca doğrulanmıştır; stop-loss ve take-profit'in borsanın kendisinde gerçekten var olduğu ve kaydedilen değerlerle birebir eşleştiği teyit edilmiştir. Her borsanın kendine özgü tuhaflıkları vardır ve bu farklar eksiklik değil kasıtlıdır: Bybit ve Bitget spotta ikinci bir take-profit bacağını kabul etmez, OKX spot, bir nakit hesabın sessizce bir marj hesabına dönüşmesini önlemek için ham API üzerinden yönlendirilir, Binance spot alım öncesinde bir minimum nominal değeri zorunlu kılar ve KuCoin piyasa alımları maliyet (cost) modunda verilir.
Spot ve vadeli işlemler her zaman birbirinden ayrı tutulur. İki piyasadaki aynı sembol ayrı bir satır, ayrı bir fiyat akışı ve ayrı bir anahtardır — biri asla diğerine karışmaz.
Sıfır kurulumla MetaTrader 5
Forex için hiçbir şey kurmazsınız. Kiralanacak bir VPS, kendi makinenizde canlı tutulacak bir MetaTrader terminali, ekleyeceğiniz bir Expert Advisor veya satın alınacak bir üçüncü taraf köprü hesabı yoktur. AlgoVesta, MetaTrader 5 terminallerini kendi yönetilen sunucularında çalıştırır ve bunları brokerinize kesintisiz bağlı tutar. Hesap kimlik bilgilerinizi bir kez girersiniz ve yapay zeka asistanınız o andan itibaren o hesapta işlem yapabilir. Asistana döndürülen pozisyon verisi terminale karşı doğrulanır ve doğrulanamadığında araç, boş bir hesabı ima etmek yerine bunu söyler.
Yol haritası — küresel hisse senetleri
Interactive Brokers (IBKR) üzerinden küresel hisse senedi işlemleri planlanıyor, hedef: 170 küresel hisse senedi kripto ve forex ile aynı MCP bağlantısından ulaşılabilir olması. Bu bir yol haritası maddesidir ve bugün canlı değildir; bu sayfada bu paragraf dışında hiçbir şey onu tanımlamaz ve mevcut hiçbir araç hisse senedi işlemi yapamaz. Yayınlandığında, ek venue değerler olarak, aynı araçlar, aynı politika duvarı ve aynı makbuzlar altında görünecektir.
Ölçülen gecikme
Bunlar pazarlama rakamları değil, ölçümlerdir.
| Aşama | Ölçülen |
|---|---|
| İsteğin alınması ve ayrıştırılması | 17–67 ms (medyan 38 ms) |
| MetaTrader 5'te uçtan uca | Yaklaşık 1 saniye (849 ms ölçüldü; kapatma için 702 ms) |
| Bir kripto borsasında uçtan uca | Yaklaşık 3 saniye (2.785 ms ölçüldü) |
| Kağıt (paper) motoru | Medyan 318 ms — borsaya gidiş-dönüş yok |
Yapay zeka istemcinizin içinde geçen süre — modelin düşünmesi ve sizin onaylamanız — dahil değildir ve genellikle baskın olacaktır. Bu sunucu düşük gecikmeli bir yürütme venue'si değildir ve öyle satılmaz.
Panel REST uç noktaları
Yapay zekanın kendi başına yapamayacağı ve yapmaması gereken her şey, normal oturum açmış bağlantınızın arkasında yer alır.
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
Sahip olmanız gereken
MCP bağlantısının kendisi ürünün bir parçasıdır ve ayrı satılmaz. Pratikte sizi sınırlayan şey, yapay zekanın ulaşması gereken şeydir: kağıt (paper) işlem yalnızca bir hesap gerektirirken, canlı işlem aktif bir ücretli plan ve o planın izin verdiği bağlı hesapları gerektirir — ayrıca gerçek parayla canlı MetaTrader 5 işlemleri, o hesap için ayrıca açıkça onay vermenizi (opt-in) gerektirir. Borsa anahtarı ve MetaTrader hesabı sayısındaki plan sınırları şurada listelenmiştir: fiyatlandırma sayfası. Bunların hiçbiri önem kazanmadan önce her şeyi 5.000 $'lık kağıt (paper) bakiye üzerinde deneyebilirsiniz.
Sıkça sorulan sorular
live kapsamı, ve bu kapsam yalnızca bir ikinci faktörden sonra verilir. O ana kadar aynı asistan, aynı araçlarla 5.000 $'lık kağıt (paper) bakiyeye karşı çalışır, böylece herhangi bir gerçek paraya ulaşılabilir olmadan önce tüm iş akışını prova edebilirsiniz.get_portfolio_context hepsini tek bir çağrıda döndürür. Aynı piyasada birden fazla hesabınız olduğunda, account parametresi zorunlu hale gelir ve belirsiz bir istek, bir varsayılana gönderilmek yerine reddedilir.POST /api/mcp/freeze. Ardından her araç şunu döndürür: user_frozen siz dondurmayı kaldırana kadar. Bunun yerine tek bir istemciyi kesmek için yalnızca o anahtarı iptal edin — diğerleri çalışmaya devam eder.verify_receipt aracı, veya şu adresteki genel anahtara karşı bağımsız olarak: /mcp/receipts/pubkey. Eski bir makbuzu düzenlemek, ondan sonraki her makbuz için zinciri bozar; kurcalamayı tespit edilebilir kılan tam olarak budur.Bir yapay zeka asistanını hesaplarınıza bağlayın
5.000 $'lık kağıt (paper) bakiye ile başlayın. Kart yok, kurulacak bir şey yok ve canlı sınır, siz bilinçli olarak açana kadar kapalı kalır.
Ücretsiz hesap oluştur Genel bakışı görİlgili: Yapay zeka asistanları için MCP · MCP Trading Sunucusu: Claude & ChatGPT ile 16 Borsa + MT5 · desteklenen borsalar · MetaTrader 5 forex · TradingView otomasyonu · bir MCP işlem sunucusunun ne olduğu · güvenlik · fiyatlandırma.
İşlem yapmak risk taşır. Otomasyon bu riski ortadan kaldırmaz ve bir yapay zeka asistanı yatırım tavsiyesi değildir. Kağıt (paper) ile başlayın.