[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 5. - sayfa 29
![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
Bana zikzak göstergesinden değerleri nasıl çekeceğimi söyle? Genel olarak nasıl uygulanır? Onlar. sadece sonuncuyu değil, belirli bir ekstremumu yakalamak istersem.
Örneğin, şu anda bu zikzak Uzman Danışmanıma eklemek istiyorum:
Özel hindiye erişmek için genellikle yapıldığı gibi iCustom işlevini kullanmanız gerektiğini anlıyorum, ancak üstlere nasıl yapışılacağı bir soru ...
Tampon, şu prensibe göre NON-EMPTY ( EMPTY_VALUE ) değeri için aranır:
ve iCustom() aracılığıyla gösterge arabelleğine erişim.Tamponda şu prensibe göre NON-EMPTY (EMPTY_VALUE) değeri aranır:
ve iCustom() aracılığıyla gösterge arabelleğine erişim.
Mantıken. Ancak bu şekilde boş olmayan bir değere rastlayana kadar bir arama yapılacaktır. Ve örneğin, I ve aslında, son boş olmayan değere ihtiyaç duymuyorsa, yani. son ekstremum değil, başka.. Örneğin, burada ekranda:
Mantıken. Ancak bu şekilde boş olmayan bir değere rastlayana kadar bir arama yapılacaktır. Ve örneğin, I ve aslında, son boş olmayan değere ihtiyaç duymuyorsa, yani. son ekstremum değil, başka.. Örneğin, burada ekranda:
Ekstremum sayacını döngüye girin ve döngüyü ekstremum sayısına göre bölün (bir satırda boş olmayan değer).
Anladım. Sayesinde. Şimdi hepsini uygulamaya koymamız gerekiyor. Özünü anladım, ama beynin kaynattığı filtrelerin boşalmasının zihninde ...
Anladım. Sayesinde. Şimdi hepsini uygulamaya koymamız gerekiyor. Özünü anladım, ama beynin kaynattığı filtrelerin boşalmasının zihninde ...
double get_extrem(int n) {
for(int i=1;;i++) {
double ind=iCustom(Symbol(),0,"indicator_name",0,i);
if(n>1)
if(ind!=0) n--;
else
if(ind!=0) return(ind);
}
}
bunun gibi. fonksiyona n (en yüksek sayı) verirseniz, değerini size döndürür. tepe çubuk numarasına ihtiyacınız varsa, işlev türünü dönüş(ind) yerine int ve olarak değiştirin; return(i) yaz;
Ayrıca, kodunuzda i'yi özellikle yinelemelerde (ders kitabında olduğu gibi) kullanırsanız, bu işlevde i'yi başka bir değişkenle, örneğin k ile değiştireceğinizi unutmayın.
ve göstergenizin işlevinin içinde iCustom'u kurduğunuzdan emin olun.
double get_extrem(int n) {
for(int i=1;;i++) {
double ind=iCustom(Symbol(),0,"indicator_name",0,i);
if(n>1)
if(ind!=0) n--;
else
if(ind!=0) return(ind);
}
}
bunun gibi. fonksiyona n (en yüksek sayı) verirseniz, değerini size döndürür. tepe çubuk numarasına ihtiyacınız varsa, işlev türünü dönüş(ind) yerine int ve olarak değiştirin; return(i) yaz;
Ayrıca, kodunuzda i'yi özellikle yinelemelerde (ders kitabında olduğu gibi) kullanırsanız, bu işlevde i'yi başka bir değişkenle, örneğin k ile değiştireceğinizi unutmayın.
ve iCustom'u göstergenizin işlevinin içine ayarladığınızdan emin olun.
Nikolai , ilginç, elbette, yazılı bir şartınız var. bakıyorum ve düşünüyorum...
Özel gösterge arabelleği sıfır değerini döndürürse n-- ve özel gösterge arabelleği sıfır değerini döndürürse, o zaman ... gösterge arabelleğinin değerini döndürür.
Ama şartlar aynı. Ve orada ve sıfır değilse ..
Nikolai , ilginç, elbette, yazılı bir şartınız var. bakıyorum ve düşünüyorum...
Özel gösterge arabelleği sıfır değerini döndürürse n-- ve özel gösterge arabelleği sıfır değerini döndürürse, o zaman ... gösterge arabelleğinin değerini döndürür.
Ama şartlar aynı. Ve orada ve sıfır değilse ..
kodu normal şekilde eklemeye çalışırken küme parantezleri bir yere düştü:
double get_extrem(int n) {
for(int i=1;;i++) {
double ind=iCustom(Symbol(),0,"indicator_name",0,i);
if(n>1) {
if(ind!=0) n--;
}else{
if(ind!=0) return(ind);
}
}
}
n>1 { ise
arabellek boş değilse, n'den 1 çıkarın
}tersine{
arabellek boş değilse - değerini döndür
}
double get_extrem(int n) {
for(int i=1;;i++) {
double ind=iCustom(Symbol(),0,"indicator_name",0,i);
if(ind!=0) {
if(n>1) n--; else return(ind);
}
}
}
double get_extrem(int n) {
for(int i=1;;i++) {
double ind=iCustom(Symbol(),0,"indicator_name",0,i);
if(ind!=0) {
if(n>1) n--; else return(ind);
}
}
}
Genel olarak, ve böylece her şey yolunda. Sadece biraz farklı kod yazmaya alışkınım, okuması benim için daha kolay ama sizin için farklı. Size parantez içinde ilk herkes transfer edilmez. Editör'de ortaya koydum ve her şey bu biçimde yerine oturdu:
Genel olarak, ve böylece her şey yolunda. Sadece biraz farklı kod yazmaya alışkınım, okuması benim için daha kolay ama sizin için farklı. Size parantez içinde ilk herkes transfer edilmez. Editör'de ortaya koydum ve her şey bu biçimde yerine oturdu:
kod 1000 satırın üzerine çıktığında, kompakt bir şekilde yazmaya başlarsınız)
ayrıca MT4'te özellikle testler yaptığınızda performans düşer. Kısa ve öz sürüm daha hızlıdır.