KimIV'ten faydalı özellikler - sayfa 59

 
Güncellenen özellik listesi
Dosyalar:
f_kimiv_1.rar  12 kb
 

Igor, söyle lütfen, bekleyen bir sipariş vermek için minimum puan değerini belirleyen bir fonksiyon var mı?

Teşekkür ederim!

 
mozg писал(а) >>
Igor, söyle lütfen, bekleyen bir sipariş vermek için minimum puan değerini belirleyen bir fonksiyon var mı?
 MarketInfo ( Symbol ( ) , MODE_STOPLEVEL ) ;
 

Merhaba Igor! EA'nın sinyali tekrarlamasını durduracak bir fonksiyon yazabilir misiniz? Örneğin bir al sinyali alındı. ) Yani durum, bu kod bloğunu ekledikten sonra şöyle görünmelidir.. al, otur, al, otur, al, otur .... iyi, vb.

 
Shniperson писал(а) >>

Merhaba Igor! EA'nın sinyali tekrarlamasını durduracak bir fonksiyon yazabilir misiniz? ... Yani devlet, bu kod bloğunu ekledikten sonra şöyle görünmelidir.. al, otur, al, otur, al, otur .... iyi, vb..

salıncaklar...

 //+----------------------------------------------------------------------------+
//|  Управление позициями.                                                     |
//+----------------------------------------------------------------------------+
void ManagePositions ( ) {
   double sl = 0 , tp = 0 ;
   int     bs = GetTradeSignal ( ) ;

   if ( bs > 0 ) {
     if ( ExistPositions (NULL , OP_SELL , Magic ) ) ClosePositions ( NULL , OP_SELL , Magic ) ;
     if ( ! ExistPositions ( NULL , OP_BUY , Magic ) ) {
       if ( StopLoss   > 0 ) sl = Ask - StopLoss   * Point ; else sl = 0 ;
       if ( TakeProfit > 0 ) tp = Ask + TakeProfit * Point ; else tp = 0 ;
      OpenPosition ( NULL , OP_BUY , Lots , sl , tp , Magic ) ;
     }
   }
   if ( bs < 0 ) {
     if ( ExistPositions ( NULL , OP_BUY , Magic ) ) ClosePositions ( NULL , OP_BUY , Magic ) ;
     if ( ! ExistPositions ( NULL , OP_SELL , Magic ) ) {
       if ( StopLoss   > 0 ) sl = Bid + StopLoss   * Point ; else sl = 0 ;
       if ( TakeProfit > 0 ) tp = Bid - TakeProfit * Point ; else tp = 0 ;
      OpenPosition ( NULL , OP_SELL , Lots , sl , tp , Magic ) ;
     }
   }
}
//+----------------------------------------------------------------------------+
//|  Возвращает торговый сигнал:                                               |
//|     1 - покупай                                                            |
//|     0 - сиди, кури бамбук                                                  |
//|    -1 - продавай                                                           |
//+----------------------------------------------------------------------------+
int GetTradeSignal ( ) {
   int bs = 0 ;

   if ( условия для покупки ) bs = 1 ;
   if ( условия для продажи ) bs = - 1 ;

   return ( bs ) ;
}

ExistPositions()

KapatKonumlar()

 

NormalizePrice() işlevi.

Bu işlev, normalleştirilmiş fiyat değerini döndürür. Normalleştirme, MarketInfo(MODE_TICKSIZE || MODE_DIGITS) fonksiyonunun değerleri kullanılarak gerçekleştirilir. NormalizePrice() işlevi aşağıdaki parametreleri alır:

  • np - Normalleştirilecek parti değeri. Gerekli parametre.
  • sy - İşlem aracının adı. NULL veya "" geçerli karakterdir. Varsayılan değer "" dir.
 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 21.08.2008                                                     |
//|  Описание : Возвращает нормализованное под размер тика значение цены.      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    np - нормализуемое значение цены.                                       |
//|    sy - наименование инструмента        ("" или NULL - текущий символ)     |
//+----------------------------------------------------------------------------+
double NormalizePrice ( double np , string sy = "" ) {
   if ( sy = = "" | | sy = = "0" ) sy = Symbol ( ) ;
   double pp , ts = MarketInfo ( Symbol ( ) , MODE_TICKSIZE ) ;
   int     di = MarketInfo ( Symbol ( ) , MODE_DIGITS ) ;

   if ( ts > 0 ) pp = NormalizeDouble ( np / ts , 0 ) * ts ;
   else {
     if ( di > 0 ) pp = NormalizeDouble ( np * di , 0 ) / di ; else pp = np ;
   }
   return ( pp ) ;
}

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

