Intraday Long Stratejisi Çalışmaları - 1
Haftalardır yeni bir intraday long stratejisi ile uğraşmaktayım. Bu çalışmaların hepsini bir bültene sığdırırsam çok uzayacağı için gene parçalara böldüm.
İstikrar ve sürekliliğin tradingdeki öneminden bahsedip duruyorum. “Bir şeyi nasıl yaparsan her şeyi öyle yaparsın” (How you do anything is how you do everything) diye bir söz var. Sahibinin kim olduğu tartışılır ama Marcus Aurelius’un Kendime Düşünçeler (Mediatations) adlı eserinde benzer derslere rastlamak mümkün. Hayatlara ayrıntılı bakıldığında bu lafın doğruluğu bence ortaya çıkıyor. Tradingde istikrar sağlamak için aslında genel olarak istikrarlı bir insan olmalı, istikrarlı bir hayat sürmeli. Böylece hayatın genelindeki istikrar, tradinge de yansıyacaktır. Bu elbette tartışılabilir, ancak benim kanaatim bu yönde.
İşte bu nedenle, bültenlerin de istikrarlı olması gerekir. İçeriği çok uzun olmasa da sürekli bir şekilde faydalı olan bülten çıkartmam gerekir. Elbette konsantrasyonu bozan durumlar olacaktır. Ancak sürekliliğin zaten zor olmasının sebebi de o, şartlar değiştiğinde de sürekliliği bozmamayı başarabilmek. Piyasalar da farklı hareket edebilir, ancak tradingdeki disiplinin, istikrarın, sürekliliğin bozulmaması gerekir. Burada istikrarlı ve sürekli olması gereken, yapılması gerekenlerin hangi şartlarda olursa olsun yapılmaya devam edilmesidir.
Gene bir özeleştiri ile giriş yaptıktan sonra son haftalarda uğraştığım intraday long stratejisinden bahsedeyim.
Stratejinin Çıkışı
Yeni stratejiyi nereden bulurum sorusu pek yaygındır. Akla gelen herhangi bir senaryo bir strateji oluşturmak için yeterlidir. Mühim olan bu senaryoyu test etmek ve uzun vadedede pozitif sonuçlar verdiğini görmektir.
2 seneden uzun bir süredir Amerikan borsalarındaki hisse senetlerini intraday (gün içi) trade ettiğim için, ne tür hareketler olduğunu biliyorum. Neredeyse her gün en az 20% artış gösteren 10larca hisse senedi ortaya çıkıyor. Hemen hemen her gün %50’den fazla artış gösteren birden fazla hisse senedi ortaya çıkıyor. 50% artış göstermekten kasıt, gün içinde enazından bir kere bu çıkışı yapmış olması. Gün sonunda ne kadar artışla kapandığından bahsetmiyorum. Bu stratejide amaç bu hareketlerin bir parçasından faydalanmak olduğu için gün sonundaki kapanışın önemi yok. %20 ya da %50 artış göstermiş bir hissenin %10 hatta %5lik hareketini yakalansa kafi. Kayıpları da göz önüne alarak pozisyon başına ortalamada %1lik bir hareketin bile getirisi uzun vadede çok yüksek olacaktır. Stratejinin de çıkış noktası bu, bu hisse senetlerinin bu artışları içersindeki bir miktar yükselişi nasıl yakalarız?
Stratejinin Tipi ve Zaman Dilimi
Trading Stratejisi adlı bültende, bir stratejinin gerekli parametrelerini açıklamıştım. Bunlarda ilki stratejinin tipi ve zaman dilimi. Fiyatı artan hisse senetlerindeki hareketin bir bölümünü yakalamak üzere bir long stratejisi geliştirmeye çalışıyorum ve bu strateji 5 dakikalık grafikteki fiyat hareketlerine göre giriş ve çıkış yapacak.
Hisse senede Seçimi
Bir sonraki parametre hangi hisse senetlerde pozisyon açılıp kapanılacağı. 1000lerce hisse senedi içerisinde, gün içersinde hangisinde pozisyon açılacağını filtrelemek gerekli.
Bir hisse senedi bir önceki günün kapanışına göre en az %20 artış ile açılıyorsa, o hisse senedine bir talep oluşmuştur. Bunun sebebi o şirket ile ilgili bir haber olabilir, atılan bir tweet olabilir, Reddit’teki konuşmalar olabilir ya da adlandıramadığımız herhangi bir sebep, talep olabilir. Neticece grafikte bir hareket olduğunu görülür ve bu hareket de daha fazla dikkat çekmesini sağlar.ç Böylece bu hisse senedine talep daha da artabilir. Talebin artmasıya fiyatta da hareketlilik artacaktır.
Bu nedenle hisse senedi seçim kriterlerini,
bir önceki günün kapanışından en az %20 artış ile açılması (premarket dahil),
o günkü hacmin son 30 gün ortalamasının en az 3 katı olması (böylece göreceli hacmin - relative volume- normalin 3 katı olduğunu söyleyebiliriz) ve
gün içerisindeki hacmin en az 100 000 adet hisse olması
olarak belirledim. Tabi ki bu daha başlangıç stratejiyi geliştirmek için bu filtreler arttırılabilir ya da parametreleri değiştirilebilir.
Pozisyona Giriş ve Çıkış Kriterleri
Öncelikle çok basit giriş ve çıkış kuralları koyup test etmek istedim. Bunlar;
bir önceki 5 dakikalık barın yükseğinin kırılması ve
kırılmadan önceki mumun hacminin bir önceki mumum hacminden az olması idi.
Yani hacim düştükten sonraki 5 dakika mum kırılımında hareket başlıyor artık giriş yapılmalı senaryosuydu. Hacmin ne kadar azalmış olmasını dikkate alınmıyor.
Örneğin 23 Mayıs 2024 tarihindeki BCG hissesinin 5 dakikalık grafiğindeki bazı giriş kriterlerini sağlandığı durumları aşağıda görülebilir;
Bunlar bütün girişler değil, yalnızca bazıları. Anlaşılacağı üzere çok sayıda giriş yapılması gerekiyor ve bu manuel olarak yapılması mümkün değil. Zaten bu stratejiye başlarkenki amaç manuel olarak değil, botlar yardımıyla otomatik trade sistemi kurulması o yüzden aslında teknik olarak getirisi pozitif olduğu sürece pozisyon açma sayısının bir sorun olmaması gerekir.
Çıkış kriterleri de şöyleydi;
ilk stop/loss giriş yapılan barın düşük fiyatı
fiyat yukarı hareket ettikçe bir stop/loss bir sonraki barın düşük fiyatı.
Yani bir hedef fiyatı mevcut değil, fiyat yukarı çıktıkça stop/loss da yukarı çıkıyor böylece fiyat arttıkça zarar azalıp kara geçtikçe bir kısım kar garantileniyor. Bu tip strateji yönetimlerinin artıları ve eksileri var, bunlardan da bahsedeğim.
Yukarıdaki grafikteki giriş örneklerinin çıkış yerlerini işaretledim.
Pozisyon Büyüklüğü
Pozisyon büyüklüğü öncelikle sabit, yani her pozisyondaki toplam dolar değerindeki alış fiyatı aynı. Örneğin, bu sabit miktar 100 dolar ise, 1 dolarlık hisse trade ediliyorsa 100 adet hisse, 2 dolarlık hisse trade ediliyorsa 50 adet alış yapılıyor. Bu vesile ile her pozisyonun riski de farklı oluyor. Bir önceki mumun düşük fiyatı %5 veya %10 aşağıda olabilir. Buna göre risk, 100 dolarlık bir pozisyonda 5 veya 10 dolar olabilir.
Pozisyon büyüklüğünün bütün bakiyeye oranını sratejinin istatisklerine göre belirleneceği için, başta bu değere karar vermeye gerek yok.
Backtest
Stratejilerin getirisinin iyi olup olmadığını anlamak için, geçmiş veriye uygulayarak backtest yapmak gerekir. Ben de bu basit senaryoyu geçmiş bazı haftalarda uyguladım.
Genellikle strateji oluşturmanın zor kısmı burası. Oluşturan senaryoyu geçmişe uygulamanın farklı yolları mevcut. Bu tamamen manuel olarak yapılabilir. Yani kriterleri sağlayan hisseleri ve günleri bulup o gün içersindeki 5 dakikalık mum grafikleri teker teker incelenip, pozisyon giriş ve çıkış kriterlerinin uyduğu durumları bulup buralardaki her pozisyonun getirisini not edip, toplam getiri, pozisyon başına ortalama getiri, kazanan/kaybeden pozisyonların ortalaması gibi backtest sonrası bakılması gereken verilere bakılabilir. Ancak her gün 10larca hisse senedinin bu şartları sağladığı ve her hisse senedinde gene 10larca pozisyon giriş şartlarının oluştuğu düşünülürse bunu bu şekilde manuel yapmak çok zaman alır. Yeterli sayıda verinin test edilmesi için harcanan zaman çok yüksek olacağı için bu şekilde yapmak akıllıca olmaz.
Bunu daha hızlı ve pratik bir şekilde yapmak için, teknolojiden yararlanmak gerekir. Filtreler ile strateji oluşuturup bunların test edilmesini sağlayan uygulamalar mevcut. Bunlardan bir tanesi olan Trade Ideas’tan bahsetmiştim. Eğer strateji senaryosu oradaki mevcut filtreler ile oluşturulabiliyorsa, bu program kullanılarak kolaylıkla backtest yapılabilir. Bunun bir örneğini Bir Short Stratejisi adlı bültende paylaşmıştım.
Bu programın avantajı geçmiş veri de programa dahil, yani geçmiş veriye de aynı zamanda erişmiş olunuyor. Aynı zamanda backtest sonrası gerekli bütün parametreler zaten mevcut. Neredeyse hiç bir ekstra işlem yapmaya gerek yok. Dezavantajı da sadece mevcut filtrelerin kullanılabilmesi, senaryo o filtrelerle oluşturulamıyorsa ne yazık ki bu stratejiyi backtest etmek mümkün olmuyor. Şunu belirtmeliyim ki, çok zengin filtreler mevcut ve epey bir senaryo oluşturulabilir. Ancak benim istediğim stratejiyi oluşturmak gene de mümkün olmadı.
Bu nedenle backtesi başka türlü yapmam gerekti. Öncelikle geçmiş dataya erişim sağlamalıydım. Bunu sağlayan şirketler mevcut. Bunlardan bir tanesi Polygon. Tabi ki bu verilere ulaşmak için belirli ücretler karşılığında üyelik oluşturmak gerekiyor. Bunu yaptıktan sonra bu programların serverlarına bağlanıp bu verileri çekip onlarla işlem yapmak mümkün oluyor. Bu serverlara bağlanmak için de programlamadan yararlanmak gerekiyor. Aynı şekilde dataya erişim sağladıktan sonra bu data üzerinde belirlenen senaryoyu uygulamak da gene kodlama ile çok basit hale geliyor. Kodlamak o kadar basit olmasa da, kodlamayı hallettikten sonraki backtest süreci basitleşiyor.
Bu programlamayı ve kodlamayı kendim yapmak durumunda kaldım. Bu konuda geçmişten gelen çok az tecrübem olduğu için biraz zaman aldı. Elbette hiç tecrübem olmasa bu işe hiç girişmez, dışarıdan sağlamaya çalışırdım. Ancak ileride bir çok backtest için kullanabileceğim bir temel oluşturacak ve kimseye bağlı kalmayacağım için de kendim yapmak istedim. Uzun sürmüş olsa da iyi bir yatırım oldu.
Kodlama için Phyton adlı programalama dilini ve onun etrafındaki araçları kullandım. Bunun sebebi bu dili kodlamanın basit olması, bu dilin trading için çok uygun olması ve yaygın kullanılması idi.
Backtest Sonuçları ve Yorumları
Sonuç itibariyle, bu stratejiyi belirli haftalarda uyguladım ve sonuçlar şu şekilde oldu.
06 Mayıs - 10 Mayıs 2024
İlk başlarda Phyton ile grafik çıkartmayı bilmediğim için her seferinde Excel’de grafik çıkartıyordum.
X ekseninde pozisyon sayısının, Y ekseninde de tradelerin toplanarak giden getirisi görülüyor. Bu grafikten ilk bakışta anlaşılan, stratejinin bu hafta içerisinde toplamda 136 adet pozisyon açtığı ve sonucun %-5 civarlarında olduğu. Yani bu hafta pozisyon başına 1000 dolarlık bir alış yapıyor olsaydım hafta sonunda 50 dolar zararda olacaktım.
Öncelikle bir day trader olarak isteğim her günü pozitif kapatmak. Ancak her gün kazançlı olmayabilir, hisse senetleri her gün istenildiği gibi hareket etmeyebilir. Ancak bu kadar kısa süreli bir zaman diliminde giriş yapılıyor ve bu kadar pozisyon açılıyorsa, haftadan haftada getirinin pozitif olmasını bekliyorum. Test ettiğim ilk hafta negatif çıktı diye stratejiden vazgeçmiyorum ve başka haftaları da test ediyorum.
22 Nisan - 26 Nisan 2024
Bu hafta %66 artıda yani gene 1000 dolarlık giriş yaptığım halde 660 dolar kar ile kapatmış olacaktı. Toplam trade sayısı da 156. Trade sayısının çokluğundan ve grafiğin oynaklığından memnun değilim. Trade sayısının çokluğunu şimdilik göz ardı ediyorum ancak, kazanç grafiği arada düşüşler olsada genel olarak yukarıyı gösteren bir ortalama ile gitmeli. Bu şekildeki iniş çıkışlar hem stratejinin güvenilirliğini sarsıyor hem de uzun vadede karlı olacak olsa bile psikolojik olarak tutunmayı zorlaştırıyor.
Testlere devam ediyor ve haftadan daha uzun peryotlara uyguluyorum.
11 Mart - 29 Mart 2024
Bu seferki süre 3 haftalık.
Sonuç %64 ile gene pozitif, fena da bir sonuç değil ancak grafiğin şekli, ani çıkış ve inişler iyi durmuyor.
Artık stratejide değişiklikler yapmanın gerekliliğine karar veriyorum. Ne denli değişiklikler yapılmasını anlamak için de mevcut pozisyonları incelemek gerekiyor.
Bir strateji oluşturma sürecini ayrıntısıyla burada böylece anlatmış oluyorum. Şimdiki aşama kümülatif getiri grafiğini düzeltecek setupları bulmak.
Stratejinin Yeni Versiyonu
Pozisyonları teker teker incelediğimde, bu kadar çok giriş yapılıyor olması ve bunların çoğunlukla zarar ile kapanıyor olduğu ortaya çıkıyor. Bu zararla kapanan girişlerin çoğunlukla artışın gerçekleştikten sonraki geri çekilimin bitmesi ile başlayan konsolidasyon sürecinde meydana geldiğini görüyorum.
Önceki grafikte göstermek gerekirse boyalı alandaki girişlerin istenilen getiriyi sağlamadığını farkediyorum.
Bir kaç tane daha örnek gösterilebilir.
Görüldüğü gibi bunlar öncelikle çıkış yapan ancak bir daha yukarı hareket etmeyen hisseler. Stratejinin bu tip hisselerde pozisyon açmasını istemiyorum ve giriş şartlarını ona göre değiştiriyorum.
Buna göre yeni giriş şartları şöyle;
hisse senedi fiyatının yeni bir tepe yapmış olması (new high): çıkış yapmış olması bir daha yapabileceğinin göstergesi,
yeni tepeden sonra fiyatın gerilemiş olması (pull back): pozisyona fiyatın pullback yapmasından sonraki çıkışta girilecek,
gerilemenin 3 bardan daha fazla olmaması: gerileme çok fazla olursa konsolidasyon fazı başlamış olma ihtimali yüksek, fiyat yeni bir tepe yapana kadar pozisyona girmemeli.
Bu tip ayrıntıları kodlama vasıtası ile uygulayabiliyorum.
Aynı haftalardaki yeni stratejinin sonuçlarına bakıp getirideki ve getiri grafiğinde gelişme var mı diye bakmak gerekiyor.
Biraz arkası yarın gibi olacak ama bunu bir sonraki bültene bırakıyorum. O sonuçların üzerine yorum yapmak gerekecek ve bu bülteni de daha fazla uzatmak istemediğim için şimdilik burada bırakıyorum. Yeni strateji oluşturma sürecine yeni versiyonun sonuçları ve yorumlarıyla beraber bir sonraki bültende devam edeceğim.