Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Çünkü test cihazında OnChartEvent'i çağırmıyor
Oldukça doğru. Ancak MT4'te aynı durumda olası varyantlar vardı. Bunlardan birini başarıyla uyguladım. Arayüz, normal modda çalışan bir Uzman Danışman için çalıştı, ancak test cihazında çalışan kopyasını kontrol edebiliyordu. Bağlantı kaynaklar aracılığıyla gerçekleştirildi. Grafikteki EA, test işlemi sırasında tüm verileri aldı. MT5 ile belki de durum daha karmaşıktır. İki kopya arasında kaynaklar üzerinden "iletişim" kurmanın mümkün olacağından emin değilim. Bu konu ayrı bir çalışma gerektiriyor.
4. Tek tek öğe özelliklerinin listelerinde gezinme.
//-----------------------------------------------------------------------------------------
Size dikkate almanız gereken konuların listesini hatırlatmama izin verin:
1. Intellisense listesinde yönlendirme ve doğru pencerenin işlevini seçme.
2. Pencereleri programlı olarak açma ve kapatma.
3. Intellisense listesinde yönlendirme ve doğru pencerede doğru öğeyi seçme.
4. Bireysel eleman özelliklerinin listelerinde gezinme.
5. Bir öğenin ve pencere sarmalayıcı işlevinin adını ayrıştırma.
6. Seçilen bir öğenin parametre değerini kendi türündeki bir değişkenedöndürme. Birkaç farklı öğenin üç türünü düşünün.
7. Farklı tipteki elemanların parametrelerinde değerlerin ayarlanması. Değerlerin bu elemanların arayüz pencerelerinde nasıl görüneceğini görelim.
8. Bir elemanın parametre değerlerini döndürmek, bu değeri değiştirmek ve başka bir elemanailetmek. Farklı tipte elemanlar ve değerler düşünün ve farklı tipteki elemanlar arasındaki iletimi farklı pencerelerde test edin.
9. Önceki değeri döndürme (_V_LAST). Son değerin ne zaman ve hangi durumlar için gerekli olduğu (mevcut değerle karıştırılmamalıdır).
10. Farklı eleman türleri için ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK durumlarının ayarını test edin.
11. Farklı türlerdeki öğelerin değer değişikliklerini birbirine bağlamayı ve senkronize etmeyi deneyelim: örneğin, düğmeler ve kaydırıcı ile giriş alanı. Bir elemanın (manuel veya yazılım) değeri değiştiğinde, ikinci elemandaki değerin de buna uygun olarak değiştiğini varsayalım.
12. Kaydırıcının ve düğmeli giriş alanının aralık sınırlarını sarmalayıcı işlevler aracılığıyla programlı olarak sıfırlamayı deneyelim. Bunu test edecek zamanım olmadı ama içimden bir ses çalışacağını söylüyor. Yine de bir bakalım.
13. Sarmalayıcı fonksiyonlar aracılığıyla eleman durumlarını döndürmeyi deneyelim. İşlevselliğe dahil edildi, ancak test etmek için zamanım olmadı. Göreceğiz bakalım... Sonuç bilinmiyor.
14. Metin ve eleman tabanları için renkleri alalım ve ayarlayalım. Bu renkleri bazı basit olaylar veya değer sınırları ile ilişkilendirmeyi deneyebiliriz.
15. Yeni API dosyası çıktısında nasıl gezineceğiniz ve okuyacağınız hakkında daha fazla bilgi vereceğim.
//------------------------------------------
Sarı renk, daha önce işlenmiş olan konuları gösterir.
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
Vurgular eklenmiştir:
Her sarmalayıcı işlev, yalnızca adında belirtilen ön eke sahip özellikleri kabul eder.
Listelerle çalışmak pratikte bu şekilde görünür(sonuna parantez koyun, çünkü intellisense sarmalayıcı işlevlerin parantezleri içinde çalışmaz):
Gif biraz hızlandırılmıştır.
Gif'te gösterilen çağrıların sonucunda, sarmalayıcı işlevler belirtilen özelliklerin değerlerini döndürür.
Çağırmadan önce, özelliğin değerini veya fonksiyonun yürütülmesinin sonucunu saklamak için bir değişken bildirmeniz gerekir. Bu konuda daha fazla bilgi için aşağıdaki konularabakın.
5.
Eleman ve pencere sarmalayıcı işlevinin adını ayrıştırma:
1. Öğe sarmalayıcı işlev adı:
EDIT metin giriş alanı öğesi işlev örneğine bakalım: w7_s_p4_EDIT_Comment_1();
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/ / - ------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
2. Pencere sarmalayıcı işlevinin adı:
Örnek olarak başka bir fonksiyona bakalım: w_15_Processing_the_data();
//-------------------------------------------------------------
) // - ------------------------------------------------------------
//-------------------------------------------------------------
Pencere işlevinin henüz özellik listesini açmak için bir ön eke sahip olmadığına dikkat edilmelidir. Bu özellik kesinlikle görünecektir. Döndürülecek/ayarlanacak pencere özelliklerinin özel bir listesi oluşturulacak ve bir önek atanacaktır. Ayrıca pencere fonksiyonu henüz bir dönüş tipi harfi içermemektedir.
Şimdilik, işlev yalnızca bir pencereyi açabilir veya kapatabilir.
Bu kusurlar bir sonraki sürümde düzeltilecektir.
Bu eğitim bilgilerinin bir kez özel olarak ve ayrı ayrı özetlenmesi tavsiye edilir, aksi takdirde gelecekte yorumlara taşacaktır
6.Parametre veya özelliğindeğerinigerekli tipteki bir değişkenedöndürür:
Eleman parametresinin türü(int, double veya string) eleman fonksiyonunun türünü belirler.
Eleman fonksiyonlarının parametrenin değerini üç türden biriyle döndürdüğü bilinmektedir: int, double veya string.
Ancak, fonksiyonlar aynı zamanda özellik değerleri de döndürür...
Parametre değerinin türü , her zaman int olan özelliklerin türüyle çakışmadığında bir durum ortaya çıkar . Fonksiyonların int yerine double veya string gibi yanlış türde özellik değerleri döndürdüğü ortaya çıkar . Bu zorunlu rahatsızlık, fonksiyonların evrenselliğinin bedelidir .
Kullanıcının görevi alınan değeri kendi başına gerekli türe dönüştürmek için..
Şunu vurgulamama izin verin: tüm eleman özelliklerinin ana türü int 'tir .
Soru-cevap örneklerine daha yakından bakalım:
Parametre değerinin türü, elemanın işlevinin türünü belirler.
Kaydırıcı işlevi int türünde döndürüyorsa, bu, öğe oluşturma aşamasında kullanıcının parametresine veya özelliklerine tamsayılar atadığı anlamına gelir - örneğin, kaydırıcı aralığını veya düğmeli giriş alanlarını tamsayı değerlerinin içine yerleştirmiştir.
Sonuç: Kullanıcının görevi, alınan değerleri gerekli türe dönüştürmektir.
Bazı pratik örnekleri ele alalım:
1.
//------------------------------------------------------------------------------------------------------------
2.
//------------------------------------------------------------------------------------------------------------
3.
Sonucu görün:
//------------------------------------------------------------------------------------------------------------
4.
//------------------------------------------------------------------------------------------------------------
5.
Sonucu görün:
Daha sonra, diğer öğe ve parametre özelliklerini almayı ve ayarlamayı test edelim. Ayrıca double tipi ile çalışmayı deneyelim.
Kodu takip ettim ve test ettim ve rastgele dizenin uzunluğu çok uzun olduğunda otomatik olarak gizlenmeyen beklenmedik bir şey buldum
w7_s_p4_EDIT_Comment_1("Some random text AAAAAAAA");