Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 8

 
Alexey Burnakov :

Beklemek. Verilerinizi bağımlılıklar için de çalıştıracağım.

Başlamadan önce bir soru. Verileriniz bir satırdaki tüm çubukları içeriyor mu, yoksa örneklemeden önce çubuklarda bir incelme mi oldu?

R1, R2, R3 arka arkaya ve içlerinde de arka arkaya - bu, H1'deki bir zaman serisidir .
 
San Sanych Fomenko :
R1, R2, R3 arka arkaya ve içlerinde de arka arkaya - bu, H1'deki bir zaman serisidir.

Açık. Eh, verilerinizle, nasıl çalışılacağını kabaca anladım.

Ben de Dr.Trader'ı anlamak istiyorum.

 

Ayrıca H1'im var, seçim son 4 çubuktan gelen verileri içeriyor. open[1]-high[1]-close[1]-...-open[2]-high[2]-close[2]-... vb . MqlRates ve MqlDateTime yapılarından veriler var, artı daha yüksek zaman dilimlerinden bir çift gösterge ve kapanış fiyatları var, her şey [0..1] aralığına normalleştirildi. 1 veya 0'ın sonucu, bir sonraki çubukta fiyatın yükselmesi veya düşmesidir. Ama bütün bunlar açıkça yeterli değil.

Gerekli çubuk sayısının bilinmemesi sorunu var. Genel olarak, bir nöronun %0'lık bir hataya yeniden eğitilmesi için yalnızca 3 çubuk yeterlidir (ve buna göre %50 ön testte olacaktır). Veya kontrollü bir şekilde eğitir ve zamanında durursanız, ön testteki hata yüzde birkaç daha az olacaktır. Ancak, numunedeki her yeni çubuk çok miktarda çöp ve buna bağlı olarak modelin kalitesinde bir düşüş olmasına rağmen, genel olarak yüzlerce çubuk alabilir ve yaklaşık olarak aynı sonucu elde edebilirsiniz.

 
Dr.Tüccar :
Ayrıca H1'im var, seçim son 4 çubuktan gelen verileri içeriyor. aç1-yüksek1-kapat1-...-aç2-yüksek2-kapat2-... vb. MqlRates ve MqlDateTime yapılarından veriler var. 1 veya 0'ın sonucu, bir sonraki çubukta fiyatın yükselmesi veya düşmesidir.
Süper. Orada open1 - open2 gibi bir şey var mı? İadeler
 

Bir önceki gönderiye biraz eklendi. Hayır, delta yok. Denemek zorunda kalacak.

 
Dr.Tüccar :

Ayrıca H1'im var, seçim son 4 çubuktan gelen verileri içeriyor. open[1]-high[1]-close[1]-...-open[2]-high[2]-close[2]-... vb . MqlRates ve MqlDateTime yapılarından veriler var, artı daha yüksek zaman dilimlerinden bir çift gösterge ve kapanış fiyatları var, her şey [0..1] aralığına normalleştirildi. 1 veya 0'ın sonucu, bir sonraki çubukta fiyatın yükselmesi veya düşmesidir. Ama bütün bunlar açıkça yeterli değil.

Gerekli çubuk sayısının bilinmemesi sorunu var. Genel olarak, bir nöronun %0'lık bir hataya yeniden eğitilmesi için yalnızca 3 çubuk yeterlidir (ve buna göre %50 ön testte olacaktır). Veya kontrollü bir şekilde eğitir ve zamanında durursanız, ön testteki hata yüzde birkaç daha az olacaktır. Ancak, numunedeki her yeni çubuk çok miktarda çöp ve buna bağlı olarak modelin kalitesinde bir düşüş olmasına rağmen, genel olarak yüzlerce çubuk alabilir ve yaklaşık olarak aynı sonucu elde edebilirsiniz.

