KimIV'ten faydalı özellikler - sayfa 10

 

Teşekkürler KimIV !

 

DeleteOrders() işlevi. Test sürümü.

DeleteOrders() işlevi BuyLimit, BuyStop, SellLimit ve SellStop bekleyen siparişleri silmek için tasarlanmıştır. DeleteOrders() işlevi evrenseldir, yani hem mevcut tüm bekleyen siparişleri hem de işlev parametreleri tarafından belirtilen seçim koşullarını karşılayan belirli siparişleri silmek için kullanılabilir:

sy - Araç adı. Test cihazında alım satım işlemi sadece mevcut enstrüman üzerinde gerçekleştirilebildiğinden, bu parametre test cihazı versiyonuyla ilgili değildir ve sadece bu fonksiyonun çevrimiçi versiyonuyla uyumluluk için gereklidir. Test cihazında "" veya NULL değerlerini kullanmak en iyisidir. Varsayılan değer "" - herhangi bir karakter anlamına gelir.
op
- İşlem tipi, bekleyen emir tipi. Beş değerden biri mümkündür: -1, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT veya OP_SELLSTOP. Varsayılan değer -1, herhangi bir sipariş anlamına gelir.
mn
- MagicNumber, bekleyen siparişin kimlik numarası. Varsayılan değer -1, herhangi bir sihir anlamına gelir.

 //+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 13.06.2007                                                      |
//| Описание : Удаление ордеров. Версия функции для тестов на истории.         |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//| sy - наименование инструмента   (NULL - текущий символ)                    |
//| op - операция                   ( -1  - любой ордер)                       |
//| mn - MagicNumber                ( -1  - любой магик)                       |
//+----------------------------------------------------------------------------+
void DeleteOrders ( string sy = "" , int op =- 1 , int mn =- 1 ) {
  int i , k = OrdersTotal () , ot ;
 
  if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
  for ( i = 0 ; i < k ; i ++ ) {
    if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
      ot = OrderType () ;
      if ( ot == OP_BUYLIMIT || ot == OP_BUYSTOP || ot == OP_SELLLIMIT || ot == OP_SELLSTOP ) {
        if ( OrderSymbol () == sy && ( op < 0 || ot == op )) {
          if ( mn < 0 || OrderMagicNumber () == mn ) {
            OrderDelete ( OrderTicket () , clDelete ) ;
          }
        }
      }
    }
  }
}
 

DeleteOrders() işlevi. Çevrimiçi sürüm.


 //+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 28.11.2006                                                      |
//| Описание : Удаление ордеров                                                |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//|   sy - наименование инструмента   ( ""  - любой символ,                    |
//|                                    NULL - текущий символ)                  |
//|   op - операция                   (  -1 - любой ордер)                     |
//|   mn - MagicNumber                (  -1 - любой магик)                     |
//+----------------------------------------------------------------------------+
void DeleteOrders ( string sy = "" , int op =- 1 , int mn =- 1 ) {
  bool fd ;
  int err , i , it , k = OrdersTotal () , ot ;
  
  if ( sy == " 0 " ) sy = Symbol () ;
  for ( i = k - 1 ; i >= 0 ; i -- ) {
    if ( OrderSelect ( i , SELECT_BY_POS , MODE_TRADES )) {
      ot = OrderType () ;
      if ( ot > 1 && ot < 6 ) {
        if (( OrderSymbol () == sy || sy == "" ) && ( op < 0 || ot == op )) {
          if ( mn < 0 || OrderMagicNumber () == mn ) {
            for ( it = 1 ; it <= NumberOfTry ; it ++ ) {
              if ( ! IsTesting () && ( ! IsExpertEnabled () || IsStopped ())) break ;
              while ( ! IsTradeAllowed ()) Sleep ( 5000 ) ;
              fd = OrderDelete ( OrderTicket () , clDelete ) ;
              if ( fd ) {
                if ( UseSound ) PlaySound ( NameFileSound ) ; break ;
              } else {
                err = GetLastError () ;
                Print ( " Error( " , err , " ) delete order " , GetNameOP ( ot ) ,
                      " : " , ErrorDescription ( err ) , " , try " , it ) ;
                Sleep ( 1000 * 5 ) ;
              }
            }
          }
        }
      }
    }
  }
}
 

DeleteOrders() işlevini kullanma örnekleri.


1. Tüm siparişleri silin:

 DeleteOrders () ;
