Nöral ağlar - sayfa 7

 
Cyclesurfer:
Harika Yeni Dijital! Birkaç dakika içinde malzemeye bakacağım...Rusçayı kırmam gerekiyor..ki bu çok iyi değil, ama bence AltaVista ile birleştiğinde iyi bir girişimde bulunabileceğimi düşünüyorum. Şu anda diğer Sinir Ağlarında (bundan sonra NN) CORTEX'te kodlama yapıyorum ve MQ4'e dönüştürmeyi planlıyorum...Bence KESİNLİKLE bu konuyu devam ettirmeliyiz çünkü (ve bu bir görüş) NN teknik analizin geleceğidir. NN'ler, bilecek kadar inek olmayanlar için.. temelde beyni taklit eden algoritmalardır (zorunlu olarak insan beyni değil..çünkü bu Zihin aşırı derecede karmaşık olurdu), çünkü ilerledikçe öğrenir. EA'ları, bir similer sinyali verildiğinde daha önce gelen küçük kalıplara dayalı olarak belirli bir sinyali alıp almama konusunda tavsiye vermek için yazıyorum. Çoğu NN'nin yaptığı budur, bizim için anlamsız olabilecek küçük kalıplar, hatta diğer algoritmalar için veri ararlar ve bu kalıpların zaman içinde ne yaptığını görürler. İlk EA, Brain Trend'i içerecek. Yine de herkesten sabırlı olmasını rica ediyorum, CORTEX kodlaması zaman alır... daha doğrusu, NN'leri eğitmek ve mükemmelleştirmek zaman alır. Buradaki herhangi biri CORTEX veya Kod dönüştürme konusunda bilgi sahibiyse, herhangi bir yardım memnuniyetle karşılanacaktır. Rus forumunun neden ticarileşeceğini anlıyorum...NN'ler büyük para tüccarları ile şu anki tarz. Peki... siz ne diyorsunuz?

Sizi, bu yazılımla ilgili birkaç kişiyi bulacağınız bu konuya taşıdım. Bunlardan biri yukarıda alıntılanmıştır.

 

Matlab ve Metatrader kullanarak Sinir Ağı

Merhaba!

Matlab kullanıyorum ve birkaç çift için bir sinir ağı geliştirdim, ancak NN'yi Matlab'dan mql4'e yeniden programlamakta sorun yaşıyorum!

Bir test için, i+10 ve i+20'deki fiyattan USDJPY fiyatını tahmin eden küçük bir sinir ağı oluşturdum. 2 girişi, 3 gizli, 1 çıkışı vardır. Gizli katman aktivasyon fonksiyonu tansigmoidedir, çıktı için lineerdir.

NN çıktısını gerçek fiyatla çizersem, NN'nin çalıştığını gösterir, ancak yaptığım kodla kesinlikle çalışmıyor.

Gizli katmanın hesaplanan ağırlıkları:

[13.8525 -43.4534;

-11.2084 18.4331;

-0.30603 0.01022]

Gizliden çıktıya kadar olan ağırlıklar:

[0.0020021 0.0047956 -3.4143]

Gizli katmanın önyargısı:

[13.876;

2.644;

0.083215]

Çıktının önyargısı

[0.27514]

Sorun, tan sigmoide olması gereken aktivasyon fonksiyonunda olmalıdır. Fiyat 100'den fazla olduğu için MathExp(-100) bana çok küçük bir şey veriyor...

İşte kodun ilginç kısmı:

>>

double a1=iClose("USDJPY",0,i+10);

double a2=iClose("USDJPY",0,i+20);

//Düğüm (1,1)

çift Sum_node_1_1=13.8525*a1 -43.4534*a2+13.876;

double Sigmoide_node_1_1=(1-MathExp(-Sum_node_1_1))/(1+MathExp(-Sum_node_1_1));

//Düğüm (1,2)

double Sum_node_1_2=-11.2084*a1+18.4331*a2+2.644;

double Sigmoide_node_1_2=(1-MathExp(-Sum_node_1_2))/(1+MathExp(-Sum_node_1_2));

