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

 

Bir nöronun R'den mql'ye nasıl aktarılacağı konusunda:

Bunu nnet paketi ile yaptım. https://cran.r-project.org/web/packages/nnet/index.html (Paket kaynağı: nnet_7.3-12.tar.gz) kaynaklarına bakmanız gerekiyor. Arşivde src / nnet.c klasörü var

fpass işlevine ihtiyaç var, ilk birkaç satır thisError = 0.0'a kadar (bu, backprop için hata hesaplamasının başlangıcıdır, basit tahmin için gerekli değildir)


İşte danışmanda kullanılabilecek kod -

   double sigmoid( double sum)
     {
       if (sum<- 15.0 )
         return ( 0.0 );
       else if (sum> 15.0 )
         return ( 1.0 );
       else
         return ( 1.0 / ( 1.0 + exp (-sum)));
     }

//nnet_hidden - число нейронов в скрытом слое
//выход один
//nnet_weights - массив с весами нейронки взятыми из R после обучения nnet модели

int weights_it= 0 ;
double hiddenLayer[];
ArrayResize (hiddenLayer,nnet_hidden);
for ( int i= 0 ; i<nnet_hidden; i++)
 {
  hiddenLayer[i]=nnet_weights[weights_it++];
   for ( int j= 1 ; j<=nnet_bars; j++)
    {
     hiddenLayer[i]+=openPrices[j]*nnet_weights[weights_it++];
    }
  hiddenLayer[i]=sigmoid(hiddenLayer[i]);
 }
double prediction=nnet_weights[weights_it++];
for ( int i= 0 ; i<nnet_hidden; i++)
 {
  prediction+=hiddenLayer[i]*nnet_weights[weights_it++];
 }
if (!linout)
 {
  prediction = sigmoid(prediction);
 }

bu kod yalnızca model parametresi atlama = YANLIŞ ise çalışır
Böyle değilse veya softmax kullanılıyorsa - fpass () işlevindeki farklılıkları arayın


ağırlıkların (dizi nnet_weights) eğitimden sonra R'nin kendisinden kopyalanması gerekir

 library (nnet)
trainedModel <- nnet(y = 1 : 10 , x = matrix(runif( 20 ),ncol= 2 ), size= 10 )
nnet_weights <- trainedModel$wts
cat( "double nnet_weights[] = {" , paste(format(weights,digits= 16 ,scientific=T), collapse= "," ), "};" , file= "D:/weights.txt" ) #сохранить веса в файлик чтоб оттуда скопипастить в советник
 
Ö! Bu zaten bir şey. Biraz değiştirilmiş ve kullanıma hazır. Teşekkür ederim!
 

Takviye ile ilgili başka bir küçük giriş makalesi, asıl mesele şu ki

mql üzerinde küçük bir ekip çalışması ve beyin fırtınası düzenlemek ve deneyim paylaşmak ilginç olurdu, konu çok ilginç ve diğer yaklaşımlar zaten emildi.

https://proglib.io/p/trade-learning/

Трейдинг и машинное обучение с подкреплением
Трейдинг и машинное обучение с подкреплением
  • 2018.02.15
  • matyushkin
  • proglib.io
В статье рассмотрено, как машинное обучение с подкреплением может применяться для трейдинга финансовых рынков и криптовалютных бирж. Академическое сообщество Deep Learning в основном находится в стороне от финансовых рынков. В силу ли того, что у финансовой индустрии не лучшая репутация, что решаемые проблемы не кажутся слишком интересными для...
 

Benim düşünceme göre, pekiştirmeli öğrenme genellikle çok geniş bir modele sahip bir model verir ve bu durumda çapraz doğrulama kurtarmaz. Modelin kendi içinde, teklife karşı bazı özel mekanizmalar olmalıdır.

Henüz bu konuyla tanışmamış olanlar için kısacası: alışılmış model değerlendirmesi (doğruluk, r2, loggloss vb.) yerine kendi model değerlendirme mantığı ile özel bir uygunluk fonksiyonu oluşturulur. Böyle bir uygunluk fonksiyonu, örneğin, alım satım yaparken modelin karını veya keskinleştirmeyi hesaplayabilir. Ve modelin parametreleri bir genetik algoritma ile seçilir.

Mt4 ve mt5'teki optimize edicinin de pekiştirmeli öğrenme ilkesi üzerinde çalışması ilginçtir - her çubuktaki (hatta kenedeki) danışman fiyat ve göstergelerin mevcut değerlerini alır, bazı kararlar alır, bunlar üzerinde işlem yapılır ve danışmanın nihai tahmini, ticaretin sonucu olarak kabul edilir. Danışmanın parametreleri, puanı artırmak için genetik tarafından seçilir.
MT5 için ücretsiz olarak temin edilebilen Expert Advisors'a bakılırsa, bu eğitim yönteminin pek çok tembellik yarattığı açıkça görülüyor. Ama bazen iyi danışmanlar da alırsınız.

 
Dr. tüccar :

Benim düşünceme göre, pekiştirmeli öğrenme genellikle çok geniş bir modele sahip bir model verir ve bu durumda çapraz doğrulama kurtarmaz. Modelin kendi içinde, teklife karşı bazı özel mekanizmalar olmalıdır.

Henüz bu konuyla tanışmamış olanlar için kısacası: alışılmış model değerlendirmesi (doğruluk, r2, loggloss vb.) yerine kendi model değerlendirme mantığı ile özel bir uygunluk fonksiyonu oluşturulur. Böyle bir uygunluk fonksiyonu, örneğin, alım satım yaparken modelin karını veya keskinleştirmeyi hesaplayabilir. Ve modelin parametreleri bir genetik algoritma ile seçilir.

