İstatiksel strateji BİST100
Bugün deneme amaçlı yeni bir strateji üzerinde çalışacağım.
Önceki stratejilerde BİST hisselerinin 20/40 günlük ortalamalar ile iyi çalıştığını gözlemlemiştik. Bugünkü stratejide yine BİST100 hisseleri kullanıp daha farklı bir istatiksel model ile endeksin kendisini kullanarak getiri aramak istiyorum.
Doğrudan yönteme geçebiliriz.
Hisseler: BIST100 hisseleri
Süre: 3 yıllık
Alım Satım sıklığı: Günlük
Ortalama: 40 gün
Volatilite(Standart Sapma): 20 gün
Fiyat: Günlük
Borsada işlem gören 100 hissenin her gün için ortalaması ve volatilitesi hesaplanacak. Bu değerler ve fiyat kullanılarak zskor hesaplanacak. Zskor hesabı:
(Fiyat-Ortalama) /Standart Sapma
Bu değer tüm hisseler için hesaplanacak ve bir matris oluşturulacak.
Bu matriste belirlediğimiz alt-üst değerlerin altında / üstünde kalan hisse sayılarını bulacağız.
Hisse sayılarını bulduktan sonra kriterlerimizi uygulayıp alım satım kararlarını vereceğiz.
Zskor -2 civarına gerilemişse o hisse irtifa kaybediyor demektir. Bu tip hisseler borsada çoğunlukta ise o zaman iyi bir satış sonrasında diplerdeyiz diyebiliriz.
Alım yöntemi:
BİST100 hisselerinden zskoru -2 ve altına gerilemiş hisse sayısı 50 ve üstünde olursa alım yapacağız.
Pozisyon Çıkış:
BİST100 hisselerinden zskoru 2 ve üstüne yükselmiş hisse sayısı 25 ve üstünde olursa satım yapacağız.
Borsa her zaman diplere ya da tepelere yönelmiyor bazen daha küçük düzeltmeler yapabiliyor. Sisteme momentum kriteri de ekleyelim.
İkinci alım:
BİST100 hisselerinden zskoru 2 ve üstüne yükselmiş hisse sayısı 30’u yukarı keserse al.
Bu pozisyonu ya yükselen hisse sayısı 50’nin üzerine geçerse ya da ilk giriş koşulu bozulursa sat.
Önce grafikte borsanın düştüğü dönemleri inceleyelim:
Son 3 yılda 8 defa 50 ve daha fazla hisse aynı anda gerilemiş. Grafikte ilginç olan ve işlem yapmayı cazip kılan en önemli unsur satışlar arttıktan sonra genelde kısa sürede hisseler tekrar güçlenmiş volatilite azalmış. Strateji aynı zamanda opsiyon ve volatilite işlemi yapmak için de kullanılabilir.
Zskoru yükselen hisselere de bakalım:
İki grafiği üst üste çizelim:
Hem yükselişte hem düşüşte aşırılıklara gidiliyor ve bu hareketler birbirini takip ediyorlar.
Sistemin getiri grafiğini borsa ile birlikte inceleyelim:
Portföy metrikleri:
Orijinal Strateji Yıllık ortalama getiri %20,24 Sharpe rasyosu: 1.6949
En büyük düşüş %7,84 oldu. Bu kayıp 78 gün sonra geri alındı
BİST Al-Taşı yıllık ortalama getiri %8,20 Sharpe rasyosu: 0.4937
En büyük düşüş %26,24 oldu. Bu kayıp 510 gün sonra geri alındı
Tasarlanan sistemde açığa satış yok. Sadece ucuzladığında alıp bir süre taşıyıp pahalandığında satacağız. İlave olarak daha da yükselirse alıp biraz daha yüksekten satmayı hedefleyeceğiz.
Kodu incelemek isteyenler için:
clc,clear
load('u100Zskor')
thres1=-2;%fiyatları gerilemiş ve volatilitesi artmış hisseler için
thres2=2;%fiyatları yükselmiş volatilitesi azalmış hisseler için
lookback=20;%volatilite süresi
lookback2=40;%ortalama süresi
buyNumber=50;%z skor değeri düşmüş hisse sayısı
buyExitNumber=25;%z skor değeri artmış hisse sayısı
buy2=30;%momentum yaparken almak için buyExitNumber değerinden büyük olmalı
buy2Exit=50;%zskor momentum yapan hisseler
MA=movingAvg(px, lookback2);%ortalama matris
MSTD=movingStd(px, lookback);%volatilite matris
zScore=(px-MA)./MSTD;%zskor matris
tmpBelowThres=zScore<thres1;%eşik değerin altındaki hisse matris
tmpAboveThres=zScore>thres2;%eşik değerin üstündeki hisse matris
belowThres=sum(tmpBelowThres,2);%eşik değerin altındaki hisse sayısı
aboveThres=sum(tmpAboveThres,2);%eşik değerin üstündeki hisse matris
buy=belowThres>buyNumber;%alım kriteri
exitBuy=aboveThres>buyExitNumber;%uzun pozisyon çıkış kriteri
buy2=lag(aboveThres)<buy2&aboveThres>buy2;%momentum alım kriteri
buy2Exit=lag(aboveThres)<buy2Exit&aboveThres>buy2Exit...%momentum alımdan çıkış kriteri
|(lag(aboveThres)>buy2&aboveThres<buy2);
%buradan itibaren alım sinyalleri işleme
buySignal=NaN(size(belowThres));
buySignal(buy)=1;
buySignal(exitBuy)=0;
buySignal(buy2)=1;
buySignal(buy2Exit)=0;
finalLong=fillMissingData(buySignal);
finalLong(isnan(finalLong))=0;
bistRet=u100./lag(u100)-1;
bistRet(isinf(bistRet))=0;
%portföy günlük getiri
portRetDaily=lag(finalLong).*bistRet;
%portföy ve BİST100 portföy yönetimi metrikleri
[apr,sharpe,maxDD,maxDDD,drawdown]=portMetrics(portRetDaily);
[apr2,sharpe2,maxDD2,maxDDD2,drawdown2]=portMetrics(bistRet);
%grafik sabit değer için
grafSabit=ones(size(belowThres)).*buyNumber;
grafSabit2=ones(size(aboveThres)).*buyExitNumber;
%grafikler
close all
figure
plot(tarih,belowThres,tarih,grafSabit)
title('Thres1 Altında')
figure
plot(tarih,aboveThres,tarih,grafSabit2)
title('Thres2 Ustunde')
figure
plot(tarih,cumprod(portRetDaily+1)-1,tarih,cumprod(bistRet+1)-1)
title('Port Ret')
figure
plot(tarih,belowThres,tarih,grafSabit,tarih,aboveThres,tarih,grafSabit2)
title('Yükselen ve Düşen Hisseler Birlikte')
fprintf('Orijinal Strateji Yıllık ortalama getiri %.4f sharpe rasyosu: %.4f\n',apr,sharpe);
fprintf('En büyük düşüş %.4f oldu. Bu kayıp: %d gün sonra geri alındı\n\n',maxDD,maxDDD);
fprintf('BİST Al-Taşı Yıllık ortalama getiri %.4f sharpe rasyosu: %.4f\n',apr2,sharpe2);
fprintf('En büyük düşüş %.4f oldu. Bu kayıp: %d gün sonra geri alındı\n\n',maxDD2,maxDDD2);
Sayfada yer alan bilgiler tavsiye niteliği taşımayıp yatırım danışmanlığı kapsamında değildir. Yatırımcı profilinize uymayabilir.
-
Adnan Salih21 Haziran 2017 17:53
Sayin Ozan: Opsiyonlar ile ilgili bir hayli yazdım ama yine yazarim.
-
Adnan Salih21 Haziran 2017 17:52
Sayin Pro: Test ı matlab ile gelistirdim. Eğer matlab uygulamanız varsa sizde deneyip her gün endeks için al ya da alınan portföyü sat sinyali üretebilirsiniz.
-
Pro21 Haziran 2017 16:57
Elinize sağlık güzel bir çalışma olmuş. Bu formülasyonu nerede nasıl kullanacağız acaba?
-
Ozan 21 Haziran 2017 15:10
SAYIN ADNAN SALIH KALEMINIZE SAGLIK BIR SONRAKI YAZINIZDA VİOP İSLEMLERINDE HISSE OPSIIYONLARI FIYAT HESAPLAMASINI KONU OLARAK ALIRSANIZ COK MUTESEKKIR OLURUM IYI CALISMALAR DILERIM.
-
11 Kasım 2024, Pazartesi
Trump’ın zaferi Türkiye’yi nasıl etkileyecek?
Devamını Oku -
06 Kasım 2024, Çarşamba
Trump geliyor, peki piyasalar hazır mı?
Devamını Oku - 28 Ekim 2024, Pazartesi Devamını Oku
-
22 Ekim 2024, Salı
Altın ve gümüşte yükseliş nereye kadar sürecek?
Devamını Oku -
01 Ekim 2024, Salı
Piyasalar sıkıştı, bekle-gör stratejisi hakim
Devamını Oku - 11 Eylül 2024, Çarşamba Devamını Oku
-
12 Ağustos 2024, Pazartesi
Merkez’in faiz sinyali hangi şirketleri etkileyecek?
Devamını Oku -
06 Ağustos 2024, Salı
Finansal dalgalanmanın ortasında neler oluyor?
Devamını Oku -
23 Temmuz 2024, Salı
TCMB’nin faiz kararı ve piyasaların seyri
Devamını Oku -
01 Temmuz 2024, Pazartesi
Gri listeden çıkış ve CDS’lerin seyri
Devamını Oku
- ARACI KURUM RAPORLARI
- 15:28Tekfen Holding yılbaşından bu yana %118 kazandırdı
- 08:24Borsada alıcılı başlangıç bekleniyor
- 15:03Türk Hava Yolları hissesinde kurumların en yüksek beklentisi yüzde 82.3
- 09:03Bugün dikkatler NVDA’nın sonuçlarında! Hayal kırıklığı olacak mı?
- 07:59Borsada yatay başlangıç bekleniyor
- Tümünü Göster