Loading repository data…
Loading repository data…
ElifPinarBalbal / repository
Fully automated open-source trading bot for BIST (Borsa Istanbul), a Turkish stock exchange, including both technical indicators and AI news analysis. Implemented with NodeJS.
Merhaba 👋
Merdiven Bot'a hoşgeldiniz. Merdiven, Türkiye'nin (Ağustos 2025 için) ilk Yapay Zeka ile Haber Analizi ve Algoritmik İşlem (teknik indikatörler) kullanarak tam otomatik biçimde işlem yapabilen açık kaynak robotudur.
İçindekiler:
👇
[!CAUTION]
‼️ DİKKAT: SORUMSUZLUK KAYDI ‼️ YATIRIM TAVSİYESİ DEĞİLDİR. ‼️
Bu projede yer alan ve sayılanlarla sınırlı olmamakla birlikte herhangi bir kod satırı, modül, strateji, algoritma, veri ve çeşitli adlara sahip olabilecek diğer ürünler yatırım tavsiyesi niteliğinde değildir.
Yatırım kararlarınızı YALNIZCA KENDİNİZ ALABİLİR, VAR OLAN HERHANGİ BİR ALGORİTMA - ROBOTA devredemezsiniz ve devretmemelisiniz.
Size sunulmuş bu proje YALNIZCA EĞİTİM AMAÇLI OLUP, çift taraflı veya tek taraflı herhangi bir ticari kazanç amaçlamadığı gibi KULLANIMDAN DOĞAN TÜM SORUMLULUK YALNIZCA SİZE AİTTİR.
- SİZE HERHANGİ BİR KÂR VADETMİYORUZ.
- GELİR ELDE EDECEĞİNİZİ VADETMİYORUZ.
- ROBOTUN ÇALIŞTIĞINI / ÇALIŞIR VAZİYETTE OLDUĞUNU İDDİA ETMİYORUZ.
- KOD HATASI (BUG) - SAĞLAYICI HATASI GİBİ OLASI SORUNLAR YÜZÜNDEN PARA / NAKİT KAYBETMEYECEĞİNİZİ GARANTİ ETMİYORUZ.
Aynı şekilde projede yer alan modüllerden herhangi biri TAVSİYE / ÜRÜN TANITIMI NİTELİĞİNDE OLMAYIP, bu modüllerde yararlanılan ürünler - markaların da KULLANIMLA İLGİLİ HİÇBİR SORUMLULUKLARI BULUNMAMAKTADIR.
Bize, ilgili markalara ve ürünlere hiçbir sorumluluk iddiası yöneltilemeyecektir.
Merdiven Project, birkaç farklı modülü bir arada kullanarak size tam otomasyon sağlar.
Kısaca Merdiven, bağlı banka hesabınızı kullanarak (1) güncel manşet ve KAP haberlerini yapay zeka ile okur, analiz eder; (2) teknik indikatörlerin sinyallerini izler ve sizin için işlem kararı alır. Bu kararlara çok kısıtlı bir süre içinde müdahale etmez iseniz işlemler otomatik olarak gerçekleşir (emir gönderilir).
Projenin nasıl çalıştığını anlamak için bu notun tamamını okumanızı öneririz. Ancak merak ettiğiniz ve burada yer almayan her konu için bize ayrı ayrı ulaşmaktan lütfen çekinmeyin 😄.
❤️ Umarız tüm öğrencilere, yazılım dünyasına, yatırımcılara ve ilgililere faydası dokunur.
👇
[!WARNING]
⛔️ KISITLANMIŞ MODÜLLER ⛔️
Merdiven Project, bünyesinde birkaç modül barındırmaktadır. Bunlardan biri de Kamuyu Aydınlatma Platformu ("KAP") bildirimlerini Yapay Zeka ile analiz eden KAP Modülüdür.➡️ KAP MODÜLÜ yasal sebeplerden ötürü (3. taraf izni ve API kapılarının ücretli olarak sunulması sebebiyle) public proje içerisinde SUNULMAMIŞTIR.
KAP web sitesinin arayüzü bu projenin başlangıç tarihi (Ocak-Mart 2025) itibariyle yenilenmiştir. Bu sebeple internette var olan API geçitleri güncel (ve muhtemelen yasal) değildir. Anlık olarak KAP, API hizmeti sunsa da bu hizmet yalnızca geçmiş KAP bildirimlerine yönelik olduğundan güncel olarak uygulanma / kullanma imkanı bulunmamaktadır. Ekibimizce mevcut API hizmetinin (henüz herhangi bir ücretli abonelik sistemi bulunmasa da) ücretli olarak sunulacağı tahmin edilmektedir. Bu nedenlerle KAP modulü bu projede sunulmamıştır.
Araştırmalarımıza göre yapay zeka kullanan (haberler ve KAP) modüller için mevcut en iyi yapay zeka sağlayıcısı (Ağustos 2025) OpenAI olarak önerilmektedir. OpenAI API'ın sağladığı GPT-4.1 ve GPT-4.1-mini mevcut projede kullanılmaktadır. (Web search özelliği hariç).
Denenen diğer alternatifler: Gemini 2.5-Flash (Önerilmemektedir).
🙌
| ÖNERİLEN | MİNİMUM | |
|---|---|---|
| Yazılım Bilgisi | NodeJS (iyi derecede), fetch, axios, SQL, ngrok | NodeJS gerekli ve yeterlidir. |
| İngilizce | Robot İngilizce dilindedir. | Robot İngilizce dilindedir. |
| Server | 7 / 24, Türkiye içinde, Linux - Centos olmalıdır. | Sunucunuz yok ise de test / öğrenmek amacıyla çalıştırabilirsiniz. |
| DenizBank / AlgoLab hesabı | Canlı Veri ve Derinlik sözleşmeleriniz olmalıdır. | Merdiven yalnızca bu ürünlerle çalışabilir. |
| Borsa Bilgisi / Deneyimi | Özellikle BIST dinamikleri hakkında bilgi sahibi olmanız önerilir. | Deneyiminiz yoksa yalnızca keşif / öğrenme amaçlı çalıştırın. |
| Telegram | Telegram Botları ve sunulan API içindeki methodlar hakkında bilgi sahibi olmalısınız. | Telegram hesabınız bulunmalı ve Bot hesabı oluşturmalısınız. |
| OpenAI (ChatGPT) | OpenAI API deneyiminiz olması önerilir. Min. 20$ bakiye de önerilir. | OpenAI API (Key) hesabınız olması gereklidir. Minimum 10$ bakiye yüklemeniz gerekecektir. |
| TradingView Hesabı | Ekstra Koruma (YahooFinance çalışmadığında backup) için önerilir. | Gerekli değildir. |
| Teknik İndikatörler | Stochastic + Bollinger Bands + Trailing Stoploss | Bilmeniz gerekli değildir. |
Hacim ve özellik olarak epey büyük bir yelpazede olduğundan bu projeyi size her başlığını ayrı ayrı açıklayarak sunmak isteriz. Böylece ihtiyacınız olan / ilham almak istediğiniz kısım ile ilgili merak ettiklerinizi de bu kısımlardan okuyabilirsiniz.
Tanıtım ve Kurulum için hazırladığımız videoları izleyerek Merdiven'i daha iyi anlayabilir, kurulumda adım adım takip edebilirsiniz.
Merdiven Project 3 Bilkentli tarafından hazırlanmış ve kodlanmıştır. Lütfen bizlerle iletişime geçmekten çekinmeyin.
@ElifPinarBalbal - Developer
@ardaokyay - Developer
Bu başlık altında Merdiven Project'te bulunan her bir modülü detaylı olarak açıklayacağız. Kurulum için 3. başlığa bakınız.
[!NOTE] Merdiven Project pek çok farklı modülün bir arada çalıştığı bir robottur. Robotun nasıl çalıştığını anlamak için her bir modülün amacını - nasıl çalıştığını anlamak da önemlidir.
Burada yazan her açıklama yalnızca genel bilgilendirme içindir. Detaylı bilgileri hazırladığımız videoda paylaştık.
Ayrıca modülleri teker teker incelemeden önce botun kurgulanmasına da kısaca değinmek isteriz:
Botun (ve sistemin) kurgulanması çerçevesinde riski dağıtmak için birkaç kural tanımladık. Böylece mevcut bakiyeyi (cash) tek bir hisseye yatırmak (ve muhtemelen doğacak başka fırsatları kaçırmak) yerine, alım limiti kuralı oluşturduk.
Bu kurala göre, her bir hisse kodu (örn. THYAO) için en fazla 500-TL lik lot alımı yapılabilir. Ancak, elde kalan (500 liradan arta kalan) miktar lot fiyatının yarısını geçiyorsa bir lot daha alınabilir. Böylece sınırı 500TL'ye sabitlemek yerine daha dinamik bir sınır çizdik. Bu nedenle örneğin 503TL, 497TL gibi rakamlarla karşılaşılabilir. (Simülasyon çalışmalarımızda 3.000-TL bakiye ile 500-TL sınır belirlenmiştir, bunları dilediğiniz gibi değiştirebilirsiniz).
Merdiven Project aynı anda onlarca hisseyi takip edebildiğinden riski dağıtmak ve kullanıcının etkileşimi / takibi açısından en azından bakiyeye oranla 1 / 6'luk bir oran belirlenmesini tavsiye ederiz.
Merdiven Bot; İndikatör Modülü için BIST50 hisselerini takip ederken, Haberler / KAP Modülü BIST100 hisselerini takip ediyor. Eğer kullanıcı haberler / KAP bildirimleri nedeniyle elinde BIST50'de olmayan ancak BIST100 içinde olan bir hisse alırsa, bu halde İndikatör Modülü BIST50 + bu hisse için de incelemeye devam eder.
İndikatörler 15 dakikalık aralıklardaki (15-minute interval) mumlar için hesaplama yapar.
AlgoLab, DenizBank'ın sunduğu bir algoritmik işlem ürünüdür. AlgoLab tek başına RSI, Stochastic gibi teknik indikatörleri kullanarak otomatik işlem yapabileceğiniz bir platformdur. Ancak yapay zeka destekli haber analizi sunmamaktadır.
AlgoLab aynı zamanda API Hizmeti de sunmaktadır. İşte bu API hizmeti, tamamen özelleştirilmiş bir hisse robotu tasarlayabilmemiz için en temel desteği sunmaktadır. (API kütüphanesi için tıklayın).
Bizim Türkiye'de bulabildiğimiz tek ücretsiz API hizmeti AlgoLab'inki oldu. Dolayısıyla bu hizmet için DenizBank'a çok teşekkür ederiz ❤️.
AlgoLab API:
WSS ile canlı veri,
Emir iletimi / iyileştirme / iptali
Portföy bilgisi
gibi pek çok hizmet sunmaktadır. Bu geçitler kodumuzun yatırım hesabı ile iletişim kurmasını sağlayacaktır.
Merdiven Project, sunulan API hizmeti vasıtasıyla iki temel işlev gerçekleştirmektedir:
Canlı Veri ile 15 dakikalık mum üretimi.
Çünkü TradingView gibi siteler size canlı veri - canlı mum sağlamamaktadır (paket satın almadığınız takdirde).
Böylece canlı 15 dakikalık mumlar ile istediğimiz indikatörü kendimiz hesaplayarak canlı veri ile birlikte canlı mum - canlı teknik indikatörleri de görüntüleyebiliyoruz.
Robot emirlerinin iletimi.
Robotun verdiği AL - SAT sinyallerini emir haline getirerek DenizBank yatırım hesabımıza iletebiliyoruz.
Bununla beraber portföyümüzü eşzamanlı tutarak yerel bir database dosyasında da saklayabiliyoruz.
AlgoLab API etkileşim - iletimi 5 saniyede bir ile sınırlı tutmuştur (bkz. Standart Şartname).
Bu nedenle AL - SAT - PORTFÖY BİLGİSİ vb. tüm AlgoLab istekleri bir sıraya (request queue) konulmalıdır. İstekler bu sıraya göre sırayla gönderilmelidir. Biz gönderim süresini her ihtimale karşılık 5.1 saniye olarak tuttuk.
AlgoLab iletim sırası 5 adet iletim türü içermektedir (AlgoLab API'ndaki adlarıyla):
Biz iletim sırasını:
Örneğin:
*ORDER, ORDER, ORDER, ORDER, ORDER, CHECK, ORD