atkisnemesi

  • 417
  • 2
  • 1
  • 0
  • 6 gün önce

algorithmic trading

internet bir bataklık; çeşitli indikatörler ve belli kural setleriyle inanılmaz algolar geliştirdiğini iddaa eden insanlarla karşılaşacaksınız. inanmayın. piyasaların gelişimi ve ilerleyişi tamamen stokastik ve non-stationary bir ilerleyişe sahiptir. böyle bir dünyada ben bunu %100 tahmin ettim diyen adamdan kaçınız efendim. hele ki sadace bir göstergeden ibaret olan indikatörlerin bunları başarması imkansızdır. unutmayın indikatörler sadece ve sadece geçmişin yansımasını size gösterir. 3 kere 5 kere tutturursanız 6. da veya 7. de çuvallamamanız imkansız. başarılı bir trade operasyonundaki tek unsur kazançların kayıplardan yüksek olması gerektiğidir. bu da doğru bir karımı al zararımı durdur optimizasyonundan geçer. bunu optimize etmek de sadece teknik analiz ve programlama bilgisiyle olmaz. kesinlikle deneyim bu noktada ön plana çıkar. trade operasyonlarındaki belki de en zor kısım zaten bu optimizasyon sürecidir. doğru optimize edilememiş başarılı bir strateji bile terkedilmeye mahkum olur. bu nedenle işlemlerini sıfır zararla kapattığını iddaa edenlere katiyen inanmayınız. bu kadar teknik analize kasıp kafayı yemektense biraz bunun psikolojisine yönelin. mesela daniel kahneman'ın hızlı ve yavaş düşünme kitabını alın okuyun. beklenti teorisinin ne demek olduğunu iyice kavrayın. insanların düşük olasılıklı istatistiklerdeki beklentilerinin ne kadar yüksek olduğunu özümseyin. zaten böyle de olmasa piyasadakilerin %95'i batık olmazdı.

algo'lar kazandırmaz mı, kazandırır. yukarıda bahsettiğim durumlardan kaçınan algoların kazandığını bizzat kendim de gördüm. ancak kolay mı, hayır. bugün fx'te algo geliştirmek isteseniz firmalar inanılmaz zorluyor sizi. o kadar kolay açık kapı bulamıyorsunuz. algo içine 4 işlem ve indikatör çıkmazı dışında bir şey entegre etmenize izin veren fx broker'ı oldukça az. özellikle metatrader gibi dinazor programlar kullanıyorsanız sistemin etrafından dolaşmanız şart. yani her şey internette pazarlandığı kadar kolay değil. ölücü ve sizi kandırmaya çalışan aracı kurumlardan da uzak durun.

algolar tabi ki hft'lerin bir tık altındadır. zaten türkiye'de hft yapmanız da biraz zor dostlar. borsaya bir tık daha yakın olup işleme daha hızlı girebilmek için new york'ta adamlar bina satın alıp içini sunucularla dolduruyor. o yüzden hayallerle yaşamayın. düzgün inandığınız bir stratejinizi algoya dönüştürebilirseniz öpüp başınızın üstüne koyun.

tanım: herhangi bir finansal piyasada trade için oluşturulabilecek çeşitli kural setlerin, programlama dilleri aracılığıyla robotlara dönüştürülüp canlı piyasalar içerisinde yapılan al-sat işlemlerinin tümüdür.

edit1: eklemeyi unutmuşum, gerçekten kazandıran algoyu kimse çıkıp satmaz :)

edit2: gelen sorular ve yoğunlaşan ilgi üzerine özellikle data kısmı için dönem dönem güncelleyeceğim bir bilgi seli oluşturmaya karar verdim

keyifli okumalar.

-- ön uyarı: bist'te işlem yapmıyorum. ilgi alanım fx piyasaları ve kripto çiftleri. --
-- aşağıda anlattığım sistemlerimi windows vps üzerinden sürdürüyorum. rdp saldırılarının önüne geçmek için özel bir ıp de satın aldım. böylece kendi tarlamda istediğim gibi at koşturuyorum. şu ana kadar bu şekilde majör bir problemlemle karşılaşmadım. --