Özellik mühendisliği yapmalısın. Bu mutlaka standart göstergelerin kullanımı değildir. Fantezi ve sürecin anlaşılması gereklidir. Sadece çubuk verilerini kara kutuya vermek gerçekten yeterli olmayabilir. Ve bilginin alındığı derinlik önemlidir. Örneğin, araştırmamda çıkış derinliğine göre simetrik bir giriş derinliği sağlamanız gerektiğini gördüm. 3 saat ilerisini tahmin ediyoruz - 3 saat öncesi ve sonrası için veri veriyoruz.

İşte, araştırmama kısmen yansıyan, tahmin edicilerin gelişiminin bir diyagramı. Bu veriler, makineye ne olduğu hakkında zaten birçok bilgi verir:

http://blog.kaggle.com/2016/02/12/winton-stock-market-challenge-winners-interview-3rd-place-mendrika-ramarlina/comment-page-1/

Winton Stock Market Challenge, Winner's Interview: 3rd place, Mendrika Ramarlina
Winton Stock Market Challenge, Winner's Interview: 3rd place, Mendrika Ramarlina
  • 2016.12.02
  • blog.kaggle.com
The Stock Market Challenge, Winton's second recruiting competition on Kaggle, asked participants to predict intra and end of day stock returns. The competition was crafted by research scientist at Winton to mimic the type of problem that they work on everyday. Mendrika Ramarlina finished third in the competition with a combination of simple...
 
Dr.Tüccar :

Bir önceki gönderiye biraz eklendi. Hayır, delta yok. Denemek zorunda kalacak.

Bu gerekli.

Neyin işe yaradığını biliyor musun? Bilinen son fiyat ile hareketli ortalama arasındaki fark. Pencere ortasının farklı şeyler denemesi gerekiyor.

 
Burada okuyorum, okuyorum .... ve resmi bir bakış açısından ilk başta hedef değişkenin ne olduğunu anlayamıyorum: gerçek bir sayı (regresyon) veya nominal bir değer (sınıflandırma). Ek olarak, tahmin edicilerin hedef değişken üzerindeki etki derecesini tartışıyorsak, bu hedef değişkenin anlamlı anlamını bilmek güzel olurdu.
 

Ticaretin ne kadar süreyle açık tutulacağı veya hangi fiyat seviyesinin bekleneceği konusunda spesifik olmadan, hedef değişkene bir alım/satım sınıflandırıcısı olarak bakıyorum. EA, bir çubuğun başında bir işlem açar ve bir sonraki çubuğun bir sonraki kararı vermesini bekler.

Mantıklı bir anlamı ile, bir şekilde daha zor :)

Daha önce, bir nöronu bir çizelge üzerindeki desenleri ve şekilleri (baş ve omuzlar vb.) bulması için eğitmek istiyordum. Üstelik, benim katılımım olmadan bazı figürleri bulmayı kendisi de öğrenmek zorunda kaldı; hedef değişken olarak zikzak yönünü verdim. Planıma göre hedef değişkenin anlamı "bir model bulundu, şimdi trend yükselecek, satın almak gerekiyor" idi (sonuç = 1). Bu durumda sonuç = 0, şimdi ters yönde bir trend olacağı ve satılması gerektiği anlamına gelir. Sinyalin gücünü hesaba katmaya ve sonuç 0,5'e yakın olduğunda işlem yapmamaya çalıştım.

Sesli düşünüyorum, daha önce düşünmedim: Görünüşe göre yanlış modele sahibim, 3 sınıf eğitmek zorunda kaldım, satın almak/satmak/kapat_all_trades_and_not_trade. Ayrıca, bir ağdan 3 çıkış yapın veya 3 ayrı ağ eğitin. Ve tek çıkışlı bir ağ değil.

