Algoritmik ticaret - sayfa 34

 

Bir Hisse Senedi Portföyünü Nasıl Kolayca ve Basitçe Geriye Dönük Test Edersiniz?


Bir Hisse Senedi Portföyünü Nasıl Kolayca ve Basitçe Geriye Dönük Test Edersiniz?

Herkese merhaba! "AlgoTrading'e Yakın"a hoş geldiniz. Ben Denis, bugün sizinle farklı portföyleri geriye dönük test etmek için geliştirdiğim çok kullanışlı ve basit bir çerçeveyi paylaşmak istiyorum. Önceki videolarımdan birinde tartıştığım eski bir fikre dayanıyor.

Quantconnect tarafından sağlananlar gibi daha güçlü uygulamalar olsa da, ek hizmetlere güvenmeden fikirleri test etmemizi sağlayan yerel, basit bir çözüme sahip olmanın her zaman iyi olduğuna inanıyorum.

Bu çerçevenin çekirdeği, geriye dönük test ve ticaret için bir Python çerçevesi olan Backtrader'dır. Kullanacağımız genel bir yeniden dengeleme stratejisi uyguladım, ancak çerçeve, Backtrader'ın ayrıntılarına dalmak zorunda kalmadan farklı fikirlerin test edilmesine izin verecek şekilde tasarlandı.

Bu çerçevenin yapısına ve bileşenlerine daha yakından bakalım. Yeniden dengeleme stratejisi kilit bileşendir ve belirli bir yapıyı takip eder. İlk olarak, birlikte çalışacağımız varlık kümesini seçmemiz gerekiyor. Bunun için, seçilim modeli adı verilen evrenimize dayalı bir seçim süreci uygulayan bir modelimiz var. Seçilen varlıklara sahip olduğumuzda, bunlar alfa modeline geçirilir. Alfa modeli, algoritmamızın çekirdeğidir ve alım satım sinyallerini üretir. Bu sinyaller daha sonra portföyümüzü oluşturmak için kullanılır.

Portföy oluşturma modeli, alfa modeli tarafından üretilen sinyalleri alır ve bir varlık tahsisi oluşturur. Bu tahsis, anahtarın varlık şeridi ve değerin ağırlık olduğu bir sözlüktür. İlk portföyü oluşturduktan sonra yeniden dengeleme adımına geçiyoruz. Burada eski varlıkları kaldırabilir, yenilerini ekleyebilir veya portföydeki varlık miktarını tanımlanan ağırlıklara göre ayarlayabiliriz.

Ardından, risk modelini kullanarak bazı risk koşullarını kontrol etmek isteyebiliriz. Bu model, yeniden dengeleme adımının çıktısını alır, gerekli değişiklikleri yapar ve ardından yürütme modeline iletir. Yürütme modeli, varsayılan olarak, istenen sayıda varlığın alınması veya satılması için emir verir.

Yeniden dengeleme stratejisinin koduna bakarsanız, bu adımların her birinin uygulanmasını göreceksiniz. Seçim modelinden önce, yalnızca yakın fiyatlara sahip bir veri çerçevesi döndüren bir işlev çağırıyorum. Çünkü bu strateji için sadece yakın fiyatlara ihtiyacımız var.

Şimdi kısaca modellerin çerçeve içerisindeki uygulamalarını gözden geçirelim. Seçim modeli basittir. Ana amacı, kullandığımız tüm verilerin geçerli olduğundan emin olmak için eksik veya sıfır fiyatlı varlıkları bırakmaktır. Alfa modeli, basit bir jenerik momentum stratejisidir. Bu durumda, en yüksek momentuma sahip varlıkları satın alıyoruz. Tahsis modeli için, tüm varlıklara eşit ağırlıklar atayan bir model uyguluyoruz.

Son olarak, yeniden dengeleme modeli, atanan ağırlıklara dayalı olarak basit bir yeniden dengeleme gerçekleştirir. Tüm modelleri uyguladıktan sonra, onları nasıl kullanacağımıza bakalım.

Öncelikle bazı verilere ihtiyacımız var. Bu örnek için, evrenimiz olarak S&P 500 hisse senetlerinin mevcut listesini kullanacağım. Ocak 2007'den başlayarak tüm bu hisse senetleri için geçmiş fiyat verilerini indireceğiz. Ardından, yapılandırmamızı dolduruyoruz. Sadece açılış ve kapanış fiyatlarını kullanacağımızı belirterek veri kaynağımızın yapısını tanımlıyoruz. Açık fiyat gereklidir çünkü pozisyonları bir sonraki günün açık fiyatına göre açıp kapatmak istiyoruz.

Ayrıca varlık listemizi, kıyaslama senedimizi, başlangıç paramızı, açık opsiyon ticaretimizi tanımlar ve geçen yıla göre momentumu hesaplamak için algoritmamız için bir ısınma süresi belirleriz. Daha sonra strateji konfigürasyonumuzu oluşturuyoruz. Bu yapılandırmada, rebalanceDay seçeneğini 22 olarak ayarladık, yani portföyümüzü ayda bir yeniden dengeleyeceğiz. Ayrıca, yetersiz bakiye nedeniyle uygulama hatalarını önlemek için bir yedek nakit parametremiz var.

Ardından, tüm modellerimizi ve parametrelerini tanımlıyoruz. Geriye dönük teste başlamadan önce, yapılandırmamıza iki veri seti atamamız gerekiyor: biri tüm varlıklarımızın verilerini içerir, diğeri ise kıyaslama verilerini içerir. Son olarak backtest fonksiyonunu çağırıp raporun oluşmasını bekleyebiliriz. Rapor, quantstats paketi kullanılarak oluşturulur ve pek çok yararlı bilgi sağlar.

Kodun tamamını GitHub sayfamda bulabilirsiniz. Bağlantı açıklamada verilmiştir.

Hepsi bugün için. İzlediğiniz için teşekkür ederiz, herhangi bir sorunuz veya yorumunuz varsa lütfen aşağıya bırakın. Daha heyecanlı içerikler için kanalıma abone olmayı unutmayın.

How Easily And Simply to Backtest a Stock Portfolio
How Easily And Simply to Backtest a Stock Portfolio
  • 2022.06.20
  • www.youtube.com
The video describes the simple, but powerful, framework for backtesting the portfolio ideas. It is based on Backtrader, but to use it you don't need to know ...
 

Yerli Ticaret Ortamının Üst Düzey Tasarımı!


Yerli Ticaret Ortamının Üst Düzey Tasarımı!

Herkese merhaba! Benim adım Denis ve "Close to AlgoTrading" izliyorsunuz.

Son videomuzda, algoritmik bir ticaret sisteminin ortak yapısını tartıştık. Bugün, evde yetiştirilen bir ticaret ortamı için basit, üst düzey bir tasarım oluşturmak istiyorum.

Çevremizden ne beklediğimizi belirleyerek başlayalım. Gelecekte yeni stratejiler ve veri kaynakları ekleme yeteneği istiyoruz. Ölçeklenebilirlik önemlidir, çünkü şu anda borsaya odaklanıyoruz, ancak gelecekte kripto para ticaretine girebiliriz. Bu nedenle yeni pazarları desteklememiz gerekiyor. Ek olarak, sistem içindeki bileşenleri kolayca değiştirme esnekliği istiyoruz.

Şimdi ticaret ortamının genel yapısına bir göz atalım.

İki ana bileşen, veriler ve ticaret sistemidir. Ayrıca ortamı etkili bir şekilde kontrol etmek için bir kullanıcı arayüzü eklemek istiyoruz. Ek bir blok olarak, bir simülasyon sistemi eklemeyi düşünelim.

Veri bileşeni tüm sistemi yönetir. Başlangıçta, komisyoncumuzdaki verileri ve sabit sürücüdeki dosyaları kullanmayı planlıyoruz. Ancak daha sonra farklı veritabanlarına ve haber ajanslarına erişmeye karar verebiliriz. Birden fazla veri kaynağını desteklemek istediğimiz için farklı sürücüleri barındırmamız gerekiyor.

Sürücüler, veri okuma ve yazma, bağlantıları açma veya kapatma ve daha fazlası gibi basit işlevler sağlar. Ancak ticaret sistemimizin doğrudan sürücülerin API'si ile etkileşime girmesini istemiyoruz. Bunu ele almak için, bir veri işleyici katmanı sunuyoruz.

Veri işleyicileri doğrudan sürücülerle çalışır ve veri serileştirme, seriden çıkarma ve özel bir formata dönüştürme gibi mantıksal işlevleri uygular. Bir dizi veri işleyicimiz olmasına rağmen, uygulama katmanımız için hala birleşik bir arayüze ihtiyacımız var.

Bu arayüzleri sağlamak için bir Veri Yöneticisi ve bir Sipariş Yöneticisi sunuyoruz. Data Manager, veri kaynaklarıyla çalışmak için ortak bir arayüz sunarken Order Manager, siparişin yürütülmesi için ortak bir arayüz sağlar. Her iki arayüzü kullanarak, sistem çeşitli veri kaynaklarına ve komisyoncu hizmetlerine erişebilir.

İşte önemli bir yön geliyor. Veri kaynaklarına erişim için ortak bir arayüz sağlayan bileşenler tanımlıyoruz. Bu, ticaret sistemimiz örneğin haberleri almak isterse, kaynağın aracımız mı yoksa bir veritabanı mı olduğuna bakılmaksızın aynı arayüzü kullanacağı anlamına gelir. Bu tasarım, veri sağlayıcıları değiştirdiğimizde arayüzün değişmeden kalmasını sağlar. Bu nedenle, uygulamanın işlevselliğini bozmadan yeni veri kaynakları ekleyebilir veya aracıları değiştirebiliriz.

Artık veri işleme bölümünü tasarladığımıza göre, verilerimizin ana kullanıcısına, ticaret sistemine odaklanalım. Önceki videomu izlediyseniz, ticaret sisteminin beş bloğuna aşinasınızdır: Alfa modeli, Risk modeli, İşlem maliyeti modeli, Portföy oluşturma modeli ve Yürütme modeli. Bu bloklar, verilere ve komisyoncu hizmetlerine erişmek için Veri Yöneticisini ve Sipariş Yöneticisini kullanır.

Verileri ve ticaret sistemi bileşenlerini tanımladık, ancak şimdi hepsini kimin kontrol edeceğini tanımlamamız gerekiyor. Tüm sistemden sorumlu bir bileşene, bir temel uygulamaya ihtiyacımız var. Bu uygulama başlatma sırasını, sürücü ve bileşen başlatmayı yönetecek ve ana durum makinesini uygulayacaktır.

Ana uygulamayı tanımladıktan sonra kullanıcı arayüzüne bakmamız gerekiyor. Bu bir PC arabirimi veya bir web arabirimi olabilir, ancak genellikle ön ucu arka uçtan ayırmak iyi bir uygulamadır. Bunu başarmak için, GUI ile çekirdek uygulamamız arasında bir iletişim katmanı oluşturuyoruz.

Ek olarak, bir kaydedici bileşeni eklememiz gerekiyor. Bu bileşen, günlükçü arabirimini uygular ve günlükleri bir veritabanında veya günlük dosyasında depolar. Ayrıca, ortamımızı izlemek için doğrudan veritabanı sunucusuna erişebilen ve oradan verileri okuyabilen web tabanlı bir izleme sistemi kullanabiliriz. Ön uç uygulaması, verilere erişmek için Veri Yöneticisi'ni ve komisyoncu hizmetleriyle etkileşim kurmak için Sipariş Yöneticisi'ni kullanabilir.

Son olarak, manuel emir yürütme olasılığını da unutmayalım. Bu işlevselliği sisteme de entegre edebiliriz.

Simülasyon ortamına bu videomuzda değinmesek de mevcut sistemde herhangi bir değişiklik yapılmadan ek bir broker hizmetine benzer şekilde uygulanabilir.

Ticaret ortamımızın tasarımına baktığımızda, hedeflerimize ulaşmamızı sağladığını güvenle söyleyebiliriz. Uygulamamızı ayrı alanlara ayırdık ve arayüz katmanları aracılığıyla birbirine bağladık. Veri ve Sipariş Yöneticileri, kaynaklara erişimi kolaylaştıran ortak arayüzler sağlar. Bu tasarım ile veri satıcılarını veya aracıları kolayca değiştirebilir ve farklı kullanıcı arayüzleri kullanabiliriz. Tüm uygulamayı güncellemek zorunda kalmadan sistemin belirli bölümlerinde de değişiklik yapabiliriz.

Hepsi bugün için. Atladığım bir şey varsa veya bu tasarım hakkında herhangi bir fikriniz varsa, lütfen yorumlarınızı bırakın ve bu kanala abone olmayı unutmayın. Bir sonraki videoda görüşmek üzere!

High-Level Design of a Homegrown Trading Environment!
High-Level Design of a Homegrown Trading Environment!
  • 2019.11.01
  • www.youtube.com
In this video I tried to create a high-level software design of a homegrown trading environment.You will see how we can split the system into different domai...
 

Ticaret ortamı IB API - QT C++ - Şişe - RL Modeli. Tam çalışma örneği.


Ticaret ortamı IB API - QT C++ - Şişe - RL Modeli. Tam çalışma örneği.

Benim adım Denis ve Close to Algo Trading'e hoş geldiniz. Bugün, önceki bölümlerde tartıştığımız tüm bileşenlerin gerçek ticarette nasıl birlikte çalışabileceğini göstereceğim özel bir videom var. Tüm kaynak kodunu GitHub'da bulabilir ve kendiniz deneyebilirsiniz.

Bu tanıtım için Interactive Brokers API'sini ve IBTrader adlı eski projemi kullanacağım. IBTrader üzerinde çalışmaya yıllar önce başladım ama bitirmeye hiç zamanım olmadı. Ancak şimdi projeyi yenilemeyi düşünüyorum. Bu özel projeyle ilgileniyorsanız, lütfen bu videonun yorumlar bölümünde bana bildirin. O halde bu videoda ne yapacağımıza geçelim. Takviyeli öğrenme ortamımız ve aracımız hakkında kısa bir güncelleme ve genel bakışla başlayacağız. Ardından, modeli Flask ile dağıtmak için hızlı bir giriş yapacağım.

Aracıya bağlanmak için bir Qt uygulaması kullanacağımız için, modelimizle etkileşim kurmak için bir REST API kullanmamız gerekiyor. Videonun sonuna doğru, tüm bu parçaların birlikte nasıl sorunsuz çalıştığını göreceğiz.

Başlamadan önce, burada tartışılan kavramları daha iyi anlamak için önceki videolarımı izlemenizi tavsiye ederim. Bu videoları daha önce gördüyseniz, TF-Agent kitaplığını kullanarak bir RL aracısının nasıl oluşturulacağını hatırlayabilirsiniz. Bu gösterim için hem aracıda hem de ortamda bazı değişiklikler yaptım. Ajan, daha önce kullandığımız gibi hala DQN'dir, ancak artık QRnnNetwork yerine QNetwork kullanacağız. Benzer şekilde, ortamı basitleştirdim. Birden çok günlük geçmiş verileri kullanmak yerine, artık yalnızca o günün fiyat gözlemine sahibiz.

Bununla birlikte, yalnızca mevcut gözleme güvenmek ideal değildir. Bunu ele almak için, gözlemimizi bir günden üç tarihi günü içerecek şekilde dönüştüreceğiz. Bunu, tf-agent ortamları paketinden history sarmalayıcıyı kullanarak ve history_length parametresini 3'e ayarlayarak başarabiliriz. Şimdi ortamın gözlemlerini kontrol edersek, normal gözlemlerimizden üçünün birleştiğini göreceğiz. Her gözlem, hacimle birlikte OHLC verilerini (açık, yüksek, düşük, yakın) içerir.

Tutarlı bir aralık sağlamak için bazı dönüşümler gerçekleştirdim ve şimdi girdi verilerimiz günlük fiyat yüzde değişikliklerini temsil etmelidir. Son olarak, modelimizi üç gözlemle beslememiz gerekiyor: içinde bulunduğumuz gün ve iki tarihi gün. Ayrıca geçmiş günlerin pozisyon durumlarını da hatırlamamız gerekiyor. Temsilci eğitildikten sonra, satın alma, satma, atlama veya pozisyon kapatma gibi eylemleri tahmin edebilen bir politikamız olacaktır. Politika bir sinir ağı kullanılarak uygulanır ve onunla çalışmak için doğrudan bir API kullanabiliriz.

Ancak, uygulamamızı tavsiye modeliyle sıkı bir şekilde birleştirmek istemiyorsak ne olur? Ya da modelimiz Python'da uygulanıyorsa ve onu farklı uygulamalarda kullanmak istiyorsak? Bunu ele almak için modelimizi Flask kullanarak küçük bir web hizmeti olarak dağıtabiliriz. Flask, Python ile yazılmış bir mikro web çerçevesidir. Basit olması ve fazla kurulum süresi gerektirmemesi nedeniyle bu video için Flask'ı seçtim. Ayrıca, uygulamamız ve modelimiz arasında veri aktarımı için JSON kullanmamıza izin verir.