algo olaylarında en sıkıntı çektiğim alan sürdürülebilir ve doğru veriyi sağlamaktı. özellikle geçmiş veri problemi muazzam ölçüde. aracı kuruma bağlı olarak oranlar da değiştiğinden insan bazen afallayabiliyor. ben geçmiş veri problemini tradingview aracılığıyla çözdüm. özellikle majör paritelerde 2000'li yılların başına kadar günlük veriye ulaşabiliyorsunuz. yazdığım python koduyla tv'den csv olarak indirdiğim geçmiş veri ile her günün belli bir zaman diliminde oandapyv20.apı'yi kullanarak otomatik olarak yeni günü eklediğim bir yapı kurdum ve bu sistemi de windows vps içine gömdüm. böylece benim müdahalem olmadan kendi kendini besleyen bir database yarattım. arada bu sistemin bakımını yaparak çok rahat bir şekilde veri sorununun önüne geçebilirsiniz. çünkü her şeyin başı veridir. istediğiniz kadar iyi strateji geliştirin elinizde veri yoksa hiçbir şey geliştiremezsiniz. benden kod falan isteme gafletine de düşmeyin. size en temel noktayı anlattım. gerisi sizde. diğer konulardaki tartışmalara ise her zaman açığım. herkese bol kazançlar.

edit3: kripto sevdalıları için bir bilgilendirme; bir önceki edit'de de değindiğim üzere bu işin asıl sıkıntılı olan tarafı sürdürülebilir doğru veriye ulaşabilmektir. kripto dünyası fx'e nazaran daha temiz ve kolay erişilebilir ücretsiz veriye sahip. örneğin binance apı'den (buradan konuyla alakalı güzel bir yazıya ulaşabilirsiniz.) kolaylıkla veri entegrasyonu sağlayabilir ve algonuzu işleme sokabilirsiniz. şayet çift yönlü kaldıraçlı işlem yapmak istiyorsanız da bybit apı'yi kullanabilirsiniz.

edit4: karşıma çıkan sıkıntıları açıkayarak burada editlemeye karar verdim. son dönemde binance - bybit üzerinden kaldıraçlı çift yönlü bir algo çalışması üzerine yoğunlaşmıştım. ancak bu iki borsa da ikisinden bağımsız olduğu için işleme giriş, tp ve sl seviyelerinde hatalarla karşılaşmaya başladım. bybit üzerinden işleme giriyorsan neden binance'ı işin içine katıyorsun dediğinizi duyar gibiyim. bybit historic fiyatlar için sadece 200 adete izin verdiği için mecbur binance'dan güncel verileri çekmeye devam ediyordum ancak baktım bu iş böyle olmayacak binance'tan tek seferlik tüm historic fiyatları çektikten sonra üzerine güncel fiyatları bybit'ten almaya başladım. böylece kendi bybit historic fiyatlarımı da oluşturmaya başladım ve sorun çözüldü.

edit5: belli aralıklarla güncellenen statik veri çözümlerimi bir adım daha öteye götürerek, websocket'ler üzerinden canlı veri ile işlem yapmaya da başladım. açıkçası sunucudaki cpu ve memory şişmesinin önüne geçmek için çok daha sürdürülebilir ve kaliteli veriye de bu şekilde ulaşılabiliyor. artık algo yazma konusunda pek bir kısıtım kalmadı gibi. istediğim algo'yu yazabiliyorum lakin asıl sıkıntının api'lardaki bilgi kısıtı olduğunu artık net olarak da görebiliyorum. örneğin borsadaki trade verisine apı'dan ulaşabilseniz bile bid/ask ayrımını birçok borsa vermiyor. sizi kitliyor. üzülerek belirtmem gerekir ki piyasadaki hemen hemen bütün hacim indikatörleri de bu şekilde toplam bid+ask hacmi gösteriyor. ben bunun önüne geçebilmek için orderbook'taki bid/ask tarafında oluşan hacimle, gerçekleşen trade'i çarpıştırıp bid/ask tarafındaki hacmi ayırıyorum. ancak ve ancak burada da yine yanlış değil ama eksik bilgi oluşuyor sevgili dostlar. neden diyecek olursanız, sizlerin de bildiği gibi orderbook'a düşen her emir trade demek değil, arada market emriyle girilen dünya düz trade işlemi de var yani benim ayrıştırdığım bid/ask hacimli trade'ler toplam trade'in sadece bir kısmını gösterebiliyor. bu konuda yaratıcı çözümü olan suserlarla her daim tartışmaya açığım.

