Sistem modülü altındaki analiz araçları, yatırımcıların kafalarındaki bazı sorulara cevap bulmak amacıyla kullanılmaktadır. Optimizasyon analiz aracı da bu sorular arasından önemli birine cevap bulmak için geliştirilmiştir: AL/SAT Sinyalleri üreten formülünüzdeki stratejinizde kullandığınız değerler veya indikatör parametreleri ne olursa sisteminiz en iyi getiriyi sağlar
Örneğin, iki hareketli ortalamanın birbirini kesmesiyle AL/SAT sinyalleri üreten bir sistem kullanıyorsunuz, ama bu hareketli ortalamaların periyotları ne olmalı?
Veya RSI indikatörünün, belli bir değeri yukarı kesmesiyle AL yapacaksınız, ama RSI HANGİ DEĞERİ YUKARI KESERSE?
İşte bu sorulara cevap bulmak için, stratejinizi içeren sistemi yazdıktan sonra, Optimizasyon Analiz aracından geçirecek birkaç ilave yapıp, sonuçları görebilir ve sonra, bulduğunuz ve uygun gördüğünüz sonuçları gidip sisteminizde değiştirip kullanmaya başlayabilirsiniz.
ÖRNEK-1: Kullanılan İndikatörler MA ve RSI
Strateji: İki Ortalamanın kesişimi VE RSI’ın kendi ortalamasıyla kesişimi
En uygun değeri aranan parametreler: MA1, MA2, RSI ve RSI2ın ortalamasının periyotları
var Kapanis = Sistem.GrafikFiyatSec("Kapanis"); var SonYon=""; for (int P1 = 3; P1 < 11; P1++) { var MA1 = Sistem.MA(Kapanis , "Exp", P1); for (int P2 = 15; P2 < 20; P2++) { var MA2 = Sistem.MA(Kapanis , "Exp", P2); for (int P3 = 6; P3 < 12; P3++) { var RSI = Sistem.RSI(Kapanis , P3); for (int P4 = 2; P4 < 6; P4++) { var RSIAVR = Sistem.MA(RSI , "Exp", P4); for (int i = 1; i < Kapanis.Count; i++) Sistem.Yon[i] = ""; // strateji for (int i = 1; i < Kapanis.Count; i++) { if (RSI[i] > RSIAVR[i] && MA1[i] > MA2[i] && SonYon != "A") // alış { Sistem.Yon[i] = "A"; SonYon="A"; } else if (RSI[i] < RSIAVR[i] && MA1[i] < MA2[i] && SonYon != "S") // satış { Sistem.Yon[i] = "S"; SonYon="S"; } } Sistem.Optimizasyon("MA1,MA2,RSI,AVR", P1 , P2 , P3 , P4); } } } }
ÖRNEK-3: Kullanılan indikatör: Bollinger
Strateji: Fiyatın, Bolinger alt ve üst bandını kesmesi
Aranan değer: Bollinger indikatörünün parametreleri
var Veriler= Sistem.GrafikVerileri; var Kapanislar= Sistem.GrafikFiyatOku(Veriler, "Kapanis"); var SonYon = ""; for (int x = 5; x < 15; x++) { for (double y = 0.1; y < 3; y+=0.1) { var BolingerAlt = Sistem.BollingerDown(Veriler, "Exp", x, y); var BolingerUst = Sistem.BollingerUp(Veriler, "Exp", x, y); for (int i = 1; i < Veriler.Count; i++) Sistem.Yon[i] = ""; for (int i = 1; i < Sistem.BarSayisi; i++) { if (Kapanislar[i] > BolingerUst[i]) { if (SonYon != "A") { Sistem.Yon[i] = "A"; // alış SonYon = "A"; } } if (Kapanislar[i] < BolingerAlt[i]) { if (SonYon != "S") { Sistem.Yon[i] = "S"; // SonYon = "S"; } } } Sistem.Optimizasyon("BollingerParams",x,y); } }