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
Yanlış soruya cevap verme yeteneği...
Şimdi bana şu durumlarda ne olacağını açıklayın:
1. 100 bar yeniden hesaplandı, 0'dan 99'a kadar tamponlara girildi (yönü bir zaman serisi olarak ele alalım) değeri 1.03
2. Aniden geçmiş yüklendi ve prev_hesaplanan 0 oldu
Gösterge hangi çubuktan 1.03 değerini gösterecek?
{
//--- инициализация элементов индикаторного буфера при первом запуске или при подкачке истории
for ( int i= 0 ;i<rates_total;i++)
ExtBuffer[i]= 1.01 ;
return (rates_total);
}
Göstergenin İLK başlangıcında çöplerden nasıl kurtulacağınızı daha iyi açıklayın .
Asla koltuk değneği değil. Ben öyle yapıyorum .
{
//--- инициализация элементов индикаторного буфера при первом запуске или при подкачке истории
for ( int i= 0 ;i<rates_total;i++)
ExtBuffer[i]= 1.01 ;
return (rates_total);
}
Dolayısıyla düzeltilmesi gereken sorun budur. Çöpe ihtiyacım yok (gerekli olmadığından değil, ekrana müdahale ediyor), ancak önceki gösterge hesaplamalarını kaydetmem gerekiyor. Göstergenin İLK başlatılışında, çöp arabelleğe girer ve geçmiş yüklenirken, arabelleklere konan her şey kaydedilmelidir... ve tercihen bir dosyaya yazmadan, hatta daha fazlası GV'ye.
katma:
Bu, düşüşü her dakika gerçek zamanlı olarak değerlendirmek için tasarlanmıştır. Danışman bir hafta boyunca durmadan çalışır ve haftalık ekran yerine, gösterge olmadan bile görülebilen yalnızca son değeri göreceğiz...
Basit bir ilk çalıştırma / zaten ilk değil bayrağı yeterliyse, prev_calculated'ı statik bool b_First_Run ile değiştirin. Veya arabellek başlatmayı OnInint'e taşıyabilirsiniz.
Hayır, oradaki hedefler o kadar da ilkel değil.
Dolayısıyla düzeltilmesi gereken sorun budur. Çöpe ihtiyacım yok (gerekli olmadığından değil, ekrana müdahale ediyor), ancak önceki gösterge hesaplamalarını kaydetmem gerekiyor. Göstergenin İLK başlatılışında, çöp arabelleğe girer ve geçmiş yüklenirken, arabelleklere konan her şey kaydedilmelidir... ve tercihen bir dosyaya yazmadan, hatta daha fazlası GV'ye.
katma:
Bu, düşüşü her dakika gerçek zamanlı olarak tahmin etmek için tasarlanmıştır. Danışman bir hafta boyunca durmadan çalışır ve haftalık ekran yerine, gösterge olmadan bile görülebilen yalnızca son değeri göreceğiz...
Burada değilsin - bu senin için bir teklif değil, Alexey Viktorov , anladığım kadarıyla, sadece buna ihtiyacın var - 1. başlangıçta arabellekleri sıfırla ve herhangi bir takas ile içlerindeki hiçbir şeye dokunmayın
OnInit() içinde arabellek dizilerini başlatırsanız ne olacağını tekrar kontrol ettim.
İndikatör grafikten çıkarılıp yeni bir ayar yapıldığında bile HER ŞEY DEĞİL bazı tamponlarda eski değerler kalıyor. Tam olarak daha öncekiler bile değil, ancak bu değerlerden biri birkaç çubuğun üzerine çıkıyor.
Ö! Şimdi daha net. akşama kadar cevaplarım
Cevapla geciktiğim için üzgünüm. Belirli bir zaman dilimi için hesaplanan değerleri kaydetmenin tek yolu, bir dosyaya kaydetmektir. Bu durumda, senkronizasyona dikkat etmeniz gerekir - böylece bir dosyadan okurken veriler çubuklarına yerleştirilir. En mantıklı şey, çubuk açılış zamanı ile senkronizasyondur, ancak burada nüanslar olabilir: örneğin, çubuk açılış zamanı (bir dosyaya kaydedilmiş) 2016.09.05 idi. 25:02 ve şimdi grafikte zamanı 2016.09.05 olan bir çubuk var. 25:01.
Veya geliştiricilerin dikkatini gösterge arabelleklerini başlatma sorununa çekmek daha iyi olabilir mi? MT4'te neden böyle bir sorun yok? Belki yine tam bir anlayış değil? Sorun şu ki, SOME'da göstergeyi grafikten çıkardıktan sonra arabelleklerin zorunlu başlatılmasıyla bile, tüm arabellekler çöp içermez ve ondan hiçbir şey kaldırılamaz...
Şahsen ben koltuk değneklerine karşı değilim, ancak bu koltuk değnekleri çok zor değilse ve olumlu bir etkisi varsa. Ancak bir dosyaya sonradan okuma ile yazmak, beceriksiz bir koltuk değneğidir.