Dosyalar:
 

(acemi sorusu)

Sevgili KimIV bir fonksiyon yazdı:

GetExtremumZZPrice().


 double GetExtremumZZPrice ( string sy = "" , int tf = 0 , int ne = 0 , int dp = 12 , int dv = 5 , int bs = 3 ) {
   if ( sy == "" || sy == " 0 " ) sy = Symbol () ;
   double zz ;
   int      i , k = iBars ( sy , tf ) , ke = 0 ;

   for ( i = 1 ; i < k ; i ++ ) {
     zz = iCustom ( sy , tf , " ZigZag " , dp , dv , bs , 0 , i ) ;
     if ( zz != 0 ) {
       ke ++;
       if ( ke > ne ) return ( zz ) ;
     }
   }
   Print ( " GetExtremumZZPrice(): Экстремум ЗигЗага номер " , ne , " не найден " ) ;
   return ( 0 ) ;
}
Son minimum ve maksimum fiyatlarını 2 değişkende belirtmek için nasıl bir kod olmalıdır? (beynim kaynıyor ;(( )
 
WroC писал(а) >>
Son minimum ve maksimum fiyatlarını 2 değişkende belirtmek için nasıl bir kod olmalıdır?
 void start ( ) {
   double p1 = GetExtremumZZPrice ( "" , 0 , 0 ) ;
   double p2 = GetExtremumZZPrice ( "" , 0 , 1 ) ;

   if ( p1 > p2 ) Comment ( "Последний максимум " , p1 , " \n Последний минимум " , p2 ) ;
   else Comment ( "Последний максимум " , p2 , " \n Последний минимум " , p1 ) ;
}
 

KimIV

Teşekkür ederim!

 
Igor, merhaba!
Elimden geldiğince, sizin tarafınızdan sunulan materyali anlamaya çalıştım. Dürüst olmak gerekirse, henüz herhangi bir danışman veya komut dosyası kullanmadım ve bunlarla ilgili pratik deneyimim yok, ancak çok sayıda sipariş vermeye yardımcı olacak bir komut dosyası oluşturmaya ihtiyaç var.
Komut dosyasının görevi, bekleyen siparişlerin yerleştirilmesini kolaylaştırmaktır (Esas olarak Buy stop ve Sell stop )
Onlar. Örneğin, komut dosyası parametreleri kümesinde:
1. Emirlerin verildiği seviye (örneğin, EUR\USD Buystop c 1.3000)
2. Her siparişin boyutu (örneğin 0.01)
3. Emir verme adımı (örneğin 1 pip)
4. Her siparişin TP'si (örneğin 3 pip)
5. Verilen emirlerin sayısı (örneğin, 70) veya bekleyen emirler vermeniz gereken seviye (örneğin, 1.3070'e kadar).
Komut dosyasındaki kaybı durdurma ve takip eden durdurma parametreleri istenir ancak gerekli değildir...
Bilgisayarın her 3-4 saatte bir açıldığı varsayılır, durum analiz edilir ve aralığı yukarı (veya aşağı) kırmak için 1 piplik bir emir açma süresiyle, ancak bir emir verme kararı verilir. minimum TP (3 pip). Böylece fiyat doğru yönde hareket ederse bu emirler açılmaya başlayacak ve istenilen fiyata ulaşılırsa TP tarafından kapatılacaktır. Ayrıca, seçenek hepsi TR'de kapandığında mümkündür - fiyat hareketi tüm emirleri geçerse veya emirlerin bir kısmı (6 adet) açık olacak ve "eksi" olacaktır. Bu durumda, bir sonraki emir "merdivenini", tüccara en uygun görünecek olan diğer parametrelerle (lot büyüklüğü, adım, TP, emir sayısı) ters yönde yerleştirmesi gerekir.
İşlem gününün sonunda, "karşı pozisyonlar" kapatılacak ve işlemciye yukarı (veya aşağı) yönlendirilmiş yaklaşık 6 emir bırakılacaktır.
Uzman bir cevap için şimdiden teşekkürler!