Sonra deney yaparken fark ettim ki 200 değil sadece 5 bar alabiliyorum ve kesinlikle hiçbir şey değişmeyecek, sonuç aynı kalacak. Modelin bu konfigürasyonla kalıp bulmayı öğrendiğini düşünmüyorum, aksine zamanla bazı kalıplar buluyor. Yavaş yavaş, modeli bir zikzak üzerinde değil, sadece bir sonraki çubuğun kapanış fiyatı üzerinde eğitmeye karar verdim. Bu durumda, nöronun sonucunu filtrelemek artık gerekli değildir, aynı sonuçta daha az sorun vardır, bir şekilde kötü değil. Burada mantıksal anlam zaten daha basit - hedef değişken 0/1 - fiyat 1 bar için düşecek / artacak.

Son birkaç gündür ormanı ve bu forumdan örnekler okuyorum. Aynı 5 çubuğu alırsak, orman nöron gibi bazı soyut şeyleri öğrenmeyecek, ancak oldukça spesifik kurallar türetecektir. Örneğin, orman bir "iki MA kesişimi" kuralı veya bunun gibi bir şey çıkarabilir. Bana öyle geliyor ki, böyle bir veri seti ile orman çok daha umut verici, onu nasıl kullanacağımı öğreneceğim. Hedef değişkenin anlamı aynıdır - 0/1 - fiyat 1 bar için düşecek/büyüyecektir.

Tahmin edicilerin etkisi hakkında istediğim kadar bilgim yok. Zaman kesinlikle kullanılmalı, saat/dakika/haftanın günü, muhtemelen bunlardan biri (saat?). Küçük bir dizi ardışık değere sahip tahmin edicileri döngü olmadan kullanamazsınız. Örneğin, eğitim örneği bir yıl için veri içeriyorsa, "ay" tahmincisi kullanılamaz. Model, tüm verileri aylara göre 12 parçaya bölebilir ve her parça için kendi mantığının bir kısmını eğitebilir. Ve Ocak 2015 mantığı kesinlikle bir yılda Ocak 2016 mantığı için çalışmayacaktır. Ancak eğitim verileri 5 yıllık ise, o zaman "ay" zaten uygun olabilir. Ayrıca göstergelerin kullanımının haklı olduğundan da emin değilim, standart göstergelerdeki danışmanlar birleşiyor, eğitilmiş modelin bu verilerden yararlı bir şey çıkarması garip olacak. Ayrıca ormanın kendisinin de bazı hesaplamalar yaptığını ve öğrenme sürecinde kendi iç göstergelerini oluşturabildiğini anlıyorum. Fiyat da kullanılmalı, açılış ve kapanış fiyatlarına pek güvenmesem de yüksek ve düşük fiyatları tercih ediyorum.

Tüm bu öngörücüler, piyasanın belirli bir mevcut durumunu gösterir ve modelin anlamı, bu durumları öngörücüler aracılığıyla ve bu gibi durumlarda fiyatın nereye gittiğini belirlemektir. Model, Occam'ın bıçağı ilkesine göre mümkün olduğunca az girdi kullanmalıdır, o zaman tam olarak belirli bir bağımlılığı tanımlama ve örneklere uymama şansı vardır.

 
Dr.Tüccar :

Ticaretin ne kadar süreyle açık tutulacağı veya hangi fiyat seviyesinin bekleneceği konusunda spesifik olmadan, hedef değişkene bir alım/satım sınıflandırıcısı olarak bakıyorum. EA, bir çubuğun başında bir işlem açar ve bir sonraki çubuğun bir sonraki kararı vermesini bekler.

Mantıklı bir anlamı ile, bir şekilde daha zor :)

Daha önce, bir nöronu bir çizelgedeki desenleri ve şekilleri (baş ve omuzlar vb.) bulması için eğitmek istiyordum. Üstelik, benim katılımım olmadan bazı figürleri bulmayı kendisi de öğrenmek zorunda kaldı; hedef değişken olarak zikzak yönünü verdim. Planıma göre hedef değişkenin anlamı "bir model bulundu, şimdi trend yükselecek, satın almak gerekiyor" idi (sonuç = 1). Bu durumda sonuç = 0, şimdi ters yönde bir trend olacağı ve satılması gerektiği anlamına gelir. Sinyalin gücünü hesaba katmaya ve sonuç 0,5'e yakın olduğunda işlem yapmamaya çalıştım.

