ICözel işlev - sayfa 8

 
 

MQL yardımındaki iCustom işlevine bir göz atın, tam olarak ihtiyacınız olanı yapar

 

Bu kadar!

Teşekkürler!

 

iÖzel

Merhaba,

Bazen göstergelerimin çalışmasının hafif olması gerekir; gösterge bir grafiğe eklendiğinde normalde nasıl çalışacağının aksine gösterge iCustom'a yapılan bir çağrının sonucu olarak çalıştırıldıysa farklı olabilir.

MQL'de, göstergenin bir grafiğe eklendiğinden açıkça mı yoksa iCustom'a yapılan bir çağrının sonucu olarak mı çalıştırıldığını belirlemek için bir gösterge içinde kullanılabilecek basit bir işlev veya yöntem var mı?

Bir şekerleme olarak, varsayılan değeri false olan 'Özel' adlı göstergelerime bir boole parametresi ekliyorum. Göstergeyi çalıştırmak için iCustom'a bir çağrı yaparsam, bunun yerine bu parametreyi true olarak ayarlarım. Bu şekilde, göstergemde, iCustom'a yapılan bir çağrının sonucu olarak göstergenin çalışıp çalışmadığını söyleyebilirim.

Elbette, say IsCustom() gibi, göstergenin iCustom aracılığıyla çalıştırıldığı veya aksi takdirde yanlış olduğu için true değerini döndüren bir işlev olmalıdır.

iCustom aracılığıyla çağrılma sonucunda bir göstergenin çalıştırılıp çalıştırılmadığını belirlemenin zarif ve basit bir yolu var mı?

Saygılarımızla,

Laurence.

 

tüm yardımlarınız için hepinize teşekkür ederim!

aj

 

özel soru

Sadece icustom tarafından başka bir göstergeyi çağıran bir gösterge yapmaya çalışıyorum. Bu kod satırını yaptım;

double COG=iCustom(NULL,0,"COGpoint1",50,3000,0,true);

Satırı kodun farklı yerlerine koymaya çalıştım ve double ismiyle oynadım, birçok öğretici okudum ve okudum. Sanırım bu mabey, tampon sayısı gibi başlangıca bir şey koymalıyım!? mabey çift olmamalı mı?

olduğu gibi derleme yaparken hatalar alıyorum;

'init' - virgül veya noktalı virgül bekleniyor

'init' - global kapsamdaki ifadeye izin verilmiyor

Birisi lütfen bunu herhangi bir özel göstergeyle anlamama yardımcı olabilir mi? çünkü okuduğum öğreticilerin (ve hepsine sahip olduğumu düşünüyorum) bana icustom için kod satırını verdiğini ancak satırın kendi başına olmasıyla çalışmadığını hissediyorum, her gösterge için değiştirilmesi gerektiğini biliyorum ama açıklamada eksik olan şeyler var.

 

Bu konuda büyük bir girişimde bulundum, kendimle oldukça gurur duyuyorum! Codersguru'dan bazı kodlar aldım, bir gösterge için değiştirdim. lol, derlerken iyi görünüyor (ilk kez!!!!!) ama ... bir grafiğe eklediğinizde metatrader'ın "yanıt vermemesine" neden oluyor.

Codersguru koduna daha iyi baktığım için, göstergelerin arabelleklerinin tüm adlarını değiştirdim (val1, val2, val3, val4.'den değer1, değer2...vs.'ye) çünkü bunların birbirleriyle etkileştiğini düşündüm. yapmış (icustom ile supertrend'i çağırmak için bir kod yaptı) tamponların isimlerini değiştirdi, bu yüzden öyle olması gerektiğini düşündüm, ama yine de cevap vermiyor.

//+------------------------------------------- -------------------+

//| COG çağrısı.mq4 |

//| |

//| |

//+------------------------------------------- -------------------+

#özellik göstergesi_separate_window

#özellik göstergesi_tamponları 4

#özellik göstergesi_color1 Kireç

#özellik göstergesi_renk2 Kırmızı

#özellik göstergesi_color3 CLR_NONE

#özellik göstergesi_color4 CLR_NONE

//---- arabellekler

çift değer1[];

çift değer2[];

çift değer3[];

çift değer4[];

//+------------------------------------------- -------------------+

//| Özel gösterge başlatma işlevi |

//+------------------------------------------- -------------------+

int init()

{

//---- göstergeler

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,Kireç);

SetIndexBuffer(0,değer1);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1,Kırmızı);

SetIndexBuffer(1,değer2);

SetIndexStyle(2,DRAW_NONE);

SetIndexBuffer(2,değer3);

SetIndexStyle(3,DRAW_NONE);

SetIndexBuffer(3,değer4);

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Özel gösterge sıfırlama işlevi |

//+------------------------------------------- -------------------+

int tanım()

{

//----

//----

dönüş(0);

}

//+------------------------------------------- -------------------+

//| Özel gösterge yineleme işlevi |

//+------------------------------------------- -------------------+

int başlangıç()

{

int counted_bars=IndicatorCounted();

//---- olası hataları kontrol et

if (counted_bars<0) return(-1);

//---- son sayılan çubuk yeniden sayılacak

if (counted_bars>0) counted_bars--;

int pos=Barlar-sayılan_barlar;

süre(konum>=0)

{

value1[pos]=iCustom(NULL,0,"COGpoint1",50,3000,0,true);

value2[pos]=iCustom(NULL,0,"COGpoint1",50,3000,0,true);

value3[pos]=iCustom(NULL,0,"COGpoint1",50,3000,0,true);

value4[pos]=iCustom(NULL,0,"COGpoint1",50,3000,0,true);

}

dönüş(0);

}

//+------------------------------------------- -------------------+

 

Codersguru tarafından yapılan kodu aldığım konu bu;

https://www.mql5.com/en/forum/173108

uçlarda kodumun bir kısmını pos dışında bıraktığımı fark ettim ve pos--;

değer1[konum]=iCustom(NULL,0,"COGpoint1",50,3000,0,true,kon);

değer2[konum]=iCustom(NULL,0,"COGpoint1",50,3000,0,true,kon);

value3[konum]=iCustom(NULL,0,"COGpoint1",50,3000,0,true,kon);

value4[konum]=iCustom(NULL,0,"COGpoint1",50,3000,0,true,kon);

konum--;

Hadi deneyelim!

 

LOL LOL LOLLLLLLL hahaha! Aman Tanrım

tamam ilerleme kaydettim göstergemin yarısı ekranda (göstergenin sadece kırmızı kısmı, lol yeşil kısım nerede?) bu, inanamasam da yarı çalıştığım ilk şey hahaha! neyi yanlış yaptığımı bilen var mı?

 

hmm deney için sonuna 0,1,2,3 sayıları ekledim. neden bilmiyorum ama bir şey yaptı, şimdi düz bir kırmızı çizgim ve yeşilim var!!!!

yay! bu doğru değil, mabey daha da kötüsü bu garip! lütfen biri bana yardım etsin... benim dışımda herkes uyuyor zzz zzz zzz!