//Düğüm (1,3)

double Sum_node_1_3=-0.30603*a1+0.01022*a2+0.083215;

double Sigmoide_node_1_3=(1-MathExp(-Sum_node_1_3))/(1+MathExp(-Sum_node_1_3));

//---- Çıkış değeri -----

double Sum_node_2_1=(0.0020021*Sigmoide_node_1_1+0.0047956*Sigmoide_node_1_2-3.4143*Sigmoide_node_1_3+0.27514);

<<

Yardımlarınız için teşekkürler!

 

İşte Matlab altında bir sinir ağı inşa etme problemimi göstermek için bir örnek. Gönderdiğim resim, EURGBP için hedef değeri (X) ve Sinir ağı çıkışını (Y) göstermektedir. Yani daha da kötüsü, 0,7'lik gerçek bir fiyat için, NN çıktısı 0,68 ile 0,73 arasındadır (oldukça kötü ama bu sadece bir testti!).

Çıktı değerini elle hesaplamak için NN ağırlıklarını kullanırsam, 0,75 elde ederim, bu 0,7 için imkansızdır... O halde çıktımın hesaplanmasında bir yerde yanılmış olmalıyım... İşte formül:

-1.1261*tansig(-1.6589*0.6964+1.4776*0.6936+4.5965)

-0.013796*tansig(-2.6065*0.6964+ 4.3402 *0.6936+0.30321)

+1.2166*tansig( 0.88612*0.69669364+0.11309 *0.6936+0.055821)+11.1116

Ağırlıklar :

-Girişten katmana ağırlıklar

[-1.6589 1.4776;

-2.6065 4.3402;

0.88612 0.11309]

-Katman için ağırlıklar

[-1.1261 -0.013796 1.2166]

- 1. katmana önyargı

[4,5965;

0.30321;

0.055821]

- 2. katmana önyargı

[1.1116]

Çıktıyı hesaplamak için kullanılan 2 girdi fiyatı:

0.6964

0.6936

Ağ, çıkış için gizli ve doğrusal aktivasyon için Tangente sigmoide aktivasyonu ile 2 giriş/3 gizli/1 çıkıştır.

TEŞEKKÜRLER!!

Dosyalar:
captureplot.jpg  23 kb
 

Bunun yanı sıra, mql4 kodumda doğru Tangente sigmoide etkinleştirme işlevi yanlıştı. Doğru fonksiyon: 2/(1+MathExp(-2* x ))-1

Şerefe!

 

İlk sonuçlar

bu konu biraz ölü görünüyor, ama umarım hala sinir ağlarıyla ilgilenen insanlar vardır! Bu yüzden lütfen NNets ile olan deneyiminizi burada paylaşın!

Sinir ağlarının tahmin gücünü test etmek için birkaç faktör kombinasyonunu zaten test ettim.

Farklı makalelerde ve yazılarda okuduğum gibi, önceki Yüksek-Düşük-Aç-Kapat kullanmak tamamen verimsiz görünüyor. NN tamamen karanlıkta kaybolmuş... Gerçek değere karşı NN çıktısının uydurma grafiği yataydır (1. resim Açık-Düşük-Yüksek-Kapalı.jpg), yani hiçbir şeyi tahmin edemez. Bir NN ile piyango numaralarını bulmaya çalışmakla aynı sonuçtur. Normalize edilmiş veya edilmemiş farklı giriş ve çıkış değerleri denedim sonuç aynı.

Peki neye bakmak daha kötü? Görünüşe göre teknik göstergeler çok daha iyi çalışıyor. Mutlak fiyatı tahmin etmek için girdi olarak klasik göstergelerin bir karışımını test ettim. Uydurma arsa en iyi değil ama kötü de değil (2. resim - Teknik faktörler girdiler.jpg). Ayrıca mutlak değerleri kullanmanın çok kötü bir fikir olduğunu düşünüyorum.

Gelecekteki eğimi tahmin etmek için Hareketli ortalama eğimi kullanmak, olası geri dönüşleri belirlemek için ilginç sonuçlar verir (3. resim MA Slope.jpg).

