KimIV'ten faydalı özellikler - sayfa 48

 

Onlar. bir sabit eklemek sonucu etkilemez

Hızlı bir gösterge yapmak istedim, işe yaramadı, bir şey (

 
Prival писал (а) >>

Bu iyi bir kuraldır - güvensizlik. Herhangi bir matematik paketini kontrol edin. Sonuçları yayınlayacağız. Hemen şimdi MathCade'de yapacağım.

Güzel, ama güvensizliğini ifade etmeden önce kontrol etmelisin. Affınıza sığınırım.

 
TheXpert писал (а) >>

Güzel, ama güvensizliğini ifade etmeden önce kontrol etmelisin. Affınıza sığınırım.

Evet, şüpheleriniz varsa, ifade edin ve emin olun. Sonuçta, işlevler yarattıktan sonra artık onlara geri dönmek istemiyorsunuz, hataları arayın. Her şeyin doğru yapıldığından emin olmanız gerekir. Ama yine de garanti yok http://www.citforum.ru/programming/digest/scofdebug/

 

Tünaydın! Şube boyunca fraktal fonksiyonların bağlantısının kesildiği ortaya çıktı.

Bunlardan ikisi bulundu:

biri son fraktallar arasındaki çubuk sayısını döndürür (BarsBetweenLastFractals(string sy="", int tf=0)),

diğeri ise son fraktalın fiyat düzeyidir (s. 37).

Fraktal temayı uyumlu bir şekilde "kapatmak" için bir fonksiyona daha ihtiyaç vardır. Son fraktalın tepesindeki çubuk numarasını döndürmek!

Igor! Eğer iyi değilsen. zor. Böyle bir işlevi yapabilir ve ortaya çıkarabilir misiniz?

 

ExistOrdersByPrice() işlevi.

Belirli bir fiyatta bir siparişin varlığının bayrağını döndürür. Doğru - sipariş var (ayarlandı), Yanlış - sipariş yok (ayarlanmadı). Kontrol edilen siparişlerin listesini fonksiyon parametreleriyle sınırlayabilirsiniz:

  • sy - Piyasa aracının adı. Bu parametreyi ayarlarsanız, fonksiyon sadece belirtilen enstrümanın siparişlerini kontrol edecektir. NULL , geçerli araç anlamına gelir ve "" (varsayılan) herhangi bir araç anlamına gelir.
  • op - İşlem tipi, bekleyen emir tipi. Geçerli değerler OP_BUYLIMIT , OP_BUYSTOP , OP_SELLLIMIT , OP_SELLSTOP veya -1'dir . Varsayılan değer -1 , herhangi bir sipariş türü anlamına gelir.
  • mn - Sipariş Kimliği (MagicNumber). Varsayılan değer -1 - herhangi bir büyü.
  • pp - Sipariş vermek için fiyat seviyesi. Varsayılan değer -1 - herhangi bir fiyattır.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.07.2008                                                     |
//|  Описание : Возвращает флаг существования ордеров по цене установки        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    pp - цена                       (-1   - любая цена)                     |
//+----------------------------------------------------------------------------+
bool ExistOrdersByPrice ( string sy = "" , int op =- 1 , int mn =- 1 , double pp =- 1 ) {
   int d , 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 == "" ) && ( op < 0 || OrderType () == op )) {
         if ( OrderType () > 1 && OrderType () < 6 ) {
           d = MarketInfo ( OrderSymbol () , MODE_DIGITS ) ;
           pp = NormalizeDouble ( pp , d ) ;
           if ( pp < 0 || pp == NormalizeDouble ( OrderOpenPrice () , d )) {
             if ( mn < 0 || OrderMagicNumber () == mn ) return ( True ) ;
           }
         }
       }
     }
   }
   return ( False ) ;
}
 

ExistOrdersByPrice() işlevini kullanma örnekleri.

  • Kurulum fiyatı 1.4 olan herhangi bir siparişi kontrol edin
     Message ( IIFs ( ExistOrdersByPrice ( "" , - 1 , - 1 , 1.4 ) , " Есть " , " Нет " )) ;
  • Mevcut grafiğin sembolü için 1.5 kurulum fiyatında herhangi bir emrin olup olmadığını kontrol edin
     Message ( IIFs ( ExistOrdersByPrice ( NULL , - 1 , - 1 , 1.5 ) , " Есть " , " Нет " )) ;
  • Herhangi bir enstrüman için 1.5 kurulum fiyatında BuyLimit emri olup olmadığını kontrol edin
     Message ( IIFs ( ExistOrdersByPrice ( "" , OP_BUYLIMIT , - 1 , 1.5 ) , " Есть " , " Нет " )) ;
  • EURUSD üzerinde magic 123456 ile kurulum fiyatı 1.4 olan bir SellStop siparişini kontrol edin
     Message ( IIFs ( ExistOrdersByPrice ( " EURUSD " , OP_SELLSTOP , 123456 , 1.4 ) , " Есть " , " Нет " )) ;
  • Magic 987 USDJPY ile kurulum fiyatı 106'da herhangi bir sipariş olup olmadığını kontrol edin
     Message ( IIFs ( ExistOrdersByPrice ( " USDJPY " , - 1 , 987 , 106 ) , " Есть " , " Нет " )) ;

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

Dosyalar:
 
rid писал (а) >>
Fraktal temayı uyumlu bir şekilde "kapatmak" için bir fonksiyona daha ihtiyaç vardır. Son fraktalın tepesindeki çubuk numarasını döndürmek!

13 Ağustos 2008'de GetFractalBar(p.41) işlevini yayınladım.

 

b-Orders kitaplığı yayınlandı.

 
KimIV писал (а) >>

13 Ağustos 2008'de GetFractalBar(p.41) işlevini yayınladım.

Evet kesinlikle! Sayesinde!

 
KimIV писал (а) >>

b-Orders kitaplığı yayınlandı.

Puan. faydalı kütüphane! Orada bulunanların hepsi adına, "teşekkür ederim!"

Neden: