KimIV'ten faydalı özellikler - sayfa 53

 
KimIV >> :

IIFc() işlevi.

...

Eksik üçlü operatörü yapmaya mı çalışıyorsunuz?

Zachot, teşekkürler, mümkün olan her yere kaşlı ayraç koyma alışkanlığım sayesinde çok faydalı olacak.

 
CMEPTHiK писал (а) >>
V. Yakimkin kitabı okudu. "Forex piyasası sizin başarıya giden yolunuzdur" ve "...farklı (DJI x Nikkei)..." gibi çizgilerle karşılaştı. ..

Diferansiyel, ROC göstergesinin gösterdiği hızdır.

 

İgor, karşıt pozisyonların varlığını hesaba katarak kapatma dahil, kutularınızdaki tüm pozisyonları bir kerede kapatma işlevine sahip değil miydiniz?

Onlar. önce tüm sayaçları kapatmak, mümkün olduğunca çok sayıda karşı pozisyonun tutarsızlığını hesaba katarak, sonra kârsız, karlı ..

 
alexx_v писал(а) >>

İgor, karşıt pozisyonların varlığını hesaba katarak kapatma dahil, kutularınızdaki tüm pozisyonları bir kerede kapatma işlevine sahip değil miydiniz?

Onlar. önce tüm sayaçları kapatmak, mümkün olduğunca çok sayıda karşı pozisyonun tutarsızlığını hesaba katarak, sonra kârsız, karlı ..

Hayır henüz değil...

 

ExistInHistoryCloseBetween() işlevi.

Tarihler arasında kapatılan (silinen) bir pozisyon veya siparişin geçmişindeki mevcudiyet bayrağını döndürür. ExistInHistoryCloseBetween() işlevi aşağıdaki parametreleri alır:

  • sy - Piyasa aracının adı. "" - herhangi bir karakter, NULL - geçerli karakter. Varsayılan değer "" dir.
  • op - Ticaret işlemi. Geçerli değerler: -1 , OP_BUY , OP_SELL , OP_BUYLIMIT , OP_BUYSTOP , OP_SELLLIMIT , OP_SELLSTOP . Varsayılan değer -1 - herhangi bir işlemdir.
  • mn - Ticaret işlemlerinin tanımlayıcısı, MagicNumber . Varsayılan değer -1 - herhangi bir büyü.
  • d1 - Pozisyon kapatma süresi (bekleyen bir ipliğin silinmesi). Varsayılan değer - 0 - herhangi bir kapatma (silme) zamanı. d1 zamanı d2 zamanından küçük olmalıdır.
  • d2 - Konum kapatma süresi (bekleyen bir ipliğin silinmesi). Varsayılan değer - 0 - herhangi bir kapatma (silme) zamanı. d2 zamanı d1 zamanından büyük olmalıdır.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 27.08.2008                                                     |
//|  Описание : Возвращает флаг существования в истории позиции или ордера,    |
//|           : закрытой (удалённого) между датами.                            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая операция)                 |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    d1 - время закрытия             ( 0   - любое время закрытия)           |
//|    d2 - время закрытия             ( 0   - любое время закрытия)           |
//+----------------------------------------------------------------------------+
bool ExistInHistoryCloseBetween ( string sy = "" , int op = - 1 , int mn = - 1 ,
                                 datetime d1 = 0 , datetime d2 = 0 ) {
   int i , k = OrdersHistoryTotal ( ) ;

   if ( sy = = "0" ) sy = Symbol ( ) ;
   for ( i = 0 ; i < k ; i + + ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
       if ( ( OrderSymbol ( ) = = sy | | sy = = "" ) & & ( op < 0 | | OrderType ( ) = = op ) ) {
         if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) {
           if ( d1 < = OrderCloseTime ( ) & & ( d2 = = 0 | | d2 > = OrderCloseTime ( ) ) ) return ( True ) ;
         }
       }
     }
   }
   return ( False ) ;
}
 

ExistInHistoryCloseBetween() işlevini kullanma örnekleri.

  1. Mevcut grafiğin sembolü için dün silinen MagicNumber=0 olan herhangi bir türdeki dünün kapalı pozisyonlarının veya emirlerinin varlığı.
     datetime d1 = iTime ( NULL , PERIOD_D1 , 1 ) ;
    datetime d2 = iTime ( NULL , PERIOD_D1 , 0 ) - 1 ;
    Message ( IIFs ( ExistInHistoryCloseBetween ( NULL , - 1 , - 1 , d1 , d2 ) , "Есть" , "Нет" ) ) ;
  2. Son üç saat içinde kapatılan (silinen) herhangi bir pozisyon veya emrin varlığı.
    datetime d1=TimeCurrent()-3*60*60;
    Message(IIFs(ExistInHistoryCloseBetween("", -1, -1, d1), "Есть", "Нет"));
  3. Son 5 dakika içinde euro alımının kapatılıp kapatılmadığı.
     datetime d1 = TimeCurrent ( ) - 5 * 60 ;
    Message ( IIFs ( ExistInHistoryCloseBetween ( "EURUSD" , OP_BUY , - 1 , d1 ) , "Да" , "Нет" ) ) ;

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

 

ExistInHistoryOpenBetween() işlevi.

Tarihler arasında açılan (yerleştirilen) bir pozisyonun veya emrin geçmişindeki mevcudiyet bayrağını döndürür. ExistInHistoryOpenBetween() işlevi aşağıdaki parametreleri alır:

  • sy - Araç adı. "" - herhangi bir karakter, NULL - geçerli karakter. Varsayılan değer "" dir.
  • op - Ticaret işlemi. Geçerli değerler: -1 , OP_BUY , OP_SELL , OP_BUYLIMIT , OP_BUYSTOP , OP_SELLLIMIT , OP_SELLSTOP . Varsayılan değer -1 - herhangi bir işlemdir.
  • mn - Ticaret işlemlerinin tanımlayıcısı, MagicNumber . Varsayılan değer -1 - herhangi bir büyü.
  • d1 - Bir pozisyon açma zamanı (bekleyen bir emir ayarlama). Varsayılan değer 0 - herhangi bir açma (ayar) zamanı. d1 zamanı d2 zamanından küçük olmalıdır.
  • d2 - Bir pozisyon açma zamanı (bekleyen bir emir ayarlama). Varsayılan değer 0 - herhangi bir açma (ayar) zamanı. d2 zamanı d1 zamanından büyük olmalıdır.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 27.08.2008                                                     |
//|  Описание : Возвращает флаг существования в истории позиции или ордера,    |
//|           : открытой (установленного) между датами.                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    d1 - время открытия             ( 0   - любое время открытия)           |
//|    d2 - время открытия             ( 0   - любое время открытия)           |
//+----------------------------------------------------------------------------+
bool ExistInHistoryOpenBetween ( string sy = "" , int op = - 1 , int mn = - 1 ,
                               datetime d1 = 0 , datetime d2 = 0 ) {
   int i , k = OrdersHistoryTotal ( ) ;

   if ( sy = = "0" ) sy = Symbol ( ) ;
   for ( i = 0 ; i < k ; i + + ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
       if ( ( OrderSymbol ( ) = = sy | | sy = = "" ) & & ( op < 0 | | OrderType ( ) = = op ) ) {
         if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) {
           if ( d1 < = OrderOpenTime ( ) & & ( d2 = = 0 | | d2 > = OrderOpenTime ( ) ) ) return ( True ) ;
         }
       }
     }
   }
   return ( False ) ;
}
 

Güzel gün!

Igor, çubuğu ihtiyacım olan renge nasıl boyayacağımı söyler misin?

Sana en başından anlatacağım. Williams B pazarının dördüncü boyutu olan bölge ticareti için bir gösterge yazıyorum. Ve orada çubukların yeşil, kırmızı veya gri olarak boyanması gerekiyor.

Gösterge şöyle yazdı:

İstediğim bu değildi. Çubuğun tam ortasına boyanması nasıl yapılır. Boyamanın bir yolu olarak iki koordinatlı bir dikdörtgen kullanıyorum. İşte bütün problemim burada, dikdörtgenin başlangıcı ve bitişinin koordinatlarını nasıl seçeceğim.

Lütfen bana söyle.

Ekli gösterge kodudur.

Dosyalar:
zonetrade.mq4  6 kb
 
Duke3D писал(а) >>
Igor, çubuğu nasıl ihtiyacım olan renge boyayacağımı söyler misin?
...
Çubuğun tam ortasına boyanması nasıl yapılır.

Heiken Ashi göstergesine bakın. Kaynak kodu MetaTrader 4'e dahildir.

 

ExistInHistoryToDay() işlevi.

Bugün açılan (yerleştirilen) bir pozisyon veya siparişin geçmişindeki mevcudiyet bayrağını döndürür. ExistInHistoryToDay() işlevi aşağıdaki parametreleri alır:

  • sy - Araç adı. "" - herhangi bir karakter, NULL - geçerli karakter. Varsayılan değer "" dir.
  • op - Ticaret işlemi. Geçerli değerler: -1 , OP_BUY , OP_SELL , OP_BUYLIMIT , OP_BUYSTOP , OP_SELLLIMIT , OP_SELLSTOP . Varsayılan değer -1 - herhangi bir işlemdir.
  • mn - Ticaret işlemlerinin tanımlayıcısı, MagicNumber. Varsayılan değer -1 - herhangi bir büyü.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.08.2008                                                     |
//|  Описание : Возвращает флаг наличия ордера или позиции в истории за сегодня|
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool ExistInHistoryToDay ( string sy = "" , int op = - 1 , int mn = - 1 ) {
   int i , k = OrdersHistoryTotal ( ) ;

   if ( sy = = "0" ) sy = Symbol ( ) ;
   for ( i = 0 ; i < k ; i + + ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_HISTORY ) ) {
       if ( OrderSymbol ( ) = = sy | | sy = = "" ) {
         if ( op < 0 | | OrderType ( ) = = op ) {
           if ( mn < 0 | | OrderMagicNumber ( ) = = mn ) {
             if ( TimeDay    ( OrderOpenTime ( ) ) = = Day ( )
             & &    TimeMonth ( OrderOpenTime ( ) ) = = Month ( )
             & &    TimeYear ( OrderOpenTime ( ) ) = = Year ( ) ) return ( True ) ;
           }
         }
       }
     }
   }
   return ( False ) ;
}