KimIV'ten faydalı özellikler - sayfa 25

 

TimeOpenLastPos() işlevi.

Bu fonksiyon, son açık pozisyonun açılış zamanını döndürür. Dikkate alınacak pozisyonların seçimi harici parametreler tarafından belirlenir:

  • sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir.
  • op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
  • mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает время открытия последней открытой позиций.          |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime TimeOpenLastPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   datetime t ;
   int        i , k = OrdersTotal () ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if ( OrderSymbol () == sy || sy == "" ) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( op < 0 || OrderType () == op ) {
             if ( mn < 0 || OrderMagicNumber () == mn ) {
               if ( t < OrderOpenTime ()) t = OrderOpenTime () ;
             }
           }
         }
       }
     }
   }
   return ( t ) ;
}
not. Ekli, TimeOpenLastPos() işlevini test etmek için bir komut dosyasıdır.
Dosyalar:
 
Prival :
Kutularda kabarcık sıralama işlevi var mı?

Hayır ama 10 dakikada yaptım

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 10.06.2008                                                     |
//|  Описание : Выполняет пузырьковую сортировку элементов массива.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    a - массив элементов                                                    |
//+----------------------------------------------------------------------------+
void BubbleSort ( double & a []) {
   double t ;
   int      i , j , n = ArraySize ( a ) ;

   for ( i = n - 1 ; i > 0 ; i -- ) {
     for ( j = 0 ; j < i ; j ++ ) {
       if ( a [ j ] > a [ j + 1 ]) {
         t = a [ j ] ;
         a [ j ] = a [ j + 1 ] ;
         a [ j + 1 ] = t ;
       }
     }
   }
}
not. Ekli, BubbleSort() işlevini test etmek için bir komut dosyasıdır.
Dosyalar:
 

BarsBetweenLastFractals() işlevi.

Bu işlev, son iki fraktal veya -1 arasındaki çubuk sayısını döndürür. Fraktalların alınması gereken piyasa aracı ve zaman çerçevesi aşağıdaki parametrelerle belirlenir:

  • sy - Piyasa aracının adı. Varsayılan değer "" veya NULL , mevcut piyasa aracı anlamına gelir.
  • tf - Zaman Çerçevesi (bir çubuktaki dakika sayısı). Varsayılan değer 0'dır - mevcut zaman çerçevesi anlamına gelir.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 10.06.2008                                                     |
//|  Описание : Возвращает количество баров между двумя последними фракталами. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//|    tf - таймфрейм                       (    0       - текущий ТФ)         |
//+----------------------------------------------------------------------------+
int BarsBetweenLastFractals ( string sy = "" , int tf = 0 ) {
   double fu = 0 , fd = 0 ;
   int      i , nu = 0 , nd = 0 ;

   if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
   for ( i = 2 ; i < 100 ; i ++ ) {
     fu = iFractals ( sy , tf , MODE_UPPER , i ) ;
     if ( fu != 0 ) {
       if ( nu == 0 ) nu = i ;
     }
     fd = iFractals ( sy , tf , MODE_LOWER , i ) ;
     if ( fd != 0 ) {
       if ( nd == 0 ) nd = i ;
     }
     if ( nu > 0 && nd > 0 ) return ( MathAbs ( nu - nd )) ;
   }
   Print ( " BarsBetweenLastFractals(): Фракталы не найдены " ) ;
   return ( - 1 ) ;
}
not. Ekli, BarsBetweenLastFractals() işlevini test etmek için bir komut dosyasıdır.
 

SecondsAfterCloseLastPos() işlevi.

Bu fonksiyon, son pozisyonun kapatılmasından bu yana geçen saniye sayısını döndürür. Dikkate alınacak pozisyonların seçimi aşağıdaki parametrelerle belirlenir:

  • sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, işlev yalnızca belirtilen takımın konumlarını dikkate alacaktır. Varsayılan değer "" herhangi bir piyasa aracı anlamına gelir. NULL değeri, geçerli enstrüman anlamına gelir.
  • op - Ticaret işlemi, pozisyon türü. Geçerli değerler: OP_BUY , OP_SELL veya -1 . Varsayılan değer -1 , herhangi bir konum anlamına gelir.
  • mn - Konum Kimliği, MagicNumber. Varsayılan değer -1 , herhangi bir tanımlayıcı anlamına gelir.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество секунд после закрытия последней позиций. |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
datetime SecondsAfterCloseLastPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   datetime t ;
   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 ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( op < 0 || OrderType () == op ) {
             if ( mn < 0 || OrderMagicNumber () == mn ) {
               if ( t < OrderCloseTime ()) t = OrderCloseTime () ;
             }
           }
         }
       }
     }
   }
   return ( TimeCurrent () - t ) ;
}
PS Ekli, SecondsAfterCloseLastPos() işlevini test etmek için bir komut dosyasıdır.
 

Merhaba

Yardım tavsiyesi.

Belirli bir zamanda her iki yönde de sipariş veren bir danışman var.

İlki tetiklendiğinde ikincisi otomatik olarak silinecek şekilde nasıl yapılacağını parmaklarınızda açıklayın.

Veya bir danışman gönderin

teşekkürler

 
aceventura :

Merhaba

Yardım tavsiyesi.

Belirli bir zamanda her iki yönde de sipariş veren bir danışman var.

İlki tetiklendiğinde ikincisi otomatik olarak silinecek şekilde nasıl yapılacağını parmaklarınızda açıklayın.

Veya bir danışman gönderin

teşekkürler

KimIV

Igor. Yeterli parmağın var mı?

 
aceventura :

Merhaba

Yardım tavsiyesi.

Belirli bir zamanda her iki yönde de sipariş veren bir danışman var.

İlki tetiklendiğinde ikincisi otomatik olarak silinecek şekilde nasıl yapılacağını parmaklarınızda açıklayın.

Veya bir danışman gönderin

teşekkürler

İlk önce bu daldaki emir sayısı fonksiyonunu alın ve ardından "== 1", "< 2" veya "== tek sayı" döndürürse, bu şubeden "emirleri kapat" fonksiyonunu çağırın.

 
Vinin :

KimIV

Igor. Yeterli parmağın var mı?

Muhtemelen hayır ... Sadece iki parmağım var: işaret parmağım ve kavramam ... gee

 
SergNF :

İlk önce bu daldaki emir sayısı fonksiyonunu alın ve ardından "== 1", "< 2" veya "== tek sayı" döndürürse, bu şubeden "emirleri kapat" fonksiyonunu çağırın.

Sipariş sayısı işlevi çalışmayacaktır, çünkü. her çift için aynı danışman kendi yöntemiyle yapılandırılır. Ve aynı anda farklı çiftlere sipariş veriyor. Ardından, iki çift için dört sipariş verilirse ortaya çıkacak ve biri çalışıyor, üçü silinecek. ama her biri için tersi olması gerekir

Neden: