Forex Dərsləri 2 : Funksiyonal Bloklar
Keçən dərsdən xatırlayırsınızsa aşağıdakı kimi bir Expert Advisor proqram şablonu yaratmışdıq.
Proqramın 6-dan 9- a kimi olan sətirlərindəki #property hissəsini hələlik görməzdən gəlin. Bunun kimi özəllikləri ayrıca bir dərs olaraq hazırlayıb izah etməyə çalışacam.
Bizi burada marağlandıran əsas məsələ Onİnit(), OnDeinit() və OnTick() funksiyalarıdır. Proqramlaşdırmada istifadə olunun funksiya anlayışını gələcək dərslərimzdə öyrənəcəyik ( Bunları bu dərsdə izah edib beyninizdə bir qarışıqlıq yaratmaq istəmirəm ).
1. OnInit() funksiyası
Buradakı Init sözü initialization ( başlatmaq ) sözündəndir. Yəni yazdığınız proqramı çalışdırdığınızda ilk öncə bu funksiya daxilində yazdığınız kodlar çalışacaqdır.
Nümünə : Sizdə OnInit() funksiyası daxilində ( yəni iki fiqurlu mötərizə arasında ) aşağıdakı şəkildə olduğu kimi Comment("Salam Dünya"); yazıb Compile ( Compile - proqramda yazılan kodları maşın dilinə çevirir ) butonunu sıxın. Burada Comment ( şərh ) metodu MetaTrader ekranının sol - üst tərəfinə yazı çıxardır. Kodun sonunda nöktəli vergül qoymağı unutmayın yoxsa proqram xəta verəcəkdir ( bu MQL proqramlaşdırma dilinin bir sintaksis qaydasıdır).
Compile etdikən sonra MetaTrader platformasına qayıdın ( qısa yol olaraq klaviaturada F4 düyməsini sıxın).
Platformanın sol tərəfində olan Navigator bölüməsində Expert Advisors yazısının üzərində mausun sol düyməsini iki dədə klikləyin.
Buradan compile etdiyiniz proqramın adını tapın ( bizim nümünədə My_Expert ).
Proqramı açıb Ok düyməsini seçdikdən sonra gördüyünüz kimi Ekranın sol - üst tərəfinə "Salam Dünya" sözü çıxmış oldu.
Əlavə: "Salam Dünya" ( Hello World ) sözü yeni proqramlaşdırma dilini öyrənməyə başladıqda adətən istifadə olunur. Necə deyərlər bütün proqramçılar proqranlaşdırma həyatına "Hello World " sözü ilə başlamışlar :))
2. OnDenit() funksiyası
Buradakı Deinit sözü deinitialization ( sonlandırmaq ) sözündəndir. Bu funksiyanın OnInit () funksiyasından fərqli olaraq bu funksiya daxilində ediləcək hərəkətlər proqram sona çatdıqdan sonra ( yəni proqramı platformadan Remove edildikdən sonra ) icra edilir.
Nümünə : Aşağıdakı kodları sizdə olduğu kimi Editorda yazmağa çalışın və Compile edin . Burada Print() metodu MetaTrader platformasının aşağı hissəsində olan Experts bölməsinə yazı yazdırır.
İndisə Platforma ekranında mausun sağ düyməsini vurub My_Expert adlı proqramı aşağıdakı kimi Remove edin.
və aşağıdakı kimi nəticə verəcəkdir.
3. OnTick() funksiyası
Platformada hər qiymət dəyişikliyində ( Tick) baş verilməsi istənilən hərəkətlər bu funksiya daxilində yazılmalıdır. Bu funksiya əsas funksiyadır . Demək olar ki , bütün kodlarımızı burada yazaçağıq.
Nümünə : OnTick() funksiyası daxilində aşağıdakı kimi yazılanları yazmağa çalışın. Burada Alert() metodu ekrana Xəbərdarlıq pəncərəsini çıxaracaqdır ( təbii ki valyuta cütlüyünün hər qiyməti dəyişdikdə ). Kodun nə işə yaradığını gördükdən sonra proqramı yuxarıda olduğu kimi remove edin.
Nəticə bu cür olacaqdır
Bu dərsimiz hələlik bu qədər. Əgər hər hansı bir sualınız yaranarsa Facebookda FOREX TƏHSİLİ adlı qrupumuza yaza bilərsiniz.
Uğurlar...
Proqramın 6-dan 9- a kimi olan sətirlərindəki #property hissəsini hələlik görməzdən gəlin. Bunun kimi özəllikləri ayrıca bir dərs olaraq hazırlayıb izah etməyə çalışacam.
Bizi burada marağlandıran əsas məsələ Onİnit(), OnDeinit() və OnTick() funksiyalarıdır. Proqramlaşdırmada istifadə olunun funksiya anlayışını gələcək dərslərimzdə öyrənəcəyik ( Bunları bu dərsdə izah edib beyninizdə bir qarışıqlıq yaratmaq istəmirəm ).
1. OnInit() funksiyası
Buradakı Init sözü initialization ( başlatmaq ) sözündəndir. Yəni yazdığınız proqramı çalışdırdığınızda ilk öncə bu funksiya daxilində yazdığınız kodlar çalışacaqdır.
Nümünə : Sizdə OnInit() funksiyası daxilində ( yəni iki fiqurlu mötərizə arasında ) aşağıdakı şəkildə olduğu kimi Comment("Salam Dünya"); yazıb Compile ( Compile - proqramda yazılan kodları maşın dilinə çevirir ) butonunu sıxın. Burada Comment ( şərh ) metodu MetaTrader ekranının sol - üst tərəfinə yazı çıxardır. Kodun sonunda nöktəli vergül qoymağı unutmayın yoxsa proqram xəta verəcəkdir ( bu MQL proqramlaşdırma dilinin bir sintaksis qaydasıdır).
Compile etdikən sonra MetaTrader platformasına qayıdın ( qısa yol olaraq klaviaturada F4 düyməsini sıxın).
Platformanın sol tərəfində olan Navigator bölüməsində Expert Advisors yazısının üzərində mausun sol düyməsini iki dədə klikləyin.
Buradan compile etdiyiniz proqramın adını tapın ( bizim nümünədə My_Expert ).
Proqramı açıb Ok düyməsini seçdikdən sonra gördüyünüz kimi Ekranın sol - üst tərəfinə "Salam Dünya" sözü çıxmış oldu.
Əlavə: "Salam Dünya" ( Hello World ) sözü yeni proqramlaşdırma dilini öyrənməyə başladıqda adətən istifadə olunur. Necə deyərlər bütün proqramçılar proqranlaşdırma həyatına "Hello World " sözü ilə başlamışlar :))
2. OnDenit() funksiyası
Buradakı Deinit sözü deinitialization ( sonlandırmaq ) sözündəndir. Bu funksiyanın OnInit () funksiyasından fərqli olaraq bu funksiya daxilində ediləcək hərəkətlər proqram sona çatdıqdan sonra ( yəni proqramı platformadan Remove edildikdən sonra ) icra edilir.
Nümünə : Aşağıdakı kodları sizdə olduğu kimi Editorda yazmağa çalışın və Compile edin . Burada Print() metodu MetaTrader platformasının aşağı hissəsində olan Experts bölməsinə yazı yazdırır.
İndisə Platforma ekranında mausun sağ düyməsini vurub My_Expert adlı proqramı aşağıdakı kimi Remove edin.
və aşağıdakı kimi nəticə verəcəkdir.
3. OnTick() funksiyası
Platformada hər qiymət dəyişikliyində ( Tick) baş verilməsi istənilən hərəkətlər bu funksiya daxilində yazılmalıdır. Bu funksiya əsas funksiyadır . Demək olar ki , bütün kodlarımızı burada yazaçağıq.
Nümünə : OnTick() funksiyası daxilində aşağıdakı kimi yazılanları yazmağa çalışın. Burada Alert() metodu ekrana Xəbərdarlıq pəncərəsini çıxaracaqdır ( təbii ki valyuta cütlüyünün hər qiyməti dəyişdikdə ). Kodun nə işə yaradığını gördükdən sonra proqramı yuxarıda olduğu kimi remove edin.
Nəticə bu cür olacaqdır
Bu dərsimiz hələlik bu qədər. Əgər hər hansı bir sualınız yaranarsa Facebookda FOREX TƏHSİLİ adlı qrupumuza yaza bilərsiniz.
Uğurlar...
Ehsen size
YanıtlaSilƏla, çox gözəl izah edirsiniz. Təşəkkürlər. Buradakı cəmi 17 dərsi tam öyrənsəm indikator yaza bilrəm, yəni bu 17 dərs kifayət edəcək ?
YanıtlaSil