Flask uygulamamızda hata ayıklamak ve dağıtmak için bir Dockerfile kullanabiliriz. Microsoft'un Dockerfile oluşturma konusunda iyi bir öğreticisi var, bu yüzden daha fazla ayrıntı için lütfen açıklamadaki bağlantıyı kontrol edin. Flask uygulamamızın, JSON biçimindeki girdi verilerini içeren POST isteklerini işleyecek olan "tahmin" adlı bir rotası olacaktır. Yanıt ayrıca JSON biçiminde olacaktır. JSON verilerini dönüştürmek için kod yazacağız ve tahmin için politika modeline ileteceğiz.

Şimdi brokera bağlanan, data alan ve servera emir gönderen uygulamaya geçelim. Stratejimizi doğrudan uygulamada uygulayabilsek de, bu örnek için bunu yapmayacağız. Bunun yerine, komisyoncuya bağlı olan ve REST API kullanarak stratejimiz ve eylem seçim modelimizle iletişim kuran QtIBTrade uygulamasını kullanacağız. QtIBTrade, bir süre önce C++ kullanarak algoritmik ticareti keşfetmek için oluşturduğum Qt tabanlı bir uygulamadır. Platformlar arasıdır ve iyi belgelenmiştir.

Ancak, üzerinde çalışmak için yeterli zamanım olmadığı için QtIBTrade'in hala geliştirilme aşamasında olduğunu lütfen unutmayın. Bu projede işbirliği yapmak isteyen varsa, lütfen bana bildirin veya GitHub'daki kodu kontrol edin (açıklamada verilen bağlantı).

Şimdi tüm bu bileşenlerin birlikte nasıl çalıştığını görelim. Öncelikle Flask uygulamamızı başlatmamız gerekiyor. Hata ayıklama modunda başlattım, bu yüzden port numarasını hatırlamamız ve Qt uygulamamızda güncellememiz gerekiyor. Ardından, IB uygulamasına veya ağ geçidine bağlanmamız gerekiyor. "Bağlan" düğmesine basmadan önce, API'nin etkinleştirilip etkinleştirilmediğini ve doğru bağlantı noktasının yapılandırılıp yapılandırılmadığını kontrol edelim.

Her şey ayarlandıktan sonra, modelimizi kullanan test uygulamamıza başlayabiliriz. Gördüğünüz gibi, her beş saniyede bir sunucuya farklı fiyat verileriyle bir istek gönderiyoruz. Komisyoncudan fiyat verilerini her aldığımızda, modelimizi tetikler ve ilgili eylemi geri alırız.

Umarım bu gösterimi ilginç bulmuşsunuzdur. Eğer yaptıysanız, lütfen daha fazla video için kanala abone olun. İzlediğiniz için teşekkürler, bir sonraki videoda görüşmek üzere!

Trading environment IB API - QT C++ - Flask - RL Model. Complete working example.
Trading environment IB API - QT C++ - Flask - RL Model. Complete working example.
  • 2021.02.21
  • www.youtube.com
This video contains example of the trading environment wich uses Interactive Brokers API (TWS or IB Gateway), QT C++ client and reinforcement learning agent ...
 

Pazar nasıl yenilir. Momentum ve Portföy Optimizasyonu


Pazar nasıl yenilir. Momentum ve Portföy Optimizasyonu

Herkese merhaba! Benim adım Denis ve "Close to AlgoTrading" izliyorsunuz.

Bu kısa videoda, iki temel portföy yatırım stratejisini keşfedeceğiz: Momentum of Getiri ve Momentum, fiyat ve trend arasındaki fark olarak. Portföy optimizasyon yöntemlerinin yatırım sonuçlarımızı iyileştirmemize nasıl yardımcı olabileceğini de göreceğiz.

Momentum, temelde sabit bir aralıkta alınan iki fiyat arasındaki farktır. Değişimin hızını veya oranını temsil eder. Borsa bağlamında momentum, günlük getiriler olarak ifade edilebilir. Momentum stratejisinin arkasındaki fikir basittir: Fiyat geçmişte artıyorsa, gelecekte de artmaya devam etmesi muhtemeldir. Karşılaştırmaları kolaylaştırmak için tüm piyasaları aynı gösterimde ifade etmek uygundur.

Borsa için momentum genellikle bugünün fiyatı ile buna karşılık gelen hareketli ortalama değer arasındaki fark olarak tanımlanır. Momentum büyüdüğünde, fiyatlar hareketli ortalamadan uzaklaşıyor. Tersine, momentum küçüldüğünde, fiyat değişim hızı yavaşlar ve fiyatlar hareketli ortalamaya göre negatif yönde hatta negatif yönde hareket eder.

Bu iki momentum türünü uygulamak için zaten bir alfa modeli oluşturdum. Onları farklı parametrelerle test etmemizi sağlar.

Bir yıllık periyottaki momentumu hesaplayalım ve en yüksek momentuma sahip ilk 10 hisse senedini seçelim. Portföyümüzü ayda bir yeniden dengeleyeceğiz ve tüm varlıklara eşit tahsisat yapılacak. Şimdi konfigürasyonumuzu kopyalayalım ve başka bir tür momentum belirleyelim. Bu yapılandırmaları testimize ekleyebilir ve 2005'ten 2015'e kadar olan dönemde geriye dönük test edebiliriz.

Her iki stratejinin de benzer oynaklık ve düşüş sergilediğini ve endekse yapılan yatırımdan daha iyi performans gösterdiğini görebilirsiniz. Ancak, endeksi tutmaya kıyasla biraz daha fazla risk kabul ettiğimizi not etmek önemlidir. Riski endeks düzeyine indirmek için bazı portföy optimizasyon yöntemlerini kullanmayı deneyebiliriz. Eşit dağıtım modeli yerine, portföy optimizasyonuyla ilgili önceki bir videoda tartıştığım pyportfolioopt paketinden çeşitli optimizasyon yöntemlerini uygulayan bir model kullanacağız.

Burada, portföy optimizasyonu tahsis modelini kullanmak için yapılandırmamızı nasıl değiştireceğinizi göstereceğim. İyi bilinen iki yöntemi, CLA ve HRP'yi ve ayrıca iki özel yöntemi daha test edeceğiz: Efficient CVaR (Conditional Value at Risk) ve Efficient CDaR (Conditional Drawdown at Risk). Bu yöntemler hakkında daha ayrıntılı bilgi için lütfen resmi belgelere bakın. Çok hızlı olmadıkları için bu optimizasyon yöntemlerinin çalışmasının biraz zaman alabileceğini unutmayın. Geriye dönük test tamamlanana kadar sabırla bekleyelim.

Tüm yöntemlerin sonuçlarımızı iyileştirdiğini gözlemleyebilirsiniz. Koşullu riske maruz değer optimize ediciye dayalı tahsisi kullanan ilk getiri stratejimiz, düşüşü neredeyse %12 oranında azaltır. Aynı strateji, risk optimize edicide koşullu düşüş ile getirimizi %3 oranında artırıyor. Tahsis modelini basitçe değiştirmenin sonuçlarımızı önemli ölçüde iyileştirebileceğini gördük. Bu ilk stratejiyi geliştirmenin başka birçok yolu vardır. Daha da önemlisi, momentumu kullanma fikrinin işe yaraması ve piyasadan daha iyi performans göstermesi ve bunu yalnızca birkaç basit adımla uygulayabilmemizdir.

Hepsi bugün için. Bir sonraki videoda görüşmek üzere!

How to beat the Market. Momentum and Portfolio Optimization
How to beat the Market. Momentum and Portfolio Optimization
  • 2022.07.06
  • www.youtube.com
This video is a quick demonstration how to get a good investment result using the simple strategy. With few portfolio optimization methods we can achieve hig...
 

Sharpe Oranının Ötesinde: Etkin Ticaret Stratejisi Değerlendirmesinin Açıklanması


Sharpe Oranının Ötesinde: Etkin Ticaret Stratejisi Değerlendirmesinin Açıklanması

Herkese merhaba! "AlgoTrading'e Yakın"a hoş geldiniz. Bugün, ticaret stratejisi değerlendirmesinin heyecan verici dünyasına giriyoruz. Sharpe oranının popüler olmasına rağmen neden bu iş için her zaman en iyi araç olmayabileceğini ortaya çıkaracağız.

