KimIV'ten faydalı özellikler - sayfa 52

 

IIFc() işlevi.

İnşaat çatalları açısından çok kullanışlı bir özellik. Eğer öyleyse, o zaman bu renk. Ve değilse, o zaman başka bir renk. IIFc() işlevi, gerekli üç parametreyi alır:

  • koşul - Boole ifadesi. Doğru veya yanlış olabilir.
  • ifTrue - Koşul ifadesi doğruysa IIFc() işlevi tarafından döndürülecek renk.
  • ifFalse - Koşul ifadesi yanlışsa IIFc() işlevi tarafından döndürülecek renk.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 18.07.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
color IIFc ( bool condition , color ifTrue , color ifFalse ) {
   if ( condition ) return ( ifTrue ) ; else return ( ifFalse ) ;
}
 

IIFd() işlevi.

Gerçek sayılar için benzer kolaylık. Eğer öyleyse, o zaman böyle gerçek bir sayı. Değilse, o zaman başka bir numara. IIFd() işlevi, gerekli üç parametreyi alır:

  • koşul - Boole ifadesi. Doğru veya yanlış olabilir.
  • ifTrue - Koşul ifadesi doğruysa IIFd() işlevi tarafından döndürülecek gerçek sayı.
  • ifFalse - Koşul ifadesi yanlışsa IIFd() işlevi tarafından döndürülecek gerçek bir sayı.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.02.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
double IIFd ( bool condition , double ifTrue , double ifFalse ) {
   if ( condition ) return ( ifTrue ) ; else return ( ifFalse ) ;
}
 

IIFi() işlevi.

Tamsayılar için benzer kolaylık. Eğer öyleyse, o zaman böyle bir tamsayı. Ve değilse, o zaman başka bir numara. IIFi() işlevi, gerekli üç parametreyi alır:

  • koşul - Boole ifadesi . Doğru veya yanlış olabilir.
  • ifTrue - Koşul ifadesi doğruysa IIFi() işlevi tarafından döndürülecek bir tam sayı.
  • ifFalse - Koşul ifadesi yanlışsa IIFi() işlevi tarafından döndürülecek bir tam sayı.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.02.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
int IIFi ( bool condition , int ifTrue , int ifFalse ) {
   if ( condition ) return ( ifTrue ) ; else return ( ifFalse ) ;
}
 

IIFs() işlevi.

Dizeler için benzer kolaylık. Eğer öyleyse, o zaman böyle bir çizgi. Ve değilse, o zaman başka bir satır. IIFs() işlevi, gerekli üç parametreyi alır:

  • koşul - Boole ifadesi. Doğru veya yanlış olabilir.
  • ifTrue - Koşul ifadesi doğruysa IIFs() işlevi tarafından döndürülecek dize.
  • ifFalse - Koşul ifadesi yanlışsa IIFs() işlevi tarafından döndürülecek dize.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.02.2008                                                     |
//|  Описание : Возвращает одно из двух значений взависимости от условия.      |
//+----------------------------------------------------------------------------+
string IIFs ( bool condition , string ifTrue , string ifFalse ) {
   if ( condition ) return ( ifTrue ) ; else return ( ifFalse ) ;
}
 

IIFc() işlevinin kullanımına bir örnek.

Belirtilen fiyat seviyesi mevcut Tekliften daha yüksekse, belirtilen fiyat seviyesinde mavi bir yatay çizgi ayarlayın, aksi takdirde kırmızı .

 extern double p1 = 1.36 ;
void start ( ) {
   color cl = IIFc ( p1 > Bid , Blue , Red ) ;
  SetHLine ( cl , "" , p1 ) ;
} 

IIFc() işlevini kullanmadan yukarıdaki kod şöyle görünür:

 extern double p1 = 1.36 ;
void start ( ) {
   color cl ;
   if ( p1 > Bid ) cl = Blue ; else cl = Red ;
  SetHLine ( cl , "" , p1 ) ;
}

PS Ekli, IIFc() işlevini test etmek için bir komut dosyasıdır.

Dosyalar:
test_iifc.mq4  3 kb
 

IIFs() işlevinin kullanımına bir örnek.

Çoğu durumda, Expert Advisor'ın yorum bloğunda IIFs() işlevini kullanıyorum. Örneğin, bir Uzman Danışmanın harici parametrelerinin değerlerini görüntülerken.

 extern int StopLoss = 50 ;
extern int TakeProfit = 0 ;
void start ( ) {
   Comment ( IIFs ( StopLoss < = 0 , "" , "StopLoss=" + DoubleToStr ( StopLoss , 0 ) + "п.  " )
         , IIFs ( TakeProfit < = 0 , "" , "TakeProfit=" + DoubleToStr ( TakeProfit , 0 ) + "п." )
         ) ;
} 

PS Ekli, IIFs() işlevini test etmek için bir komut dosyasıdır.

Dosyalar:
test_iifs.mq4  2 kb
 

IIFd() işlevinin kullanımına bir örnek.

IIFd() işlevi, bazı değişkenleri başlatırken kullanışlıdır. Örneğin, bir pozisyon açmadan önce dur ve fiyat seviyelerini al.

 extern int StopLoss = 50 ;
extern int TakeProfit = 0 ;
void start ( ) {
   double ll = 0.1 ;
   double sl = IIFd ( StopLoss   > 0 , Ask - StopLoss   * Point , 0 ) ;
   double tp = IIFd ( TakeProfit > 0 , Ask + TakeProfit * Point , 0 ) ;

  OpenPosition ( NULL , OP_BUY , ll , sl , tp ) ;
}

IIFd() işlevi olmadan, bu tür kod şöyle görünür:

 extern int StopLoss = 50 ;
extern int TakeProfit = 0 ;
void start ( ) {
   double ll = 0.1 , sl , tp ;
   if ( StopLoss   > 0 ) sl = Ask - StopLoss   * Point ; else sl = 0 ;
   if ( TakeProfit > 0 ) tp = Ask + TakeProfit * Point ; else tp = 0 ;

  OpenPosition ( NULL , OP_BUY , ll , sl , tp ) ;
}
 

Test cihazında ticaret işlevlerini kullanma örneği.

Yalnızca test cihazında kullanılması amaçlanan alım satım işlevlerini nasıl kullanabileceğinizi göstermek için bir swing Expert Advisor e_ForTester yazdım . Giriş sinyali, bir çift tek yönlü şamdandır. Mumlar yukarı doğru yönlendirilirse, danışman alımı kapatır ve satar. Mumlar aşağı yönlendirilirse, danışman satışı kapatır ve satın alır. Piyasada her zaman sadece bir pozisyon vardır. Çıkış, ya ters sinyal ile ya da dur/al ile gerçekleştirilir. Durdur ve al, optimize edilebilen iki harici parametredir.
EA, yalnızca test eden için amaçlanan aşağıdaki işlevleri kullanır:

e_ForTester Expert Advisor'ın EURUSD H1 grafiğindeki işlemleri:

Not Ekli:

  • e_ForTester.mq4 - Yalnızca test cihazında kullanılması amaçlanan Expert Advisor.
  • e_ForTester.rar - Test kullanıcısı raporu.
  • e_ForTester.txt - Test günlüğü.
Dosyalar:
 
Yalnızca MetaTrader 4 test cihazında kullanılması amaçlanan işlevler tam olarak yayınlanmıştır. Bu nedenle, ilgili b-ForTest kitaplığı yayınlanmıştır.
 
V. Yakimkin kitabı okudu. " Forex piyasası sizin başarıya giden yolunuzdur" ve "...farklı (DJI x Nikkei)..." gibi çizgilerle karşılaştı. .