Hatalar, hatalar, sorular - sayfa 2377
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
Evet. OnInit'ten Herhangi Bir Baskı
Teşekkür ederim. Acaba kazara fark etmeseydim, bunu öğrenmenin nasıl mümkün olabileceğini merak ediyorum ...
ZY, bu sayacı yalnızca yerel Temsilciler için bırakırdı. Bulutta, günlüğü bu şekilde kolayca spam yapabilirsiniz.
Teşekkür ederim. Acaba kazara fark etmeseydim, bunu öğrenmenin nasıl mümkün olabileceğini merak ediyorum ...
ZY, bu sayacı yalnızca yerel Temsilciler için bırakırdı. Bulutta, günlüğü bu şekilde kolayca spam yapabilirsiniz.
Genetiği çalıştırdığınızda, özel bir kritere göre optimize ediyor musunuz?
Sunulan günlüklere bakılırsa, OnTester her durumda 0 döndürdü
Genelde kendi kriterlerime göre optimizasyon yapıyorum ama burada normal kriterlere göre denedim. Sonuç benzer.
OnTester 0 döndürür, bu nedenle sonuçlardaki sıfırlar anlaşılabilir. Soru, neden genel bir çalıştırmada (optimizasyon) "0" döndürüyor ve "sıfır sonuçlardan" (aynı parametrelerle) tek bir çalıştırmada normal bir sonuç, grafik vb. üretiyor mu? Onlar. "Kaba Kuvvet"te bir şey çalışmıyor ve aynı zamanda genetik iyi çalışıyor. Başka düşünce/fikir var mı?
Başka düşünce/fikir var mı?
Optimizasyon geçişinin tüm bilgilerini benzer şekilde çekin
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MT5. STRATEJİ TEST CİHAZI. Test ve optimizasyon sonuçları arasındaki tutarsızlık.
fxsaber , 2017.08.22 11:06
Bu satırları EA'ya ekleyin
ve Optimizasyon'u çalıştırın. Ardından, eşleşmeyen tek çalıştırmayı çalıştırın.
Ardından, Optimizasyon ve Tek Geçişten ilgili geçişlerin kaydedilmiş iki raporunu karşılaştırın.
Bu iki raporu karşılaştırmanın sonucu, nedenleri hızla ortaya çıkaracaktır.
Amaç yapılanları mümkün olduğunca iyileştirmek, geliştiricilerin olası eleştirilerden rahatsız olmamalarını rica ediyorum.
1. Soket Okuma işlevleri için "arayüzlerde" bu kadar güçlü farklılıkların nedenleri açık değildir:
2. SocketIsReadable işlevinin adının, gerçekte ne yaptığıyla hiçbir ilgisi yoktur:
Aslında SocketIsReadable, Ws2_32.dll'deki FIONREAD bayrağıyla ioctlsocket() işlevinin eşdeğeridir.
3. Şifrelenmemiş bir bağlantı üzerinden Socket* işlevini kullanan bir kullanıcı, veri aktarımından sonra sunucu bağlantıyı kesmezse, sunucudan minimum gecikmeyle nasıl yanıt alabilir?
Evet, şu şekilde yapılır:4. SocketIsReadable yanlış bilgi döndürür.
İnterneti kapatın ve yukarıdaki kodu çalıştırın.
Sonuç olarak, SocketIsReadable, aklı başında bir 1 değeri döndürür. Mucizeler.
Socket* ile ilgili toplam soru ve sorunların yaklaşık üçte birini tanımlamak mümkündü.
Ne yazık ki, her şeyi kontrol etmek, tanımlamak, iki kez kontrol etmek çok zaman alıyor ... (yani devamının olmayacağı bir gerçek değil)
Genel izlenim: ya her şey büyük bir aceleyle yapıldı ya da Socket * işlevi küçük bir geliştirici tarafından hayata geçirildi.
Her durumda, mevcut çözüm çok kaba ve soket kullanımına oldukça dar bir yaklaşımı içeriyor.
Genelde kendi kriterlerime göre optimizasyon yapıyorum ama burada normal kriterlere göre denedim. Sonuç benzer.
OnTester 0 döndürür, bu nedenle sonuçlardaki sıfırlar anlaşılabilir. Soru, neden genel bir çalıştırmada (optimizasyon) "0" döndürüyor ve "sıfır sonuçlardan" (aynı parametrelerle) tek bir çalıştırmada normal bir sonuç, grafik vb. üretiyor mu? Onlar. "Kaba Kuvvet"te bir şey çalışmıyor ve aynı zamanda genetik iyi çalışıyor. Başka düşünce/fikir var mı?
Danışmanı (PM'de ex5) ve optimizasyon koşullarını paylaşabilir misiniz?
Bahsettiğiniz sorunu yeniden oluşturmak istiyoruz.
Araştırmadan sonra uzman kalıcı olarak silinecek
Danışmanı (PM'de ex5) ve optimizasyon koşullarını paylaşabilir misiniz?
Bahsettiğiniz sorunu yeniden oluşturmak istiyoruz.
Araştırmadan sonra uzman kalıcı olarak silinecek
Danışmanı (PM'de ex5) ve optimizasyon koşullarını paylaşabilir misiniz?
Bahsettiğiniz sorunu yeniden oluşturmak istiyoruz.
Araştırmadan sonra uzman kalıcı olarak silinecek
Özelden cevaplandı.
Socket* işleviyle tanışmamızın bir parçası olarak, mevcut uygulamayla ilgili bir dizi soru ortaya çıktı.
Amaç yapılanları mümkün olduğunca iyileştirmek, geliştiricilerin olası eleştirilerden rahatsız olmamalarını rica ediyorum.
1. Soket Okuma işlevleri için "arayüzlerde" bu kadar güçlü farklılıkların nedenleri açık değildir:
2. SocketIsReadable işlevinin adının, gerçekte ne yaptığıyla hiçbir ilgisi yoktur:
Aslında SocketIsReadable, Ws2_32.dll'deki FIONREAD bayrağıyla ioctlsocket() işlevinin eşdeğeridir.
3. Şifrelenmemiş bir bağlantı üzerinden Socket* işlevini kullanan bir kullanıcı, veri aktarımından sonra sunucu bağlantıyı kesmezse, sunucudan minimum gecikmeyle nasıl yanıt alabilir?
Evet, şu şekilde yapılır:4. SocketIsReadable yanlış bilgi döndürür.
İnterneti kapatın ve yukarıdaki kodu çalıştırın.
Sonuç olarak, SocketIsReadable, aklı başında bir 1 değeri döndürür. Mucizeler.
Socket* ile ilgili toplam soru ve sorunların yaklaşık üçte birini tanımlamak mümkündü.
Ne yazık ki, her şeyi kontrol etmek, tanımlamak, iki kez kontrol etmek çok zaman alıyor ... (yani devamının olmayacağı bir gerçek değil)
Genel izlenim, ya her şeyin büyük bir aceleyle yapıldığı ya da Socket* işlevselliğinin küçük bir geliştirici tarafından uygulandığı yönündedir.
Her durumda, mevcut çözüm çok kaba ve soket kullanımına oldukça dar bir yaklaşımı içeriyor.
1. Bu arayüz.
TLS işlevleri, karmaşık durumları desteklemek için yardımcıdır. SocketTimeouts'u ayarlamakta sorun yok - bunlar kullanılacak en iyileri.
2. İşlevini doğru bir şekilde yerine getirir.
Görünüşe göre, TCP bağlantı kopması algılama sorunlarının farkında değilsiniz. Bağlantının doğru bir şekilde sonlandırılacağının garanti edildiğini tespit etmek oldukça zordur (ek çağrılar nedeniyle yoğun kaynak gerektirir). Tüm ağ uygulamaları bu sorundan muzdariptir.
SocketIsReadible uygulamamız, bağlantı kesme algılamasına sahip olacak kadar akıllıdır. Temiz bir 0 bayt ile karşılaştığında, soketin tamamlandığını kontrol etmek için fazladan bir iş yapar:
Bitmiş bayrak olmadan bayt sayısını döndürdüğünden, sonraki/yaklaşan SocketRead okuma girişiminin normal olarak başarısız olması için 1 bayt döndürür.
Neden doğru? Çünkü programcılar tarafından yazılan kodların çoğu alına şu şekilde yazılır:
aslında, işlemin sonucu doğrudan okuma girişiminde kontrol edilir.
3. Okunan verinin tam boyutunu bilmiyorsanız, gerçekten okumadan önce SocketIsReadible() yapmanız gerekir.
SocketisReadible / SocketRead bağlaması, programınızın yürütme akışı üzerinde kontrolü kaybetmeme (kontrol kaybını neredeyse sıfıra indirmek için) size fırsat verir. Bu, ağ zaman aşımlarına çarpmayı önler.
Evet, birkaç kod satırı daha, ancak (kabaca) bir milisaniye için kontrolü kaybetmezsiniz. Ağ verilerinin yokluğunda ne yapacağınıza siz karar verirsiniz.
4. İkinci paragrafta açıklanmıştır.
Okumayı teşvik etmek ve okuma hatası olarak çıkmak için 1 yayınlama.
Sonuçlarınız yanlış.
Hiçbir garantinin olmadığı TCP/IP aktarımının doğası budur. Orada, TCP sinyalinin hiçbir parçası olmadığında filtreler / güvenlik duvarları üzerindeki ağ kara deliklerine uçabilirsiniz. Zaman aşımlarının ve veri akışının ham kontrolü, bunları algılamanıza ve bağımsız olarak bağlantıları kesmenize olanak tanır.
TLS uygulamaları dahil olmak üzere ağ işlevlerine erişmek için ham/doğrudan bir arabirim verdik. Bunları kullanırsanız, ham işlevleri koruyucu / kontrollü bir SocketIsReadible / SocketRead işleyicisine doğru şekilde sarmanız gereken kişi sizsiniz.
Küçük şeyleri düşünmek zorunda kalmadan üst düzey isteklerde bulunmak istiyorsanız, WebRequest işlevleri vardır. Tüm korumalar yerleşiktir.