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

 
Herkese iyi günler.İki MA çizelgede birçok kez kesişir.HER MA geçişinden sonra çubukların sayısını saymak mümkün mü?
 
MK07 :
Herkese iyi günler.İki MA çizelgede birçok kez kesişir.HER MA geçişinden sonra çubukların sayısını saymak mümkün mü?

İhtiyacınız olanı arıyorsunuz. Danışman için - gösterge için bir algoritma - diğeri.

Genel olarak şöyle bir şey: Kesişme sayısını depolayacağımız bir değişken oluşturalım. Yukarı ve aşağı için iki tane olabilir, örneğin Intersection_UP ve Intersection_DN .

Döngüden önce onları sıfırlarla başlatıyoruz.

İlk çubuktan Çubuklara döngü yapmak : for (int i=1; i<Bars; i++) { // döngü gövdesi, kesişimleri saydığımız yer ... }.

Çubuk üzerindeki her kavşakta i ma1 aşağıdan yukarıya ma2 artışı Intersection_UP , çubuk üzerindeki her kavşakta i ma1 yukarıdan aşağıya ma2 artışı Kavşak_DN .

Döngünün sonunda, iki değişkende yukarı ve aşağı kavşak sayısı var. Bunları bir araya toplayarak toplam kavşak sayısını elde ederiz.

 
MK07 :
Herkese iyi günler.İki MA çizelgede birçok kez kesişir.HER MA geçişinden sonra çubukların sayısını saymak mümkün mü?

Basit. Kavşağı düzeltirsiniz ve bir sayaç yaratırsınız. Kavşak olduğunda her çubuktaki sayaç 1 ekler. Ters kavşak olduğunda başka bir sayacın geri sayımı başlamıştır.
 
alsu :

Anlaşılan birbirlerini anlamamışlardı.

Genel olarak, sorunun yeri belirlendi - statik değişken.

Ama neden böyle bir değişkene sahip, göstergeli bir dosyada derlenmiş bir işlev sorunsuz çalışıyor (yeniden başlatma başarılı ve her şey düzgün çalışıyor), ancak bir kitaplığa yerleştirilmiş aynı işleve erişirken sorunlar ortaya çıkıyor?

Belki kütüphane işlevlerinde belirli türlerin kullanımına ilişkin bazı kısıtlamalar vardır?

 
selam kimse var mı
 
polycomp :

Genel olarak, sorunun yeri belirlendi - statik değişken.

Ama neden böyle bir değişkene sahip, göstergeli bir dosyada derlenmiş bir işlev sorunsuz çalışıyor (yeniden başlatma başarılı ve her şey düzgün çalışıyor), ancak bir kitaplığa yerleştirilmiş aynı işleve erişirken sorunlar ortaya çıkıyor?

Belki kütüphane işlevlerinde belirli türlerin kullanımına ilişkin bazı kısıtlamalar vardır?



Ben bir geliştirici değilim ve sadece spekülasyon yapabilirim. Bu nedenle, parametreleri değiştirdikten sonra yeniden başlatma sırasında ex4'ün bellekten yüklenmediğini varsayıyorum, bu nedenle yeni bir başlangıçta tüm statikler ve eski değerleriyle birlikte İncil'in aynı kopyasındayız.

Teoride, tüm program statikleri, init() çağrılmadan önce başlatılmalıdır. Ancak ex4 kitaplığı, yalnızca kitaplık işlevine yapılan ilk çağrı anında doğrudan yüklenir, bu nedenle kitaplık statiği ortak yığına girmez.

Her şeye bu şekilde bakarsanız, açıklama oldukça mantıklı.

 

İşte StringGetChar işlevi   https://docs.mql4.com/en/objects/ObjectFind

Neden hiç gerekli?

Öğreticiye göre bir karakterin değerini rakam olarak döndürür. Orada " ile " karakteri 99 değerine karşılık gelir. Nasıl anlaşılır? Bu işlevin genel kullanımı nedir?

Numarayı geri verdi ... ve ne veriyor?

Dizelerle nasıl çalışılacağını öğrenmek istiyorum, bu yüzden bir fonksiyonla karşılaştım. Bu yüzden soruyorum .

 
alsu :

Ben bir geliştirici değilim ve sadece spekülasyon yapabilirim. Bu nedenle, parametreleri değiştirdikten sonra yeniden başlatma sırasında ex4'ün bellekten yüklenmediğini varsayıyorum, bu nedenle yeni bir başlangıçta tüm statikler ve eski değerleriyle birlikte İncil'in aynı kopyasındayız.

Teoride, tüm program statikleri, init() çağrılmadan önce başlatılmalıdır. Ancak ex4 kitaplığı, yalnızca kitaplık işlevine yapılan ilk çağrı anında doğrudan yüklenir, bu nedenle kitaplık statiği ortak yığına girmez.

Her şeye bu şekilde bakarsanız, açıklama oldukça mantıklı.


Açıklama için teşekkürler! Statiklerin kütüphanelerde kullanılmaması gerektiği görülüyor.
 

Kafamda aynı türden 3000 değerden oluşan bir dizi var.

Ancak bu değerlerle tek boyutlu bir diziyi nasıl başlatacağımı tam olarak anlamıyorum.

Anlamıyorum - diziyi başlatırken atama operatöründe virgülle ayrılmış tüm 3000 değeri belirtmem gerekiyor mu?

int Mas_i[3000]= { (Bid>1.2153)&&(Bid<1.2160) , (Bid>1.2156)&&(Bid<1.2163) ...3000 ifadenin tümünü listelemek gerçekten gerekli mi };

Lütfen söyle ya da nerede okuyacağımı söyle S. Kovalev'in ders kitabında, bana öyle geliyor ki bu sorunun cevabını bulamadım ..... veya anlamadım.

Teşekkür ederim.

 
hoz :

İşte StringGetChar işlevi   https://docs.mql4.com/en/objects/ObjectFind

Neden hiç gerekli?

Öğreticiye göre bir karakterin değerini rakam olarak döndürür. Orada " ile " karakteri 99 değerine karşılık gelir. Nasıl anlaşılır? Bu işlevin genel kullanımı nedir?

Numarayı geri verdi ... ve ne veriyor?

Dizelerle nasıl çalışılacağını öğrenmek istiyorum, bu yüzden bir fonksiyonla karşılaştım. Bu yüzden soruyorum .


Grafikte yazmak için (yorumlarla karıştırılmamalıdır) dijital bir kodla kodlanmalıdır. 99 yazarsanız grafikte "c" harfi çıkacaktır. Bunu henüz yapmadım, ancak Dock'ta her şeyi nasıl yapacağınızı ve X ve Y eksenleri boyunca piksel cinsinden hangi yazı tipi, boyut, yönlendirme vb. Zaten bundan yoksunsanız, devam edin, ancak çok zaman alacak! İyi şanlar!