Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 321
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
https://www.mql5.com/ru/code/127
sadece kodda bir tür hata var, bence gösterge yanlış normalleştirildi
Her şey doğru, sadece [0; 1]'de değil, farklı bir aralıkta normalleştirildi.
Kolaylık sağlamak için, sahip olduğunuz CalcRegression işlevini bırakabilirsiniz (sadece içinde b'nin zaten zıt işaretli * ile döndüğünü, yani işareti ikinci kez değiştirmenize gerek olmadığını unutmayın). Sonucu hangi değerle çarpmanız gerektiğini ampirik olarak bulun, böylece [-0.5; 0.5] aralığına düşer. Sonra ortayı 0'dan 0,5'e taşımak için +0.5 ekleyin
*ama tam olarak öyle değil. görelilik sorusu. Bu formül, zaman içindeki en eski fiyatların dizideki en yüksek indekse sahip olması durumunda doğru işaretiyle b'yi verecektir.
Her şey doğru, sadece [0; 1]'de değil, farklı bir aralıkta normalleştirildi.
Basit olması için, sahip olduğunuz CalcRegression işlevini bırakabilirsiniz (b'nin içinde zaten zıt işaretle döndüğünü, yani işareti ikinci kez değiştirmenize gerek olmadığını unutmayın). Sonucu hangi değerle çarpmanız gerektiğini ampirik olarak bulun, böylece [-0.5; 0.5] aralığına düşer. Sonra ortayı 0'dan 0,5'e taşımak için +0.5 ekleyin
farklı zaman ölçekleri için farklı max ve min değerlerine sahip olacaksınız, bu çok uygun değil, bana öyle geliyor ki tarihin büyük bir bölümünde gösterge dizisi tarafından en normalleştirilmiş
*ama tam olarak öyle değil. görelilik sorusu. Bu formül, zaman içindeki en eski fiyatların dizideki en yüksek indekse sahip olması durumunda doğru işaretiyle b'yi verecektir.
Mevcut arabelleğe dayalı olarak göstergeye başka bir normalleştirilmiş arabellek ekleyeceğim :)
Regresyonun eğimi ile de ilginç olabilir. Geri test ve ileri. Kısacası, bu mantıkla çalışabilir ve farklı öngörücülerle deneyler yapabilirsiniz.
Regresyonun eğimi ile de ilginç olabilir. Geri test ve ileri. Kısacası, bu mantıkla çalışabilir ve farklı öngörücülerle deneyler yapabilirsiniz.
Kod için teşekkürler, test ettim. Daha da kötü oldum. Ama optimizasyon için bir yıl yerine sadece 1 ay uğraştım, hızlıca kontrol etmek istedim. Ön testte, danışmanın önce normal olduğunu, sonra yavaş yavaş dengeye başladığını ve sonra boşaldığını görebilirsiniz. Yeni verilerde biraz hala yaşıyor, fena değil.
değiştirirdim
1) çift a3 = reg[0]; - sıfır indeks, zaman açısından en eski veridir. Buradaki en son (yeni) çubuk 49 (50 alındığından beri), ondan daha iyi olacak. Ancak ikincisi yeniden çizilebilir, o zaman 48 daha iyidir, ayrıca göstergenin yeniden çizilip çizilmediğini kontrol etmeniz gerekir.
Rsi ile aynı, üçünden daha yeni olanı çıkardınız. En modası geçmiş olarak sıfır indeksli olanı kaldırmaya çalışmak mantıklı.
2) Yuri'den danışmanın üçüncü versiyonunda, RNN işlevi dört parametre içerir, hemen 3 rsi ve onunla trendi alabilirsiniz. Genel olarak, Yuri'nin makalesinde yazıldığı gibi, fonksiyon yeni parametrelerle desteklenebilir, ancak her +1 parametresi katsayı sayısını ikiye katlayacaktır.
3) Durmayı ve almayı sevmiyorum, optimal değerleri sürekli yeni çubuklarda değişiyor. Daha doğrusu, optimal değerler bile yoktur, sadece belirli bir zaman aralığında Uzman Danışman için bazı "uygun" değerler vardır. Ayrıca, komisyoncular durma noktasına kadar mum çekebilir. Her yeni çubuk için bir tahmin yapmaya çalışırdım ve bir sonraki çubuk ve tahmine kadar anlaşmayı bu yönde tutardım ve gerekirse tersine çevirirdim.
4)
Tanıtıcının OnInit'te başlatılması gerekir ve her Expert Advisor oluşturulduğunda değil. Ayrıca 30 elemanlı bir dizi ve sadece 28 kopyalanır. 28 ve 29 indekslerine erişilemez (kimse yapmaz, ancak isteyip istemediğinizi asla bilemezsiniz), doldurulmazlar.
Kod için teşekkürler, test ettim. Daha da kötü oldum. Ancak optimizasyon için bir yıl yerine sadece 1 ay kullandım, hızlıca kontrol etmek istedim. Ön testte, danışmanın nasıl önce normal olduğunu, sonra yavaş yavaş dengeye başladığını ve sonra boşaldığını görebilirsiniz. Yeni verilerde biraz hala yaşıyor, fena değil.
değiştirirdim
1) çift a3 = reg[0]; - sıfır indeks, zaman açısından en eski veridir. Buradaki en son (yeni) çubuk 49 (50 alındığından beri), ondan daha iyi olacak. Ancak ikincisi yeniden çizilebilir, o zaman 48 daha iyidir, ayrıca göstergenin yeniden çizilip çizilmediğini kontrol etmeniz gerekir.
Rsi ile aynı, üçünden daha yeni olanı çıkardınız. En modası geçmiş olarak sıfır indeksli olanı kaldırmaya çalışmak mantıklı.
2) Yuri'den danışmanın üçüncü versiyonunda, RNN işlevi dört parametre içerir, hemen 3 rsi ve onunla trendi alabilirsiniz. Genel olarak, Yuri'nin makalesinde yazıldığı gibi, fonksiyon yeni parametrelerle desteklenebilir, ancak her +1 parametresi katsayı sayısını ikiye katlayacaktır.
3) Durmayı ve almayı sevmiyorum, optimal değerleri sürekli yeni çubuklarda değişiyor. Daha doğrusu, optimal değerler bile yoktur, sadece belirli bir zaman aralığında Uzman Danışman için bazı "uygun" değerler vardır. Ayrıca, komisyoncular durma noktasına kadar mum çekebilir. Her yeni çubuk için bir tahmin yapmaya çalışırdım ve bir sonraki çubuk ve tahmine kadar anlaşmayı bu yönde tutardım ve gerekirse tersine çevirirdim.
4)
Tanıtıcının OnInit'te başlatılması gerekir ve her Expert Advisor oluşturulduğunda değil. Ayrıca 30 elemanlı bir dizi ve sadece 28 kopyalanır. 28 ve 29 endekslerine erişemezsiniz (kimse yapmaz ama siz asla istemezsiniz), bunlar doldurulmaz.
Hımm, ha? Tamponu kopyalarken ilk değeri döndürürken boş olduğunu düşündüm. Kontrol etmek gerekiyor...
https://www.mql5.com/ru/docs/series/copybuffer
sl ve tp yerine sondaki eklendi, sonuçlar pek gelişmedi
tutamaç hakkında, evet, regresyon için onu başlatmaya aldım, rsi için yapmayı unuttum
orada forvetlerden hangisinin en yüksek kar faktörüne sahip olduğunu seçmeniz gerekir ve böylece geriye dönük test yaklaşık olarak aynı olur, bu, şebekenin bu parametreler üzerindeki normları tahmin edebildiği anlamına gelir. Ve bir ay içinde trendi yakalayabilir, ancak ileriye doğru değişti .. daha fazla örnekleme gerekli, evet .. dönem ne kadar kısa olursa, alım veya satım emirleri o kadar fazla geçerli olur, esas olarak alım veya satım için optimize edilir, daha uzun süre satış sayısıdır ve bai hizalanır
Ve nedense RNN3 çok daha az sinyal veriyor, nedenini henüz anlamadım
Normalleştirme işlevinin 50 değil de 5000 barlık bir diziyi hemen almasının daha iyi olup olmadığı hala tam olarak açık değil, böylece en baştan daha doğru maks ve min'i bulur ve bunları zamanla güncellemez, çünkü test bölümünün başında, girişe tam olarak doğru bir şekilde normalleştirilmemiş değerlerin besleneceği ve daha sonra giderek daha doğru bir şekilde ortaya çıktığı ortaya çıktı.
Artı, örneğin, sabit bir seri üzerinde regresyon eğimi ve otokorelasyonun ne kadar iyi olduğundan emin olana kadar, grafiklerin hala trendini düşürür ve ızgara için daha sindirilebilir değerler verirdim, çünkü. ekonometride iyi değilim şimdi video izliyorum
Ayrıca daha sonra bu RNN'yi normal MLP ile karşılaştırmak istiyorum, ancak tamamen doğru bir karşılaştırma olmayacak çünkü MLP'nin çıktıya bir şey göndermesi gerekecek. Diğer bir seçenek ise 3 RNN'den oluşan bir komite oluşturmak ve sonuçlarını RNN :D'ye veya bir tür evrişimli NN'ye göndermektir. Bulut aracılığıyla bile optimize edilmiş olması çok iyi olacaktır. uzun zamandır. Ve 3 RNN'yi MLP'ye göndermek ve çıktı olarak fiyatlarda bir artış vermek daha iyidir, böylece teorik olarak yeniden eğitimden kurtulacağız. ONLAR. RNN otomatik kodlayıcı rolünü oynayacak
ARIMA'nın uygulanabileceği teklifleri bulmak neredeyse imkansızdır. Ama bu dersin sonuydu.
GARCH'a ne dersin? Bu şey çok daha umut verici ve yüksek frekanslı ticaret için bile bir günden daha kısa bir süre TF'lerde çok yaygın olarak kullanılıyor.
ARIMA'nın uygulanabileceği teklifleri bulmak neredeyse imkansızdır. Ama bu dersin sonuydu.
GARCH'a ne dersin? Bu şey çok daha umut verici ve yüksek frekanslı ticaret için bile bir günden daha kısa bir süre TF'lerde çok yaygın olarak kullanılıyor.
Peki ya trendleri çıkartıp sonra onları otoregresifleştirmeye ve ardından değerleri regresyonun eğimi ile birlikte NN'ye doldurmaya ne dersiniz? Allah kahretsin bu ağırlıklarla yeni tanışmaya başladım, daha denemedim bile. Ve ben sadece garch'ı duydum :)
Ve RNN tipini MLP için otomatik kodlayıcı olarak nasıl kullanmayı düşünüyorsunuz?
Anladığım kadarıyla, tekrarlayan bir ağ, bunun gibi bir dizi mantıksal kurala sahip bir otomatik kodlayıcıdır:
Peki ya trendleri çıkartıp sonra onları otoregresifleştirmeye ve ardından değerleri regresyonun eğimi ile birlikte NN'ye doldurmaya ne dersiniz? kahretsin bu ağırlıklarla yeni tanışmaya başladım daha denemedim bile
şimdi daha iyi deney!
çok zaman kazanırsınız ve kendinizi gereksiz bilgiden korursunuz
ARIMA'nın uygulanabileceği teklifleri bulmak neredeyse imkansızdır. Ama bu dersin sonuydu.
GARCH'a ne dersin? Bu şey çok daha umut verici ve yüksek frekanslı ticaret için bile bir günden daha kısa bir süre TF'lerde çok yaygın olarak kullanılıyor.