Sesli düşünüyorum, daha önce düşünmedim: Görünüşe göre yanlış modele sahibim, 3 sınıf eğitmek zorunda kaldım, satın almak/satmak/kapat_all_trades_and_not_trade. Ayrıca, bir ağdan 3 çıkış yapın veya 3 ayrı ağ eğitin. Ve tek çıkışlı bir ağ değil.

Sonra deney yaparken fark ettim ki 200 değil sadece 5 bar alabiliyorum ve kesinlikle hiçbir şey değişmeyecek, sonuç aynı kalacak. Modelin bu konfigürasyonla kalıp bulmayı öğrendiğini düşünmüyorum, aksine zamanla bazı kalıplar buluyor. Yavaş yavaş, modeli bir zikzak üzerinde değil, sadece bir sonraki çubuğun kapanış fiyatı üzerinde eğitmeye karar verdim. Bu durumda, nöronun sonucunu filtrelemek artık gerekli değildir, aynı sonuçta daha az sorun vardır, bir şekilde kötü değil. Burada mantıksal anlam zaten daha basit - hedef değişken 0/1 - fiyat 1 bar için düşecek / artacak.

Son birkaç gündür ormanı ve bu forumdan örnekler okuyorum. Aynı 5 çubuğu alırsak, orman nöron gibi bazı soyut şeyleri öğrenmeyecek, ancak oldukça spesifik kurallar türetecektir. Örneğin, orman bir "iki MA kesişimi" kuralı veya bunun gibi bir şey çıkarabilir. Bana öyle geliyor ki, böyle bir veri seti ile orman çok daha umut verici, onu nasıl kullanacağımı öğreneceğim. Hedef değişkenin anlamı aynıdır - 0/1 - fiyat 1 bar için düşecek/büyüyecektir.

Tahmin edicilerin etkisi hakkında istediğim kadar bilgim yok. Zaman kesinlikle kullanılmalı, saat/dakika/haftanın günü, muhtemelen bunlardan biri (saat?). Küçük bir dizi ardışık değere sahip tahmin edicileri döngü olmadan kullanamazsınız. Örneğin, eğitim örneği bir yıl için veri içeriyorsa, "ay" tahmincisi kullanılamaz. Model, tüm verileri aylara göre 12 parçaya bölebilir ve her parça için kendi mantığının bir kısmını eğitebilir. Ve Ocak 2015 mantığı kesinlikle bir yılda Ocak 2016 mantığı için çalışmayacaktır. Ancak eğitim verileri 5 yıllık ise, o zaman "ay" zaten uygun olabilir. Ayrıca göstergelerin kullanımının haklı olduğundan da emin değilim, standart göstergelerdeki danışmanlar birleşiyor, eğitilmiş modelin bu verilerden yararlı bir şey çıkarması garip olacak. Ayrıca ormanın kendisinin de bazı hesaplamalar yaptığını ve öğrenme sürecinde kendi iç göstergelerini oluşturabildiğini anlıyorum. Fiyat da kullanılmalı, açılış ve kapanış fiyatlarına pek güvenmesem de yüksek ve düşük fiyatları tercih ediyorum.

Tüm bu öngörücüler, piyasanın belirli bir mevcut durumunu gösterir ve modelin anlamı, bu durumları öngörücüler aracılığıyla ve bu gibi durumlarda fiyatın nereye gittiğini belirlemektir. Model, Occam'ın bıçağı ilkesine göre mümkün olduğunca az girdi kullanmalıdır, o zaman tam olarak belirli bir bağımlılığı tanımlama ve örneklere uymama şansı vardır.

Birçok yönden düşüncelerimiz örtüşür.

Ama sonunda, gürültü tahmincileriyle karşılaştım. Gürültü tahmincilerinin varlığı nedeniyle, model yeniden eğitilir ve diğer tüm akıl yürütmeler anlamsız hale gelir.