MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 973
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Merhaba.
Lütfen çözmeme yardım et. Basit bir dizinin çalışmasını kontrol ederken (bir değer atadım);
a[0][2]=91.49999999993754;
Yazdır ("a[0][2]=",a[0][2]);
H= 1/(1+exp(-a[0][2]));
a[0][2]=H;
Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])) " H=",H," a [0][2]=",a[0][2]);
sonucu alıyorum:
2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.49999999993754
2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0
Nasıl yani?
Merhaba.
Lütfen çözmeme yardım et. Basit bir dizinin çalışmasını kontrol ederken (bir değer atadım);
a[0][2]=91.49999999993754;
Print("a[0][2]=",a[0][2]);
H= 1/(1+exp(-a[0][2]));
a[0][2]=H;
Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])) " H=",H," a [0][2]=",a[0][2]);
sonucu alıyorum:
2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.49999999993754
2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0
Nasıl yani?
Çoğaltılması zor bir örneğiniz var, ancak size yapılan tür nedeniyle beklediğiniz şeyi alamadığından şüpheleniyorum.
bu kodla deneme yapın:
sonra bunlarla:
ve
ve "gerçek sayılar" forumunda arama yapmak, kısacası, "C" tipi döküm ilk bakışta şaşırtıcıdır;)
int değişkenlerini kullanarak bir sürü örnek gösterdiniz.
Tüm çift değişkenlerim var.
Yani değişkenleri aynı formata getirmek işe yaramaz.
int değişkenlerini kullanarak bir sürü örnek gösterdiniz.
Tüm çift değişkenlerim var.
Yani değişkenleri aynı formata getirmek işe yaramaz.
a[0][2]=91.49999999993754;
Print("a[0][2]=",a[0][2]);
H= 1 /( 1 +exp(-a[0][2]));
a[0][2]=H;
Print(" 1/(1+exp(-a[0][2]))=",1/(1+exp(-a[0][2])) " H=",H," a [0][2]=",a[0][2]);
sonucu alıyorum:
2019.09.21 13:21:44.328 2011.01.03 14:54:20 W EURUSD,H4: a[0][2]=91.49999999993754
2019.09.21 13:21:44.328 2011.01.03 14:54:18 W EURUSD,H4: 1/(1+exp(-a[0][2]))=0.7310585786300049 H=1.0 a[0][2]=1.0
Nasıl yani?
tamsayı sabitleriniz var ve örneğin kendisi tekrarlanabilir değil - hiçbir değişken türü yoktur ve genel olarak - "bir grup örneğim" bir PC olmadan hesaplanabilir, örneğiniz ... peki, bana nasıl olduğunu önceden söyleyin çok e^(-91.49999)
tamam gidelim sana yardım edemem
Üzgünüm... "Yardım edemem"...
Bu ne kadar e^(-91.49999) olacağı ile ilgili değil. Soru, neden double = H türündeki bir değişkene yanlış yazıldığıdır.
önceden hesaplanan tür sayısı double = 0.7310585786300049 ve 1.0 yazılır (bu arada double).
Kodumu test cihazında çalıştırma zahmetine girerseniz, sanırım MT4'ünüz de aynısını verecektir.
Eğer öyleyse, MQL4 iş için kullanılamaz ve tehlikelidir!
Üzgünüm... "Yardım edemem"...
Yardım ettim, yardım benim için yap ya da zaten okumayacağım anlamına gelmez, ama sonuç benim için önemli!
Eğer öyleyse, MQL4 iş için kullanılamaz ve tehlikelidir!
MQL4 / MQL5 matematiksel ifadeleri hesaplarken davranış C ++ ile tamamen örtüşüyor, sorunuzla herhangi bir C ++ forumuna başvurabilirsiniz, belki varlık orada yardımcı olabilir
Peki, yardım / açıklama / öğretme alanından sorunuz, MT platformunun tartışma alanına taşındı, beğenmediyseniz kullanmayın, ücretsiz mi aldınız?
... eski zamanlarda, fiziksel süreçlerin yanlış anlaşılması insanlarda panik korkusuna neden oldu, sonra gök gürledi, sonra bir deprem ... önce paniğe ve spekülasyona neden oldu, sonra din ortaya çıktı)))
Bu kadar sinirlenmemeliydin.
Kişisel duygularınızı incittiysem, içtenlikle özür dilerim.
MT4'ü kesinlikle tartışmıyorum ve kınamıyorum. sadece koşmayı önerdim
MT4 test cihazında gönderdiğim kod ve tüm değişkenlerin (H, a[0][2] ) olması şartıyla
double olarak tanımlandı ve sonuç benimkiyle aynı, o zaman bir sorum var:
sorun ne? sana hitap ettim.
Bir kez daha: Yazık ki... "Yardım edemem"...
Herşey gönlünce olsun.
tüm değişkenler (H, a[0][2] )
çift olarak tanımlandı
Bir kez daha tekrar ediyorum - matematiksel bir ifadede sabitleriniz var mı? - benim örneğimde de sabit 5 var... sonra 5.0 yazdım - derleyici için aynı değil! ve sonra derleyici için double ---> yazmak için tamsayı sabiti 5'i açıkça kullandım, bu 5.0'ın üzerindeki örnekle aynı olacaktır.
Sorunuz forumda düzenli olarak tekrarlanıyor, ancak belki de sorunuzun ne olduğunu anlamıyorum - "ağır bir formülünüz" ve açık olmayan değişkenleriniz var - gereksizleri örneklerden kaldırın - diziler ve üs - o zaman sorunun ne olduğu konusunda net olun, ancak tüm gereksizleri kaldırırsanız , büyük olasılıkla beklediğinizi almadığınız yeri kendiniz bulacaksınız - genellikle bende böyle;)
Not: ve eksi 91.49'un kuvvetinin üssü çok küçük bir sayı değil mi? çift tip daha fazla hassasiyete sahip, ancak yüzüncü derecede, evet ve eksi işaretini hesaba katarsak - bence bu ifade kesinliğini kaybedecek, google'a gitmek istemiyorum, ama ilk çevirdiğim şey Wiki oldu
Sabrınız için teşekkürler!
Bu şekilde denedim:
A=91.49999999993754;//a[0][2]=91.49999999993754;
Yazdır ("A=",A);
H= 1/(1+exp(-A));
//A=H;
Print(" 1/(1+exp(-A))=",1/(1+exp(-A)) " H=",H," a[0][2]=",a[0 [2]);
Sonuç:
2019.09.21 16:14:17.691 2011.01.04 22:29:51 EURUSD,H4: A=91.49999999993754
2019.09.21 16:14:17.690 2011.01.04 22:29:50 W EURUSD,H4: 1/(1+exp(-A))=1.0 H=1.0 a[0][2]=0.0
Neden 1/(1+exp(-91.49999999993754))=1.0 'ı anlayacağım.
Lütfen beni Anla. Şimdi bir sinir ağı kurmak ve eğitmekle meşgulüm. kodun kendisi ham ve ben bile kafam karıştı ... :)
Ağın hataları tekrarladığını fark ettim. Ve sigmoidin hesaplanmasındaki ana hata. =1 OLMAMALIDIR.
Sabrınız için teşekkürler!
Bu şekilde denedim:
A=91.49999999993754;//a[0][2]=91.49999999993754;
Yazdır("A=",A);
H= 1/(1+exp(-A));
//A=H;
Print(" 1/(1+exp(-A))=",1/(1+exp(-A)) " H=",H," a[0][2]=",a[0 [2]);
Sonuç:
2019.09.21 16:14:17.691 2011.01.04 22:29:51 EURUSD,H4: A=91.49999999993754
2019.09.21 16:14:17.690 2011.01.04 22:29:50 W EURUSD,H4: 1/(1+exp(-A))=1.0 H=1.0 a[0][2]=0.0
Neden 1/(1+exp(-91.49999999993754))=1.0 'ı anlayacağım.
Lütfen beni Anla. Şimdi bir sinir ağı kurmak ve eğitmekle meşgulüm. kodun kendisi ham ve ben bile kafam karıştı ... :)
Ağın hataları tekrarladığını fark ettim. Ve sigmoidin hesaplanmasındaki ana hata. =1 OLMAMALIDIR.
bu yüzden hiçbir şey bulamayacaksınız, bu yüzden kontrol etmeye karar verdim, koddaki hatanın veya yanlışlığın nerede olduğunu aramanız gerekiyor:
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 4.e = 1.828331349163451e-40
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 3. H = 1.0
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 2. a = 1.0
2019.09.21 16:53:01.516 tst_template EURUSD,H1: 1. a = 91.49999999993754