Genel sınıflar kütüphanesi - hatalar, açıklamalar, sorular, kullanım özellikleri ve öneriler - sayfa 13
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
Gerçekte belirli bir bileti arayan ve önbelleğe alan HistorySelect (test cihazında erişim aralığını ayarlar) ve HistoryDealSelect(bilet) arasında karşılaştırma yapamazsınız.
Bu anlayıştan dolayı, Clear versiyonu hemen oluşturuldu. Clear ile Full'u aynı anda karşılaştırabilmek.
Böylece tarih (özellikle test cihazında) sadece tamamlanır, eski kayıtlar değişmez. Temizle seçeneğiyle ilgili.
Gerçek hayatta, bir emir kısmen yürütüldüğünde ve birkaç işlem oluşturduğunda bile, tamamen dolana veya iptal edilene kadar geçmişe girmeyecek gibi görünüyor. Onlar. donmuş tarih kuralı korunur.
Kontroller olmadan yazılım yazsaydık, her şey uzun zaman önce çökerdi.
Finansal yazılım, "kesilmiş köşeler" modunda yazmanıza izin vermez. Bir yerde, sonra başka bir yerde kesersiniz ve ardından geliştiriciler zorlu kontrolleri atlamanın doğru olduğuna inanır ve başarısızlık kaçınılmazdır.
Test cihazında yine de kontrolleri zayıflatabilirsiniz, ancak gerçek hayatta Uzman Danışmanınızın çalışmasına paralel olarak tüm pazar ortamında sürekli değişiklikler üzerinde çalışan birçok asenkron süreç vardır. MQL5 aramaları arasında bir şeylerin kaydedileceğini düşünmek bile korkutucu.
Kontroller olmadan yazılım yazsaydık, her şey uzun zaman önce çökerdi.
Finansal yazılım, "kesilmiş köşeler" modunda yazmanıza izin vermez. Bir yerde, sonra başka bir yerde kesersiniz ve ardından geliştiriciler zorlu kontrolleri atlamanın doğru olduğuna inanır ve başarısızlık kaçınılmazdır.
Test cihazında yine de kontrolleri zayıflatabilirsiniz, ancak gerçek hayatta Uzman Danışmanınızın çalışmasına paralel olarak tüm pazar ortamında sürekli değişiklikler üzerinde çalışan birçok asenkron süreç vardır. MQL5 aramaları arasında bir şeylerin kaydedileceğini düşünmek bile korkutucu.
Açıklama için teşekkürler! Tester, umarım biraz düzeltirsin.
Bu anlayıştan dolayı, Clear versiyonu hemen oluşturuldu. Clear ile Full'u aynı anda karşılaştırabilmek.
Test ettiğiniz şeyi yanlış anlıyorsunuz. Bu hiçbir şekilde Clear seçeneği değildir ve ilk olarak HistorySelect'e yapılan referansla ilgisi yoktur.
Tam seçeneğiniz, esasen, birincisi önbellekte bir anlaşma seçen ve ikincisi önbelleğe alınan sonuca erişen çift arama (bilet arama) anlamına gelir. Bir anlaşmanın var olduğu bilinen belirli bir problemde, ilk seçim çağrısı gereksizdir. Get yöntemleri, etkilenen girişi dolaylı olarak önbelleğe gönderir.
Bilgi için: geliştiricilerin hatanın temel nedenlerini alabilmeleri için dahili olarak ayrıntılı Son Hata kodlarını (GetLastError() çağrısı altında) göstermemiz gerekir. Genellikle, platformun derinliklerinde arama başına bu tür birkaç kontrol vardır.
Test ettiğiniz şeyi yanlış anlıyorsunuz. Bu, hiçbir şekilde Temizle seçeneği değildir ve ilk olarak HistorySelect'e yapılan referansla ilgisi yoktur.
Bunu fark etmemişsin gibi görünüyor.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Genel sınıf kitaplığı - hatalar, açıklama, sorular, kullanım ve öneriler
fxsaber , 2017.12.08 22:46
Bunu fark etmemiş gibisin.
Ya da belki farklı şeylerden bahsediyoruz.Algılanan.
Önceden yüklenmiş hikaye nedir? Test cihazındaki HistorySelect'in sahte olduğunu ve istekte belirtilen tüm geçmişi önbelleğe aktarmadığını, ancak yalnızca mevcut işlem veritabanındaki & ile konumlarını işaretlediğini belirttim. Bu nedenle, maliyet sıfırdır.
GetDealProfitClear'da, HistoryDealGetDouble (Deal, DEAL_PROFIT ) aracılığıyla yanlış anladığınız GetDealProfitFull yöntemiyle aynı şekilde ve tamamen aynı şekilde bir istekte bulunursunuz, burada tamamen aynı fiziksel yöntemler vardır
Yani, test cihazındaki geçmişe erişim çok optimize edilmiştir ve gerçekten, Uzman Danışmanınız dışında hiç kimsenin ticaret geçmişini değiştiremeyeceği gerçeğine odaklanır (hala kontroller vardır).
Gerçek bir terminalde her şey farklıdır ve HistorySelect pahalıdır.
Ne demek istediğini anladım. Ayrıntılar için teşekkürler! Neyle sonuçlanacağını merak ediyorsun
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Genel sınıf kitaplığı - hatalar, açıklama, sorular, kullanım ve öneriler
Renat Fatkhullin , 2017.12.08 23:19
Kodumuza baktım - alım satım işlemleri veritabanına yapılan çağrıları optimize etmek mümkün. Önümüzdeki hafta piyasaya sürülmek üzere uygulamaya çalışacağız.
CHashMap uygulamasıyla tanıştım
Dürüst olmak gerekirse, beğendim.
Olası iyileştirme için birkaç öneri var:
1) Benim düşünceme göre, uygulama tamamen doğru olmayan bir kapasite seçimi içeriyor - hem ilk boyut 3 hem de hash tablosu yeniden oluşturulduğunda sonrakiler.
Evet, doğru, düzgün dağılım için bir asal sayı seçmeniz gerekiyor.
Ancak, CPrimeGenerator uygulaması beklentileri karşılamıyor ve eksik asal sayılar içeriyor.
Böyle bir "jeneratörün" amacı açıktır - otomatik asal sayılar oluşturma ile 1.2 mertebesinde bir büyüme faktörü sağlamak.
Ancak, bu çok küçük bir faktör değil mi? Vektörler için C++'da katsayı genellikle kitaplığa bağlı olarak 1.5-2.0'dır (çünkü işlemin ortalama karmaşıklığını büyük ölçüde etkiler).
Çıktı sabit bir katsayı olabilir, ardından bir asal sayılar listesinde ikili arama yoluyla sayı bir asal sayıya yuvarlanabilir .
Ve başlangıçtaki kapasite boyutu 3 çok küçük, geçen yüzyılda yaşamıyoruz.
2) Şu anda, karma tablonun yeniden oluşturulması (Yeniden boyutlandırma) yalnızca %100 dolum kapasitesi ile gerçekleştirilir (tüm m_entries[] doldurulur)
Bu bağlamda, çok düzgün dağılıma sahip olmayan anahtarlar için önemli sayıda çarpışma mümkündür.
Bir seçenek olarak, karma tablo yeniden oluşturma işlemini gerçekleştirmek için gereken sınıra göre %100 azaltacak bir doldurma faktörü eklemeyi düşünün.
Ve sizin durumunuzda klasik versiyon ne kadar geri dönüyor?
Bu printf çalışma zamanıdır.
Bir şekilde örneğimi yanlış anladın. MetaTrader'ın standart işlevselliği ile hiçbir şeyi karşılaştırma amacım yok. Bu, kullanıcı düzeyinde, ilişkilendirmeler için etkili algoritmaların nasıl organize edileceği ve herhangi bir şeyin herhangi bir şeyle örneklenmesiyle ilgilidir. Anlaşma numarasının sipariş numarasına bağlanması örneği sadece bir örnek olarak düşünülmelidir, çünkü pratik değeri düşüktür. HistoryDealGetInteger (Deal, DEAL_ORDER ) sistemi var.
Peki, seçilen iki göstergeyi karşılaştıralım. HashMap erişiminin geliştiricilerin sahip olduğundan 4 kat daha hızlı olduğu ortaya çıktı. Ancak geliştiriciler için zaten tarih içeriyor ...
Aynı nedenle, karşılaştırma yanlıştır. Bir ticaret ortamı elde etmek için özel CHashMap'i nasıl karşılaştırabilir ve sistem işlevleriyle nasıl çalışabilirsiniz?