Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 3269
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Peki tüm bu korelasyon olayının nihai amacı nedir?
Başkalarının teknik kısıtlamalar nedeniyle hesaplayamadıklarını ben hesaplayabileceğim.
Ayrıca test ve görselleştirme ve hızlı aksiyon, muhtemelen
Anlaşmaların parametrelerini almak için son optimizasyon da normaldir
İlk başta önden varyantı yapmayı denedim - her seferinde tüm satırları saymak için. Alglib'de bir hata olduğu izlenimine kapıldım, çünkü kendiminkinde bulamadım.
Sonuç genellikle aynı olur.
Ama bazı durumlarda öyle değildir.
Eğer her zaman böyle olsaydı, bu benim hatam olurdu. Ama burada şüpheli bir şeyler var.
yaptım.
Print(Matrix1);
Print("------------------");
Print(Matrix2);
Matrix2'de ilk 5 eşleşme var, sonra sıfırlar.
Matrisler benzer hale geldi, ancak hala IsEqual geçmiyor. Bir yerlerde başka bir şey...Res.Col(Corr.Row(0), i);'yi Res.Row(Corr.Row(0), i) olarak değiştirdim;
Res.Col(Corr.Row(0), i); ifadesi Res.Row(Corr.Row(0), i) olarak değiştirildi;
Yanlış gibi görünüyor.
Made
Print(Matrix1);
Print("------------------");
Print(Matrix2);
Matrix2'de ilk 5 eşleşme var, ardından sıfırlar geliyor.
Matrisler benzer hale geldi, ancak hala IsEqual geçmiyor. Bir yerlerde başka bir şey var...Res.Col(Corr.Row(0), i);'yi Res.Row(Corr.Row(0), i) olarak değiştirdim;
Sorunu buldum
Şöyle olmalı
for (int i = 0; i < ( int)Matrix.Cols(); i++)
{
if (i)
Vector.SwapCols(0, i);
CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr);
Res.Col(Corr.Row(0), i);
}
Not:
Genel olarak kodunuz güzel ve özlü. Ben olsam her şeyi loops içinde yapardım))))
Ve PearsonCorrM2, üçgenle sayarsanız 2 kat hızlandırılabilir.yani sondan gidin. 100. satırı tümüyle sayın, sonra 99'u tümüyle 0-99, 99 ve 100. zaten sayıldı - sadece kopyalayabilirsiniz. ...50. satırı tümüyle 50.'ye kadar vb.
Bir yerde korelasyonu hızlı fourier dönüşümü yoluyla hızlı bir şekilde okuyabileceğinizi okudum... Ayrıca hızlandırmak için bir seçenek olarak.
Ben yaptım. Dize uzunluğu büyük olduğunda mantıklı. Sana bir ara gösteririm.
Sorunu buldum
Şöyle olmalı