Bir başka ilginç araştırma yolu da, iyi ticaret koşullarını değerlendirmek için bir NN kullanmaktır. Bu yüzden, mevcut kapanıştan hesaplanan normalleştirilmiş bir puan oluşturdum ve bu, gelecekteki Yüksek ve Düşüklere olan uzaklık. Skor yüksekse, önümüzdeki 4 periyotta, mevcut kapanış ve gelecekteki yüksekler arasındaki mesafenin yüksek olduğu (önceden satın al) ve düşük mesafeye olan mesafenin düşük olduğu (önemli bir düşüş yok) anlamına gelir. Şu an için bu yöntemle bir başarım olmadı.

Çok yakında bazı yorumlarınız ve deneyim paylaşımlarınız olması dileğiyle!

 

Tebrikler Webesa

THX Sevgili Webesa,

bunlar iyi sonuçlar,

ama 1 soru: mumlar arasındaki ilişkiyi daha iyi tahmin etmek için daha büyük NN (daha fazla girdi + daha fazla katman + daha fazla nöron) kullanmak daha iyi değil mi?

 

sinir ağından dll'ye

Merhaba,

Matlab veya Neurosolutions'dan eğitimli bir sinir ağı içeren bir dll'yi bir mq4 betiğine entegre etme deneyimi olan var mı?

 
webesa:
bu konu biraz ölü görünüyor, ama umarım hala sinir ağlarıyla ilgilenen insanlar vardır! Bu yüzden lütfen NNets ile olan deneyiminizi burada paylaşın!

Sinir ağlarının tahmin gücünü test etmek için birkaç faktör kombinasyonunu zaten test ettim.

Farklı makalelerde ve yazılarda okuduğum kadarıyla, önceki Yüksek-Düşük-Aç-Kapat kullanmak tamamen verimsiz görünüyor. NN tamamen karanlıkta kaybolmuş... Gerçek değere karşı NN çıktısının uydurma grafiği yataydır (1. resim Açık-Düşük-Yüksek-Kapalı.jpg), yani hiçbir şeyi tahmin edemez. Bir NN ile piyango numaralarını bulmaya çalışmakla aynı sonuçtur.

Normalize edilmiş veya edilmemiş farklı giriş ve çıkış değerleri denedim sonuç aynı.

Peki neye bakmak daha kötü? Görünüşe göre teknik göstergeler çok daha iyi çalışıyor. Mutlak fiyatı tahmin etmek için girdi olarak klasik göstergelerin bir karışımını test ettim. Uydurma arsa en iyi değil ama kötü de değil (2. resim - Teknik faktörler girdiler.jpg). Ayrıca mutlak değerleri kullanmanın çok kötü bir fikir olduğunu düşünüyorum.

Gelecekteki eğimi tahmin etmek için Hareketli ortalama eğimi kullanmak, olası geri dönüşleri belirlemek için ilginç sonuçlar verir (3. resim MA Slope.jpg).

Bir başka ilginç araştırma yolu da, iyi ticaret koşullarını değerlendirmek için bir NN kullanmaktır. Bu yüzden, mevcut kapanıştan hesaplanan normalleştirilmiş bir puan oluşturdum ve bu, gelecekteki Yüksek ve Düşüklere olan uzaklık. Skor yüksekse, önümüzdeki 4 periyotta, mevcut kapanış ve gelecekteki yüksekler arasındaki mesafenin yüksek olduğu (önceden satın al) ve düşük mesafeye olan mesafenin düşük olduğu (önemli bir düşüş yok) anlamına gelir. Şu an için bu yöntemle bir başarım olmadı.

Çok yakında bazı yorumlarınız ve deneyim paylaşımlarınız olması dileğiyle!

Hareketli ortalamaları kullanan NN için girdileriniz/çıktılarınız tam olarak neydi?

 
 

Sanırım haklısın, sürekli yeniden eğitmek zorunda değilsen, dll'ye ihtiyacın yok.

Bunun için bir şablon paylaşmak ister misiniz?