English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
Rastgele Ormanlar Öngörü Trendleri

Rastgele Ormanlar Öngörü Trendleri

MetaTrader 5Ticaret sistemleri | 14 Ocak 2022, 13:21
129 0
СанСаныч Фоменко
СанСаныч Фоменко

Giriş

Herhangi bir alım satım sistemi kurmanın ilk amacı, örneğin döviz çifti gibi bir piyasa enstrümanının hareketini tahmin etmektir. Tahminlerin amaçları farklı olabilir. Kendimizi trendleri tahmin etmekle veya daha kesin olmak gerekirse, döviz çifti tekliflerinin büyümesini (uzun pozisyonlar) veya düşüşünü (kısa pozisyonlar) tahmin etmekle sınırlayacağız.

Bir yatırımcı, döviz hareketini tahmin etmek için döviz çifti grafiğine birkaç gösterge ekler ve tahmin gücüne sahip bir formasyon bulmaya çalışır.

Bu makale, R istatistik analiz sisteminin bir kitaplığı olan Rattle paketini kullanarak formasyonların otomatik seçimini ve ön değerlendirmesini ele almaktadır.


1. Rattle Hakkında

Finansal piyasaları tahmin ederken ideal döviz çiftlerinin hareket öngörüsü için R'yi kullanacağız. Bunu söylemek gerekirse, R öncelikle kalifiye istatistikçiler için bir programlama dilidir ve birçok yatırımcı için anlaşılmazdır. R'nin karmaşıklığı, öngörü araçlarının çok sayıda olması ve R'nin temel işlevselliğini oluşturan birçok pakete dağılmış olması gerçeğiyle daha da kötüleşir.

Rattle (Kolayca Öğrenmek için R Analitik Aracı), alım satım sistemleri geliştirmek için önemli olan ancak acemilerin ayrı ayrı kullanması kolay olmayan bir dizi R kümesini birleştirir. Rattle ile çalışmaya başlamak için R'yi bilmek ve anlamak zorunda değilsiniz. Rattle ile çalışmanın sonucu, gerçek bir alım satım sistemi geliştirmek için kullanılabilecek R'deki koddur. Ancak bu aşamada R bilgisi gerekli olacaktır.

Her durumda, Rattle bir alım satım sistemi tasarlama aşamasında yeri doldurulamaz bir araçtır. Yeni başlayanların bile çeşitli fikirlerin sonuçlarını hızlı bir şekilde görmelerini ve değerlendirmelerine olanak tanır.

Rattle (Williams, 2009), R'nin (R Developing work group, 2011) bir parçası olan, paket olarak oluşturulmuş açık kaynak kodlu ücretsiz bir yazılımdır. Rattle ve R'nin kaynak kodu ücretsiz bir yazılım olduğu için sınırsız olarak mevcuttur. Rattle kaynak kodu С ile yazılmıştır ve kullanıcıların kodu incelemesine, test etmesine ve genişletmesine izin verilir ve teşvik edilir.


2. Kaynak Verilerin Açıklaması

Bu makalede yapılan hesaplamalar, 10.01.2011 - 24.12.2013 dönemi Н1 zaman dilimindeki kapanış fiyatları ile EURUSD, GBPUSD, USDCHF, USDJPY, EURGBP, USDCAD altı döviz çiftinin kotasyonlarını içeren bir veri kümesine dayanmaktadır. Veriler, hesaplamayı güvenilir kılan 18 000 çubuğu geçmektedir. Yukarıdaki döviz çiftlerine dayanan veri kümesi, uzun ve kısa pozisyonları öngören formasyonları aramak için kullanılmıştır.

Başlangıç teklifli veri kümesi ekteki kot60_110101_131231_UA.txt dosyasında bulunabilir.


2.1. Hedef Değişken Oluşturma

İlk aşamada tam olarak ne tahmin edeceğimizi tanımlamamız gereklidir. Basit gibi görünse de, tahmin için doğru hedefi seçmek ve bu hedefi bir dizi sayı olarak sunacak veriler temeldir.

Bir trendi tahmin etme fikrine gelince, bir trendle alım satım yapma arzusuna dayanır.

"Trend" tanımına göre, "bir yükseliş trendi, birbirini izleyen her bir fiyatın daha önce bulunan değerden daha yüksek olduğu zamandır" ve düşüş trendinin tersidir. Dolayısıyla, döviz çiftinin fiyatını tahmin etme gerekliliği tanımdan kaynaklanmaktadır. EURUSD için başlangıç kuru 1.3500 ve tahmin edilen ise 1.3550'dir, bu bir yükseliş trendidir ve satın almaya sevk eder.

Ancak, temel talimatlar "al" ve "sat" iken, tahmin fiyat seviyesi içindir. Örneğin, bir seviye kırılmasını tahmin etmek için alım satım sistemlerinde fiyat seviyesi kullanılır. Trendlerde alım satım işlemi yapma fikrini uygulamak için ek bir fiyat karşılaştırması yapılmalıdır. Görünüşe göre, işlem yapacağımız şeyden farklı bir şey öngörüyoruz!

Bu nedenle, alım satım sistemi tasarıma göre trendi takip ediyorsa, modelin trendleri öngörmesi gerekir. Model trendleri tanımak için eğitilmelidir, hedef değişken sadece "al" ve "sat" olmak üzere iki değer almalıdır. Kod (kategorik) şekli içinde, hedef değişken "1" ve "-1" gibi görünecektir.

Bir finansal enstrümanın fiyatını hesaplamak için kaynak veri popülasyonunu kullanan modeller ile kaynak veri popülasyonunu bir sınıfa bağlayan modeller arasında temel bir fark vardır. Birinci tür modeller regresyon modellerine, ikinci tür modeller ise sınıflandırma modellerine aittir.

Bazı gelecekteki değerleri hesaplamak için regresyon tipi öngörü modelleri kullanılır. Bu gelecekte, öngörülenle karşılaştırmak için gerçek değere sahip olacağız.

Sınıflandırma türündeki öngörü modelleri, tahmin anında alınan kaynak veri popülasyonunun bağlı olacağı sınıfın hesaplanması için kullanılır. "Uzun" ve "kısa" olmak üzere iki sınıf olacaktır. Diğer herhangi bir nitelik türü modelinde olduğu gibi, bu iki sınıfın da belirli bir boyutu yoktur. Dolayısıyla, "uzun" sınıf, "kısa" sınıf ile karşılaştırılamaz. Kolaylık olması açısından "uzun"u "1" ve "kısa"yı "0" olarak kodlayacak olsak da, bu "uzun"un "kısa"dan büyük olduğu anlamına gelmez. Bunu vurgulamak için, bu tür nitel değişkenler için R ve sonuç olarak Rattle, özelleştirilmiş bir kategorik (nominal) değişken türüne sahiptir.

Hedef değişken olarak uzun ve kısa pozisyonlar mevcut değildir ve aşağıda açıklanan bağımsız değişkenlerden temel fark budur. Bu bakış açısı, şimdiki zamanda var olmayan bir geleceği tahmin edebileceğimiz gerçeğiyle aynı fikirdir. Geleceği geçmişle ilgili olarak bildiğimiz için, trendleri geçmişe yönelik veriler üzerinde iyi bir şekilde çizebiliriz.

Trendleri geçmişe yönelik verilerde ayırt etmek için ZigZag kullanacağız. Bu, geçmişe yönelik veriler için mükemmel bir göstergedir ve son bağlantı ve bazen önceki bağlantı yeniden çizildiği için gerçek veriler için işe yaramaz. Geçmişe yönelik veriler üzerinde dinamik olmadığı için bu gösterge ile çok güzel trendler çizebiliriz.

Hedef değişkeni hesaplamak için "ters dönüş noktaları arasındaki mesafe" parametresi 0,0035 dolara eşit olan ZigZag göstergesi kullanılmıştır. Şekil 1 sonucu temsil eder.

Şek.1. ZigZag göstergesi

Şek. 1. ZigZag göstergesi

Şimdi, gösterge değerleri "uzun" = 1 ve "kısa" = 0 olan kategorik bir değere dönüştürülecektir. 

Sonuç Şekil 2'de gösterilmektedir.

Şek.2. Kategorik biçimdeki ZigZag göstergesi

Şek. 2. Kategorik biçimde ZigZag göstergesi

Son operasyonu hedef değişken ile gerçekleştirelim. ZigZag göstergesini sola kaydırırsak, mevcut çubuk ZigZag göstergesinin gelecekteki değerine karşılık gelecektir. Bu makalede kaydırma, bir saat önceden kullanılan veriler için bir adım ilerisinin tahminine eşit olan çubukla yapılır.

Kaydırma daha fazla sayıda çubuk için yapılabilir ve daha fazla sayıda çubuk için bir tahminle ilişkilendirilecektir. Bu yaklaşım, önceki değerin, tahmin hatalarının bir toplamına yol açan birkaç gelecekteki değeri tahmin etmek için kullanılabileceği diğer tahmine dayalı yaklaşımlardan farklıdır.

Bu makalede vurgulanan modellerin yanı sıra genel sınıflandırma modelleri de hata biriktirmez. Sınıflandırma modellerindeki iki çubuk ilerisi için tahmin, bir çubuk ilerisi için tahmin hatasıyla hiçbir şekilde bağlantılı olmayan kendi tahmin hatasına sahiptir.


2.2. Bağımsız Değişkenler Oluşturma

Bağımsız değişkenler veya öngörücüler, modele dışarıdan geldikleri için bu adı alırlar. Bunlar hariçtir, ölçülebilir değişkenler veya bu harici değişkenlere dayalı olarak hesaplanan değişkenlerdir. Döviz çiftlerindeki teklifler dahil olmak üzere herhangi ekonomik ve finansal veri, değerleri piyasa aktör faaliyetlerinin sonucu olduğu için bağımsız değişkenlerdir. Teknik göstergelerden alınan veriler, kotasyonlara göre hesaplandığı için aynı kategoriye aittir.

Bağımsız değişkenlerin seçimi, hedef değişkenin seçimi kadar önemlidir. Aslında modellemenin başarısını belirleyen bağımsız değişkenlerin seçilmesidir. Modelin geliştirilmesi için harcanan zamanın çoğu, bir dizi bağımsız değişkenin analizine ve seçimine ayrılmıştır.

kot60_110101_131231_UA kaynak dosyasındaki döviz çifti, saat ve tarih içeren altı tane fiyat teklifi, öngörücü olarak tanımlanabilir.

Bu yöntemin perspektifinden zaman ve veriler oldukça ilginçtir. Alım satım sistemlerinde zaman ve veri kullanma girişimleri her zaman olmuştur. Modellerimizde, günün saatine ve haftanın gününe bağlı bazı gizli veriler dikkate alınarak, otomatik olarak sınıflandırma modelleri ortaya çıkarılabilmektedir. Burada yapılacak tek şey bu iki değişkeni kategorik forma dönüştürmektir. Zaman, 24 seviyeli bir kategori haline gelmektedir ve tarih de, hafta günlerinin sayısını eşleştirmek için beş seviyeli kategorik bir değişken haline gelmektir.

Kaynak öngörücülerinin yanı sıra, benim görüşümdeki kaynak tekliflerdeki trendlerin varlığını ortaya çıkaran ek öngörücüler oluşturacağız. Ek öngörücüler oluşturmak için iyi bilinen göstergeleri kullanacağız.

Aşağıdaki göstergeler kullanılacaktır: 14,21,28 dönemli 5,10 ve 15; MACD(12,26,9), RSI. Bunların üzerinde teklif artışlarını ve hareketli ortalamaları kullanacağız. Bu dönüşümlerin hepsi, altı döviz çifti teklifinin tümüne uygulanacaktır.