Bu videoda dört ana alanı ele alacağız. Öncelikle Sharpe oranını tanımlayacağız ve formülünü açıklayacağız. Ardından, Sharpe oranının sınırlamalarını tartışacağız. Üçüncüsü, Sortino ve Calmar oranlarını alternatif metrikler olarak tanıtacağız. Son olarak, tüm bu ölçümleri kullanarak iki varsayımsal ticaret stratejisini karşılaştıracağız. Peki, Sharpe oranı nedir? Adını Nobel ödüllü William F. Sharpe'den alan bu değer, riskine göre ayarlandıktan sonra risksiz bir varlığa kıyasla bir yatırımın performansını ölçer. Başka bir deyişle, Sharpe oranı, bir varlığın getirisinin, yatırımcının aldığı risk için ne kadar iyi telafi ettiğini karakterize etmeye çalışır.

Sharpe oranı için formül aşağıdaki gibidir: Sharpe oranı = (Beklenen getiri - Risksiz oran) / Standart sapma.

Beklenen getirisi %8, risksiz oranı %2 ve standart sapması %15 olan bir strateji düşünelim. Sharpe oranı (8 - 2) / 15, yani yaklaşık 0,4 olacaktır. Ancak, Sharpe oranının göz önünde bulundurmamız gereken bazı sınırlamaları vardır. İlk olarak, getirilerin normal bir dağılım izlediğini varsayar; bu, genellikle çarpık veya kalın kuyruklu getirilerle normal olmayan dağılımlar sergileyen birçok ticaret stratejisi için geçerli değildir. Bu, Sharpe oranını kullanırken yanıltıcı sonuçlara yol açabilir.

İkincisi, Sharpe oranı, küçük, sık kârlar üreten stratejileri destekler ve bu kârların orantılı olarak artırılabileceğini varsayar. Bu varsayım, özellikle yüksek frekanslı ticaret stratejileri olmak üzere tüm strateji türleri için geçerli olmayabilir. Sonuç olarak, yüksek frekanslı ticaret stratejileri, Sharpe oranı kullanılarak değerlendirildiğinde daha başarılı görünebilir. Üçüncüsü, Sharpe oranı, aşırı olayların veya önemli kayıpların olasılığını ifade eden kuyruk riskini açıkça hesaba katmaz. Daha yüksek kuyruk riskine sahip stratejiler, Sharpe oranına yeterince yansıtılmayabilir ve bu tür stratejilerle ilişkili riski potansiyel olarak hafife alabilir.

Bu sınırlamalar göz önüne alındığında, tüccarlar genellikle Sortino oranı ve Calmar oranı gibi alternatif ölçümlere yönelirler. Bu ölçütler ek bilgiler sağlar ve Sharpe oranının bazı sınırlamalarının üstesinden gelmeye yardımcı olabilir. Sortino oranı, bir yatırımın riske göre ayarlanmış getirisini yalnızca aşağı yönlü oynaklığı dikkate alarak ölçer. Getirilerin belirli bir eşiğin, tipik olarak risksiz oranın altındaki sapmasına odaklanır. Bu oran, daha spesifik bir risk değerlendirmesi sağlar ve yatırımcıların aşağı yönlü risklere yönelik ortak endişeleri ile uyumludur.

Öte yandan, Calmar oranı, ortalama yıllık getiri oranını maksimum düşüşle karşılaştırarak riske göre ayarlanmış getiriyi değerlendirir. Bu oran, maksimum düşüşün kritik bir faktör olduğu stratejiler için özellikle yararlıdır. Önemli kayıplar yaşama riskine bağlı olarak elde edilen getiriyi vurgular. Bu alternatif ölçümleri göz önünde bulundurarak, tüccarlar ticaret stratejilerinin risk ve getiri özellikleri hakkında daha kapsamlı bir bakış açısı kazanırlar. Sortino oranı aşağı yönlü volatiliteye odaklanırken, Calmar oranı maksimum düşüşe göre dönüşü ölçer.

Şimdi, bu ölçümleri kullanarak iki varsayımsal stratejiyi karşılaştıralım. Bunlara Strateji A ve Strateji B diyeceğiz. Strateji A'nın yıllık getirisi %15, standart sapması %10, aşağı yönlü sapması %7 ve maksimum -%20 düşüş var. Bu bize 1,3 Sharpe oranı, 1,86 Sortino oranı ve 0,8 Calmar oranı verir. Öte yandan, Strateji B'nin yıllık getirisi %12, standart sapması %8, aşağı yönlü sapması %5 ve maksimum düşüşü %-15'tir. Strateji B için Sharpe oranı 1,25, Sortino oranı 2,0 ve Calmar oranı 0,8'dir.

Gördüğümüz gibi, Strateji A daha yüksek bir getiriye sahip olsa da, aşağı yönlü sapmayı ve maksimum düşüşü hesaba kattığımızda, Strateji B onu geride bırakıyor ve getiri için daha düşük risk gösteriyor. Bu nedenle, Strateji B, herhangi bir yatırım kararında önemli bir husus olan her bir risk birimi için size daha fazla getiri sağlar. Sharpe oranı ve alternatif metrikler arasındaki seçim, ticaret stratejinizin belirli özelliklerine ve hedeflerine bağlıdır. Sharpe oranına ne zaman odaklanacağınıza ve diğer ölçümleri ne zaman dikkate alacağınıza karar vermenize yardımcı olacak bazı öneriler:

Sharpe oranına ne zaman daha fazla dikkat edilmeli: Sharpe oranı, belirli kategorilere giren stratejileri değerlendirirken değerli bir araç olabilir. Örneğin, hisse senetleri ve tahviller gibi geleneksel varlıklara odaklanan iyi çeşitlendirilmiş uzun vadeli bir yatırım portföyünüz varsa, Sharpe oranı riske göre ayarlanmış performansın uygun bir ölçüsünü sağlar. Nispeten istikrarlı getiriler, orta düzeyde risk ve riske göre ayarlanmış genel getirilere odaklanan stratejiler için özellikle uygundur.

Alternatif metrikler ne zaman dikkate alınmalı: Öte yandan, Sharpe oranının varsayımlarına uymayabilecek stratejiler için Sortino oranı ve Calmar oranı gibi alternatif metrikler devreye giriyor. Örneğin, opsiyon ticareti, kaldıraca dayalı stratejiler veya konsantre pozisyonlara sahip stratejiler gibi daha yüksek riskli ticaret stratejileriyle uğraşıyorsanız, alternatif ölçümler daha değerli hale gelir. Bu stratejiler genellikle normal olmayan getiri dağılımları, daha yüksek kuyruk riski sergiler ve aşağı yönlü risk yönetimine odaklanmayı gerektirebilir. Sortino oranı ve Calmar oranı, riske göre ayarlanmış performans, kuyruk riski ve dezavantajlar hakkında daha spesifik içgörüler sunarak, bu bağlamlarda stratejinin uygulanabilirliğinin daha iyi değerlendirilmesini sağlar.

Unutmayın, tek başına hiçbir ölçü bir ticaret stratejisinin karmaşıklığını ve nüanslarını tam olarak yakalayamaz. Kapsamlı bir risk ve getiri anlayışı elde etmek için bir ölçüm kombinasyonunu dikkate almak önemlidir. Sharpe oranı, Sortino oranı ve Calmar oranı gibi birden çok metriği kullanarak, stratejinizin güçlü ve zayıf yönlerini farklı açılardan değerlendirebilir, daha sağlam bir değerlendirme ve bilinçli karar verme olanağı sağlayabilirsiniz.

Bugünün eğitimi için hepsi bu kadar. Bize katıldığınız için teşekkür ederiz ve umarız bu videoyu faydalı bulmuşsunuzdur.

Beyond the Sharpe Ratio: Unveiling Effective Trading Strategy Assessment
Beyond the Sharpe Ratio: Unveiling Effective Trading Strategy Assessment
  • 2023.05.24
  • www.youtube.com
Welcome to our insightful tutorial on trading strategy assessment! In this video, we delve into the popular Sharpe Ratio and explore its limitations when eva...
 

Tahmini Maksimum Beklenen Düşüş İçin Hızlı Monte Carlo Simülasyonu (python kodunu x2000 daha hızlı çalıştırın)


Tahmini Maksimum Beklenen Düşüş İçin Hızlı Monte Carlo Simülasyonu (python kodunu x2000 daha hızlı çalıştırın)

Herkese hoş geldiniz! Ben Denis ve siz CloseToalgotrading'i izliyorsunuz.

Bu videoda, bir Python kodunun yürütme performansını potansiyel olarak bin kattan fazla önemli ölçüde iyileştirme sürecini inceleyeceğiz. Amacımız onu sadece ilginç kılmak değil, aynı zamanda son derece kullanışlı hale getirmektir. Bunu başarmak için, beklenen maksimum düşümü hesaplamak için Monte Carlo simülasyonu örneğini kullanacağız.

