0

Optimizasyon

Optimizasyon


Bu yazıda optimizasyon konusunu detaylı bir şekilde ele alacağız. Öncelikle belirtmeliyim ki kendi kullandığım sistemlerde optimizasyon yapmıyorum fakat mantıklı ve küçük optimizasyonlara da karşı değilim. 


Optimizasyon nedir ?

Sistem yaparken kullandığımız indikatörlerin hangi parametreler ile daha iyi çalışacağı konusunda kararsız kalabiliriz. Örneğin, 2 hareketli ortalamanın kesişimine göre al ve sat sinyali üreten bir sistem yaptığımızı düşünelim. Peki hareketli ortalamaların parametresini nasıl belirleyeceğiz. Bunun için 2 seçeneğiz var. Grafik üzerine hareketli ortalamaları atıp gözünüzle karar verebilirsiniz. 2 seçenek ise; bu parametreleri bilgisayara buldurabilirsiniz. İşte parametreyi bilgisayara buldurma işlemine optimizasyon diyoruz. Bilgisayar bizim için geçmiş tüm grafikleri tarar ve en iyi çalışan parametreleri sıralar. Konuyla ilgili İdeal veri terminali üzerinde bir uygulama yapalım. Sonuçlardan göreceğimiz üzere en iyi çalışan parametreler 20 ve 50. Optimizasyonu yapabilmek için 3 adet veri girmemiz gerekir.

1 - Başlangıç (5)

2 - Bitiş (100)

3 - Adım (1)

Yukarıdaki örnekte şunu demiş oluyoruz. 5'den başla 100'e kadar 1'er adımla say.  Sistemin formül halini görselin altında bulabilirsiniz







            var C = Sistem.GrafikFiyatSec("Kapanis");

            var sonyon = "";



            for (int OPT1 = 5; OPT1 < 25; OPT1 += 5)//optimizasyona 5  den başla 25 e kadar 5 adım git

            {

                var HO1 = Sistem.MA(C, "EXP", OPT1);// İndikatör tanımı


                for (int OPT2 = 50; OPT2 < 100; OPT2 += 5)//optimizasyona 50  den başla 100 e kadar 5 adım git

                {

                    var HO2 = Sistem.MA(C, "EXP", OPT2);// İndikatör tanımı



                    for (int i = 0; i < Sistem.BarSayisi; i++) Sistem.Yon[i] = "";




                for (int i = 0; i<Sistem.BarSayisi;i++)

                    {


                        if (HO1[i] > HO2[i] && sonyon != "A")

                        {

                            Sistem.Yon[i] = "A";

                            sonyon = "A";

                        }


                        if (HO1[i] < HO2[i] && sonyon == "A")

                        {

                            Sistem.Yon[i] = "F";

                            sonyon = "F";

                        }


                    }



                    Sistem.Optimizasyon("OPT1, OPT2", OPT1, OPT2);//İlk parametre açıklama, ikinci parametre optler



            }}



Optimizasyon yapmalı mıyız ?
Yazının başında belirttiğim gibi ben optimizasyon yapmıyorum. Fakat mantıklı yapılan optimizasyonlara karşı değilim. Sistemin içerisindeki her parametreyi optimizasyon yaparsanız bu mantıksız olur. Üstelik şans faktörü devrededir. Raporlarda gördüğünüz getirileri canlı piyasada göremeyeceksiniz. Aynı getiriyi elde edebilmeniz için piyasanın geçmişte yaptığı bütün hareketlerin aynısını tekrarlaması gerekir. Bu durum da imkansızdır. Adı üzerinde canlı piyasa. Hem içeriden hem de dışarıdan gelen haberler ile borsanın seyri bir anda değişebiliyor. Bu sebeple her yeri optimize edilmiş başka bir deyişle makyajlanmış bir sisteme gelecek için güvenmek hayalciliktir. 

Parametreler benim için çok önemli değil. Önemli olan sistemin içerisinde ki mantıktır. Hangi bölgede ne yapmak istiyorsam keskin kurallar ile belirtiyorum. Sistemi bu şekilde dizayn ettiğiniz zaman parametrelere binen yük azalmış oluyor. Doğal olarak optimizasyon yapmıyorum. Çok sıkıştığınız bölümlerde (abartmamak şartı ile) fikir alabilmek için tabii ki optimizasyon yapabilirsiniz. Opt yaptığımız zaman şans faktörünü devreden çıkarmak için optimizasyon aralığını düşürmeliyiz. 

Peki optimizasyon yapılmamış bir sistemde başarılı olabilir miyiz ? Bu konuda bir kaç tane örnek performans göstereyim, kararı siz verin. Backtest aralığı 1 yıldır.


GARAN



AKBNK



THY



ASELS




 Optimizasyon konusuyla ilgili Youtube videom için tıklayınız.


Yorumlar

Yorum Yap

Blog Kategorileri

Son Yazılar

Python ve Algoritmik Trade

26-11-2024 / Algoritmik Trade

Yeni başlayanlar için Algoritmik Trade

26-11-2024 / Algoritmik Trade

Foreks Nedir ?

14-11-2024 / Algoritmik Trade