ZigZag göstergesi, destekleyici amaçlar için bağımsız değişkenlerin sayısına dahil edilecektir. En sağ çubuktaki değer bilinmediğinden model geliştirmek için kullanılmayacaktır.

Yani, bir hedef değişken ve bir hizmet değişkeni (ZigZag) olmak üzere 88 bağımsız değişkenimiz vardır. Her bir değişken için veri miktarı 18083 çubuktur.

Bu veri kümesi R çalışma alanı biçimindedir ve TC.RData adıyla bu makalenin ekinde bulunabilir. Bu veri kümesi aşağıdaki gibi kullanılabilir:

  • R yükleyin;
  • Rattle kitaplığını yükleyin;
  • Dosya/Çalışma Alanı sekmesi;
  • diskteki TC.RData dosyasını bulun ve yükleyin.

3. Kaynak Verilerin Akıllı Analizi

Rattle paketi, ön veya akıllı veri işleme - veri madenciliği için bir dizi araç sunar.

3.1. Girdi ve Önizleme

Yukarıdaki bölümde belirtilen eylemleri gerçekleştirdikten sonra mevcut olan bazı fırsatları ele alalım.

Sonuç, Şekil 3'te gösterilen resimde görülebilir.

Şek. 3. Rattle giriş ekranı

Şek. 3. Rattle giriş ekranı

Rattle'da model geliştirme, Veri sekmesinden Log sekmesine geçerken gerçekleşmektedir.

Rattle'ın ilk sekmesi Veri'dir. Bu sekme adına uygun olarak, gelecekte üzerinde çalışılabilecek verilerin yüklenmesine izin verir.

Elektronik Tablolar ve R Veri Kümesi düğmeleri bizi ilgilendirir.

Elektronik Tablolar düğmesi, Excel dosyalarının yüklenmesine izin verir. Eğer okuyucu fikirlerini test etmek isterse, kendi Excel dosyasını hazırlayabilir ve ardından Rattle'ı deneyebilir.

Bu makalede açıklanan eylemleri tekrarlamak veya bu makaleye eklenmiş ham verileri içeren bir dosya ile bazı ek eylemler gerçekleştirmek için R Veri Kümesi düğmesini kullanın. Bu düğme dosyayı R biçiminde yükler. Dosyaya "Çalışma Dizini" veya "Çalışma dosyası" denir. .RData diskinde uzantısı vardır. Bu dosya R'ye yüklenebilir ve sonrasında bu butona tıklanarak erişilebilir hale gelir.

Hazırladığımız dosyayı yükleyip Şekil 4'teki resmin üst kısmını ve Şekil 5'teki resmin alt kısmını alın.

Şek. 4 Kaynak dosyanın üst kısmı

Şek. 4. Kaynak dosyanın üst kısmı

Şek. 5 Kaynak dosyanın alt kısmı

Şek. 5. Kaynak dosyanın alt kısmı



3.2. Hedef Değişkenin Bağımsız Değişkenlerle Korelasyonu

Not. "Çalıştır" düğmesi çok önemli bir rol oynamaktadır. Eylem hazırlanır, ancak gerçekleştirilmez. Herhangi bir eylemi yerine getirmek için "Çalıştır" düğmesine basın. Bu, bu makalede açıklanan eylemlerin tekrarında her zaman yapılmalıdır.

Şekil 4, değişkenlerin listesini, özelliklerini ve bu değişkenlerin rolünü göstermektedir. Modellerde ZigZag göstergesini kullanmayacağımız ve bir türlü yapamayacağımız için yok sayılacak yani Yoksay olarak ayarlayacağız.

Hedef değişken olarak kullanılan son değişken dışında diğer değişkenler girdi olarak kullanılır.

Bölme düğmesi, modelleme sonuçlarına olan güven seviyesinin doğrulanması için önemli bir rol oynar. Gerekli olduğunda bu düğme kullanılarak veri kümesi üç bölüme ayrılabilir. Modelin eğitimi, doğrulanması ve test edilmesi için kullanılan veri kümesi oranları bu aşamada belirlenir.

Sonraki alanda, yalancı rastgele sayıların algılayıcısı için çekirdek belirtilir. Örneğin, eğitim veri kümesi için toplanan kaynak verilerin %70'i kaynak veri kümesinden rastgele seçilir. Sonuç olarak, %15'in diğer iki kısmı da (bizim durumumuzda olduğu gibi) rastgele çubuk dizileridir.

Bu nedenle kaynak veri kümesinden Çekirdeği değiştirerek, tanımsız miktarda çeşitli eğitim ve diğer veri kümeleri elde edilebilir.

Şek. 6 Değişkenlerin korelasyonu

Şek. 6. Değişkenlerin korelasyonu

Alınan tabloda ZZ.35 adında bir sütun bulun. Aşağıdaki tabloda gösterilen örnek bu sütundan alınmıştır.

Değişken
ZZ.35
 RSI_cad.14
 -0.0104122177
 JPY.dif2
 -0.0088412685
 EUR.dif3
 -0.0052379279
 CHF.dif3
 -0.0049692265
 GBP.dif3
 -0.0047409208
 GBP.dif1
  0.0044691430
 MA_cad.15.dif1
 -0.0039004722
 JPY.dif1
 -0.0023831247
 GBP.dif2
 -0.0015356091
 EUR.dif2
 -0.0013759749
 CHF.dif2
 -0.0012447101
 EUR.dif1
 0.0005863149
 MA_cad.10.dif1
 0.0023981433
 CHF.dif1
 0.0024543973
 MA_gbp.5.dif1
 0.0043757197
 MA_cad.5.dif1
 0.0075424397
 MA_gbp.10.dif1
 0.0094964069
 EURGBP.dif1
 0.0095990416
 CAD.dif1
 0.0110571043

Tablo 1.  Değişkenlerin Korelasyonu