edit6: sl/tp handikapı. aracı kurumların kesinlikle burada bir oyun çevirdiğine inanıyorum. hiç güvenmiyorum. çünkü toplam yığılan sl ve tp bölgelerini görmemeleri için önlerinde hiçbir engel yok. rahatlıkla bu bilgiyi takip edip yatırımcıyı likid edebilirler. neden etmesinlerdi zaten. bunun da önüne geçmek için algo'ya paralel bir sürekli çalışan canlı sl/tp algo'su çalıştırıyorum böylece çakal borsalara sl/tp bölgelerimi göstermeden sl/tp'lerimi çalıştırıyorum.

edit7: son tasarladığım websocket teknik açıdan muazzam işlemeye başladı. yaklaşık 5 gündür tek bir hata bile almadım. ne bir memory şişmesi ne de bir kod hatası. buradaki temel önemli noktalar:
- kod içerisindeki döngüleri optimize etmek,
- belli aralıklarla aracı kurum sunucusuna ben bak yaşıyorum kardeşim demek için ping yollamak,
- döngü içerisinde zaman duraklarını düzgün yerleştirmek. örneğin bazı noktalarda memory şişmelerinin önüne geçmek için belli aralıklarla toplanan verileri kendi veri ambarımda depolamak ve sonrasında websocket ile bağlantımı koparmak ve tekrar bağlanmak şeklinde ilerliyor. özellikle websocket ile bağlantımı kopardıktan sonra belli bir süre kodu döngü içerisinde durdurup websocket'in belli bir veriyi toplamasını bekliyorum (bu benim için maks 20 sn.)

edit8: destek olmak amaçlı sizlerle supernova balina yakalama telegram grubumu paylaşıyorum. tamamen bir deney ve merak için oluşturduğum gruptur. dileyen buradan katılabilir. şimdilik bitfinex, okex ve kraken'i entegre ettim (sırada coinbase pro ve gate.io var). huobiyle alakalı sürekli sorun yaşıyorum. çözünce onu da ekleyeceğim. aslında mantık oldukça basit bu borsaların websocketlerine eş zamanlı bağlanıyorum sonra içinde bulunulan dakika içerisinde hepsinin gerçekleşen tradelerini toplayıp net trade hacmi hesaplıyorum. şimdilik 3 milyon ve 4 milyon dolar bandlarını mesaj tetiği olarak kullanıyorum. 3-4 milyon dolar arası toplam hacmi medium, 4 milyon dolar üstünü de super balina olarak bildiriyor. şu an sadece btc ve eth için çaşıştırıyorum çünkü hem public websocketlerdeki limitlerimi doldurmak hem de server'ım memory'sini şişirmek istemiyorum.

balina hareketleri gördüğüm kadarıyla enteresan. bot, volatilitenin gelişini yakalayabiliyor ama balinanın toplam hacminin satış veya alış tarafında yüklü olması fiyatın da o yöne gideceği anlamına gelmiyor. bunun birkaç sebebi olabilir. birincisi şu an sadece 3 borsa entegrasyonu sağladım ve piyasanın geri kalanını düşündüğümüzde illa ki kaçırılan bir hacim de olabilir. diğer bir sebep de ters yönde işlem kovalayan botlar olabilir. bu kısım biraz kara kutu o yüzden. ben pozisyon açmak veya değerlendirme yapmak için sinyal geldikten sonra içinde bulunduğu 5m bara bakıyorum. 5m bar da sinyalle aynı yönde kapatırsa long/short hızlı pozisyonlar almak için denemeler yapıyorum. bu tabii benim şahsi değerlendirmelerim. lütfen sinyale bakıp da gözü kapalı işleme falan girmeye kalkmayın.

edit9: son projem, tradingview screener alert'i scrap edip burada oluşan anlık sinyallerle binance üzerinden oco buy ve ardından oco sell emirlerle spotta tüm piyasada işlem yapmak oldu. şu an algo güzel çalışıyor. herhangi bir hata almadım. çıktısını da şimdilik bu şekilde takip ediyorum. böylece tradingview'u tamamen işin içine katmış oldum. biliyorsunuz tradingview otomatik al-sata açık bir mecra değil. en başından beri bahsetmek istediğim sistemin etrafından dolaşma meselesi de aslında tam olarak bu.

devamını okuyayım »