Yayın: 10 Mayıs 2024
Not: Bu makale Medium'da yayımlandı. Orijinal makaleye buradan ulaşabilirsiniz.
Eğer benim gibi, parasını nasıl yatıracağını düşünen biriyseniz, bu makale tam size göre olabilir!
Bu makale yatırım tavsiyesi değildir, bu nedenle kendi takdirinizle kullanın. Finansal kararlarınızdan herhangi bir sorumluluk kabul etmiyorum.
Daha küçük bir hisse senedi grubuna yatırım yaparak ortalamanın üzerinde bir risk-ayarlı getiri elde etmenin bir yolu var mı? Örneğin, 10 hisse senedi belirleyebilir miyiz (Örn. 1. Tesla + 2. IBM + 3. Chevron +… + 10. Gamestop), ki bunlar tek tek ortalama performans gösterebilir ancak aynı anda yatırıldığında güçlü sonuçlar verebilir mi?
Eğer S&P 500'den tüm 10 hisse senedi kombinasyonunu deneseydik, bu 245,810,588,801,891,070,000 kombinasyon olurdu, bu da "en iyi" 10 hisse senedi portföyünü bulmak için çılgınca bir zaman gerektirirdi. Bu tür bir senaryoda, Genetik Algoritma işe yarar, çünkü "iyi yeterli" bir çözüm bulmak için önemli ölçüde daha kısa bir zaman alır.
S&P 500'de listelenen hisse senetlerinden en iyi risk-ayarlı getiriyi sağlayan 10 hisse senedi kombinasyonunu bulmak istiyoruz. Getiri, portföyün % büyümesi olacak, risk ise yatırılan zaman dilimi boyunca gözlemlenen standart sapma olacak. Risk-ayarlı getiri sadece riskin getiriye bölünmesidir.
10 hisse senedi kombinasyonu üzerinden döngü yapmak ve en iyi risk-ayarlı getiriyi bulmaya çalışmak için bir Genetik Algoritma kullanacağız. Aşağıdaki video Genetik Algoritmalar hakkında iyi bir genel bakış sağlar.
Yüksek seviyede, Genetik Algoritmalar evrimi simüle eder, nesiller boyunca portföylerin döngüsü yapar ve sadece güçlü "fitness" (bir portföyün risk-ayarlı getirisi) kalanları bırakır. "Çaprazlama" (2 mevcut hisse senedi portföyünü birleştirerek yeni bir tane oluşturma) ve "mutasyon" (portföydeki bir hisse senedini rastgele başka biriyle değiştirme) gibi mekanizmalar, modelin yerel minimumlarda takılıp kalmamasını sağlar ve hesaplama sürecine çeşitlilik getirir.
Python'da PyGAD kütüphanesini kullanacağız, bu da genetik algoritmaları kolayca uygulamamıza yardımcı olur.
S&P500'deki hisse senetlerinin listesini alıyoruz (Veri kaynağı için sona bakın) ve her bir hisse senedinin tarihsel performansını elde etmek için Yahoo Finance'a erişiyoruz. Tüm hisse senetlerinin bulunduğu bir ana veritabanı oluşturulur.
Yatırım dönemimizin başlangıç ve bitiş tarihlerini keyfi olarak 2021 Nisan ~ 2022 Mart olarak belirliyoruz. Hisse senedi fiyatı için "Uyarlanmış kapanış" kullanılır ve tüm hisse senedi fiyatları, yatırım döneminin başındaki fiyatlarına dayanarak 10 $'a normalize edilir. Bunun nedeni, her bir hisse senedine eşit miktarda yatırım yapmak istememiz ve hisse senedi fiyatından etkilenmememizdir. Her bir hisse senedi ticker'ı, kullanacağımız Genetik Algoritma kütüphanesi tarafından gerektiği gibi atanır. Aşağıda, Genetik Algoritmaya beslenmek üzere verinin nasıl göründüğü gösterilmektedir:
GA'nın birçok parametresi olduğundan (# nesiller, # popülasyon başına çözüm, # mutasyona uğramış genlerin %'si vb.), en iyi parametreleri bulmak için hızlı bir hiperparametre optimizasyonu yaparız. Ardından, en iyi hisse senedi portföyünü bulmak için algoritmayı eğitiriz. Aşağıdaki grafikte görüldüğü gibi, algoritma fitness'ı (yani risk-ayarlı getiri) 20 nesilden sonra iki katına çıkar, fitness artmaz.
Öncelikle, pazar endeksi S&P500'ün performansını iyileştirmek istedik, bu nedenle yatırım süresince nasıl performans gösterdiğine bir göz atalım:
S&P 500'ün performansı bu zaman diliminde tamamen dikkate değer değildi, yıllık ~% 7 getiri ve günlük ~% 1 risk (standart sapma) ile, bu da ~% 8 risk-ayarlı getiri sağlar. Bu referansın çok kolay yenilenecek olması nedeniyle, kendimize başka bir referans bulalım:
Yatırım süresince, en yüksek getiri elde eden 10 hisse senedini seçtik (Dikkat edilmesi gereken tek geri dönüş olması, bu riski hesaba katmaz). En iyi 10 hisse senedi 'DVN', 'APA', 'MRO', 'COP', 'CF', 'FTNT', 'OXY', 'FANG', 'NVDA' ve 'MOS' idi. Bunların çoğu enerji ile ilgili işletmelerdir, NVIDIA gibi istisnalar vardır.
Yukarıda görüldüğü gibi, bu 10 şirketin portföyü ~% 90 büyüme ve ~% 2 risk getirdi. Genel olarak, risk-ayarlı getiri %42,8 idi.
Modelimiz, maksimum risk-ayarlı getirisi olan 'CERN', 'DVN', 'DRE', 'ABBV', 'SEE', 'ORLY', 'WST', 'COP', 'ED', 'PSA' hisse senedi kombinasyonunu belirledi. Bu şirketlerin bazıları, En İyi Performanslar olarak da mevcut Benchmark #2'de bulunur, ancak Abbvie gibi yeni girişler görüyoruz.
Modelin normal getirisi en iyilerin altında ve yaklaşık %52 civarındadır, ancak önemli ölçüde daha düşük bir risk elde edebilir: %0,8. Yukarıdaki grafikte görebileceğiniz gibi, portföy herhangi bir salınım yaşamaz ve tutarlı bir şekilde artar. Portföy genel olarak %62 risk-ayarlı getiri elde eder, bu da en iyi performans sergileyen portföyün %20 üzerindedir.
Maksimum risk-ayarlı getiriye sahip portföyü bulmak için bir genetik algoritma eğittik. Genetik algoritma, milyarlarca olası portföy arasında "yeterince iyi" bir çözüm bulmamıza yardımcı oldu. Daha fazla eğitimle daha yüksek getiriler elde edilebilir.
Veri ve kodu bu GitHub Reposunda bulabilirsiniz.
Keyifli kodlamalar!
Bu blog İngilizce'den ChatGPT ile çevrilmiştir. Herhangi bir belirsizlik durumunda İletişim sayfasından bana ulaşabilirsiniz.
Yorum bırak
Yorumlar
Diğer bloglara bak
2024/06/19
Svelte ve JavaScript ile Basit ve Dinamik Bir Tooltip Yaratma Yöntemi
2024/06/17
JavaScript ile Tokyo'nun İnteraktif Haritasını Oluşturun
2024/06/14
Matplotlib'de Japonca Karakter Sorununu Çözme Yöntemi
2024/06/13
Kitap İncelemesi | Ötekiyle Konuşmak by Malcolm Gladwell
2024/06/07
Japonca'da En Sık Kullanılan 3.000 Kanji
2024/06/07
VSCode'da Regex Kullanarak Replace Yapma Yöntemi
2024/06/06
Svelte'de Readable Store Kullanmayın
2024/06/05
Dosyaları Gzip ve Pako ile Sıkıştırarak Web Sitesinin Yükleme Hızını Artırın
2024/05/31
Web Sayfasında Farenin Uzerinde Oldugu Kelimeyi JavaScript ile Bulun
2024/05/29
Svelte ve SVG ile Interaktif Harita Oluşturun
2024/05/28
Kitap İncelemesi | Geleneklere Uymayanlar Dünyayı Nasıl İleri Taşıyor? by Adam Grant & Sheryl Sandberg
2024/05/27
Javascript Kullanarak Sudoku Nasıl Çözülür?
2024/05/26
Web Siteme Gelen Trafiği Bir Ayda Nasıl 10 Kat Artırdım?
2024/05/24
Hayat Bisiklet Sürmek Gibidir
2024/05/19
JavaScript'te Backtracking Algoritması ile Tamamlanmış Sudoku Oluşturun
2024/05/16
Tailwind Neden Harikadır ve Web Geliştirmeyi Nasıl Kolay Hale Getirir?
2024/05/15
Python ve Git Hooks ile Otomatik Olarak Site Haritası Oluşturma
2024/05/14
Kitap İncelemesi | Çok Yönlü - Başarı İçin Neden Çok Şeyle İlgilenmeliyiz? by David Epstein
2024/05/13
Svelte ve SvelteKit nedir?
2024/05/12
SvelteKit ile Internationalization (Çoklu Dil Desteği)
2024/05/11
Svelte'de Caching ile Deploy Süresini Azaltın
2024/05/10
Svelte ve Intersection Oberver ile Lazy-Load
2024/05/09
ShapeFile Formatini SVG Formatina Degistirme Yontemi
2024/05/08
Svelte'de Reaktivite: Variables, Binding, ve Key Fonksiyonu
2024/05/07
Kitap İncelemesi | Savaş Sanatı - Sun Tzu
2024/05/06
Specialistlik Bitti. Yaşasın Generalistlik!
2024/05/03
2018 Milletvekili Seçimlerinde Yaşa Göre Parti Eğilimi
2024/05/01
Python Selenium Ile Secmen Veritabani Olusturma
2024/04/30
Svelte ve Tailwind Ile Infinite Scroll Yapma Yontemi
2024/04/29
1 Yıl İçerisinde Japonca Konuşabilmek
2024/04/25
Svelte ve Tailwind ile Kullanıma Hazır Web Sitesi Şablonu
2024/01/29
Tembel Muhendisler Kotu Urunler Yapar
2024/01/28
Mukemmellik Uzerine
2024/01/28
MacBook'ta PDF'i PNG'ye Cevirme Yontemi
2023/12/31
2023'u Kapatiyoruz: Bu Yil Okunan 24 Kitap
2023/12/30
Python PIL Kullarak Foto Kolaji Yapma Yontemi
2024/01/09
Site Ziyaretcilerinin Alet ve Tarayicilarini Tespit Etme Yontemi
2024/01/19
ChatGPT Cevap Anatomisi