Başlamak için, maksimum düşümün ne anlama geldiğine ve nasıl hesaplanabileceğine dair temel soruyu ele alalım. Maksimum düşüş, belirli bir süre boyunca aşağı yönlü riskin bir göstergesi olarak hizmet eder. Tipik olarak yüzde cinsinden ifade edilir ve aşağıdaki formül kullanılarak belirlenir.

Formül umut verici görünse de, onu gerçek verilere uygulayarak daha da iyi doğruluk elde edebiliriz. SPY örneğini ele alalım ve süreyi 100 gün olarak ayarlayalım. Grafik, SPY'nin bu 100 gün içindeki kapanış fiyatlarını gösterir. İki dezavantajı var, ikincisi maksimum gibi görünüyor. Düşüşü hesaplamak için basit bir hesaplama yapabiliriz. En yüksek fiyat 212,1 civarında, en düşük fiyat ise 204,4 olarak gerçekleşti. Daha önce belirtilen formülü kullanarak, maksimum düşüşün yaklaşık %3,6 olduğunu tahmin edebiliriz.

Ancak, fiyat seviyesi hakkında yapılan varsayımlar nedeniyle bu sonuç kesinlikten yoksundur. Daha doğru bir hesaplama elde etmek için, bu amaç için özel olarak tasarlanmış bir Python işlevi kullanacağız. Olası bir uygulama aşağıdaki gibidir:

[Maksimum düşümü hesaplamak için Python kodu]

Bu işlev, %3,5'lik bir değerle sonuçlanan maksimum düşüşü hesaplar. Bu işlevin yürütme süresi yaklaşık 16,3 mikrosaniyedir ve bu makul bir değerdir. Ancak karmaşık ve girift tekniklere başvurmadan bu zamanlamayı daha da geliştirebilir miyiz? Yanıt kocaman bir evettir ve yürütmeyi iyileştirmenin en basit önlemi Numba'yı kullanmaktır.

Numba, Python ve NumPy kodunun bir alt kümesini yüksek verimli makine koduna çeviren açık kaynaklı bir JIT (Tam Zamanında) derleyicisidir. Python kodumuzu Numba'ya dönüştürerek performansını önemli ölçüde artırabiliriz. Ancak, "maksimum birikim" işlevini tanımadığından, işlevimizin ilk uygulaması Numba ile çalışmaz. Yine de, bu fonksiyonu kullanmadan maksimum düşümü hesaplamak için alternatif bir yöntem geliştirebiliriz. Değiştirilmiş düşüm hesaplaması aşağıdaki gibi uygulanabilir:

[Numba kullanarak değiştirilmiş düşüş hesaplaması için Python kodu]

Gördüğünüz gibi fonksiyon tanımının üstüne bir Numba dekoratörü ekledik. Bu uygulama ile Numba hiçbir şikayette bulunmaz ve yürütme süresi yalnızca 4,8 mikrosaniyeye düşürülür. Bu, hız açısından üç kattan fazla bir gelişmeyi temsil ediyor. Oldukça basit, değil mi? Algoritmayı basit bir şekilde tanımladığı için kişisel olarak bu uygulamayı tercih ediyorum.

Böylece, %3,5 olan maksimum düşüşü doğru bir şekilde hesaplayabiliriz. Buna "tarihsel maksimum düşüş" diyelim. Bu risk metriğine dayanarak, piyasa koşulları değişmeden kalırsa maksimum riskimizin yalnızca %3,5 olacağını varsayabiliriz. Ancak, yalnızca tek bir özel gözlemden türetilen bir değere güvenip güvenemeyeceğimiz sorusunu gündeme getiriyor. Benzer durumlardan birkaç gözlem daha olsa daha iyi olmaz mıydı? Aslında faydalı olacaktır ve işte burada Monte Carlo yöntemi devreye giriyor.

Monte Carlo yönteminin neyi gerektirdiğini açıklığa kavuşturmak için biraz zaman ayıralım. Rastgele değişken üreteçleri kullanan matematiksel bir model aracılığıyla bir süreci tanımlamayı içerir. Model daha sonra tekrar tekrar hesaplanır ve elde edilen verilere dayanarak sürecin olasılıksal özellikleri türetilir.

Bizim durumumuzda süreç, Geometrik Kahverengi Hareket (GBM) modelini kullanarak simüle ettiğimiz bir dizi hisse senedi iadesini içeriyor. GBM modeli, hisse senedi getirilerinin sürekli-zamanlı bir stokastik süreci takip ettiğini varsayar ve finansal modellemede yaygın olarak kullanılır. GBM kullanarak hisse senedi getirilerini simüle ederek, birden fazla senaryo oluşturabilir ve her senaryo için maksimum düşüşü hesaplayabiliriz. Bu bize, aşağı yönlü riskin daha sağlam bir tahminini sağlayarak, maksimum düşüşlerin bir dağılımını verecektir.

Monte Carlo simülasyonunu uygulamak için GBM modelinin parametrelerini tanımlamamız gerekiyor. Bu parametreler arasında sürüklenme oranı (μ), oynaklık (σ) ve zaman ufku (T) bulunur. Ayrıca, her çalıştırmadaki simülasyon çalıştırmalarının sayısını (N) ve zaman adımlarının sayısını (M) belirleyeceğiz. Bu parametreler ayarlandığında, simülasyona devam edebiliriz.

İşte Python kullanarak beklenen maksimum düşüşü hesaplamak için Monte Carlo simülasyonunun bir örnek uygulaması:

import numpy as np

def monte_carlo_max_drawdown(S0, mu, sigma, T, N, M):
    dt = T / M

    S = np.zeros((N, M+ 1 ))
    S[:, 0 ] = S0

     for i in range( 1 , M+ 1 ):
        epsilon = np.random.normal( 0 , 1 , N)
        S[:, i] = S[:, i- 1 ] * np. exp ((mu - 0.5 * sigma** 2 ) * dt + sigma * np. sqrt (dt) * epsilon)

    drawdowns = np.zeros(N)

     for i in range(N):
        peak = np.maximum.accumulate(S[i])
        drawdowns[i] = np.max((peak - S[i]) / peak)

    expected_max_drawdown = np.mean(drawdowns)

     return expected_max_drawdown

# Example usage
S0 = 100.0    # Initial stock price
mu = 0.05    # Drift rate
sigma = 0.2    # Volatility
T = 1.0    # Time horizon in years
N = 10000    # Number of simulation runs
M = 252    # Number of time steps (assuming 252 trading days in a year)

expected_max_drawdown = monte_carlo_max_drawdown(S0, mu, sigma, T, N, M)
print( "Expected Maximum Drawdown:" , expected_max_drawdown)

Bu örnekte, dizi işlemlerini verimli bir şekilde işlemek için NumPy kullanıyoruz. Her çalışma ve zaman adımı için simüle edilmiş hisse senedi fiyatlarını depolamak için bir dizi S başlatıyoruz. Zaman adımlarını yineliyoruz ve GBM formülünü kullanarak hisse senedi fiyat değişikliklerini simüle ediyoruz. Tüm çalıştırmaları simüle ettikten sonra, tepe değerini bularak ve mevcut fiyattan çıkararak her bir çalıştırma için düşüşü hesaplıyoruz. Son olarak, tüm düşüşlerin ortalamasını alarak beklenen maksimum düşüşü hesaplıyoruz.

Bu Monte Carlo simülasyonunu çalıştırarak, birden fazla simüle edilmiş senaryoya dayalı olarak beklenen maksimum düşüşü tahmin edebiliriz. Bu, tarihsel verilerden elde edilen tek bir gözleme kıyasla aşağı yönlü riskin daha kapsamlı bir şekilde anlaşılmasını sağlar.

Sonuç olarak, maksimum düşüm kavramını, tarihsel verileri kullanarak hesaplamasını ve beklenen maksimum düşümü tahmin etmek için Monte Carlo yönteminin uygulamasını inceledik. Numba kullanarak düşüş hesaplama performansının nasıl geliştirileceğini de tartıştık. Bu tekniklerin dahil edilmesi, finansal hesaplamaların verimliliğini ve doğruluğunu büyük ölçüde artırabilir, tüccarları ve yatırımcıları karar verme için değerli risk ölçütleri ile güçlendirebilir.

CloseToalgotrading'i izlediğiniz için teşekkür ederiz! Umarım bu videoyu bilgilendirici ve faydalı bulmuşsunuzdur. Herhangi bir sorunuz veya yorumunuz varsa, lütfen aşağıda paylaşmaktan çekinmeyin. Algoritmik ticaret ve kantitatif finansta daha heyecan verici konular için bizi izlemeye devam edin.