Gördüğümüz gibi, ZZ.35 ile 0.01'den daha az korelasyona sahip oldukça uzun bir değişken listesi var. 0,1'den küçük korelasyon düzeyi, bağımsız değişkenlerin hedef değişken üzerindeki etkisi hakkında herhangi bir sonuca varılmasına izin vermez.

Bu aşamada bu gerçeği not edeceğiz ve modeller değerlendirildikten sonra uygun şekilde kullanacağız.

Sınıflandırma modellerinde, öngörücülerin hedef değişken üzerindeki etki derecesi çok önemli bir rol oynamaktadır. Düşük korelasyon seviyesinde eşleşen öngörücünün, modelin yeniden eğitilmesine yol açan gürültü olduğuna inanılmaktadır. Modelin yeniden eğitilmesi, modelin hedef değişken için önemsiz ayrıntıları ve öngörücüleri hesaba katmaya başlamasıdır.

Korelasyon seviyesine ilişkin herhangi bir öneri bulunmamaktadır. Genellikle sihirli istatistik sayısını kullanırlar - %5. Esasında yanlıştır. Modelde gürültü olan öngörücülerin çıkarılması, öngörü hatasının azalmasına yol açar. Modelde gürültü olmayan bir öngörücünün çıkarılması, öngörü hatasının artmasına neden olur. Bu nedenle, model için faydalı olan minimum öngörücü listesi deneme yoluyla belirlenir.


3.3. Ölçeklendirme

Destek vektör makineleri (SVM) gibi bazı modeller, farklı tahmin yöntemi ölçeklerine karşı çok hassastır, bu da şu anlama gelir. Mesela, EURUSD döviz çiftine ilişkin veriler 0,5 limiti içinde değişirken, USDJPY birkaç düzine birim içinde değişir. Farklı öngörücü ölçeklerinii hariç tutmak için, Dönüştür sekmesindeki tek bir ölçeğe getirilmeleri gereklidir. Öngörücü dalgalanmalarının [0-1] limiti içinde olması tercih edilir.

Ölçekledirme yapmak için Dönüştür/Yeniden Ölçekle/Ölçekle [0-1] öğesini seçin. Bundan sonra tüm değişkenleri işaretliyoruz ve "Çalıştır" düğmesine basıyoruz.


3.4. Kategorik Forma Dönüştürme

Kategorik biçime dönüştürme, sayısal bir değişken değerinin birkaç seviyeli bir faktöre dönüştürülmesine olanak tanır. RSI göstergesi, çok seviyeli bir faktöre dönüştürülen ilk göstergedir. Değerleri sıfıra veya 100'e yaklaştığında trendin tersine döndüğüne inanılmaktadır.

RSI göstergesinin değerlerini kategorik forma dönüştürmek için şunu seçin: Dönüştür/Yeniden Kodla/KMeans. Bunu yaparak, faktör seviyelerinin sayısını 8 olarak ayarlayın. Tüm RSI göstergelerini işaretleyin ve "Çalıştır" a basın.

ZZ.35 değişkenini Yoksay olarak ayarladıktan sonra model geliştirmeye geçebiliriz.


4. Sınıflandırma Modelinin Genel Algoritması

Rattle'da aşağıdaki modeller mevcuttur:

  • ağaç benzeri sınıflandırma modeli (Ağaç);
  • rastgele orman modeli (orman);
  • ağaçlandırma modeli (ada);
  • destek vektör makineleri modeli (SVM);
  • genelleştirilmiş doğrusal model (glm);
  • nöral ağ modeli (NNET).

