Sinir ağının girişine ne beslenmeli? Fikirleriniz... - sayfa 50

 
Ivan Butko #:



Setlerden biri örneğinde: Çıkışların kısa alındığı ve dirseklerin daha güçlü olduğu görülebilir. Aşırı oturursa, öz sermaye sarkması şeklinde yeşil "sümük" bırakır. Ancak grafikte iyi bir nokta bulursa, zamanında kapanabilir ve böylece bir miktar istikrar gösterebilir

Optimizasyon - yıl: 2021-2022, EURUSD H1

Araştırmalarınız ve gelişmeleriniz için (bunları paylaştığınız için) teşekkür ederim - çok ilginç... Onları tekrar okumak (ben de konunun içindeyim) onlarla egzersizlere devam etme isteği uyandırıyor (NS)... :-)

 
Roman Shiredchenko #:

Araştırmalarınız ve gelişmeleriniz için (bunları paylaştığınız için) teşekkür ederim - çok ilginç.... tekrar okuduğumda (konuyla ilgili olarak kendim), onlarla (NS) egzersizlere devam etme arzusu var... :-)







Görüşleriniz için teşekkür ederim. Dizimde, buradaki basit makalelere,https://www.mql5.com/ru/articles/497 , burada daha karmaşık https://www.mql5.com/ru/articles/5486 ve bazen fikirlere uyacak şekilde değiştirdiğim https://www.mql5.com/ru/articles/830 Uzman Danışmanlarınıkullandığım basit NS'den oluşan bir dalım var - yine oradan. Kesin bir çözüm olmamasına rağmen, deneyler büyüleyici.


Нейронные сети - от теории к практике
Нейронные сети - от теории к практике
  • www.mql5.com
В наше время, наверное, каждый трейдер слышал о нейронных сетях и знает, как это круто. В представлении большинства те, которые в них разбираются, это какие-то чуть ли не сверхчеловеки. В этой статье я постараюсь рассказать, как устроена нейросеть, что с ней можно делать и покажу практические примеры её использования.
 
Ivan Butko #:

Ayrıca potansiyel olarak iyi olan şey, işlemlerin gün içi boyutudur: en azından tek mum çubuğu işlemleri değildir, ancak bazen zamana yayılırlar. Ayrıca, alım satımlar hem AL hem de SAT şeklinde yapılır. Sonsuz yaklaşım sorunu (eğer terimi doğru kullanırsam) NS'nin hangi işlemlerin en çok kazandıracağını seçmesi ve bunlar için ağırlıklar oluşturmasıdır. Sonuç olarak - optimize edilmiş bölümdeki trend aşağıdaysa ve bölümünün üçte biri yukarıdaysa, ileri veya geri yönde küresel çöküş meydana gelir.

Bence bu ebedi yaklaşım problemi değil, çıktı katmanındaki ebedi sınıflandırma problemidir. Bu durumda kendini göstermemesi iyi bir şey.

 
Andrey Dik #:

Bence bu çok yıllık bir yaklaşım problemi değil, çıktı katmanında çok yıllık bir sınıflandırma problemidir. Bu durumda ortaya çıkmaması iyi bir şey.





Bu fenomenin mekanizması nedir? MT5 optimize edici neden uzun vadeli bir dönemde (birçok yükseliş eğiliminin olduğu - bu boş zaman, potansiyel kar, bu alanı keşfetmeniz gerekiyor) satın alma işlemini reddeden ve yalnızca satışla işlem yapan ağırlıkları seçiyor? Tüm setler değil, en önemli gibi görünen en üstteki setler. Başladığınızda sadece satışlar var. En alttaki setler her iki yönde de işlem görse de, kötü bir şekilde.

 
Ivan Butko #:





Ve bu fenomenin mekanizması nedir? MT5 optimize edici neden uzun vadeli bir dönemde (birçok yükseliş eğiliminin olduğu - bu boş zaman, potansiyel kar, bu alanı keşfetmeniz gerekiyor) satın alma işlemini reddeden ve yalnızca satışla işlem yapan bu tür ağırlıkları seçiyor? Tüm setler değil, en önemlileri olan en üsttekiler. Başladığınızda, sadece satışlar vardır. En alttaki setler her iki yönde de işlem görse de, kötü bir şekilde.

Mekanizma oldukça basit.