Fast Monte Carlo Simulation For Estimation Maximum Expected Drawdown (run python code x2000 faster)
Fast Monte Carlo Simulation For Estimation Maximum Expected Drawdown (run python code x2000 faster)
  • 2022.02.27
  • www.youtube.com
In this video we will see how with a few simple steps we can improve execution performance of a python code more than in x1000 time. And in order for us to b...
 

R Studio (CRAN) kullanarak Sharpe Ratio'yu maksimize etmek için portföy optimizasyonu


R Studio (CRAN) kullanarak Sharpe Ratio'yu maksimize etmek için portföy optimizasyonu

Merhaba arkadaşlar, Macro Sapiens'e hoş geldiniz. Bugünün öğreticisinde, Sharpe oranını en üst düzeye çıkarmak için bir portföyü nasıl optimize edeceğimizi öğreneceğiz. Sharpe oranı, portföyün alınan risk birimi başına getirisini ölçer. Bunu gerçekleştirmek için quantmod, PortfolioAnalytics, PerformanceAnalytics ve NSE2R kitaplıklarını kullanacağız. Quantmod kitaplığı Yahoo Finance'ten veri almamıza yardımcı olacak, PortfolioAnalytics optimizasyon işlevini sağlayacak, PerformanceAnalytics görselleştirmeye yardımcı olacak ve NSE2R, Hindistan Ulusal Menkul Kıymetler Borsası için ayrılmış bir kitaplıktır.

İlk olarak stokların isimlerini saklamak için "stock_names" adında bir değişken tanımlıyoruz. Hindistan'daki Nifty 50 endeksinin 50 hisse senedi sembolü için Yahoo Finance'ten veri almak için quantmod kitaplığını kullanıyoruz. Sembol sütununu çıkarıyoruz ve onu "semboller" adı verilen yeni bir değişkende saklıyoruz.

Ardından, almak istediğimiz veriler için başlangıç ve bitiş tarihlerini belirtmemiz gerekiyor. Başlangıç tarihini 1 Ocak 2018, bitiş tarihini ise güncel tarih olarak tanımlamak için "since" değişkenini kullanıyoruz. Hisse senedi performansını daha iyi temsil ettikleri için düzeltilmiş kapanış fiyatlarına odaklanıyoruz ve bunları "prices_data" adlı bir değişkende saklıyoruz.

