Algoritmik alım-satım, finansal piyasalarda, matematiksel modelleme ve bilgisayar hesaplamaları kullanarak doğru zaman, doğru miktar ve en iyi fiyat ile alım-satımın otomatik olarak gerçekleştirilmesidir. Piyasalarda alım-satım vb. işlemlerin algoritmalara teslim edilmesi çok da yeni sayılmaz. İlk başlarda algoritmik finans, yatırımda bilgisayarın desteğini kullanmak ve manuel işleri otomatikleştirmek için kullanılmıştır. Günümüzde de yapay zekanın desteği ile insan faktörünü sürecin dışına çıkarmak ve yatırım kararlarını almak, uygulamak amacıyla kullanılıyor. Türkiye’de şu an yapay zekanın borsada kullanılma oranı yaklaşık %5 iken bu oran ABD’de %85 dolaylarında seyrediyor.
Detaylı analizler sonucunda oluşturulmuş algoritmalarla piyasada insandan daha başarılı sonuçlar almak mümkün. Ve algoritmaların en önemli özelliklerinden biri de insanüstü performans sergileyerek saniye hatta salise mertebelerinde (Yüksek Frekanslı Ticaret – High Frequency Trading) alım-satım yapmaya elverişli olması.
Baştan söylemekte yarar var. Bu yazımda finansal terimler çokça geçmekte o yüzden ‘borsa’,’BIST100’,’hisse senedi’,’portföy’ gibi terimlere aşina olmayan okurların değerli yazar arkadaşım Ahmet Alperen Yıldırım’ın “Herkes İçin Ekonomi: Borsa” yazısına bakmasını şiddetle tavsiye ediyorum.
Yazının amacını da başta belirtmek istiyorum. Elindeki parasını borsada değerlendirmek isteyen insanların basit ve etkili klasik stratejileri / algoritmaları nasıl kullanabileceklerini açıklamak öncelikli hedefim. Bu stratejilerden bahsettikten sonra konunun daha iyi anlaşılması için geçtiğimiz kasım ayında katıldığım TradeMaster yatırım yarışmasında kullandığım stratejiyi açıklamaya çalışacağım.
Yazımda genelde hisse senedi alım-satımı üzerinden konuşacağım ve örnekler vereceğim. Ama çoğu prensip (portföy oluştuma, risk-getiri dengesi vs.) döviz, kripto para gibi diğer yatırım enstrümanları için de geçerli.
Temel bilgilerle başlayalım. Hisse senedinin değeri şirketlerin başarı düzeyinden bağımsız olarak artıp azalabilir. Hisse senedindeki değişimlerin asıl sebebi arz ve taleptir. Bir hisse senedi popülaritesinden, başarısından vs. arzulanıyorsa fiyatı artar. Ve bizim amacımız da en basit şekliyle, bir hisse senedini fiyatı düşükken satın alıp yüksekken satmak ve böylece kazanç elde etmek. Bu doğrultuda kendimize bir yatırım planı ve portföy belirlemeliyiz.
Portföy oluşturmak ve portföyünde farklı yatırım enstrümanlarına yer vermek uzmanlar tarafından önerilen durumdur. Mesela paramızın yarısını hisse senetlerine, yarısını da bonoya ve tahvile yatırabiliriz. Çeşitliliği artırarak riski minimize edebiliyoruz ve daha iyi bir risk-getiri dengesi sağlayabiliyoruz. Yani elimizdeki tüm parayı tek bir şirketin hissesine yatırmaktansa analizler sonucunda paramızı birkaç hisseye paylaştırmak daha akıllıca bir hareket olacaktır. Modern Portföy Teorisini oluşturan Nobel Ekonomi ödülü sahibi Harry Markowitz portföydeki bu çeşitliliği ‘the only free lunch in finance’ olarak belirtiyor. Yani hiçbir işlem ücreti olmaksızın portföydeki bu çeşitlilik size kazanç sağlıyor.
Bugün için hazırladığımız bir portföy, yarın için optimal portföy olmayabilir. Çünkü günler içerisinde hisse değerleri ve bu hisseler arasındaki korelasyonlar değişiyor. Bu yüzden portföyümüz dinamik olmalıdır. Değişen değerlere göre optimize etmeliyiz. Stratejimize veya risk alma durumumuza göre de portföyümüz değişecektir.
Peki portföyümüzü neye göre oluşturacağız ve hangi şirketlere yatırım yapmalıyız? Bunun için hisselerin tarihsel verisini kullanıp bazı parametreler belirlememiz gerekiyor. Bu parametrelerden bazılarını ‘getiri’, ‘risk’, ‘korelasyon’, ‘alfa’ ve ‘beta’ değerleri olarak sıralayabiliriz. Bir sonraki bölümde ‘getiri’ ve ‘risk’i açıklayacağım.
TradeMaster Yatırım Stratejimiz
TradeMaster yarışması sanal ortamda her takıma 100.000₺ verilerek başlıyor. Yarışmacılardan BIST100 şirketlerinden bir portföy oluşturması ve yatırım yapması bekleniyor. Bir ayın sonunda yaptığı yatırımla en fazla kar elde eden takım kazanıyor. Bu yarışmada ‘Zaman Serisi Analizi (Time Series Analysis)’ yaptık. Analizimizde piyasa endeksi olarak BIST100 verisini kullandık. (Dipnot: BIST100 endeksi, Borsa İstanbul’un en değerli 100 şirketinden oluştuğu için genelde BIST100 endeksi ile Türkiye ekonomisi doğru orantılı olarak ilerler. BIST100 endeksi düşüşe geçmişse ekonomimiz kötüye gidiyor diye bir çıkarım yapabiliriz.)
Biz öncelikle 100 şirketin geçmiş iki aylık günlük kapanış(closing) değerlerini internetten çektik. Değerleri çekmek için Mynet Finans veya Yahoo Finance kullanılabilir. Bu değerleri Excel’e aktardık. Sonrasında bir program yardımıyla ‘getiri’ ve ‘risk’ değerlerinin hesaplanması gerekiyor (100 şirketin 49 günlük verisi olduğu için hesaplamaları bilgisayara yaptırmak şart). Biz ‘Octave’ uygulamasını kullanarak yaptık. ‘Getiri’ basitçe iki ardışık gün arasındaki fiyat farkından bulunuyor. Mesela ‘XYZ’ şirketinin bir hissesinin değeri dün 4,93₺, bugün 4,98₺ ise günlük getirisi 0,05₺ oluyor. Günlük olarak her şirketin ‘getiri’ değerini hesapladıktan sonra bunu yüzdelik olarak göstermemiz gerekiyor. Bunun nedeni de hisselerin birim fiyatları arasında büyük farkların olmasıdır. Mesela 5₺’lik bir hissenin 1₺ artması %20’lik artışa karşılık gelirken, 100₺’lik bir hissenin 1₺ artması %1 artışa karşılık geliyor. 49 gün için ayrı ayrı yüzde getirileri elde ettik ve sonraki hesaplamalar için bunların ortalamasını alıyoruz.
Sırada ‘risk’ hesabı var. Her şirket için ‘günlük getiri’nin ‘ortalama getiri’ye göre standart sapması o şirketin ‘risk’ değerini veriyor. Hisselerin risklerini de hesapladığımıza göre artık ‘getiri-risk’ grafiğini oluşturabiliriz. Bu grafik yatırım için başlıca göstergelerimizden biri olacak.
Yukarıda örnek bir getiri – risk grafiği var. Harflerle belirtilen hisseler getiri ve risk değerlerine göre konumlanmış durumda. ‘Efficient frontier’ olarak belirtilen eğri oluşturabileceğimiz portföyün getiri ve risk değerlerine göre ulaşabileceği sınırı gösteriyor. Bunu ‘etkinlik sınırı’ olarak çevirebiliriz. Herhangi bir portföy bu sınırın dışında konumlanamaz. Yani riski çok düşük, getirisi çok yüksek (x ile gösterilen nokta) bir portföy oluşturmak olanaksız. Bu grafiği elde ettikten sonra başlıca hedefimiz portföyümüzü ‘efficient frontier’ eğrisine en yakın noktada olacak şekilde optimize etmek. ‘Etkinlik sınırı’ üzerindeki optimal portföy yatırımcının isteğine göre şekillenecektir. Kimi yatırımcı risk sevmez ve riski minimize eden portföy oluşturmak ister, risk seven yatırımcı ise portföyünde getiriyi maksimize etmeye odaklanır.
Optimizasyon ve algoritma oluşturmada en çok kullanılan araçlar Python, R ve Excel olarak gözüküyor. Biz bu projede Excel’in ‘solver’ yani ‘çözücü’ eklentisini kullandık. Çözücü eklentisinde optimize edilecek parametre olarak ‘sharpe oranını’ seçtik. ‘Sharpe oranı’ birim risk başına düşen getiri olarak ifade edilebilir ve bu oran getiri ve riski içinde barındırarak hesaplamalarda kolaylık sağlıyor.
Hisselerin Sharpe oranlarını kullanarak optimal bir portföy oluşturduk. Hangi şirketlere paramızın ne kadarını yatıracağımızı belirledik. Peki alım-satım işlemlerini neye göre yapacağız diğer bir deyişle hangi algoritmaları kullanacağız? Alım-satım işlemlerinin bize maliyeti nedir? Daha şimdiden yoğun bir içerik oluştuğundan bu sorulara ve daha fazlasına gelecek ayki yazımda değineceğim. Konuya ilgisi olanlara araştırmalarında yardımcı olması için anahtar kelimeler ve linkler bırakıyorum. Linklerin arasında Python ve Excel anlatımlarını da bulabilirsiniz.
Yazının oluşmasında büyük katkısı olan Selim Temizer Hocama teşekkürlerimi sunuyorum.
Keywords to Google: Market Fundamentals (Piyasa temelleri), Time Series Analysis (Zaman Serisi Analizi), Modern Portfolio Theory (Modern Portföy Teorisi), Asset Correlations, Direct Market Access(DMA), Efficient Frontier (Etkinlik Sınırı), Agressive&Passive Trading, TWAP, VWAP, benchmark (kıstas), Excel Solver(Çözücü), Python for Finance
Faydalı Linkler:
https://medium.com/datacamp/python-for-finance-algorithmic-trading-60fdfb9bb20d : Temelden başlayıp Python diliyle alıştırmalar yapmak isteyenler için çok güzel bir yazı olmuş.
https://www.quantopian.com : Hazır algoritmalar bulunan ve kendi algoritmalarınızı da yazabileceğiniz bir platform.
https://www.youtube.com/watch?v=2BrpKpWwT2A&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ : Çok sıkı takip ettiğim bir yazılımcının YouTube oynatma listesi. Python ve Quantopian kullanarak nasıl analiz yapılır ve nasıl algoritma oluşturulur güzelce açıklamış.
https://www.excel-easy.com/data-analysis/solver.html : Excel Solver kullanımı
Kaynakça:
https://www.matriksdata.com/website/
Barry Johnson – Algorithmic Trading & DMA (Çok faydalandığım bir kitap. Konuya ilgisi olanların kesinlikle bakmasını tavsiye ediyorum.)