İlk faktör: Eğitimin EURUSD üzerinde gerçekleştiğini ve diğer tüm şeyler eşit olduğunda satışların daha karlı olduğunu görüyorum (bunu farklı TS'lerde birçok kez fark ettim).

Daha önemli olan ikinci faktör: uygunluk fonksiyonu alış/satış oranını dikkate almaz, sinyaller daha etkili olarak satışa doğru "yuvarlanır" ve sonunda tamamen alış olmamasına yol açar (diğer sembollerde alışa doğru bir yuvarlanma olabilir).

Yani, NN'nin tam olarak ne öğrendiğini ve öğrenme kriterinin her zaman uygunluk fonksiyonu olduğunu anlamamız gerekir. Mantıksal adım, özel kriteri min/maks oranıyla çarpmaktır; burada min, sırasıyla minimum alış veya satış işlemi sayısı ve maks - tam tersidir.

FF = Fcustom * MathMin (buys, sells) / MathMax (buys, sells);

Şimdi görüyoruz ki, eğer %100 çarpıklık varsa, bu FF 0'a eşit olacaktır ve diğer şeyler eşit olduğunda, en iyi değer her iki yöndeki yön sayısının aynı olduğu değer olacaktır.

Bu elbette her derde deva bir çözüm değildir, ancak kesinlikle denemeye değer.

Bu arada, bu, FF yüzeyinin şeklini değiştirmenin yollarından biridir, böylece istenen optimum, kesin yorumlama için küresel olacaktır.

Öğrenmeyi daha fazla sayıda işlem yapmaya teşvik etmek için aşağıdakileri yapabilirsiniz:

if (FF == 0) FF = -DBL_MAX;
 
Eski bir sitede, forex'teki sinir ağları hakkında 10 yıl öncesine ait bir makaleye göz atıyordum.











Kapanış N mumları ile mevcut fiyat arasındaki açı. Çılgınca ama hoşuma gitti! Henüz denemedim, ama bu lanet açıyı nasıl bulacağımı anlar anlamaz kesinlikle deneyeceğim İkinci varyant da podvypodvert öncesi ile, sadece düşündüm: Fiyat arka arkaya iki mum düşebilir veya yükselebilir.

Genellikle bu, girişlere bitişik normalleştirilmiş sayıların beslenmesi anlamına gelir. Ancak, bir ofset penceresi kullandığımız için, sondaki dürtü değerini kesmek normalleştirilmiş sayıyı önemli ölçüde etkileyecektir, kelimenin tam anlamıyla bir adımda 0,7 numaralı bir mum -0,3'e dönüşecektir, ancak yeni mumdaki değişiklik sıfır olabilir. Pencerelerle ilgili sorun budur.

Ve yukarıda bahsettiğim gibi, yeni bir adımın sonunda kesilen ve yeni bir değer eklenen bir dizi sayı girdiğimizde ağırlıkların da benzer bir sorunu vardır - grafikte hiçbir şey değişmeyebilir, ancak ağırlıklar farklıdır ve sinyali önemli ölçüde değiştirir. Normalleştirilmiş bir sayı örneğini girdi olarak kullanarak, ek bir tane daha yapabiliriz - budeğişim oranıdır.

Sonuçta, trend solmaya başlayabilir, fiyatlar kademeli olarak düşmeye başlayabilir ve giriş penceresinde herhangi bir artış tam tersi olacaktır - sürekli artan ve artan değerler gösterecektir. Ek girdi ivmeyi yansıtacaktır - eğer varsa, 0'dan 1'e daha büyüktür, eğer soluyorsa, 0'dan -1'e kadardır.
 
Ivan Butko #:
Henüz denemedim, ama bu lanet açıyı nasıl bulacağımı çözdüğümde kesinlikle deneyeceğim

Bunu yüzde olarak hesaplayın - sıfırdan mevcut çubuğun açılış fiyatına kadar - özünde bir analog olacaktır.

 
Aleksey Vyazmikin #:

Yüzde olarak sayın - sıfırdan mevcut çubuğun açılış fiyatına kadar - esasen analog olacaktır.

Cevap için teşekkür ederim, bunu düşüneceğim
 



Hafızamda işe yarayan tek yeniden eğitim. Genellikle, 68'lik korkunç bir iyileşme faktöründen sonra, denge ileriye doğru dibe dalar.

Ama burada biraz düştü, sonra bir yıl boyunca yükseldi. Backtest berbat (arkada, optimizasyon dışı), diğer çiftler ve dönemler üzerinde tekrarlayamadım. Şimdiye kadar.

Aynı zamanda, işlemler gün içinde bile çok büyük ve spread'in hiçbir etkisi yok (Zig beceriksiz ve yavaş). Eh, bir rüya


 

Açıyı girişe nasıl besleyeceğimi bulmayı başardım


Avantajları hakkında bir şey söyleyemem, sonuçlar farklı terminaller için farklıdır.



Fiyatlara, spreadlere ve komisyonlara bağlı gibi görünüyor. Ama kesinlikle fiyat artışlarından daha iyi. Bir özelliğe dikkat çekmek istiyorum: açının yüksek değerleri güçlü veya uzun bir eğilimi değil, bir dürtüyü gösterir - son derece keskin, büyük ve kısa vadeli bir fiyat sıçraması veya başarısızlığı.

Normalleştirilmiş bir pencere (başka bir tür girdi verisi) son derece keskin bir açıda (neredeyse düz hareket) bile yüksek değerler gösterirken, son fiyat diğerlerinden daha yüksekse. Yani, açının bilgi avantajları vardır. Dahası, uç değerler iptal edildiğinde doğrusal olmayan bir fonksiyona benzer. Aslında, hiçbir zaman 0,95 veya 0,99 değerini alamayız.

Açının neredeyse düz olduğunu söylüyorlar, bu fiyatın stratosfere uçtuğu gerçeğine eşdeğer. Genel olarak, açı hakkında düşünmek için daha fazla yiyecek var.


    int i = 0;
    double radians, angle, C1, C5, C20, C80;
    
    C1  = iClose(NULL, PERIOD_CURRENT, 1);  
    C5  = iClose(NULL, PERIOD_CURRENT, 5); 
    C20 = iClose(NULL, PERIOD_CURRENT, 20); 
    C80 = iClose(NULL, PERIOD_CURRENT, 80);   
    
    radians = atan(   ((C1 - C5) / _Point) / 5);   // Вычисляем арктангенс высоты к длине основания в радианах
    angle = radians * 180 / M_PI / 90;             // Конвертируем радианы в градусы и преобразуем в диапазон [-1..1]
    inputs[i] = angle;       i++; 
    
    radians = atan(   ((C1 - C20) / _Point) / 20); 
    angle = radians * 180 / M_PI / 90; 
    inputs[i] = angle;       i++; 
    
    radians = atan(   ((C1 - C80) / _Point) / 80); 
    angle = radians * 180 / M_PI / 90; 
    inputs[i] = angle;       i++;  

    //  Print("Угол: ", angle, " градусов");