[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 480

 

ilk olarak, dördüncü eşlenmemiş ExtMapBuffer4 arabelleğini gösterge arabelleğine bağlamayı deneyin

 SetIndexBuffer ( 3 ,ExtMapBuffer4);

çünkü yazıyorsun

   IndicatorBuffers ( 4 );                                                 //устанавливаем общее количество всех индикаторов, участвующих в расчете всех индикаторных линий

başlangıçta 3 satır / arabellek tanımlasanız da

bu arada, o zaman onu bir zaman dizisi olarak ilan etmenize ve kontrol etmenize gerek kalmayacak

 

ve asıl hatan burada

      ExtMapBuffer3[i]= iMAOnArray (ExtMapBuffer4, 0 ,МА_ТЛ, 0 ,Вид_МА_ТЛ, 0 ); //рассчет значения для расчета Третьей Линии (ТЛ)

öyle gerek

      ExtMapBuffer3[i]= iMAOnArray (ExtMapBuffer4, 0 ,МА_ТЛ, 0 ,Вид_МА_ТЛ, i ); //рассчет значения для расчета Третьей Линии (ТЛ)
 
midorum :

ilk olarak, eşlenmemiş dördüncü ExtMapBuffer4 arabelleğini gösterge arabelleğine bağlamayı deneyin

çünkü yazıyorsun

başlangıçta 3 satır / arabellek tanımlasanız da

bu arada, o zaman onu bir zaman dizisi olarak ilan etmeniz ve kontrol etmeniz gerekmeyecek.

Cevabınız için teşekkürler... Sonunda i'yi noktalamak için bir şey daha öğrenmek istiyorum:

1. Şunu yazarsınız: "Öncelikle, görüntülenmeyen dördüncü arabellek ExtMapBuffer4'ü gösterge arabelleğiyle bağlamayı deneyin". Yalnızca İstemci Terminali ekranında şu veya bu şekilde görüntülenmesi gereken dizileri bağlamanın ve Gösterge Tamponlarını kullanarak özel bir göstergenin hesaplanmasında yer alan tüm dizilerin toplam sayısını belirtmenin gerekli olduğunu düşündüm. işlev. Yanlış olduğum ortaya çıktı mı?

2. Sizin için zor değilse, lütfen açıklayın, o zaman bu diziyi bir zaman dizisi olarak bildirmek zorunda değilsiniz? Bir zaman serisi gibi bir şekilde kendi kendini organize ediyor mu?

 
7777877 :

Cevabınız için teşekkürler... Sonunda i'yi noktalamak için bir şey daha öğrenmek istiyorum:

1. Şunu yazarsınız: "Öncelikle, görüntülenmeyen dördüncü arabellek ExtMapBuffer4'ü gösterge arabelleğiyle bağlamayı deneyin". Yalnızca İstemci Terminali ekranında şu veya bu şekilde görüntülenmesi gereken dizileri bağlamanın ve Gösterge Tamponlarını kullanarak özel bir göstergenin hesaplanmasında yer alan tüm dizilerin toplam sayısını belirtmenin gerekli olduğunu düşündüm. işlev. Yanlış olduğum ortaya çıktı mı?

2. Sizin için zor değilse, lütfen açıklayın, o zaman bu diziyi bir zaman dizisi olarak bildirmek zorunda değilsiniz? Bir zaman serisi gibi bir şekilde kendi kendini organize ediyor mu?

bu doğru, otomatik olarak bir zaman serisi olarak düzenlenir

başlangıçta göstergenin görünür arabelleklerini tanımlarsınız

IndicatorBuffers() kullanarak, otomatik olarak düzenlenen zaman serisi arabelleklerinin sayısını 8'e kadar genişletebilir ve bunları kendi dizilerinizle ilişkilendirebilirsiniz.

 
Soruyu tekrar çoğalt, eskisini sil, kimlerin yapabileceğine yardım et!


İyi. Ben sorunun özünü anlatmaya çalışacağım, belki birileri size anlatır ya da daha basit bir şekilde uygulamanıza yardımcı olur.

Dakika çizelgesi üzerinde çalışıyoruz. 29/10/12 tarihinde saat 00:00'da grafikte bir dakika çubuğu (yüksek + düşük / 2 - çubuğun ortalama değeri) alıyoruz - bu başlangıç noktası olacaktır.

Ardından, bu fiyattan 10 puan yukarı sapmayı kontrol ederiz (her doğru sapma +1 olacaktır).

Başlangıç noktasından 10 puanlık bir fiyat artışına ulaştığımızda - sayaç +1; ve sapmaları sadece 10 puan sapmaya ulaştığımız noktadan daha fazla kontrol etmeye başlayın ve bir sonraki fiyat artışını 10 puan bekleyin.

Örneğin, şunu elde ederiz:

If (başlangıç noktası) + 10 puan <= fiyatlar (başlangıç noktasından sonraki tüm çubuk fiyatlarını kullanırız.) Counter=counter +1 alırız; Ve başlangıç noktasına zaten bu yerden başlıyoruz - (başlangıç noktası + 10 puan).

If (başlangıç noktası + 10 pip) + 10 pip <= fiyatlar (başlangıç noktasından sonraki tüm bar fiyatlarını kullanırız.) Counter=counter +1 elde ederiz; Ve başlangıç noktasına zaten bu yerden başlıyoruz - (başlangıç noktası + 10 puan) + 10 puan.

If (başlangıç noktası + 10 pip + 10 pip) + 10 pip <= fiyatlar (başlangıç noktasından sonraki tüm çubuk fiyatlarını kullanırız.) Counter=counter +1 alırız; Ve başlangıç noktasına zaten bu yerden başlıyoruz - (başlangıç noktası + 10 puan + 10 puan) + 10 puan.

vb...

10'a eşit bir sayaca ulaşana kadar (sayaç == 10).

Ve her yeni oluşan dakika çubuğu (yüksek + düşük / 2 - çubuğun ortalama değeri) bu koşul için kontrol edilir ve 10'a eşit sayaca ulaşana kadar bekleyin (sayaç == 10). Diyelim ki iki gün geçti, her yeni oluşan çubuğu kontrol ettik ve koşullar doğruysa kaydırdık ....

Ve sayaca =10'a geldiğimizde - "Sayaç == 10" mesajını görüntülüyoruz. Başlangıç noktasını, kullanıcı tarafından orijinal olarak ayarlanandan 2 gün ileriye kaydırıyoruz, yani. 29/10/12 saat 00:00'dan 31/10/12 saat 00:00'a kadar ve döngüyü tekrarlayın.

Döngüyü tekrarlıyoruz ve böylece programa göre hareket ediyoruz.

Onlar. yeni şekillendirilmiş çubukları almanız gerekiyor, bunları dişe göre alın (yüksek+düşük/2 - çubuğun ortalama değeri). Ve koşulları kontrol edin ve koşullar doğruysa yukarıda yazıldığı gibi kaydırın.

Bir dizi üzerinden uygulamaya çalıştım, çok kafa karıştırıcı çıkıyor ve yanlış değerler veriyor!! Bu algoritmanın nasıl uygulanacağına yardım edin!
Dosyalar:
qawer.mq4  3 kb
 
merkulov.artem :

Bir dizi üzerinden uygulamaya çalıştım, çok kafa karıştırıcı çıkıyor ve yanlış değerler veriyor!! Bu algoritmanın nasıl uygulanacağına yardım edin!

Algoritmanız (her komut ve kullanılan veriler) hakkında ilk önce ayrıntılı olarak yorum yapsaydınız çok iyi olurdu, aksi takdirde ne yapıldığını ve neden yapıldığını girmek çok zor

o zaman belki sana yardımcı olurlar ya da belki sorunu kendin bulursun

 

Yardıma göre, SetIndexDrawBegin işlevi, çizimin hangi çubuktan başlayacağını belirtir. Test için standart bir AC hindi aldım ve parametrelerde değiştirdim

 SetIndexDrawBegin ( 0 , 8 );
   SetIndexDrawBegin ( 1 , 38 );
   SetIndexDrawBegin ( 2 , 38 );

üzerinde

   SetIndexDrawBegin ( 0 , 8 );
   SetIndexDrawBegin ( 1 , 8 );
   SetIndexDrawBegin ( 2 , 8 );

Hiçbir şey değişmedi, çizim .. çubuk 8'den çubuk 0'a gidiyor, ama hangisinden hiç belli değil.

8 olmadığı görülebilir ...


 
hoz :

Yardıma göre, SetIndexDrawBegin işlevi, çizimin hangi çubuktan başlayacağını belirtir. Test için standart bir AC hindi aldım ve parametrelerde değiştirdim

üzerinde

Hiçbir şey değişmedi, çizim .. çubuk 8'den çubuk 0'a gidiyor, ama hangisinden hiç belli değil.

8 olmadığı görülebilir ...


Belirtilen gösterge çizgisinin çizilmesinin başlaması gereken, verilerin başlangıcından itibaren çubuğun numarasının ayarlanması ("grafik başlangıcından" "grafiklerin solundan" okuyun). Gösterge soldan sağa doğru çizilir.
 
midorum :
Belirtilen gösterge çizgisinin çizilmesinin başlaması gereken, verilerin başlangıcından itibaren çubuğun numarasının ayarlanması ("grafik başlangıcından" "grafiklerin solundan" okuyun). Gösterge soldan sağa çizilir.

Ve örneğin son 30 çubuğu çizmem gerekirse, o zaman nasıl yapabilirim?

 
hoz :

Ve örneğin son 30 çubuğu çizmem gerekirse, o zaman nasıl yapabilirim?

Bars-30'u deneyin