KimIV'ten faydalı özellikler - sayfa 24

 

NumberOfLossPosToday() işlevi.

Bu işlev, bugün kapatılan kârsız pozisyonların sayısı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   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfLossPosToday ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   datetime t ;
   int        i , k = OrdersHistoryTotal () , kp = 0 ;

   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 ) {
               t = OrderCloseTime () ;
               if ( Year () == TimeYear ( t ) && DayOfYear () == TimeDayOfYear ( t )) {
                 if ( OrderProfit () < 0 ) kp ++;
               }
             }
           }
         }
       }
     }
   }
   return ( kp ) ;
}
PS Ekli, NumberOfLossPosToday() işlevini test etmek için bir komut dosyasıdır.
 

PriceCloseLastPos() işlevi.

Bu fonksiyon, son kapatılan pozisyonun kapanış fiyatı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   - любой магик)                    |
//+----------------------------------------------------------------------------+
double PriceCloseLastPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   datetime t ;
   double    r = 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 == "" ) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( op < 0 || OrderType () == op ) {
             if ( mn < 0 || OrderMagicNumber () == mn ) {
               if ( t < OrderCloseTime ()) {
                 t = OrderCloseTime () ;
                 r = OrderClosePrice () ;
               }
             }
           }
         }
       }
     }
   }
   return ( r ) ;
}
not. Ekli, PriceCloseLastPos() işlevini test etmek için bir komut dosyasıdır.
Dosyalar:
 
Sevgili KimIV , şubenizin sonuna tüm fonksiyonlarınızın bir kütüphanesini koyarsanız çok iyi olur.
 

Desteklerim. Bunu bile yapabilirsiniz. Tüm kütüphane değil. Ve birkaç kütüphane ve sonunda değil, belirli bir konuda f-th birikimi olarak.

Örneğin, açma / kapama için ayrı bir kitaplık (açılış fonksiyonları sadece artı Market Watch tarafından yapılan açılışlar ve kapanışlardır)

Izlemek. kütüphane - belirli gerekçelerle konumların varlığını döndüren işlevlerle.

Peki, vb.

Buraya sadece kütüphanelerin montajında bulunanların önerilerini yazmak gerekir.

 

PriceOpenLastPos() işlevi.

Bu fonksiyon, son açık pozisyonun açılış fiyatı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   - любой магик)                    |
//+----------------------------------------------------------------------------+
double PriceOpenLastPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   datetime t ;
   double    r = 0 ;
   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 () ;
                 r = OrderOpenPrice () ;
               }
             }
           }
         }
       }
     }
   }
   return ( r ) ;
}
not. Ekli, PriceOpenLastPos() işlevini test etmek için bir komut dosyasıdır.
Dosyalar:
 

PriceOpenLastClosePos() işlevi.

Bu fonksiyon, son kapatılan pozisyonun açılış fiyatı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                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 03.06.2008                                                     |
//|  Описание : Возвращает цену открытия последней закрытой позиций.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double PriceOpenLastClosePos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   datetime t ;
   double    r = 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 == "" ) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( op < 0 || OrderType () == op ) {
             if ( mn < 0 || OrderMagicNumber () == mn ) {
               if ( t < OrderCloseTime ()) {
                 t = OrderCloseTime () ;
                 r = OrderOpenPrice () ;
               }
             }
           }
         }
       }
     }
   }
   return ( r ) ;
}
not. Ekli, PriceOpenLastClosePos() işlevini test etmek için bir komut dosyasıdır.
 
rid :

Desteklerim. Bunu bile yapabilirsiniz. Tüm kütüphane değil. Ve birkaç kütüphane ve sonunda değil, belirli bir konuda f-th birikimi olarak.

Örneğin, açma / kapama için ayrı bir kitaplık (açılış fonksiyonları sadece artı Market Watch tarafından yapılan açılışlar ve kapanışlardır)

Izlemek. kütüphane - belirli gerekçelerle konumların varlığını döndüren işlevlerle.

Peki, vb.

Buraya sadece kütüphanelerin montajında bulunanların önerilerini yazmak gerekir.

Tünaydın.

Sevgili Kim IV.

Yeni başlayan EA yazarları için çok faydalı bir iş yapıyorsunuz.

Önceki dilekçeye katılıyorum.

Zor değilse, ana işlevleri tek bir " uzman şablon " içinde toplayabilirsiniz.

- ön kontroller

-Pozisyon açma

- sipariş vermek

- pozisyon kapatma

-siparişlerin silinmesi

- siparişlerin ve pozisyonların bakımı (değiştirilmesi).

Ve herkes bu işlevlere yapılan çağrılarla bir blok oluşturacaktır.

Sıfırdan bir Uzman Danışman yazamam.

Bu nedenle, başkalarının kodlarını değiştirerek başladım.

İşlevlerinizi bloklar halinde eklemeye başladım - birdirbir oldu.

Birkaç gün süren düzeltmeler ve eklemelerden sonra, deneme EA çalışmaya başladı, ancak çok beceriksizce..

Bu nedenle, basit bir uzman şablonu oluşturmak için bu istek ortaya çıktı.


Benim için Roche şablonunun anlaşılması biraz zor ve ilk aşamada gereksiz - MetaEditor makalesinden: Şablonların gücü üzerine inşa etmek .

 

PriceOpenNearPos() işlevi.

Bu fonksiyon, en yakın pozisyonun açılış fiyatını döndürür. Pozisyon "yakınlık" kriteri, pozisyon açılış fiyatı ile mevcut piyasa fiyatı arasındaki puan cinsinden minimum mesafedir. 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                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 04.06.2008                                                     |
//|  Описание : Возвращает цену открытия ближайшей позиции.                    |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double PriceOpenNearPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   double mi , oop = 0 , p ;
   int      i , k = OrdersTotal () , pp = 0 ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if (( OrderSymbol () == sy || sy == "" ) && ( op < 0 || OrderType () == op )) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( mn < 0 || OrderMagicNumber () == mn ) {
             if ( OrderType () == OP_BUY )    mi = MarketInfo ( OrderSymbol () , MODE_ASK ) ;
             if ( OrderType () == OP_SELL ) mi = MarketInfo ( OrderSymbol () , MODE_BID ) ;
             p = MarketInfo ( OrderSymbol () , MODE_POINT ) ;
             if ( p == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) p = 0.0001 ; else p = 0.01 ;
             if ( pp == 0 || pp > MathAbs ( OrderOpenPrice () - mi ) / p ) {
               pp = MathAbs ( OrderOpenPrice () - mi ) / p ;
               oop = OrderOpenPrice () ;
             }
           }
         }
       }
     }
   }
   return ( oop ) ;
}

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

İlgilenen varsa, DistMarketAndPos() ve PriceOpenNearPos() işlevlerini kendiniz karşılaştırın. Farklılıkları not edin.

Dosyalar:
 

TicketNearPos() işlevi.

Bu fonksiyon, piyasaya en yakın pozisyonun biletini döndürür. Pozisyon "yakınlık" kriteri, pozisyon açılış fiyatı ile mevcut piyasa fiyatı arasındaki puan cinsinden minimum mesafedir. 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                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 05.06.2008                                                     |
//|  Описание : Возвращает тикет ближайшей к рынку позиции по цене открытия.   |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int TicketNearPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   double mi , p ;
   int      i , k = OrdersTotal () , pp = 0 , ti = 0 ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if (( OrderSymbol () == sy || sy == "" ) && ( op < 0 || OrderType () == op )) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( mn < 0 || OrderMagicNumber () == mn ) {
             if ( OrderType () == OP_BUY )    mi = MarketInfo ( OrderSymbol () , MODE_ASK ) ;
             if ( OrderType () == OP_SELL ) mi = MarketInfo ( OrderSymbol () , MODE_BID ) ;
             p = MarketInfo ( OrderSymbol () , MODE_POINT ) ;
             if ( p == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) p = 0.0001 ; else p = 0.01 ;
             if ( pp == 0 || pp > MathAbs ( OrderOpenPrice () - mi ) / p ) {
               pp = MathAbs ( OrderOpenPrice () - mi ) / p ;
               ti = OrderTicket () ;
             }
           }
         }
       }
     }
   }
   return ( ti ) ;
}
not. Ekli, TicketNearPos() işlevini test etmek için bir komut dosyasıdır.
Dosyalar:
 

TypeNearPos() işlevi.

Bu fonksiyon, açılış fiyatından piyasaya en yakın pozisyonun tipini ( 0 -Buy, 1 -Sell) veya -1 döndürür. Pozisyon "yakınlık" kriteri, pozisyon açılış fiyatı ile mevcut piyasa fiyatı arasındaki puan cinsinden minimum mesafedir. 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                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 07.06.2008                                                     |
//|  Описание : Возвращает тип ближайшей к рынку позиции или -1.               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int TypeNearPos ( string sy = "" , int op =- 1 , int mn =- 1 ) {
   double mi , p ;
   int      i , k = OrdersTotal () , pp = 0 , ty =- 1 ;

   if ( sy == " 0 " ) sy = Symbol () ;
   for ( i = 0 ; i < k ; i ++ ) {
     if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
       if (( OrderSymbol () == sy || sy == "" ) && ( op < 0 || OrderType () == op )) {
         if ( OrderType () == OP_BUY || OrderType () == OP_SELL ) {
           if ( mn < 0 || OrderMagicNumber () == mn ) {
             if ( OrderType () == OP_BUY )    mi = MarketInfo ( OrderSymbol () , MODE_ASK ) ;
             if ( OrderType () == OP_SELL ) mi = MarketInfo ( OrderSymbol () , MODE_BID ) ;
             p = MarketInfo ( OrderSymbol () , MODE_POINT ) ;
             if ( p == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) p = 0.0001 ; else p = 0.01 ;
             if ( pp == 0 || pp > MathAbs ( OrderOpenPrice () - mi ) / p ) {
               pp = MathAbs ( OrderOpenPrice () - mi ) / p ;
               ty = OrderType () ;
             }
           }
         }
       }
     }
   }
   return ( ty ) ;
}
not. Ekli, TypeNearPos() işlevini test etmek için bir komut dosyasıdır.
Dosyalar:
Neden: