OPTİMİZASYON

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);
   }
}