Sınıflandırma modelleri arasında temel farklar olmasına rağmen (yalnızca Rattle'da bulunanlardan bahsetmiyoruz) aşağıda açıklandığı gibi hepsinin ortak özellikleri vardır.

Dizileri (bizim durumumuzda sayı 18030'dur), öngörücü değerlerini (bizim durumumuzda 88) ve hedef değişkenin değerini ("uzun" ve "kısa") içeren bir eğitim kümesi alalım.

Sınıflandırma algoritmaları, "uzun"a karşılık gelen öngörücü değerlerin kombinasyonlarını "kısa"ya karşılık gelen öngörücü değerlerin kombinasyonlarından ayırma problemine değinir. Bu bir model eğitim aşamasıdır.

Ardından model doğrulama aşamasına geçilir.

Kaynak veri kümesini üç parçaya böldüğümüzde, başka bir veri kümesi alırız ve eğitim aşamasında alınanlarla karşılaştırılan öngörücü kombinasyonlarını ele alırız. Öngörürücünün "kısa" veya "uzun" e ait olması her kombinasyonunu belirler. Doğrulama veri kümesi bu bilinen değerleri içerdiği için, sonuç gerçek verilerle karşılaştırılır. Gerçek uzun ve kısa pozisyonların tahmin edilenlere oranı tahmin hatasıdır.

Sonuç bizimkine uyumlu değilse, sonucu iyileştirmek için akıllı veri analizi aşamasına dönebiliriz. Ne yazık ki, bu aşamanın kalitesi tamamen yatırımcı deneyimiyle belirlenmektedir. Kaynak veri kümesinde değişiklikler yapılır ve ardından tekrar bir model geliştirilir.

Eğitim ve doğrulama veri kümelerinde elde edilen sonuçları tatmin edici bulursak, test veri kümesindeki modeli yani kullanılmayan modeli doğrularız.

Model kalitesi, yalnızca küçük bir tahmin hatasıyla değil, aynı zamanda bu hatanın farklı veri kümelerindeki değerleri arasında olan küçük farklılıklar da tanımlanır. Bu, modelin sağlamlığını ve yeniden eğitimin veya yatırımcıların buna ultra ayarlama eksikliğini gösterir.

Bu makalede sadece detaylı olarak rastgele orman modeli incelenecektir.


5. Rastgele Orman Modeli

5.1. Özet

Bir yatırımcının çalışma algoritması aşağıdaki gibidir. Döviz çifti teklifine bir dizi gösterge eklenir ve mevcut tekliflerin ve gösterge verilerinin toplamı değerlendirilerek bir alım satım kararı verilir.

En basit alım satım sistemi olan "Hareketli Ortalama"da, cari fiyat hareketli ortalamanın üzerindeyse alınır, altındaysa satılır. RSI göstergesinden alınan veriler gibi ek koşullar da ekleyebilirler. Sonuç olarak, yatırımcı bir karar ağacı alır. O ağacın yapraklarında döviz çiftinin fiyatları, hareketli ortalamanın değerleri ve RSI göstergesi vardır. Ağacın kökü yalnızca iki değer içerir - "al" ve "sat".

Tanımlanan ağaç oluşturma süreci, sınıflandırma ağaçları modelinde otomatikleştirildi. Sonuç olarak, yalnızca tek bir ağaç vardır veya yatırımcıların argosunda tek bir kalıp vardır.

Tek bir ağacın algoritması kesin modeller oluşturamaz çünkü çeşitlilik, ayrı karar ağaçları oluştururken görülebilen kararsızlığa yol açar.

Bir okuyucu, Rattle'daki Ağaç modelini kullanarak bu ifadeyi kendisi doğrulayabilir. Bu model, tanımlanan bir ağaç oluşturma algoritması uygular.

Rastgele orman modelinin fikri, modele sadece bir tane değil, birçok sınıflandırma ağacının (formasyonunun) dahil edilmesidir. Bu nedenle, rastgele orman, veri değişikliklerine ve gürültüye (yani hedef değişken üzerinde çok az etkisi olan değişkenler) karşı daha yüksek direnç gösterme eğilimindedir.

Rastgele orman algoritması tarafından kullanılan rastgelelik, hem tablo satırlarının (gözlemler) hem de öngörücülerin seçmede kendini gösterir. Bu rastgelelik, tek başına ağaç benzeri bir sınıflandırıcı ile karşılaştırıldığında gürültüye, aykırı değerlere ve yeniden eğitime karşı önemli olan bir direnci tanımlamaktadır.

Ayrıca olasılık da önemli bir hesaplama verimliliği tanımlar. Model geliştiricisi tek başına karar ağacı oluşturarak, eğitim veri kümesinde bulunan rastgele bir gözlem alt kümesi seçebilir. Bir taraftan ağaç oluşturma sürecinin her düğümünde, veri kümesini bölmede en iyi oranı oluştururken mevcut tüm değişkenlerin yalnızca küçük bir bölümünü ele alırlar. Hesaplama performansına yönelik gerekliliklerin önemli ölçüde rahatlamasına yol açar.

Bu nedenle rastgele orman modeli, modeller geliştirmek için çeşitli nedenler dolayısıyla iyi bir seçimdir. Verilerin normalleştirilmesi gerekmediği ve yaklaşım aykırı değerlere karşı esnek olduğu için genellikle küçük bir ön veri işleme gereklidir. Algoritma kendi değişken kümesini verimli bir şekilde seçtiği için değişken seçme zorunluluğundan kaçınılabilir. İki rastgelelik düzeyi (gözlemler ve öngörücüler) kullanılarak birçok ağaç oluşturulduğundan, her ağaç verimli bağımsız bir modeldir. Bu model, eğitim veri kümesinde yeniden eğitime yatkın değildir.

Rastgele orman algoritmaları genellikle 100 ila 500 ağaç üretir. Nihai model geliştirildiğinde her ağacın verdiği karar, ağaçları eşit olarak işleyerek bütünleştirilir. Ağaçların birleştirilmesine ilişkin nihai karar, bileşen ağaçların büyük bir kısmına ilişkin karar olacaktır. Eğer 100 üzerinden 51 ağaç "uzun" noktasında ise, "uzun" değeri daha az güvenle kabul edilecektir.


5.2. Algoritma

5.2.1. Veri Kümesinden Örnek Oluşturma

Rastgele ağaç oluşturma algoritması, örnek oluşturma sürecine rasgeleliği dahil etmek için önyükleme toplama veya kısaca torbalama kullanarak birçok karar ağacı oluşturur. Önyükleme toplama, rastgele bir gözlem örneğini bir torbada toplama fikridir. Rastgele bir sırayla oluşturulan birçok torba, eğitim veri kümesi üzerindeki kaynak gözlemlerden alınan seçilmiş gözlemlerden oluşur.

Torbalara birleştirme, yerine koyma ile gerçekleştirilir. Bu, her gözlemin belirli bir torbada birden fazla görünme şansı olduğu anlamına gelir. Örnek boyut genellikle veri kümesi ile tam olarak aynıdır. Uygulama, gözlemlerin üçte ikisinin torbaya (tekrarlarla) dahil edileceğini ve üçte birinin dikkate alınmayacağını göstermektedir. Her gözlem torbası, karar ağacı oluşturmak için bir eğitim veri kümesi olarak kullanılır. Hesaplanmayan gözlemler, sonucu değerlendirmek için bağımsız bir örnek olarak kullanılabilir.


5.2.2. Öngörücülerin Seçimini Oluşturma

Rastgeleliğin ikinci temel unsuru, bir veri kümesini bölmenin öngörücülerin seçimi ile ilgili olmasıdır. Ayrı bir karar düğümü oluşturmanın her adımında, yani bir ağacın her bölünme noktasında, rastgele ve genellikle küçük bir öngörücü kümesi seçilir. Yalnızca bölünme noktasında seçilen öngörücüler dikkate alınır. Ağaç oluşturmada her düğüm için farklı bir rastgele öngörücü kümesini dikkate alırlar.


5.2.3. Rastgelelik

Hem verinin hem de değişkenlerin rastgele kümelerini biçimlendirerek, veri alt kümesine bağlı olarak çeşitli sonuçlara sahip karar ağaçları alırlar. Bu değişiklik bu ağaç topluluğuna, en güvenilir tahmini yapan, farklı yeterlilik seviyelerine sahip, işbirliği yapan uzmanlardan oluşan bir ekip olarak bakmanıza olanak tanır.

Örnek oluşturmanın başka anlamlı bir avantajı daha vardır - hesaplama verimliliği. Bir veri kümesini bölerken toplam öngörücü sayısının sadece küçük bir kısmını ele almak, gerekli hesaplamaların hacmini önemli ölçüde azaltır.

Her karar ağacı oluşturulurken, genellikle rastgele ağaç biçimlendirme algoritması karar ağaçlarını kesmez. Ultra ayarlanmış ağaçlara sahip rastgele bir orman, yeni veriler üzerinde çalışan çok iyi bir model geliştirebilir.


5.2.4. Bütünleşmiş Kod Hesaplama

Birçok karar ağacını tek bir model olarak ele alırken, nihai karar verirken her ağaç eşit derecede önemlidir. Basit çoğunluk sonucu belirler. Bu, bölmelerin %51'inin ve bölmelerin %99'unun aynı sınıfı üreteceği anlamına gelir, örneğin "uzun".

Rattle tarafından yapılan hesaplamalar, kullanıcı sonucu sınıf biçiminde aldığı için kısmidir. Model R'de kullanılırsa, sınıf olasılığı biçimindeki sonuçlar kullanılabilir hale gelir.


5.3. Rastgele Orman Modeli Geliştirme

Model oluşturmak için Model/Orman'ı seçin. Kaynak verilerimiz için başlatılan modelin hesaplanması birkaç dakika sürecektir.

Hesaplamanın sonucunu birkaç parçaya böleceğim ve her biri hakkında yorum yapacağım.

Şekil 7'de verilen sonuçları gözden geçirelim.

Şek. 7 Rastgele orman modeli ayarlama sonuçlarının üst kısmı

Şek. 7. Rastgele orman modeli ayarlama sonuçlarının üst kısmı

Bu şekildeki ilgili bazı bilgiler vurgulanmalıdır.

TREND burada hedef değişkendir.

Bu model yapılırken 500 ağaç oluşturulmuştur. Ağacın her düğümündeki bölme işleminde 9 öngörücü (değişkenler) kullanılmıştır. Bi taraftan Errors ve OOB ROC düğmeleri de özel ilgi alanımızdır.

Ardından, şunun gibi tahmin hatalarını takip edin:

OOB hata oranı tahmini: 15.97%

Karışıklık matrisi:


01class.error
0496011630.1899396
18585677 0.1312930

Tablo 2. Hata Matrisinin Eğitim Kümesi için Beklenmedik Durum Tablosu

"Çanta çıkış hatası %15.97" şeklinde yorumlanmalıdır.

Elde edilen öngörü hatası önemlidir. Nasıl elde edildiğini veya "çantadan" elde edilip edilmediğini kesin olarak anlamak önemlidir. Bu modeli geliştirmek için eğitim veri kümesinin sadece bir kısmı kullanıldı. Bu model de kaynak veri kümesinin %70'ini oluşturmaktadır. Bu modeli oluşturmak için eğitim veri kümesinin yaklaşık %60'ı kullanılmıştır ve %40'ı kullanılmamıştır. Verilerin %40'ına "Çantadan" denir. Bu verilerde %15.97 öngörü hatası alınmıştır.

Hareketli.

Beklenmedik Durum tablosu veya hata matrisi aşağıdaki şekilde yorumlanır. 

En üst sıra, tahmin edilen kısa ve uzun pozisyonları içerir. Sol taraftaki sütun, ZigZag göstergesinden alınan geçmişe yönelik veriler için gerçek kısa ve uzun pozisyonları içeren bir sütundur.

(0,0) koordinatlı 4960 değeri, doğru tahmin edilen kısa ve uzun pozisyonların sayısıdır. 1163'ün bir sonraki değeri, uzun pozisyonlar olarak tahmin edilen kısa pozisyonların sayısıdır.

(1,0) koordinatlı 858 değeri, kısa pozisyonlar olarak tahmin edilen uzun pozisyonların sayısıdır. 5677 değeri, doğru tahmin edilen uzun pozisyonların sayısıdır.

Ardından modelleme sonuçlarına geçiyoruz.

Aşağıda, modelin tüm değişkenlerini içeren büyük tablonun birkaç satırı bulunmaktadır. Bu, değişkenlerin önem tablosudur.


01MeanDecreaseAccuracyMeanDecreaseGini
MA_eur.5.dif142.9741.8554.86 321.86
EUR.dif337.2146.3851.80177.34
RSI_eur.14 37.7040.1150.75254.61
EUR.dif2 24.6631.6438.24110.83
MA_eur.10.dif122.9425.3931.48193.08
CHF.dif3  22.9123.4230.1573.36
MA_chf.5.dif1  21.8123.2429.56135.34

Tablo 3. Rastgele Orman Modelinde Değişkenlerin Önemi

Değişkenlerin önemine ilişkin çeşitli değerlendirmeler vardır. Buradaki "önem" kelimesi, belirli bir değişkenin hedef değişken üzerindeki etki derecesini yansıtır. Değer ne kadar büyük olursa, değişken o kadar "önemli" olur.

Bu tablo, en az anlamlı değerleri modelden hariç tutmak için veri sağlamaktadır. İstatistikte ve özellikle sınıflandırmada, model doğruluğundan ödün verilmediği sürece model ne kadar basitse o kadar iyidir.

Hatalar düğmesi, Model sekmesindeki son önemli şeydir. Basarak Şekil 8'i alacağız.

Şek. 8 Modelleme hatasının ağaç sayısına bağımlılığı

Şek. 8. Modelleme hatasının ağaç sayısına bağımlılığı

6. Model Verimliliği

Model verimliliğinin değerlendirilmesi, Rattle'ın seçenekler kümesine erişim sağladığı Değerlendir sekmesinde gerçekleştirilir.

Model verimliliği değerlendirmesinin mevcut seçenekleri listesinde daha önce Beklendmedik Durum Tablosu olarak adlandırılan Hata Matrisini kullanacağız.

Model sekmesinden Değerlendir sekmesine geçtiğinizde, oluşturulan modellerin sonuncusu otomatik olarak işaretlenecektir. Rattle'daki genel çalışma prensibine uymaktadır: Bir model oluşturup kurarız ve ardından Değerlendir sekmesinde verimliliğini keşfederiz.

Bir modelin değerlendirilmesinde, kontrolü gerçekleştirmek için veri kümesi belirtilmelidir. Rattle arayüzündeki sonraki seçenek satırı, bir dizi alternatif veri kaynağıdır.

Veri için olan ilk dört seçenek, Veri sekmesinde belirtilen veri kümesinin bölünmesine karşılık gelir. Seçenekler Eğitim, Doğrulama, Test ve Tamamıdır (tüm küme). Veri kümesini eğitim, doğrulama ve test kümelerine bölmek daha önce zaten tartışılmıştır.

İlk seçeneğin, eğitim veri kümesindeki modeli doğrulaması beklenir. Genellikle bu iyi bir fikir değildir. Modelin eğitim veri kümesinde değerlendirilmesiyle ilgili sorun, modelin bu veri kümesi üzerine kurulmuş olmasıdır. Model orada, başlangıçta elde etmeye çalıştığımız şey olduğu için iyi bir sonuç verecektir. Model, önceden bilinmeyen veriler üzerinde kullanılmak üzere tasarlanmıştır.

Modelin yeni veriler üzerinde iyi performans göstermesini sağlamak için bir benzerlik gereklidir. Aynı zamanda, model ve gerçek verilerde tahminler arasındaki farkı yansıtan model hatalarının gerçek bir derecelendirmesini elde ederiz. Eğitim kümesini değil, bu bilinmeyen veri kümesinin hata derecelendirmesini yapmak, model verimliliğini değerlendirmenin en iyi yoludur.

Doğrulama veri kümesini, oluşturmada ve kurulumda model verimliliğinin doğrulanması için kullanırız. Dolayısıyla model oluşturulduktan sonra, bu verimliliği doğrulama veri kümesinde doğrulanacaktır. Bir modeli oluşturmak için bazı ayar seçenekleri değiştirilebilir. Doğrulama veri kümesine dayanarak yeni modeli eskisine göre verimliliğini karşılaştırıyoruz. Bu anlamda, nihai modelin geliştirilmesi için modellemede doğrulama veri kümesi kullanılmaktadır. Bu nedenle doğrulama veri kümesine güvenirsek, model verimliliğimizde hala kaydırılan bir tahmin vardır.

Test veri kümesi, modelin oluşturulmasında hiç kullanılmayan bir veri kümesidir. Eğitim ve Doğrulama veri kümesine dayalı “en iyi” modeli belirlediğimiz anda, Test veri kümesinde de modelin verimliliğini tahmin edebiliriz. Bu, herhangi yeni bir veriden beklenen verimliliğin değerlendirilmesidir. Dördüncü seçenek, modeli değerlendirmek için Tam veri kümesini kullanır. Tam veri kümesi Eğitim, Doğrulama ve Test veri kümesidir. Bu meraktan başka bir şey değildir ve kesin veriler elde etme girişimi hiç değildir.

Örnek girişi yoluyla veri kaynağı olarak sunulan başka bir uygun fırsattır. Değerlendirme türü olarak Puan seçeneği seçilirse kullanılabilir. Bu durumda ek veri girmek için bir pencere açılacaktır.

Hata matrisi, kategorik hedef değişkenini tahmin etmek için kullanılacaktır.

Hata matrisi, öngörülenlere karşı gerçek sonuçları gösterir. İki tablo vardır. Sonuçları; birincisi nicel, ikincisi ise yüzde olarak gösterir.

Hata matrisi Rattle'daki Değerlendir sekmesinde bulunabilir. "Çalıştır"a basmak, bu veri kümesi içindeki her gözlem sonucunu tahmin etmek için seçilen modeli belirtilen veri kümesi üzerinde uygulanacaktır. Daha sonra öngörüler gerçek gözlemlerle karşılaştırılır.

Şekil 9, daha önce hesaplanan rastgele orman modeli için hata matrisini temsil etmektedir.

Şek. 9 Rastgele orman modeli değerlendirme sonucu

Şek. 9. Rastgele orman modeli değerlendirme sonucu

Rakamlar, ortalama hatanın 0.167, yani %16.7 olduğunu göstermektedir. Eğitim aşamasındaki öngörü hatası %15.97 idi. Bu değerleri eşit kabul edebiliriz.

Hadi test veri kümesi için bir hesaplama yapalım. Sonuç aşağıdaki gibidir:

TC [test] üzerindeki Rastgele Orman modeli için hata matrisi (sayılar):


Öngörülen
Öngörülen
Gerçek 01
01016256
11931248

Tablo 4. Rastgele orman modeli için mutlak terimlerle hata matrisi (Test veri kümesi)


TC [test] üzerindeki Rastgele Orman modeli için hata matrisi (oranlar):


Öngörülen
Öngörülen

Gerçek01Hata
00.370.090.20
10.070.460.13

Tablo 5. Rastgele orman modeli için göreceli terimlerle hata matrisi (Test veri kümesi)


Genel hata: 0.1654994, Ortalama sınıf hatası: 0.1649244

Öngörü hatası %16,4'tür.

Her üç rakam da yaklaşık olarak eşittir, bu da makul bir modelleme sonucuna işarettir.

Rattle tarafından hesaplanan model verimliliğinin МetaТrader 4 veya MetaTrader 5'in Strateji Test Cihazında kontrol edilmesi gerektiğini lütfen unutmayın. Daha sonra bir deneme hesabında ve bir gerçek hesapta küçük lotlarla test edilmelidir. Ancak tüm test çalıştırmalarından sonra model hakkında nihai sonuçlara varabiliriz.



7. Modeli Geliştirme

Sözde değişken ZZ.35'in öngörücülerle korelasyonunu araştırdığımızda, önemli sayıda öngörücü ve hedef değişkenin zayıf korelasyona sahip olduğunu bulduk.

Korelasyon katsayısı 0,01'den küçük olan öngörücüleri silelim. Bunu yapmak için, Veri sekmesinde ilgili öngörücüleri Yoksay olarak ayarlayın ve Model sekmesindeki rastgele orman modelini tekrar hesaplayın.

Aşağıdaki sonucu elde ederiz:

  • torba dışı tahmin hatası = %15,77;
  • Doğrulama veri kümesi tahmin hatası = %15.67;
  • Test veri kümesi tahmin hatası = %15,77.

Hata küçük ölçüde azalmış olsa da, farklı veri kümelerinin tahmin hataları arasındaki aralık da azalmıştır. Bu, model kararlılığının bir işaretidir.

Korelasyon tablosunu izleyerek öngörücüleri kaldırmaya devam edebilirsiniz. Modelin hesaplanmasında elde edilen öngörücü önem tablosundaki veriler kullanılarak model etkinliği artırılabilir, yani tahmin hatası azaltılabilir.

Herhangi bir durumda, başka bir öngörücünün kaldırılması model verimliliğinin bozulmasına yol açana kadar öngörücü kaldırma işlemi yapılabilir. Belirli sayıda öngörücüden minimal ve en verimli olan modele sahip olduğunuz için bu noktada durabilirsiniz.


8. Modeli MetaTrader 4'te Kullanma

Teoride, alım satım Rattle kullanarak şu şekilde organize edilebilir. Excel içindeki Rattle girdi verileri, bazı dış araçlar tarafından gündüz ve gece periyodu için hazırlanır. Borsa kapandığında, yatırımcı gerekli fiyatları alır ve bunları kaynak dosyaya koyar. Birkaç dakika sonra bir sonraki günün tahminleri hazır olur ve doğrudan açılıştan itibaren kullanılabilir.

Gün içinde alım satım yapmak için МetaТrader 4 terminali veya analoğu gereklidir.

Rattle kullanarak, otomatik veya yarı otomatik bir alım satım düzenlemek için aşağıdaki bileşenler gereklidir:

  • R çalışma alanı olarak kaydedilen, daha önceden eğitilmiş bir model;
  • terminal ve R'nin işbirliği kütüphanesi;
  • R'deki her yeni veri bloğunu modele ileten kod, sonucu alır ve modelleme sonucunu terminale geri gönderir.

Rattle'da mevcut bulunan altı modelden bir tanesinin eğitimi yukarıda ele alınmıştır. R'de mevcut sınıflandırma modellerinin sayısı 150'ye çıkmaktadır ama Rattle onlar için işlevsizdir.

R ve МetaТrader 4 terminalinin etkileşim kitaplığı CodeBase'de bulunabilir: mt4R for new MQL4.

R'de eğitilmiş modele karşılık gelen kod, günlükte (Log sekmesinde) bulunur. Model geliştirmede yapılan tüm işlemler kod biçiminde R'de kaydedilir. Gerçek alım satım işleminde kullanılacak olan şey budur.


Sonuç

Hem acemi hem de deneyimli yatırımcılar, alım satım sistemi ön değerlendirmesi ve seçimi için bu makaleyi faydalı bulacaktır.

Rattle kullanırken, alım satım sistemi geliştirmedeki ana entelektüel zorluk, hedef değişkenin ve bunun için gerekli olan öngörücüleri doğru seçmektir. Deneyimli yatırımcılar zaten bu alanda bilgiye sahiptir ve acemiler Rattle ile gerekli pratiğe sahip olacaktır.


MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal makale: https://www.mql5.com/ru/articles/1165

Ekli dosyalar |
Article.zip (6598.05 KB)
Neden MetaTrader 4 ve MetaTrader 5'teki Sanal Barındırma Sıradan VPS'den Daha İyidir? Neden MetaTrader 4 ve MetaTrader 5'teki Sanal Barındırma Sıradan VPS'den Daha İyidir?
Sanal Barındırma Bulut ağı, MetaTrader 4 ve MetaTrader 5 için özel olarak geliştirilmiştir ve tüm yerel çözüm avantajlarına sahiptir. 24 saat ücretsiz teklifimizin avantajlarından yararlanın - hemen sanal sunucuyu test edin.
MQL5 Cookbook: Özel Grafik Olaylarını İşleme MQL5 Cookbook: Özel Grafik Olaylarını İşleme
Bu makale, MQL5 ortamındaki özel grafik olayları sisteminin tasarım ve geliştirme yönlerini ele almaktadır. Olay sınıflandırmasına yaklaşım örneği, özel olay işleyici sınıfı ve olay sınıfı program kodunun yanı sıra burada da bulunabilir.
MQL5 Cookbook: BookEvent İşleme MQL5 Cookbook: BookEvent İşleme
Bu makale, Piyasa Derinliği olayı - BookEvent'i ve işleme prensibini ele almaktadır. Piyasa Derinliği durumlarını işleyen MQL programı örnek teşkil etmektedir. Nesne yönelimli yaklaşım kullanılarak yazılmıştır. İşleme sonuçları panel ve Piyasa Derinliği seviyeleri olarak ekranda görüntülenir.
MQL5 Cookbook: TradeTransaction Olayının İşlenmesi MQL5 Cookbook: TradeTransaction Olayının İşlenmesi
Bu makale MQL5 dilinin imkanlarını, olay güdümlü programlama açısından ele almaktadır. Bu yaklaşımın en büyük avantajı, alım satım operasyonunun aşamalı uygulaması hakkında programın bilgi alabilmesidir. Makale ayrıca, TradeTransaction olay işleyicisini kullanarak devam eden alım satım işlemi hakkında, bilgiyi alma ve işleme örneği içerir. Benim görüşüme göre, böyle bir yaklaşım yatırımları bir terminalden diğerine kopyalamak için kullanılabilir.