statik int last_rates_total=0; // önceki değer "önceki giriş zaman serisinin boyutu" statik int last_prev_calculated=0; // önceki değer "önceki çağrıda işlenen çubuklar"
ve log çıktılı doğrulama kodu
//+------------------------------------------------------------------+//| Custom indicator iteration function//+------------------------------------------------------------------+intOnCalculate ( constint rates_total, // размер входных таймсерий constint prev_calculated, // обработано баров на предыдущем вызове
...
{
int N=rates_total-prev_calculated; if (N>MAX_PERIOD) N-=MAX_PERIOD;
staticint last_rates_total= 0 ; // размер входных таймсерий staticint last_prev_calculated= 0 ; // обработано баров на предыдущем вызове if (rates_total!=last_rates_total || prev_calculated!=last_prev_calculated) {
Print ( "N=" , N, ", rates_total=" , rates_total, ", prev_calculated=" , prev_calculated);
last_rates_total=rates_total; last_prev_calculated=prev_calculated;
}
for ( int i=N; i> 0 && ! IsStopped (); i--) {
...
}
aUP[ 0 ]= EMPTY_VALUE ; aDN[ 0 ]= EMPTY_VALUE ;
return (rates_total);
}
AOM göstergesini bir dakikalığına başlattım ve bu raporu aldım
Andrey Khatimlianskii : Standart paketteki göstergeler yanıp sönüyor mu?
Hayır, çizelgeye bir çift düzenli gösterge "Hareketli Ortalama", "Harika Osilatör" koydum. İzledim. Hayır, " Veri Penceresi " de herhangi bir titreme veya eksik değer gözlemlenmedi.
Hayır, çizelgeye bir çift düzenli gösterge "Hareketli Ortalama", "Harika Osilatör" koydum. İzledim. Hayır, " Veri Penceresi " de herhangi bir titreme veya eksik değer gözlemlenmedi.
Kaynaklarda bulunan göstergelerden bahsediyorum (mq5).
Titremiyorlarsa, sorun açıkça kodunuzdadır. Titreme durana kadar basitleştirin. Veya tam tersi - standart kodu, titremeye başlayana kadar durumunuza göre değiştirin.
Andrey Khatimlianskii : Kaynaklardaki göstergelerden bahsediyorum (mq5). Titremiyorlarsa, sorun açıkça kodunuzdadır. Titreme durana kadar basitleştirin. Veya tam tersi - standart kodu, titremeye başlayana kadar durumunuza göre değiştirin.
Ama zaten kodu tamamen basitleştirdim. Tamam, diğer yolu deneyeceğim.
Bu arada, OnCalculate() işlevi için, normal göstergeler arasında bile, onu bir kez ve herkes için kullanmak için henüz evrensel bir "sarmalayıcı" ile karşılaşmadım. Belki bana referans olarak kullanmak için böyle bir "sarmalayıcı" olan bir gösterge söyleyebilirsin?
Eugene Myzrov : Ama zaten kodu tamamen basitleştirdim. Tamam, diğer tarafa gitmeye çalışacağım.
Herhangi bir küçük şey hakkında olabilir.
Eugene Myzrov :
Bu arada, OnCalculate() işlevi için, normal göstergeler arasında bile, onu bir kez ve herkes için kullanmak için henüz evrensel bir "sarmalayıcı" ile karşılaşmadım. Belki bana referans olarak kullanmak için böyle bir "sarmalayıcı" olan bir gösterge söyleyebilirsin?
Birkaç seçenek gördüm. Arayabilir ve seçebilirsiniz. Ben kendim böyle bir şey kullanıyorum:
//---if ( rates_total < MinBars ) return ( 0 );
//--- last counted bar will be recountedint limit=rates_total-prev_calculated- 1 ;
if (prev_calculated> 0 ) limit++;
//---for ( int i=limit; i>= 0 ; i--)
{
IndBuffer[i] = Add your code here
}
//---return (rates_total);
OnCalculate'in en başında prev_calculated yazdırmayı deneyin.
Ve bazı standart göstergelerle karşılaştırın - yanıp sönüyor mu?
statik int last_rates_total=0; // önceki değer "önceki giriş zaman serisinin boyutu"
statik int last_prev_calculated=0; // önceki değer "önceki çağrıda işlenen çubuklar"
ve log çıktılı doğrulama kodu
AOM göstergesini bir dakikalığına başlattım ve bu raporu aldım
Beklenmedik bir şey yok, sadece yeni çubukların gelişini işlemenin normal bir süreci var.
Geçerli değerleri önceki değerlerle karşılaştırmak için OnCalculate() işlevine iki statik değişken eklendi:
Beklenmedik bir şey yok, sadece yeni çubukların gelişini işlemenin normal bir süreci var.
Hayır, çizelgeye bir çift düzenli gösterge "Hareketli Ortalama", "Harika Osilatör" koydum. İzledim. Hayır, " Veri Penceresi " de herhangi bir titreme veya eksik değer gözlemlenmedi.
Hayır, çizelgeye bir çift düzenli gösterge "Hareketli Ortalama", "Harika Osilatör" koydum. İzledim. Hayır, " Veri Penceresi " de herhangi bir titreme veya eksik değer gözlemlenmedi.
Kaynaklarda bulunan göstergelerden bahsediyorum (mq5).
Titremiyorlarsa, sorun açıkça kodunuzdadır. Titreme durana kadar basitleştirin. Veya tam tersi - standart kodu, titremeye başlayana kadar durumunuza göre değiştirin.
onlar. Bununla uzlaşıp, kabul edip bir sebep aramayı bırakmalı mıyız?
Bu arada, OnCalculate() işlevi için, normal göstergeler arasında bile, onu bir kez ve herkes için kullanmak için henüz evrensel bir "sarmalayıcı" ile karşılaşmadım.
Belki bana referans olarak kullanmak için böyle bir "sarmalayıcı" olan bir gösterge söyleyebilirsin?
onlar. Bununla uzlaşıp, kabul edip bir sebep aramayı bırakmalı mıyız?
Ama zaten kodu tamamen basitleştirdim. Tamam, diğer tarafa gitmeye çalışacağım.
Herhangi bir küçük şey hakkında olabilir.
Bu arada, OnCalculate() işlevi için, normal göstergeler arasında bile, onu bir kez ve herkes için kullanmak için henüz evrensel bir "sarmalayıcı" ile karşılaşmadım.
Belki bana referans olarak kullanmak için böyle bir "sarmalayıcı" olan bir gösterge söyleyebilirsin?
Birkaç seçenek gördüm. Arayabilir ve seçebilirsiniz.
Ben kendim böyle bir şey kullanıyorum: