"MQL dili kullanarak sıfırdan bir Derin Sinir Ağı programlama" makalesi için tartışma - sayfa 5

 
Evet ve mt5'e koydum, hangi mq5 de derlemede 11 hata veriyor. Belki anlamama yardımcı olabilirsiniz ????????
 
Harici değişkenler şeklindeki derin ağ parametreleri çok esnek değildir.
 

"bodyPer" girdisini değiştirdim. Sadece gövdenin göreceli uzunluğunu yüklemek yerine, bu değeri hesaplıyorum: bodyPer=0.5+((close-open)/p100)/2;

Böylece değişken, göreceli uzunluktan daha fazla olarak mumun yönünü de yakalıyor. Sanırım 4. bir değişken için yer açıyor.

 

int error=CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);

Burada henüz oluşmamış bir mumun verilerini aktarıyoruz. Gerçekte, mum açıldığında tüm parametreler aynı olacaktır. Hepsi = rates[0].open olacaktır

 
Vasily Pototsky #:

int error=CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);

Burada henüz oluşmamış bir mumun verilerini aktarıyoruz. Gerçekte, mum açıldığında tüm parametreler aynı olacaktır. Tümü = rates[0].open olacaktır

Yanlış!

int copied=CopyRates(_Symbol,0,1,5,rates);

Burada kopyalama sıfır çubuğundan değil, ilk çubuğundan yapılır, yani burada:

CandlePatterns(rates[0].high,rates[0].low,rates[0].open,rates[0].close,rates[0].close-rates[0].open,_xValues);

son çubuğun değerleri olacaktır ...

Bence 5 çubuğu kopyalamak gerekli değil, geçmiş 1 çubuğu bu şekilde kopyalamak yeterli olacaktır:

int copied=CopyRates(_Symbol,0,1,1,rates);
 

Merhaba Anddy, harika bir iş çıkardın!!!

Stratejime uyarlamak için kodunuzu analiz ediyorum ve şu ana kadar DNN'inizin harika olduğunu söyleyebilirim! Paylaşım için teşekkürler.

Sadece bir sorum var: Herhangi bir durumda "yValues[2]>0.6" kullanımını tanımıyorum. Farklı varlıklarla yapılan birkaç denemeden sonra, bu koşul nedeniyle hiçbir işlem kapatılmadı. Bu doğru mu?

Teşekkür ederim!

En iyi dileklerimle,
Alexandre

Bu forumda lütfen Portekizce yorum yapın. Otomatik çeviri aracını kullanın veya forumlardan birinde başka bir dilde yorum yapın.

 
Trend değişkeni her değiştirildiğinde garip davranış, eğitim sonuçları her zaman farklı, neden?

Kodda bir mantık hatası var!

   double trend=0; // также при trend=100 результаты много лучше и больше количество точек оптимизаций!? 
   if(uod>0)
     {
      highPer=high-close;
      lowPer=open-low;
      bodyPer=close-open;
      trend=1;

     }
   else
     {
      highPer=high-open;
      lowPer=close-low;
      bodyPer=open-close;
      trend=-1; // стоял ноль!
     }
 
Nikolai Kalinin #:
Trend değişkeni her değiştirildiğinde garip davranış, eğitim sonuçları her zaman farklı, neden?

Kodda bir mantık hatası var!

Aktivasyon fonksiyonunun özgüllüğü.

Daha fazla katman, daha fazla zayıflama - değerler 0'a daha yakın olacaktır.

Ofset bu sorunu biraz düzeltir.

Eşik 0,6 olarak ayarlandığında, olası kümelerin çoğu atılır. Ve eğer girişe büyük bir sayı veya birkaç büyük sayı besliyorsanız, düz bir geçiş bile sinir ağının sonuna daha fazla olası değer getirecektir.

Ve eşik sınırına ne kadar çok değer ulaşır ya da geçerse, fiyat grafiğini sinir ağına uydurmak (yolu ezberlemek) için o kadar çok pozisyon ya da daha fazla fırsat olur.
 
Ivan Butko #:

Aktivasyon fonksiyonunun özgüllüğü.

Daha fazla katman, daha fazla zayıflama - değerler 0'a daha yakın olacaktır.

Ofset bu sorunu biraz düzeltir.

Eşik 0,6 olarak ayarlandığında, olası kümelerin çoğu atılır. Ve eğer girişe büyük bir sayı veya birkaç büyük sayı besliyorsanız, düz bir geçiş bile sinir ağının sonuna daha fazla olası değer getirecektir.

Ve eşik sınırına ne kadar çok değer ulaşır ya da geçerse - fiyat grafiğini sinir ağına uydurmak (yolu hatırlamak) için o kadar çok pozisyon ya da daha fazla fırsat olur.

Her neyse, eğitim sonuçları her tür optimizasyonda her zaman çok değişkendir, bu da gerçek ticarete uygulanabilirliği konusunda bazı şüpheler uyandırır - yeniden sıralama kombinasyonlarında her zaman daha iyi ağırlık parametreleri olacaktır. Bu NS'nin bu özelliğinin açıklaması nedir?

 
Nikolai Kalinin #:

Her halükarda, eğitim sonuçları her tür optimizasyonda her zaman çok değişkendir, bu da gerçek ticaret için uygulanabilirliği konusunda bazı şüpheler uyandırır - kombinasyonların yeniden sıralanmasında her zaman daha iyi ağırlık parametreleri olacaktır. Bu NS'nin bu özelliğinin açıklaması nedir?

Bu NS'ye çok önem veriyorsunuz, aslında tüm NS'ler ve MO ile ilgili her şey, genel olarak - sayıların sayılarla çarpımının ve aktivasyon fonksiyonunda bir toplayıcının olduğu her yerde - hepsi grafiğe uygun olacaktır. Tamamen istikrarsız bir sistem.

Dahası, fiyatlandırma durağan olmayan bir süreçtir. Her yeni veri olduğunda ve grafiği kalıplara bölerseniz, bunlar geçmişte 50/50 çalışma eğiliminde olacaktır.

NS durağan sistemler içindir, tekrarlayıcıdır.

Ancak Forex ve benzerlerinde daha gelişmiş, akıllı sistemlere ihtiyacınız vardır. Bir şekilde birbiriyle bağlantılı, bir şekilde sihirli bir şekilde formasyon istatistiklerinin değişimine uyum sağlayan birkaç NS gibi bir şey.

NS'nin kendisi, fiyat yolunun ezberlenmesi veya yeni veri miktarı çarpma yoluyla elde edilen sayıların olası kombinasyonlarından daha fazlaysa sonuçların ortalamasıdır (veya basitçe konuşursak - iki veya üç girdili en basit NS mimarisi).

Bunu araştırmak, mimariler inşa etmek, nöronlar ve katmanlar eklemek ilginçtir. Ancak, kesinlikle işe yaramaz, mashka'yı geçmekten daha iyi değildir.