Mt4 ve mt5'teki optimize edicinin de pekiştirmeli öğrenme ilkesi üzerinde çalışması ilginçtir - her çubuktaki (hatta kenedeki) danışman fiyat ve göstergelerin mevcut değerlerini alır, bazı kararlar alır, bunlar üzerinde işlem yapılır ve danışmanın nihai tahmini, ticaretin sonucu olarak kabul edilir. Danışmanın parametreleri, puanı artırmak için genetik tarafından seçilir.
MT5 için ücretsiz olarak temin edilebilen Expert Advisors'a bakılırsa, bu eğitim yönteminin pek çok tembellik yarattığı açıkça görülüyor. Ama bazen iyi danışmanlar da alırsınız.

Optimize edici ile güzel bir benzetme, sadece önceki botum bununla ilgiliydi, ama çok basit

ancak genel olarak durum böyle değildir, eğer RL genetiğe karşı değilse, o zaman avantajları vurgulanır, örneğin durağan olmayan süreçler üzerinde çalışma yeteneği. Özellikle, modelin süreçte sürekli olarak yeniden eğitildiği ve rastgele adımlar attığı için açgözlü olmayan uygunluk işlevlerini kullanabilirsiniz. Ve optimize edici olarak, Ulusal Meclisten (genetik değil) bir vücut kiti kullanılır.

Orada her şey biraz daha karmaşık, ama henüz kitabı okumayı bitirmedim.

Onlar. genetik, optimize edici ve RL hakkındaki ifadeniz yanlış

 

*bir anlık duygu, felsefe ve tüm bunlar*

Açık, güneşli bir gün hayal edin. Bir göletin yanında çimenlerin üzerinde oturuyorsunuz, ılık bir bahar esintisi esiyor, suda dalgalar bırakıyor, yakınlarda bir yerde ördek seslerini duyabiliyorsunuz. Balıklar su altında sığ yüzerler, bazen yüzgeçleriyle yüzeye dokunurlar ve suda halkalar yayarlar. Bir komşu yakınlardan su çekiyor ve torunu suya taş atarak kurbağaları bir o yana bir bu yana kovalıyor. Gölün diğer tarafında bir adam arabasını yıkıyor.

Fiyat, tüm bu kargaşadan sudaki dalgalar gibi, ama aynı zamanda bir fırtına sırasında. Dalgaları takip edebilir ve belirli bir noktada suyun ne zaman yükselmeye veya düşmeye başlayacağını tahmin etmeye çalışabiliriz, ancak çevreyi takip etmezsek çoğu durumda yanılmış oluruz.

Fiyatın gelecekteki değeri, geçmiş değerlerine değil, geçmiş fiyat değişikliklerine neden olan ve yeni değişikliklere neden olacak küresel dünya süreçlerine bağlıdır.
Sadece sudaki dalgaları değil, aynı zamanda rüzgarı, balığın yörüngesini, komşunun kovasını vb. takip etmek gerekir, o zaman sudaki dalgaların doğası anlaşılır ve tahmin edilebilir olacaktır.

Buna göre, fiyatı etkileyen tüm küresel süreçler hakkında bilginiz varsa, onlardan tahmin etmeyi öğrenebilirsiniz ve geçen yüzyıldan kalma herhangi bir basit model bununla başa çıkacaktır.
Sorun şu ki, genellikle sadece bir fiyat tablosu var ve bu yeterli değil.

 

RL ve NN'yi nasıl bağlayacağınız aşağıda açıklanmıştır

 

ve vidosik, daha 2. bölüm var

işte bu, artık spam yapmayacağım, okumak isteyenler


 
MT'deki sinir ağları ile her şey basittir. Microsoft CNTK'dan bir kitaplık var. Python, C# ve C++ için uygulanmaktadır. Tüm ağ analizi ve eğitimi Python'da yapılır ve eğitilen ağı yükleyen ve üzerinde hesaplamalar yapan C++ ile bir DLL yazılır. Bence bu en iyi seçenek. İkinci seçenek Python'u MT'ye bağlamaktır. Bunun için basit bir kütüphane yazdım. kitaplık Python'da bulunan her şeyi bağlayabilir ve kullanabiliriz. Ve çok fazla mevcut. Blogumda makine öğrenimi hakkında yazmaya başlamalı mıyım diye merak ediyorum.
 
Grigory Chaunin :
MT'deki sinir ağları ile her şey basittir. Microsoft CNTK'dan bir kitaplık var. Python, C# ve C++ için uygulanmaktadır. Tüm ağ analizi ve eğitimi Python'da yapılır ve eğitilen ağı yükleyen ve üzerinde hesaplamalar yapan C++ ile bir DLL yazılır. Bence bu en iyi seçenek. İkinci seçenek Python'u MT'ye bağlamaktır. Bunun için basit bir kütüphane yazdım. kitaplık Python'da bulunan her şeyi bağlayabilir ve kullanabiliriz. Ve çok fazla mevcut. Blogumda makine öğrenimi hakkında yazmaya başlamalı mıyım diye merak ediyorum.

stratejiler ve kişisel düşünceler / deneyimler hakkında okumak ilginç olurdu .. şahsen benim için

çünkü temelde burada kütüphane yığınlarını sıralamak ve ne yazmanın/yazmamanın daha iyi olduğu hakkında her türlü çöpü yazıyorlar .. salgın basit ve her şey sütte

ana fikir fxsaber tarafından uzun zaman önce dile getirilmiş olsa da - bu yaklaşımla konu kapanabilirdi, çünkü başlangıçta hatalıydı