Portföy getirisini hesaplamak için günlük getiri formülünü kullanırız: (2. günün kapanış fiyatı - 1. günün kapanış fiyatı) / 1. günün kapanış fiyatı. Verilerdeki eksik değerleri (NA'lar) işlemek için işlevi değiştiririz.

Ardından, portföy getiri veri setinin sütun adlarını "fonlar" olarak tanımlıyoruz. Bu daha sonra optimizasyon sürecinde kullanılacaktır.

Artık PortfolioAnalytics kütüphanesini kullanarak optimizasyon sürecini başlatabiliriz. Bir başlangıç portföyü oluşturuyoruz ve kısıtlamalar ekliyoruz. Kısıtlardan biri, portföyün toplam ağırlığının 1'e eşit olmasını sağlar ve diğer kısıtlama, sadece uzun süreli bir portföy istediğimizi, yani negatif ağırlıkların olmadığını belirtir.

Fiyatlar_verisini kullanarak portföyün ortalama getirisi olan amaç fonksiyonunu ekliyoruz. Optimizasyon işlemi için maksimum yineleme sayısını 2000 olarak belirledik.

Sharpe oranını hesaplamak için risksiz getiri oranını tanımlamamız gerekir. Bu durumda, bunu% 0 olarak kabul ediyoruz. Portföyün getirilerini analiz etmek ve Sharpe oranını hesaplamak için PerformanceAnalytics kitaplığının işlevini kullanıyoruz.

Rastgele optimizasyon yoluyla elde edilen maksimum Sharpe oranı getirisi ve ROI optimize edicinin getirileri dahil olmak üzere sonuçları görüntülemek için bir tablo oluşturuyoruz. Optimize edilmiş portföyleri görselleştirmek için etkin sınırı çiziyoruz.

Ek olarak, portföy getirilerini Nifty 50 endeksine yatırım yapmaktan elde edilen getirilerle karşılaştırıyoruz. Her yaklaşım için kümülatif getirileri hesaplıyoruz ve performansı analiz etmek için bunları çiziyoruz.

Sonuçlara dayanarak, rastgele portföy optimizasyon yönteminin, ROI optimize edici ve Nifty 50 endeksine kıyasla daha yüksek bir Sharpe oranı ve kümülatif getiri sağladığını gözlemliyoruz.

Bu optimize edilmiş ağırlıklar, yatırım için bir hisse senedi sepeti oluşturmak için kullanılabilir. Belirli bir süre boyunca sepetin performansını izleyerek, yatırımcılar seçilen hisse senetlerine yatırım yapma konusunda bilinçli kararlar alabilirler.

Umarız bu öğreticiyi faydalı bulmuşsunuzdur. Herhangi bir sorunuz varsa, lütfen sormaktan çekinmeyin. Beğenmeyi, paylaşmayı ve kanalımıza abone olmayı unutmayın. Teşekkür ederim!

Portfolio optimization for maximizing Sharpe Ratio using R Studio (CRAN)
Portfolio optimization for maximizing Sharpe Ratio using R Studio (CRAN)
  • 2021.08.28
  • www.youtube.com
Portfolio optimization for maximizing Sharpe Ratio using R Studio (CRAN)#SharpeRatio #Rstudio #CRAN #Portfolio #Optimization
 

Spot Rate - Forward Rates (CFA® ve FRM® Sınavları için Hesaplamalar)


Spot Rate - Forward Rates (CFA® ve FRM® Sınavları için Hesaplamalar)

Herkese iyi günler! Tartışmamız için bugünün konseptini tanıtmak istiyorum. Spot oranlardan vadeli oranların hesaplanmasını keşfedeceğiz, ancak formülü kullanmak yerine zaman çizelgesi yöntemini kullanacağız. Bu yaklaşım, karmaşık formülleri ezberleme ihtiyacını ortadan kaldıracak ve süreci daha sezgisel hale getirecektir.

Ayrıntılara girmeden önce forward ve spot oranların tanımlarını kısaca özetleyelim. Spot oran, şu anda piyasada bulunan herhangi bir faiz oranını ifade eder. Bugünden başlayarak iki, üç, dört veya beş yıl gibi belirli bir süre için yatırım yapılabilecek oranı temsil eder. Spot oran, bireylerin piyasaya yatırım yaparak getiri elde etmelerini sağlayan yatırım yapılabilir bir orandır.

Öte yandan, forward oranı, genellikle zımni forward oranı olarak adlandırılan teorik bir orandır. Gelecekteki iki zaman dilimi arasında öngörülen faiz oranını temsil eder. Örneğin, şu anda sıfır zaman dilimindeysek, üçüncü yıl ile dördüncü yıl arasındaki oranı belirlemek isteyebiliriz. Forward oranı, mevcut spot oranlara göre hesaplanır ve gelecekteki bir noktada faiz oranı tahmini olarak işlev görür.

Bir forward sözleşmesi veya vadeli sözleşme gibi bir türev araç kullanılarak kilitlenmediği sürece, forward kurunun yatırım yapılabilir bir oran olmadığına dikkat etmek önemlidir. O zamana kadar, zımni bir oran olarak kalır, yani gelecekte belirtilen zaman dilimi geldiğinde gerçekte var olabilir veya olmayabilir.

Zımni forward oranını yatırım yapılabilir hale getirmek için, bir forward sözleşmesi yapılması gerekir. Bu, oranın sabitlenmesini ve belirlenen gelecekte finansal işlemlerde kullanılabilmesini sağlar.

Şimdi forward oranlarını hesaplamak için zaman çizelgesi yöntemini keşfedelim. İlk önce formülü inceleyeceğiz, ancak amacın formüllere güvenmekten uzaklaşıp zaman çizelgesi yöntemini benimsemek olduğunu unutmayın. Her iki yaklaşımı karşılaştırarak, zaman çizelgesi yönteminin formül ezberlemeye gerek kalmadan aynı sonuçları verdiğini fark edeceksiniz.

Forward oranlarını hesaplama formülü aşağıdaki gibidir:

(1 + za)^a * (1 + ifr) = (1 + zb)^b

Bu formülde "a" daha kısa vadeyi, "b" daha uzun vadeyi, "za" ve "zb" daha kısa ve daha uzun vadeler için ilgili spot faiz oranlarını ve "ifr" arasında ima edilen forward kurunu temsil etmektedir. "a" ve "b" zaman periyodu

Şimdi, anlayışımızı sağlamlaştırmak için bir örnek gösterelim. Bize şu spot oranlar verildi: bir yıllık spot oran %5 ve iki yıllık spot oran %6'dır. Hedefimiz bugünden bir yıl sonra bir yıllık forward kurunu belirlemektir.

Formülü kullanarak, verilen spot oranları denklemde yerine koyabiliriz:

(1 + 0,05)^1 * (1 + ifr) = (1 + 0,06)^2

Daha da basitleştirerek şunu elde ederiz:

1,05 * (1 + ifr) = 1,1236

Şimdi aynı hesaplama için zaman çizelgesi yöntemini inceleyelim. Sıfır, bir ve iki periyodu ile bir zaman çizelgesi çizin. Buna göre spot oranları çizin. İki yıllık spot oran için sıfırdan ikiye %6 işaretleyin. Bir yıllık spot oran için sıfırdan bire %5 işaretleyin. Amacımız, bugünden bir yıl sonra "f" ile gösterilen bir yıllık forward kurunu hesaplamaktır.

Zaman çizelgesi yöntemini kullanarak ima edilen forward oranını belirlemek için, arbitraj yapmama ilkesinden yararlanırız. Bu ilke, zaman çizelgesinde seçilen rota ne olursa olsun, aynı gelecekteki değere sahip olmamız gerektiğini ileri sürer. Bu durumda, iki yıl için %6 faizle 1 ABD Doları yatırabilir veya bir yıl için %5 faizle 1 ABD Doları yatırabilir, ardından bu tutarı bir yıl daha "f" forward oranıyla yeniden yatırabiliriz.

Bir yıllık forward oranını hesaplamak için, bir yıllık %5'lik spot oranda bir yıl için 1$ yatırım yaparak başlıyoruz. Bu yatırım bir yıl sonra 1,05 dolara çıkar.

Şimdi, 1,05 doları alıp bir yıl daha "f" forward oranıyla yeniden yatırıyoruz. Bu yatırımın gelecekteki değeri, iki yıllık spot faiz oranı olan %6 üzerinden iki yıl için 1$ yatırım yapmakla aynı olmalıdır.

"f" forward oranının %x olduğunu varsayalım. Denklemi şu şekilde kurabiliriz:

(1 + 0,05) * (1 + %x) = (1 + 0,06)^2

Daha da basitleştirerek, elimizde:

1,05 * (1 + x%) = 1,1236

Her iki tarafı da 1,05'e bölmek:

1 + %x = 1,1236 / 1,05

1 + %x = 1,07

x% = 1,07 - 1

x% = 0,07

Dolayısıyla, bugünden bir yıl sonra "f" ile gösterilen bir yıllık forward oranı %7'dir.

Zaman çizelgesi yöntemini kullanarak, formüle güvenmeden forward oranını hesaplayabildik. Bu yaklaşım, zaman çizelgesinin görsel bir temsilini sağlar ve ima edilen forward oranının daha sezgisel olarak anlaşılmasını sağlar.

Spot Rate vs. Forward Rates (Calculations for CFA® and FRM® Exams)
Spot Rate vs. Forward Rates (Calculations for CFA® and FRM® Exams)
  • 2020.08.17
  • www.youtube.com
AnalystPrep's Concept Capsules for CFA® and FRM® ExamsThis series of video lessons is intended to review the main calculations required in your CFA and FRM e...
 

Sharpe Ratio, Treynor Ratio ve Jensen's Alpha (CFA® ve FRM® Sınavları için Hesaplamalar)


Sharpe Ratio, Treynor Ratio ve Jensen's Alpha (CFA® ve FRM® Sınavları için Hesaplamalar)

Bayanlar ve baylar, hepinize en içten selamlarımı sunuyorum. Bugün, önemli bir konuyu, yani portföy performansının çeşitli ölçütlerini inceleyeceğiz. Spesifik olarak, Sharpe oranını, Treynor oranını ve Jensen'in alfasını keşfedeceğiz. Birkaç başka portföy performans ölçüsü olsa da, bu üçü yaygın olarak çok önemli olarak kabul edilmektedir. Bu önlemler arasındaki karşılıklı ilişkiyi ve bunların pratik önemini anlamak, yalnızca yaklaşan DFA veya FRM sınavlarınız için değil, aynı zamanda bunların gerçek hayattaki uygulamaları için de çok önemlidir. Bu kavramlar, sınav yolculuğunuz boyunca önemini vurgulayarak DFA müfredatının üç düzeyine de nüfuz eder.

Bugüne kadar bu alandaki en saygın oran olmaya devam eden Sharpe oranıyla başlayalım. Çekiciliği, bazı doğal sınırlamalara rağmen basitliğinde yatmaktadır. Bununla birlikte, hedge fonları ve yatırım fonları tarafından yaygın olarak bildirildiği için, fonları karşılaştırırken tercih edilen oran olmaya devam ediyor. Benzer şekilde, hem Treynor oranı hem de Jensen'in alfası endüstride yaygın olarak kullanılmaktadır. Bu nedenle, bu kavramları yalnızca sınavlarınız için değil, aynı zamanda pratik açıdan da anlamanız önemlidir.

Aşağıdaki şekilde formüle edilen Sharpe oranı dikkatimizi çekmektedir:

Sharpe oranı = (Portföy getirisi - Risksiz oran) / Portföyün standart sapması

Payda, "Portföy getirisi (rp)", risksiz faiz oranı (rf) üzerindeki fazla getiriyi temsil eder. Bir portföye yatırım yaparken, risk almak daha büyük ödüller aramak anlamına geldiğinden, risksiz orandan daha yüksek getiriler beklenir. Bu nedenle, risksiz oranın ötesinde elde edilen getiriyi ifade eden fazla getiriye odaklanıyoruz. Paydada, bir risk ölçüsü olarak hizmet eden standart sapmamız var. Burada, standart sapmanın hem çeşitlendirilebilir hem de çeşitlendirilemeyen riskleri hesaba kattığını not etmek önemlidir. Çeşitlendirilebilir riskler çeşitlendirme yoluyla ortadan kaldırılabilirken, çeşitlendirilemeyen riskler varlığını sürdürür. Sonuç olarak Sharpe oranı, hem sistematik hem de sistematik olmayan riskleri birleştirerek, toplam risk birimi başına fazla getiriyi değerlendirir.

Sharpe oranının değerinin, diğer portföylerin Sharpe oranlarıyla karşılaştırıldığında en alakalı olduğunu vurgulamak çok önemlidir. Portfolyoları birbirine göre değerlendirirken anlamlılık bulur. Aslında, endüstri profesyonelleri Sharpe oranlarını genellikle "keskin" olarak adlandırır. Örneğin, portföy yöneticileri, ilgili Sharpe oranlarını belirterek "iki keskinlik iade ediyorum" veya "üç keskinlik" diyebilir.

Daha yüksek bir Sharpe oranı olumlu kabul edilir. Daha yüksek bir oran, bir portföyün aynı risk düzeyi için daha fazla getiri sağlama yeteneğini gösterir ve bu da onu tercih edilebilir bir seçim haline getirir. Bu nedenle, Sharpe oranına göre bir portföy seçerken, oranı en yüksek olanı tercih edin.

Şimdi payda Sharpe oranına çarpıcı bir benzerlik gösteren ancak paydasında farklılaşan Treynor oranına dikkatimizi çevirelim. Treynor oranı, beta ile gösterilen sistematik risk birimi başına fazla getiriyi ölçer. Beta, bir yatırımın doğasında bulunan çeşitlendirilemez, sistematik riski temsil eder. Bu daha dar ölçü, Sharpe oranının daha geniş kapsamından farklı olarak yalnızca sistematik riske odaklanır. Aynı şekilde Treynor oranı da benzer fonların oranlarına göre daha değerlidir. Treynor oranına dayalı bir portföy seçmek, en yüksek orana sahip olanı seçmeyi gerektirir çünkü daha yüksek bir değer, sistematik risk birimi başına daha fazla getiriyi gösterir.

Jensen'in alfasını keşfetmeden önce, Sermaye Varlık Fiyatlandırma Modelini (CAPM) gözden geçirelim. CAPM, bir portföy için beklenen getiriyi veya gerekli getiriyi belirlemeye yardımcı olduğu için Jensen'in alfasını anlamamıza yardımcı olur. CAPM, risksiz orandan başlayarak ve piyasa risk priminin (piyasa getirisi ile risk arasındaki fark) beta katlarını ekleyerek beklenen getiriyi hesaplar.

Jensen performans endeksi veya kısaca alfa olarak da bilinen Jensen alfası, bir portföyün Sermaye Varlık Fiyatlandırma Modeli'ne (CAPM) dayalı olarak beklenen getirisine kıyasla fazla getirisinin bir ölçüsüdür. CAPM, bir varlığın veya portföyün beklenen getirisini, piyasa hareketlerine karşı sistematik riski veya duyarlılığı temsil eden betasıyla ilişkilendirir.

Jensen'in alfası şu şekilde hesaplanır:

Jensen alfa = Portföy getirisi - [Risksiz oran + Beta × (Piyasa getirisi - Risksiz oran)]

Bu formülde portföy getirisi, portföy tarafından kazanılan fiili getiriyi, risksiz faiz oranı devlet tahvili gibi risksiz bir yatırımın getirisini, beta portföyün piyasa hareketlerine olan duyarlılığını, piyasa getirisi ise genel pazarın ortalama getirisi.

Jensen'in alfa değeri, portföyün CAPM'ye dayalı olarak beklenen getirisinden daha iyi mi yoksa daha düşük performans mı gösterdiğini gösterir. Pozitif bir alfa, portföyün sistematik riski göz önüne alındığında beklenenin ötesinde fazla getiri ürettiğini gösterirken, negatif bir alfa düşük performansı gösterir. Bu nedenle, yatırımcılar ve portföy yöneticileri, yatırım performansını değerlendirirken tipik olarak pozitif alfalar ararlar.

Jensen'in alfasının yalnızca sistematik riski dikkate aldığını ve toplam riski veya portföyle ilişkili belirli riskleri hesaba katmadığını not etmek önemlidir. Sonuç olarak, bir portföyün performansını daha kapsamlı bir şekilde anlamak için Jensen'in alfasının Sharpe oranı ve Treynor oranı gibi diğer performans ölçütleriyle birlikte kullanılması önerilir.

Özetle, Sharpe oranı, Treynor oranı ve Jensen'in alfası, portföy performansını değerlendirmek için değerli ölçütlerdir. Sharpe oranı, toplam risk birimi başına fazla getiriyi değerlendirirken, Treynor oranı sistematik risk birimi başına fazla getiriye odaklanır. Jensen'in alfa değeri, yalnızca sistematik riski göz önünde bulundurarak, CAPM'ye dayalı olarak bir portföyün gerçek getirisini beklenen getirisiyle karşılaştırır. Bu ölçümler, portföy performansına ilişkin farklı bakış açıları sağlar ve bilinçli yatırım kararları almak için birlikte kullanılabilir.

Sharpe Ratio, Treynor Ratio and Jensen's Alpha (Calculations for CFA® and FRM® Exams)
Sharpe Ratio, Treynor Ratio and Jensen's Alpha (Calculations for CFA® and FRM® Exams)
  • 2020.08.15
  • www.youtube.com
AnalystPrep's Concept Capsules for CFA® and FRM® ExamsThis series of video lessons is intended to review the main calculations required in your CFA and FRM e...
 

Kovaryans ve Korelasyon (CFA® ve FRM® Sınavları için Hesaplamalar)


Kovaryans ve Korelasyon (CFA® ve FRM® Sınavları için Hesaplamalar)

Herkese merhaba, kovaryans ve korelasyon kavramlarını tartışarak başlayalım. Bugünün konusu birçok insan için kafa karıştırıcı olabilir çünkü korelasyon yaygın olarak duyulan bir terimken, hesaplamalar söz konusu olduğunda kovaryans genellikle yabancıdır. Ek olarak, hem kovaryans hem de korelasyon, kafa karıştırıcı olabilecek aynı şeyi ölçmeyi amaçlamaktadır. Aynı amaç için neden iki farklı ölçüme sahip olduğumuzu keşfedeceğiz ve ne zaman kovaryans ve ne zaman korelasyon kullanacağımızı belirleyeceğiz. Ayrıca, hem kovaryans hem de korelasyonun nasıl hesaplanacağını inceleyeceğiz.

Kovaryansa dalmadan önce, tartışmamızın temelini oluşturduğu için varyansın nasıl hesaplanacağına hızlıca bir göz atalım. Varyansın nasıl hesaplanacağını anladıktan sonra, kovaryansa geçebilir ve iki ölçüm arasındaki ilişkiyi keşfedebiliriz. Bu, bu önlemlerin kökeni ve bunların korelasyonla ilişkisi hakkında fikir edinmemize yardımcı olacaktır.

Şimdi varyansın hesaplanmasını anlamak için bir örnek ele alalım. Beş yıllık portföy getirilerini temsil eden bir veri serimiz var. Getiriler her yıl için yüzde olarak verilmiştir. Varyansı hesaplamak için önce veri serisinin ortalamasını veya ortalamasını belirlememiz gerekir. Tüm geri dönüşleri toplarız ve toplamı, bu durumda beş yıl olan gözlem sayısına böleriz. Bu bize veri serisinin ortalamasını verir.

Daha sonra, her gözlem için ortalamadan sapmayı hesaplıyoruz. Her dönüş değerinden ortalamayı çıkarırız. Bu bize her gözlem için ortalamadan sapmayı verir. Kare sapmalar daha sonra her sapmanın karesi alınarak hesaplanır. Tüm sapmaların karelerini toplarız ve varyansı elde etmek için sonucu gözlem sayısına böleriz. Son olarak, ilgili bir ölçü olan standart sapmayı bulmak için varyansın karekökünü alırız.

Burada, gerçek dünya senaryolarında veya CFA veya FRM gibi sınavlarda varyansı manuel olarak hesaplarken, bu hesaplamaların genellikle BA2 Plus veya BA2 Plus Professional gibi hesap makinelerinde yerleşik işlevler kullanılarak yapıldığını unutmamak önemlidir.

Kovaryansa geçersek, iki farklı veri serisi arasındaki birlikte hareketin veya ilişkinin bir ölçüsüdür. Tek bir veri serisiyle ilgilenen varyanstan farklı olarak kovaryans, iki veri serisinin birlikte nasıl hareket ettiğini incelememizi sağlar. Örneğin, bir ETF ile bir kıyaslama endeksi arasındaki birlikte hareketi analiz etmek için kovaryansı kullanabiliriz. Pozitif kovaryans, iki değişkenin aynı yönde hareket ettiğini gösterirken, negatif kovaryans zıt hareketleri gösterir. Sıfırın kovaryansı, değişkenler arasında ilişki olmadığını gösterir.

Kovaryansı hesaplamak için, ilk veri serisinin ortalamasını o serinin her bir gözleminden çıkarırız ve ikinci veri serisinin ortalamasından sapma ile çarparız. Bu işlemi tüm gözlemler için tekrarlıyoruz, sapmaları çarpıyoruz, sonuçları topluyoruz ve kovaryansı elde etmek için gözlem sayısına bölüyoruz.

Kovaryansın varyansla benzerlikler paylaştığını belirtmek gerekir, ancak sadece bir yerine iki farklı veri serisi içerir. Aslında, varyans, iki değişkenin aynı olduğu özel bir kovaryans durumu olarak düşünülebilir.

Ancak, tek başına kovaryans kullanmanın bir sınırlaması vardır. Kovaryans, iki değişken arasındaki ilişki hakkında bilgi sağlarken, ilişkinin büyüklüğü hakkında bir fikir vermez. Bu, farklı veri serileri arasındaki ilişkileri karşılaştırırken bir zorluk teşkil eder. İşte burada korelasyon devreye giriyor.

Korelasyon, kovaryansın standartlaştırılmış bir versiyonudur. Kovaryansın iki veri serisinin standart sapmalarının çarpımına bölünmesiyle hesaplanır. Bu normalleştirme süreci, ilişkileri -1 ile +1 arasında değişen standart bir ölçekte karşılaştırmamızı sağlar. +1 korelasyonu mükemmel bir pozitif ilişkiyi gösterir, -1 mükemmel bir negatif ilişkiyi temsil eder ve 0 ilişki olmadığını gösterir.

Kovaryans ve korelasyon, farklı veri serileri arasındaki ilişkiyi anlamamıza yardımcı olan ölçümlerdir. Kovaryans, değişkenler arasındaki ortak hareketin bir göstergesini sağlarken, korelasyon bu ölçüyü standartlaştırır ve kolaylığa izin verir.

Covariance and Correlation (Calculations for CFA® and FRM® Exams)
Covariance and Correlation (Calculations for CFA® and FRM® Exams)
  • 2020.08.19
  • www.youtube.com
AnalystPrep's Concept Capsules for CFA® and FRM® ExamsThis series of video lessons is intended to review the main calculations required in your CFA and FRM e...
Neden: