ICözel işlev - sayfa 20

 
Jeeves:
Bir tür ruh beni ıstırabımdan kurtarabilir ve 'Advanced_ADX' göstergesinin kullanılmasına izin vermek için aşağıdakileri yeniden yapabilir mi? 'İcustom' işlevinin kullanılmasını gerektirdiğini biliyorum, ancak nasıl yapılacağı hakkında fikrim var.

//h1 verisi

double h1adm = iadm(NULL,PERIOD_H1,2,MODE_CLOSE);

//h4 verisi

double h4adx = iadx(NULL,PERIOD_H4,2,MODE_CLOSE);

//d1 verisi

double d1adx = iadx(NULL,PERIOD_D1,2,MODE_CLOSE);

// rengi tanımla

color color_h1, color_h4, color_d1;

// dizeyi tanımla

dizi ok_h1, ok_h4, ok_d1;

//h1 yükseliş trendi

if (h1adx < Teklif ) { color_h1 = ColorUpGood; }

//h1 düşüş trendi

if (h1adx > Teklif ) { color_h1 = ColorDownGood; }

//h4 yükseliş trendi

if (h4adx < Teklif ) { color_h4 = ColorUpGood; }

//h4 düşüş trendi

if (h4adx > Teklif ) { color_h4 = ColorDownGood; }

//d1 yukarı trend

if (d1adx < Teklif ) { color_d1 = ColorUpGood; }

//d1 düşüş trendi

if (d1adx > Teklif ) { color_d1 = ColorDownGood; }

şöyle bir şey kullanın:

double h1adp=iADX(NULL,PERIOD_H1,ADXPeriod,PRICE_CLOSE,MODE_PLUSDI, 0);

double h1adm=iADX(NULL,PERIOD_H1,ADXPeriod,PRICE_CLOSE,MODE_MINUSDI,0);

if (h1adp > h1adm ) { color_h1 = ColorUpGood; }

if (h1adp < h1adm ) { color_h1 = ColorDownGood; }