2. Tüm BuyStop siparişlerini silin:
 DeleteOrders ( NULL , OP_BUYSTOP ) ;

3. Magic 123456 ile tüm siparişleri silin:

 DeleteOrders ( NULL , - 1 , 123456 ) ;

not. Fragman aynı örneklerle çalışan bir komut dosyasına sahiptir.

Dosyalar:
 
KimIV :

DeleteOrders() işlevini kullanma örnekleri.

Bu hızla kütüphaneye gidemeyiz. Hala ziyaret etmek zorundasın. Tabii davet ederseniz. Davetli değilim, hayır, hayır.
 
Her erkeğin ayrılma hakkı vardır ... eee ... Bu konuda biraz eğleneceğim

İlnar , bir fraktalla ilgili bekleyen emir konusunda, "Verilen fraktallar üzerinde bekleyen emir nasıl yapılır?" diye sordu.


İlnar'ın fraktalların fiyat seviyelerini belirlemekte zorlandığını varsayıyorum. Bu nedenle, geleneksel olarak işlevimi kullanmayı öneriyorum:


 //+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 07.10.2006                                                      |
//| Описание : Поиск ближайшего фрактала.                                      |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//|   sy - наименование инструмента     (NULL - текущий символ)                |
//|   tf - таймфрейм                    (  0  - текущий ТФ)                    |
//|   mode - тип фрактала               (MODE_LOWER|MODE_UPPER)                |
//+----------------------------------------------------------------------------+
double FindNearFractal ( string sy = " 0 " , int tf = 0 , int mode = MODE_LOWER ) {
  if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
  double f = 0 ;
  int d = MarketInfo ( sy , MODE_DIGITS ) , s ;
  if ( d == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) d = 4 ; else d = 2 ;
 
  for ( s = 2 ; s < 100 ; s ++ ) {
    f = iFractals ( sy , tf , mode , s ) ;
    if ( f != 0 ) return ( NormalizeDouble ( f , d )) ;
  }
  Print ( " FindNearFractal(): Фрактал не найден " ) ;
  return ( 0 ) ;
}
FindNearFractal() işlevi, belirli bir sembolde, belirli bir zaman diliminde belirli bir türün en yakın fraktalını arar ve fiyat düzeyini döndürür. Fraktal lokasyonun fiyat seviyesini bilerek, bu seviyede sipariş vermek zaten çok kolay.
 
KimIV :
  int d = MarketInfo ( sy , MODE_DIGITS ) , s ;
  if ( d == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) d = 4 ; else d = 2 ;
Soru... Bağlantılar ne d 0'a eşit olabilir mi ???
 
kharko :
Kim IV :
  int d = MarketInfo ( sy , MODE_DIGITS ) , s ;
  if ( d == 0 ) if ( StringFind ( sy , " JPY " ) < 0 ) d = 4 ; else d = 2 ;
Soru... Bağlantılar ne d 0'a eşit olabilir mi ???
Bilmiyorum... Benim pratiğimde d=0 iken bir durum vardı. Sıfır olup olmadığını kontrol etmek zorunda kaldım. O zamandan beri, bu kodu elimden geldiğince her yere sürüklüyorum. Bu aşırı olabilir, ama bence abartmaktansa aşırıya kaçmak daha iyidir.
 
Vinin :
Kim IV :

DeleteOrders() işlevini kullanma örnekleri.

Bu hızla kütüphaneye gidemeyiz. Hala ziyaret etmek zorundasın. Tabii davet ederseniz. Davetli değilim, hayır, hayır.

Vityok, sorun ne? Kaneshna, yakında bir bahçe kazmaya gel ... yardım edeceksin ...

 
KimIV :
şarap :
Kim IV :

DeleteOrders() işlevini kullanma örnekleri.

Bu hızla kütüphaneye gidemeyiz. Hala ziyaret etmek zorundasın. Tabii davet ederseniz. Davetli değilim, hayır, hayır.

Vityok, sorun ne? Kaneshna, yakında bir bahçe kazmaya gel ... yardım edeceksin ...

Aynı yaşta olmasa da bahçede sorun yok. Belki bu durumda daha genç birini alın. Ve sen ve ben hamama gideceğiz, kvas içeceğiz (alerjiniz var, bir zamanlar bende de vardı). Bakalım gençlik nasıl çalışıyor. Ve o kadar ciddi olmayacak.
Neden: