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
Herkese merhaba!
Lütfen bir aceminin sınıflarda dizileri kullanmayı anlamasına yardımcı olun. Sorunu temsil etmek için anahtar kodunu küçük bir parçaya kesin:
Yürüttüğümde, mirasçı sınıfının satırında Array out of range hatası alıyorum, üst sınıfta beklenen 0'ı alıyorum.
2012.02.13 00:41:25 2011.01.01 00:00:00 dizi 'test1.mq5' içinde aralık dışında (29,36)
2012.02.13 00:41:25 2011.01.01 00:00:00 dizi[0]= 0.0
Anladığım kadarıyla, bu işlendiğinde sıradan değişkenlerde herhangi bir hata olmamasına rağmen, bir diziyi mirasçı sınıfına yanlış aktarıyorum (veya erişiyorum).
Neyi yanlış yapıyorum?
Son zamanlarda çok sık *.mq5 dosyalarını başlatırken böyle bir mesaj görüyorum:
Sorun ne olabilir?
Herkese merhaba!
Neyi yanlış yapıyorum?
Bakın, ikinci satırda "ikinci Csaniye" ilan ederken; InitArray() yönteminiz çağrılmadı, değil mi? Aynı zamanda, Csecond nesnesinin kendisi zaten yaratılmıştır. Böylece dördüncü satırda "Csecond. Printer() ;" yöntemini çağırdığınızda, çağrının başlatılmamış ve boyutlandırılmamış Stf_ZZ_Val[] dizisine gittiği ortaya çıkıyor.
Test sırasında başlangıç tarihinden itibaren (MT4'te olduğu gibi) 1000 barlık kullanılabilir geçmiş sınırının kaldırılıp kaldırılmadığını söyleyebilir misiniz?
Ne demek istediğini açıkla?
İlk beşte, veriler testin başlangıcından itibaren bir önceki yıldan yüklenir. Yani, 2012.02.01'den itibaren test yapıyorsanız, veriler 2011.01.01'den yüklenecektir.
İstisna günler, haftalar ve aylar üzerinde testtir - orada verilerin başlangıcının hesaplanması, testin başlamasından önce 100 bar olması ihtiyacından gerçekleştirilir.
Ne demek istediğini açıkla?
Başlangıçta, örn. 2011.01.01'den beri en az 3000 barlık bir günlük geçmişe ihtiyacımız var. Onlar. test için gerekli olandan kasten daha uzun bir süre ayarlamanız ve "başlangıç noktasını" programlı olarak izlemeniz gerekir. Test sırasında tüm (veya istek üzerine) geçmişi sağlamanın zorluğu nedir?
Zorluk yok. Çoğu kullanıcı için anlaşılmaz olacak ve birçok durumda yanlış kullanılacak test ayarlarına ek bir onay kutusu eklemek istemedik.
Kasıtlı olarak daha uzun bir süre belirlemek normal bir karardır.
Başka bir çözüm daha var - aylık olarak sipariş testi yapın ve günlük göstergeleri ve fiyat verilerini kullanın (yani PERIOD_CURRENT yerine açıkça PERIOD_D1 olarak ayarlayın)
Ek olarak, test sırasında değil, gerçek otomatik ticarette geçmişin mevcudiyeti ile ilgili soru ortaya çıkıyor. Bu durumda nasıl olunur? Bir testçi alt edilebilir...
Açıklama için teşekkürler!
Takipte: İnternet üzerinden uzak aracılarla test ediyorum. Günlük açılış fiyatlarıyla test yaparsam, acenteler neden 1 dakikalık tam geçmişe sahip oluyor? Testlerin başlamasından önceki hazırlık süresi sadece uygunsuz - örneğin bir saat. 10-100 megabitlik bir borusu olanlar için iyidir ve burada sefil bir megabit üzerinde oturuyorsunuz ...