![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Yeni tanımı kullandığımı anlıyorum - eskileri
Açıklamada yoktur, ancak yine de editör tarafından vurgulanırBu işlevi kullanırken, "2012.11.28 09:58:32 4194304 bayt kullanılamıyor" hatası oluşuyor, anlamama yardımcı olun, disk belleği dosyasını 10 GB'a yükseltti.
Yedelkin :
А лог-файл случайно алёртами не забивается?
Kontrol ettim, günlük 10 kB, daha fazlası oldu,
"MemoryException 09:36:12 4194304 bayt kullanılamıyor" hatası, sık sık tekrarlanıyor.
Fark edildi (önceki kodda):
// Diziden indekse göre bir nokta seçme (PERIOD_M5'ten (indeks - 5) PERIOD_D1'e (indeks - 19))
numaralandırma için daha az süre alırsanız (örneğin, PERIOD_M5 - PERIOD_M6), hata olmaz.
// Diziden indekse göre bir nokta seçme (PERIOD_M5'ten (indeks - 5) PERIOD_D1'e (indeks - 19))
1. Ne tür bir diziden bahsediyoruz?
2. Dizinin altındaki bu dizide hangi değer var, örneğin 19?
1. Ne tür bir diziden bahsediyoruz?
2. Dizinin altındaki bu dizide hangi değer var, örneğin 19?
Bence bunu yapmak daha kolay, işlevi ayrı bir uzman olarak yazdım, çalıştırıp kendiniz görebilirsiniz.
Yardım etmek için zamanınız ve arzunuz varsa. (aynı hata)
Yinelenen kod:
Dosya Eklenmiş. Test cihazı seçenekleri (her ihtimale karşı)
EURUSD.e
H1
OHLC
2012.1.1 - 2012.4.1
Soruyu güncelliyorum, iki hatayla ilgileniyorum:
1. 2012.11.28 11:45:18 4194304 bayt mevcut değil
Henüz karar veremiyorum, ancak m_period = PERIOD_INDEX[iperiod] periyotlarını yinelemek yerine, örneğin PERIOD_H1 olarak ayarlayın, o zaman hata olmayacak,
ama tüm dönemlere ihtiyacım var.
2. 2012.11.28 11:45:49 2012.01.01 00:00:00 Uyarı: CopyBuffer hatası - hata numarası: 4806
Bu hatayı çözmek için Sleep(1000); yorumunu kaldırın, ardından kaybolur ve arabellekteki veriler normal şekilde kopyalanır.
soru: neden peki? Ek zaman kayıplarını önlemek için Sleep(1000) olmadan bir şekilde yapmak mümkün müdür?
Ne yazık ki, test cihazı elinizin altında değil.
Küçük şeyler. senin hattında
solda int türünde bir değişken, sağda ENUM_TIMEFRAMES türünde bir değer. Beşinci satırda neden hemen ' ENUM_TIMEFRAMES m_period;' beyan etmiyorsunuz? ?
2. Aynı göstergenin oldukça kısa bir sürede çağrıldığı üçlü iç içe döngünüz var. Sadece bir karakter için yaklaşık 1400 çağrı var. Kullanılmış göstergelerin hafızayı boşaltmak için zamanı yoktur. GöstergeRelease() işleviyle ilgili konular için forumda arama yapın. Bir keresinde, bu işlevin kodda kullanılmasının zaten bir hata olduğu söylenmişti.
Koddaki göstergelerin hızlı değişimi, 4806 hatasının görünümünü de açıklar. Yeni göstergenin ihtiyaç duyduğu verileri yüklemek için zamanı yoktur.
Anormal fesihten nasıl kurtulacağımı söyle?
EA çalışmayı durdurur ve bu yalnızca günlükte görülebilir, grafikte renk yeşildir.
Yorumlarınıza göre kodu değiştirdi:
(sabit m_period = PERIOD_INDEX[iperiod];, bu durumda hata önemli değil - ama teşekkürler, düzeltildi)
hata içeren bir soru (CopyBuffer hatası - hata numarası: 4806) - Kaldırırım, Uyku gecikmesi ile düzeltirim ( 1000 ); - Bunu, göstergenin oluşturulacak zamanı olmamasına bağlıyorum.
Hata (4194304 bayt mevcut değil) ile ilgili sorun devam ediyor.
GöstergeRelease() hakkında bir not - işleme sırasında dikkate alınır.
Fikri olan varsa lütfen paylaşsın, teşekkürler.