Bu sayfa gerçek bir müşteri projesini değil, Fincode'un bu tür bir projede izlediği yaklaşımı gösteren örnek bir senaryoyu anlatır. Teknik ayrıntılar resmi kaynaklara dayanır; kapsam, süre ve fiyat her projede ayrıca belirlenir.
| Kim için | Kendi Pine Script stratejilerini kendi hesabında otomatikleştirmek isteyen bireysel trader (örnek senaryo) |
|---|---|
| Hizmet | TradingView otomasyonu |
| Platformlar | TradingView (webhook bildirimi içeren plan), müşteriye ait ve API sunan platform hesabı; Türkiye'de yerleşik müşteri için SPK'nın Faaliyette Bulunanlar Listesi'ndeki platformlar |
| Teknolojiler | HTTPS webhook alıcısı, kalıcı kuyruk, borsa REST ve WebSocket API'leri, Telegram ve e-posta bildirimleri |
| Teslim | Köprü yazılımı, alarm şablonları, risk kuralları, denetim kaydı, test raporu, işletim kılavuzu |
İhtiyaç
Senaryodaki trader, TradingView'da kendi yazdığı Pine Script stratejilerini çalıştırıyor ve emirleri bugün elle giriyor. TradingView alarmları emir göndermez: alarm tetiklendiğinde mesaj, belirlenen adrese HTTP POST isteğiyle iletilir ve emri bu adresi dinleyen servis gönderir. Ekim 2026 itibarıyla webhook alarmlarına yalnızca iki faktörlü doğrulaması açık hesaplarda izin verilir; webhook bildiriminin hangi planlarda sunulduğu TradingView'ın fiyatlandırma sayfasında gösterilir.
Hedef, alarm ile emir arasındaki manuel adımı kaldırırken üç riski kontrol altına almaktır: sahte veya yeniden oynatılan isteklerin emre dönüşmesi, aynı alarmın iki kez işlenmesi ve hatalı bir alarmın sınırsız bir pozisyon açması. Hangi platformun kullanılabileceği müşterinin yerleşik olduğu ülkenin mevzuatına bağlıdır; 6362 sayılı Kanun'un 99/A maddesine göre yurt dışında yerleşik platformların Türkiye'de yerleşik kişilere yönelik faaliyeti izinsiz kripto varlık hizmet sağlayıcılığı sayılır. Türkiye'de yerleşik müşteri için senaryo bu yüzden SPK'nın Faaliyette Bulunanlar Listesi (yeni sekmede açılır)'ndeki ve API sunan platformları esas alır; listede yer almak yetkilendirme anlamına gelmez. Aşağıda geçen BtcTurk ve Paribu ayrıntıları, bu listedeki iki platformun resmi dokümanlarından alınmış örneklerdir; platform önerisi değildir. Webhook'un temel işleyişi TradingView webhook yazısında anlatılıyor.
TradingView'ın Kullanım Şartları (yeni sekmede açılır) (5 Kasım 2026'da okundu), alarm ve webhook özelliklerini görüntüleme amaçlı lisanslar; bunların otomatik işlem için kullanılmasını, üçüncü taraf ürün veya hizmetler üzerinden olanlar dahil yasaklar. Bu yol seçilmeden önce şartlar okunmalı ve hukuki görüş alınmalıdır; bu, kullanıcı ile TradingView arasındaki sözleşmedir.
Çözüm mimarisi
Sistem, alarmı karşılayan hafif bir alıcı ile emri yürüten ayrı bir işçiden oluşur. Ayrımın nedeni süre sınırıdır: Ekim 2026 itibarıyla TradingView, uzak sunucu isteği üç saniyeden uzun sürede işlerse isteği iptal eder.
- Alarm şablonu: Message alanına geçerli bir JSON yazılır; TradingView bu durumda isteği
application/jsoniçerik türüyle gönderir. Şablon gizli değeri, sembolü ({{ticker}}), yönü ({{strategy.order.action}}), miktarı ({{strategy.order.contracts}}), strateji pozisyonunu ({{strategy.position_size}}) ve{{ticker}},{{interval}},{{strategy.order.id}}ile{{time}}değerlerinden oluşan alarm kimliğini, ayrıca tetiklenme zamanını ({{timenow}}) taşır. - Alıcı: Yalnızca 443 portunda HTTPS dinler; TradingView webhook'ları yalnızca 80 ve 443 portlarına gönderir ve IPv6'yı desteklemez. Alıcı kaynak IP'yi, içerik türünü, gizli değeri ve şemayı kontrol eder, isteği kalıcı kuyruğa yazar ve hemen 2xx yanıtı döner.
- İşçi: Alarmı kuyruktan alır, alarm kimliğinin daha önce işlenip işlenmediğine bakar, risk kurallarını uygular ve fiyatı ile miktarı platformun işlem çifti kurallarına (fiyat adımı, miktar adımı, asgari tutar) göre yuvarlar. BtcTurk'te bu kurallar
/api/v2/server/exchangeinfoyanıtında yer alır. - Emir: Emir, alarm kimliğinden türetilen bir istemci emir kimliğiyle gönderilir. Alanın adı ve davranışı platforma göre değişir: BtcTurk'te
newOrderClientId, Paribu'nun v2 emir uç noktasındanewClientOrderIdadını taşır. Paribu dokümanı bu kimliğin yinelenen emir isteklerini ayıklamadığını yazar; mükerrer koruması bu yüzden köprünün kendi kaydında tutulur. Gerçekleşmeler platformun özel WebSocket akışından veya REST sorgusuyla izlenir. - Kayıt ve bildirim: Her istek; gövdesi, zamanı, verilen karar ve borsa yanıtıyla denetim kaydına yazılır. Sonuç Telegram'a veya e-postaya gönderilir.
Güvenlik ve risk kontrolleri
İsteğin doğrulanması
- Gizli değer: Mesaja yalnızca köprünün tanıdığı uzun ve rastgele bir değer eklenir ve sabit zamanlı karşılaştırmayla kontrol edilir. TradingView, webhook gövdesine kullanıcı adı veya parola gibi bilgiler yazılmamasını ister; bu değer borsa API anahtarı değildir ve belirli aralıklarla yenilenir.
- Kaynak IP: Ekim 2026 itibarıyla TradingView webhook'ları yardım sayfasında yayımladığı dört IP adresinden gönderir. Alıcı yalnızca bu adreslere izin verir; liste değişebileceği için yardım sayfasıyla düzenli olarak karşılaştırılır.
- İstemci sertifikası: HTTPS bağlantısında TradingView bir SSL sertifikası da gönderir. Alıcı bu sertifikayı karşılıklı TLS ile ister, zinciri doğrular ve
O = TradingView, Inc.ileCN = webhook-server@tradingview.comalanlarını kontrol eder. - Bayat alarm:
{{timenow}}değeri müşterinin belirlediği eşikten eskiyse alarm reddedilir ve kaydedilir.
Mükerrer emir koruması
Alıcı 500–599 arası bir kod döndürürse (504 hariç) TradingView bildirimi 5 saniye sonra yeniden gönderir; bir tetiklenme en fazla dört kez ulaşabilir. Bu yüzden alıcı isteği kuyruğa yazdıktan sonra 2xx döner ve işçi aynı alarm kimliğini ikinci kez işlemez. Platform tarafında da benzer bir belirsizlik vardır: BtcTurk dokümanına göre emir gönderme isteği tekrar güvenli değildir ve 5xx yanıtından sonra emir yeniden gönderilmeden önce /api/v1/allOrders üzerinden istemci kimliğiyle var olup olmadığı kontrol edilmelidir. İşçi bu durumda emri yeniden göndermez, önce durumunu sorgular.
Risk kuralları
| Kural | Amaç |
|---|---|
| İzinli sembol listesi | Şablon hatasıyla gelen beklenmeyen sembolleri reddetmek |
| Emir başına azami tutar, azami pozisyon | Hatalı bir miktar alanının büyük bir emre dönüşmesini önlemek |
| Günlük işlem sayısı, günlük zarar limiti | Döngüye giren bir alarmı veya kötü giden bir günü sınırlamak |
| Pozisyon uyumu | Stratejinin pozisyonu platformdakiyle uyuşmuyorsa emri durdurup bildirim göndermek |
| Acil durdurma | Yeni emirleri tek adımda kesmek |
Borsa API anahtarı yalnızca okuma ve işlem yetkisiyle oluşturulur, para çekme yetkisi açılmaz ve platform destekliyorsa sunucunun IP adresiyle sınırlandırılır; Paribu dokümanı IP izin listesini güvenlik için önerir. Anahtar ve gizli değer kaynak kodda tutulmaz; erişimi kayıt altına alınan bir gizli bilgi kasasında saklanır. OWASP Secrets Management Cheat Sheet ortam değişkenlerini önermez ve sızan anahtarların hemen iptal edilmesini ister. Anahtar ayarları API anahtarı yazısında anlatılıyor.
Test ve canlıya geçiş
- Kayıt uç noktası: İlk aşamada alıcı gelen istekleri yalnızca kaydeder; gövde, içerik türü ve yer tutucuların doğru dolup dolmadığı kontrol edilir. Test adresi de internetten erişilebilir olmalıdır.
- Emir doğrulama: Platform bir test emri uç noktası sunuyorsa emir eşleştirme motoruna gitmeden orada doğrulanır; sunmuyorsa imza, işlem çifti kuralı ve tutar denetimleri gönderim öncesindeki birim testlerle sınanır.
- Test ortamı: Uçtan uca akış, platformun test ortamı varsa orada, yoksa platformun belgelediği yanıtları taklit eden yerel bir sahte API ile çalıştırılır; BtcTurk dokümanı örneğin bir test ortamı tarif etmez. Bu ortamlardaki gerçekleşmeler canlı piyasanın likiditesini yansıtmadığı için gerçekleşme fiyatları değerlendirme dışında tutulur.
- Hata senaryoları: Aynı alarmın dört kez gelmesi, 5xx döndüren platform, geç gelen alarm, geçersiz JSON ve risk limitini aşan miktar yapay olarak üretilir; her birinde beklenen davranış raporlanır.
- Kontrollü canlıya geçiş: Canlı hesapta müşterinin belirlediği küçük limitlerle başlanır. TradingView'daki strateji emirleri ile platformdaki gerçekleşmeler kayıtlar üzerinden karşılaştırılır; alarm günlüğündeki Webhook status sütunu teslim sonuçlarını gösterir.
Stratejinin kendisi bu aşamalardan önce backtest ve sanal hesapta sınanır; köprü testleri stratejinin değil, aktarım zincirinin doğruluğunu ölçer.
Teslim edilenler
- Alıcı ve işçiden oluşan köprü yazılımı, kaynak kodu ve kurulum betikleri
- TradingView alarm mesajı şablonları; gerekirse Pine Script tarafında
alert_messagedüzenlemeleri - Müşterinin belirlediği değerlerle yapılandırılmış risk kuralları ve acil durdurma
- Denetim kaydı, Telegram veya e-posta bildirimleri
- Test ortamı ve hata senaryoları raporu
- Gizli değer yenileme, anahtar iptali ve IP listesi güncelleme adımlarını içeren işletim kılavuzu
Müşterinin kendi adına birden fazla hesabı veya platformu olduğunda aynı alarm, müşterinin belirlediği pozisyon büyüklükleriyle her hesap için ayrı ayrı işlenir; başkalarına ait hesaplar kapsam dışıdır. Kapsamın ayrıntısı TradingView otomasyonu sayfasında yer alıyor.
Başarı nasıl ölçülür?
Başarı kârla değil, köprünün davranışıyla ölçülür; strateji ve yatırım kararları müşteriye aittir ve otomatik emirler de zararla sonuçlanabilir. Değerlendirme ölçütleri şunlardır:
- Test senaryolarında aynı alarm kimliği için birden fazla emir oluşmaması
- Alıcının yanıt süresinin ölçülmesi ve üç saniye sınırının belirgin biçimde altında kalması
- Reddedilenler dahil her alarmın gerekçesiyle birlikte kayıtlı olması
- Risk kurallarının her emirden önce uygulandığının kayıtlardan doğrulanabilmesi
- Strateji emirleri ile platform gerçekleşmeleri arasındaki her farkın raporlanıp açıklanabilmesi
Sık sorulan sorular
Bilgisayar kapalıyken köprü çalışır mı?
Evet. Alarmlar TradingView'ın sunucularında, köprü yazılımı varsayılan olarak müşterinin kendi sunucusunda çalışır; kullanıcının bilgisayarının açık olması gerekmez.
Aynı alarm iki kez gelirse iki emir açılır mı?
Açılmayacak şekilde tasarlanır. TradingView 5xx yanıtlarında bildirimi en fazla üç kez yeniden gönderebildiği için köprü her alarmın kimliğini saklar ve aynı kimliği ikinci kez işlemez.
Borsa API anahtarı webhook mesajına yazılabilir mi?
Hayır. TradingView webhook içeriğine kimlik bilgisi yazılmamasını ister. Mesajda yalnızca köprünün tanıdığı ayrı bir gizli değer bulunur; borsa anahtarı sunucudaki gizli bilgi kasasında kalır ve para çekme yetkisi taşımaz.
Alarm ile emir arasında ne kadar gecikme olur?
Birkaç saniyelik gecikme oluşabilir. Saniyeler içinde karar veren stratejiler için piyasa verisini doğrudan borsa API'sinden alan bir algoritmik işlem sistemi daha uygun olabilir.
Kaynaklar
- TradingView: How to configure webhook alerts (port, IP, 3 saniye, içerik türü, 2FA) (yeni sekmede açılır)
- TradingView: Webhook resubmission (yeni sekmede açılır)
- TradingView: Webhook authentication (sertifika alanları) (yeni sekmede açılır)
- TradingView: How to use a variable value in alert (yer tutucular) (yeni sekmede açılır)
- BtcTurk API dokümanı: Submit an Order (newOrderClientId) (yeni sekmede açılır)
- BtcTurk API dokümanı: Error Handling For Order Operations (5xx ve allOrders) (yeni sekmede açılır)
- BtcTurk API dokümanı: Get Exchange Info (işlem çifti kuralları) (yeni sekmede açılır)
- Paribu API dokümanı: Client Order ID (v2) (yeni sekmede açılır)
- Paribu API dokümanı: Obtaining API Keys (izinler ve IP izin listesi) (yeni sekmede açılır)
- SPK: Faaliyette Bulunanlar Listesi (5 Kasım 2026'da kontrol edildi) (yeni sekmede açılır)
- TradingView: Plans and pricing (Webhook notifications) (yeni sekmede açılır)
- OWASP Secrets Management Cheat Sheet (yeni sekmede açılır)
- 6362 sayılı Sermaye Piyasası Kanunu, md. 99/A (yeni sekmede açılır)
- TradingView: Kullanım Şartları (5 Kasım 2026'da okundu) (yeni sekmede açılır)