ALGORİTMA SİHİRBAZI
AYNI İNDİKATÖR FARKLI PARAMETRE KULLANAN
FARKLI İNDİKATÖR ORTAK PARAMETRE KULLANAN
STRATEJİLER OLUŞTURMAK VE SONRASINDA GEREKLİ DÜZENLEMELER
Merhaba. Bazen, aynı indikatörü farklı parametrelerle kullanırız. Bunu algoritma sihirbazında oluşturmak için, o indikatörün her parametre seti için ayrıca tekrar eklenmesi gerekir.
İpucu: Çoklu periyod (MTF) kullanmak istediğimizde de, yapmamız gereken budur. Bakınız:
https://destek.matriksdata.com/?qa=5514/algoritma-sihirbazi-ile-%C3%A7oklu-periyod-mtf-ko%C5%9Fulu-yazmak
Bazen de, farklı indikatörleri ortak parametre ile çalıştırırız. Bu durumda ise, kodu Algoritma sihirbazı ile oluşturdu isek, gereğinden fazla sayıda parametre ile karşı karşıya kalırız. Bu durumda, kodun içinde düzenleme yaparak, parametreleri ortaklaştırmamız gerekir.
Bir örnek üzerinden inceleyelim. Veri terminali koşulu şu şekilde olan bir strateji düşünelim.
AL: CROSS(MOV(L,OPT1,VAR), MOST(L,OPT1,OPT2))
SAT: CROSS(OTT(H,OPT3,OPT4),MOV(H,OPT3,VAR))
Burada, AL koşulunda MOV ve MOST indikatörleri, L (Düşük) datasını kullanarak çalışsın isteniyor. Ve periyod olarak (OPT1) aynı parametreyi kullanacaklar.
SAT koşulunda ise, OTT ve MOV indikatörleri H (Yüksek) datasını kullanarak çalışsın isteniyor. Ve periyod olarak (OPT3) aynı parametreyi kullanacaklar.
Algoritma sihirbazında, her bir indikatörün ayrı ayrı eklenmesi gerekir. MOV indikatörünü, 2 ayrı şekilde kullanacağımız için, 2 sefer eklememiz gerekir.
Önce, datayı düşük (L) ve yöntemi VAR seçerek bir Moving Average ekliyorum.
İpucu: Periyod parametresi ve yöntem seçilebilir / değiştirilebilir olarak gelecek, bunu biliyoruz. Ama asıl istediğimiz VAR (değişken) olduğu için, bunu seçiyoruz. İlerde yapacağımız back testlerde ve çalıştırmalarda ön tanımlı olarak bu seçimimiz gelecektir.
İlk indikatörümüz eklendi. Yukarıda görebiliyoruz.
Sonra. Moving Average indikatörünü bir kez daha, bu sefer datayı Yüksek (H) seçerek bir daha ekliyoruz.
Ve peşinden de, datası L olan MOST ve datası H olan OTT ekliyoruz.
Eklediğimiz parametrelerin son durumu aşağıdadır:
Sonraki bölmede, Kalıcı geçici sinyal ve sıralı emir seçimlerimizi yapıyoruz. Bu konuda önceden yayınladığımız yeterince doküman ve video vardır.
Ve koşul kısmına geliyoruz. Elimizde 4 tane indikatör var.
AL koşulumuz şudur: L kullanan MOV, L kullanan MOST’un, MOST çizgisini yukarı keserse.
Seçimimizi buna göre yapıp, ekliyoruz.
Yukarıda AL koşulunu nasıl oluşturduğumuz net olarak görülüyor.
Tabii bir alt bölmeden, bu koşula bağlı AL emrimizi tanımlıyoruz.
SAT koşuluna gelelim.
Bu sefer H kullanan OTT indikatörünün OTT çizgisinin, H kullanan Moving Average indikatörünü yukarı kesmesine göre koşul oluşturacağız.
Ne yaptığımız, yukarıda net olarak görülüyor. Buna da SAT emrimizi tanımlıyoruz.
Ve, stratejiyi oluştur diyoruz. İsim verip kaydediyoruz. Kullanıcı stratejilerimiz içine ekleniyor.
**
DİKKAT: En baştaki veri terminali formülüne bakarsak, ilk MOV ile MOST’un periyod parametresi aynı (ortak) tanımlanmıştır.
AL: CROSS(MOV(L,OPT1,VAR), MOST(L,OPT1,OPT2))
Ve, OTT periyodu ile 2. MOV periyod parametresi de aynı (ortak) tanımlanmıştır.
SAT: CROSS(OTT(H,OPT3,OPT4),MOV(H,OPT3,VAR))
Biz, sihirbaz içinde, bunları ayrı ayrı tanımladığımız için periyod parametreleri birbirinden bağımsız oluşturulur.
Bu şekilde bırakabiliriz ya da ortaklaştırabiliriz. Parametreleri farklı bırakmanın, kendine göre avantajları ve dez avantajları vardır. En sonda, linki verilen dokümanda bu konudan bahsedilmektedir.
Biz burada parametreleri ortaklaştırma işlevini yapacağız. Nasıl yapıldığını göreceğiz.
KOD’un içine biraz bakalım.
Tanımlı 4 tane indikatörümüz var
Bu indikatörlerin kullandığı dataları, farklı periyotlara sahip olduklarını ve yöntemlerini yukarıda görebilirsiniz. Kodun daha üst taraflarında, parametreler kısmında bunların tanımları da var.
MovPeriod1 ve MostPeriod1 ayrı ayrı tanımlanmış durumda. Bizim bu seçenekteki hedefimiz bunların ortak olması.
Nasıl yaparız. Pratik olarak şöyle:
Değişkenler içinden MostPeriod1’i sileriz. Gereksiz yere backtest ya da çalıştırma ekranlarımıza gelip kafamızı karıştırmasın için.
Ve yukarıdaki tanımda MostPeriod1 yerine MovPeriod1 yazabiliriz.
Benzer şekilde,
OttPeriod1 değişkenini parametreler içinden kaldırabiliriz ve yukarıdaki tanımda,
OttPeriod1 yerine MovPeriod2 yazabiliriz.
Karışık gibi görünüyor ama değil.
O periyodlara, MOVperiod – MOSTperiyod – OTTperiyod isimleri vermek yerine opt1 ve opt3 isimlerini verdiğimizi düşünün.
MOV ve MOST için periyod olarak opt1 kullandığımızı
MOV2 ve OTT için periyod olarak opt3 kullandığımız düşünün. Bu şekilde uygulayalım ve görelim.
Sonradan farkı görmek için, stratejiyi kopyalayarak çoğaltıp, onun üzerinde değişiklikleri yapıyorum ve aşağıdaki sonucu alıyorum.
Yukarıdaki resmi 1 önceki ile karşılaştırırsanız, yaptığım düzenlemeyi çok net görebilirsiniz.
Mov ve most indikatörlerinde periyod OPT1 oldu, mov2 ve ott indikatörlerinde ise, periyod OPT3 oldu.
Burada, şunu unutmayalım. Daha yukarıda parametreler kısmında, hedefime uygun düzenlemeler / düzeltmeler yaptım.
İlk halinde:
Şeklinde iken
Düzenlediğim hali şöyle oldu:
Koşullara bakalım:
İpucu: Her 2 durumda da, koşullar aynı kalmaktadır. Çünkü tüm tanımlar yukarıda yapılıyor. İndikatör isimleri / çizgileri değişmiyor.
İlk mov mostu yukarı kesince AL koşulu.
OTT, mov2’yi yukarı kesince ise SAT koşulu olduğunu görebiliriz.
DİKKAT: Bu şekilde, AL ve SAT koşullarını farklılaştırırsak, veya daha da ötesini yapıp periyod parametrelerini de ayrı kullanırsak,
Bir başka ifade ile AL ve SAT koşullarını asimetrik yaparsak, avantaj elde etme olasılığının yanı sıra, RİSK de oluştururuz.
Lütfen linkteki dokümanın
https://www.matriksdata.com/website/bireysel-urunler/matriks-veri-terminali/dokumanlar/sistem-tester-optimizasyon-ip-uclari
Başlığına bakınız.
Bu örnekte oluşturulan stratejide, sisteme zarar STOP’u eklemenizi öneririz.
Hayırlı kazançlar dileriz.