ve bunu test etmek istediğiniz tüm zaman dilimleri için yapın (sondaki 0'ı başka bir sayı ile değiştirmek isteyebilirsiniz - 0 => mevcut çubuk, 1 => ilk kapalı çubuk vb.)

 

Programlama Problemleri 2 Soru pls Yardım (günlük dosyaları) ( Özel Gösterge/ Standard Ind

Merhaba umarım bu sorunu çözmeme yardımcı olabilecek birini bulabilirim, çok minnettar olurum

  • Başlangıç durumu:
  • Metatrader'dan farklı standart gösterge hesaplamalarına dayalı çok kanallı bir filtre göstergesi geliştirdik.

    Bu gösterge, uzman danışmanımız tarafından kullanılmak üzere tasarlanmıştır. Zorluk,

    bu standart göstergelere dayalı tüm hesaplamaların her bir işarette sayısız kayıt girişine neden olması.

    Bu nedenle işlemlerimiz gecikmektedir.

    Günlük girişlerinden kaçınmak mümkün mü?

  • Sorunu çözme girişimimiz:

Standart göstergeler gibi programlanmış özel göstergelerimiz var. Farklı göstergeler tarafından kullanılan standart rota hesaplamasını değiştirmeye çalıştık. Ama bunlar beklenen sonucu getirmiyor.

Standart rota hesaplamasını kullanarak standart gösterge, özel göstergeyle aynı sonucu verir. Ama ders hesaplamasını değiştirmek

özel gösterge ve ilgili standart gösterge açısından farklılıklara neden oluyor mu?

Tam olarak standart göstergeler gibi davranan özel göstergeler elde etmek mümkün müdür (hangi ders hesaplaması seçilirse seçilsin)?

 
spongebozz:
Merhaba umarım bu sorunu çözmeme yardımcı olabilecek birini bulabilirim, çok minnettar olurum
  • Başlangıç durumu:
  • Metatrader'dan farklı standart gösterge hesaplamalarına dayalı çok kanallı bir filtre göstergesi geliştirdik.

    Bu gösterge uzman danışmanımız tarafından kullanılmak üzere tasarlanmıştır. Zorluk,

    bu standart göstergelere dayalı tüm hesaplamaların her bir işarette sayısız kayıt girişine neden olması.

    Bu nedenle işlemlerimiz gecikmektedir.

    Günlük girişlerinden kaçınmak mümkün mü?

  • Sorunu çözme girişimimiz:

Standart göstergeler gibi programlanmış özel göstergelerimiz var. Farklı göstergeler tarafından kullanılan standart rota hesaplamasını değiştirmeye çalıştık. Ama bunlar beklenen sonucu getirmiyor.

Standart rota hesaplamasını kullanarak standart gösterge, özel göstergeyle aynı sonucu verir. Ama ders hesaplamasını değiştirmek

özel gösterge ve ilgili standart gösterge açısından farklılıklara neden oluyor mu?

Tam olarak standart göstergeler gibi davranan özel göstergeler elde etmek mümkün müdür (hangi ders hesaplaması seçilirse seçilsin)?

Merhaba Süngerbozz,

Bu, günlüklerin çok büyük olması ve sisteminizin yavaşlaması ile ilgili sorularınızın ilk kısmı için...

Günlükler büyük olasılıkla PRINT ifadelerinden oluşturulur...çok fazla... EA'larınızda ve/veya göstergelerinizde...

Günlüğe yazdırmayı durdurmak istediğiniz her PRINT ifadesinin önüne 2 sağa (//) eğik çizgi koyarak PRINT ifadelerini kaldırabilir veya boş bırakabilirsiniz.

Misal:

// Print("Bu bir örnektir"); //, kod satırını boşaltacak ve günlüğe yazdırmayacaktır...

İsterseniz...ALL...PRINT ifadelerinin boş bırakılmasını istiyorsanız...bul/değiştir yapabilirsiniz...

Bul: Yazdır

Değiştir: // Yazdır

Gösterge türü standart veya özel...önemli değil...

Yalnızca, kaldırmanız veya boşaltmanız gereken çok sayıda PRINT ifadesi varsa önemlidir...

Ve daha sonra istediğiniz zaman geri dönüp istediğiniz PRINT ifadelerinin boşluklarını kaldırabilir ve diğerlerini boş bırakabilir veya tamamen silebilirsiniz.

Umarım bu size yardımcı olur,

Robert

 

Merhaba millet!

İkili Opsiyonlar için bir EA yapıyorum ve EA'mda alınacak bir göstergeden "sinyaller" almak istiyorum. Muhtemelen bildiğiniz gibi, İkili Opsiyonlar yalnızca bir PUT veya bir ÇAĞRI yapar, bu nedenle iCustom'un yalnızca göstergemi dinlemesini ve EA'mda konuşmaları ve aramaları yapmasını istiyorum. Mantıklı?

Peki, ne yapmam gerekiyor?

Indi'de sadece şöyle bir şey koymam gerekiyor:

// PUT

if (AlignsForAput == true){

PutBuffer[] = 1;

}

// CALL

if (AlignsForAcall == true){

CallBuffer[] = 1;

}

PutBuffer[] = 0;

CallBuffer[] = 0;

Lütfen bu işin nasıl yapılacağına dair iyi bir örnek yazmama yardım edin. Ne yazmalıyım ve NEREYE yazmalıyım?

Teşekkürler!

 

Birisi indi kodunun ve EA kodunun nasıl görünmesi gerektiğine dair basit bir örnek yazabilirse gerçekten minnettar olurum! Lütfen sorum hakkında yukarıya bakın.

 
SantaClaus:
Birisi indi kodunun ve EA kodunun nasıl görünmesi gerektiğine dair basit bir örnek yazabilirse gerçekten minnettar olurum! Lütfen sorum hakkında yukarıya bakın.

Göstergeler için şunu kontrol edin: https://www.mql5.com/en/forum/173032 ve bu https://www.mql5.com/en/forum/173054

EA'lar için şunu kontrol edin: https://www.mql5.com/en/forum/173136 ve bu: https://www.mql5.com/en/forum/173171

 

Yani bana iCustom'un yukarıdaki amaç için nasıl kullanılacağına dair iyi örnekler olduğunu mu söylüyorsunuz?

 
SantaClaus:
Yani bana iCustom'un yukarıdaki amaç için nasıl kullanılacağına dair iyi örnekler olduğunu mu söylüyorsunuz?

Evet, tam olarak bunu söylüyorum ("indi kodunun ve EA kodunun nasıl görünmesi gerektiğine dair basit bir örnek" istediniz - bu konular size yardımcı olabilir)

 
mladen:
Evet, tam olarak bunu söylüyorum ("indi kodunun ve EA kodunun nasıl görünmesi gerektiğine dair basit bir örnek" istediniz - bu konular size yardımcı olabilir)

Hayır, bağlantıların hiçbiri iCustom'u ilk sorumda istediğim gibi nasıl kullandığımı açıklamadı .

 
SantaClaus:
Hayır, bağlantıların hiçbiri iCustom'u ilk sorumda istediğim gibi nasıl kullandığımı açıklamadı.

iCostom()'un nasıl kullanılacağını ayrıntılı olarak açıklayan bir ileti dizisine mesaj gönderiyorsunuz (tek yapmanız gereken bu ileti dizisinin ilk sayfasına gitmek) ve bunu nasıl yapacağınızı bulamıyor musunuz?

İşte kısa bir versiyon:

___________

iÖzel

Belirtilen özel göstergeyi hesaplar ve değerini döndürür.

[TABLO] çift iCustom(

dize sembolü , // sembol

int zaman aralığı , // zaman aralığı

string name , // özel gösterge derlenmiş programın yolu/adı

... // özel gösterge giriş parametreleri (gerekirse)

int modu , // satır dizini

int kaydırma // kaydırma

);[/TD]

[/TR]

[/TABLO]

parametreler

sembol

Göstergenin hesaplanacağı verilerdeki sembol adı. NULL , geçerli sembol anlamına gelir.

zaman aralığı

Zaman aralığı. ENUM_TIMEFRAMES numaralandırma değerlerinden herhangi biri olabilir. 0, mevcut grafik zaman çerçevesi anlamına gelir.

isim

Kök göstergeler dizinine göre özel gösterge derlenmiş program adı (MQL4/Indicators/). Gösterge alt dizinde bulunuyorsa, örneğin MQL4/Göstergeler/ Örnekler içinde, adı " Örnekler\\ gösterge_adı" olarak belirtilmelidir (ayırıcı olarak tek bir tane yerine çift ters eğik çizgi "\\" belirtilmelidir).

...

Virgülle ayrılmış özel gösterge giriş parametreleri .

Geçirilen parametreler ve bunların sırası, bildirim sırasına ve özel göstergenin harici değişkenlerinin türüne uygun olmalıdır. Giriş parametrelerinin değerleri belirtilmezse, varsayılan değerler kullanılacaktır.

mod

Çizgi dizini. 0 ile 7 arasında olabilir ve SetIndexBuffer() işlevinin çağrısında belirtilen dizine karşılık gelmelidir.

vardiya

Gösterge tamponundan alınan değerin indeksi (geçerli periyotlar öncesindeki mevcut çubuğa göre kayma).

döndürülen değer

Belirtilen özel göstergenin sayısal değeri. Özel gösterge derlenmiş (*.EX4 dosyası) ve terminal_directory\MQL4\Indicators\ dizininde olmalıdır.

Misal:

[TABLO]

[TR]

[TD] çift değer= iCustom ( NULL ,0, "SampleInd" ,13,1,0); [/TABLO]

___________

Not: "Satır dizini. 0'dan 7'ye olabilir", metatrader'ın belgelerinde hala sahip olduğu hatadır ("Satır dizini. 0'dan 511'e olabilir" olmalıdır), ancak resmi olarak değişmedikleri sürece belgelerinde, iCustom() işlevi tanımlarına sadık kalacağım

mutlu kodlama