KimIV'ten faydalı özellikler - sayfa 119

 
M2012K :

Merhaba arkadaşlar, kodları incelerken incelikleri iyi ve biraz zorlukla seçemiyorum.

Anladığım kadarıyla sipariş vermeden önce parametreleri düzeltmek için bu fonksiyona bir çağrı yapmak gerekiyor.

sipariş açmak için bir satır var:

if(buy == true && Open[0]>UpTr && Trade) {

buy=OrderSend(Symbol(),OP_BUYSTOP,LOT(),NormalizeDouble(op,Digits),slippage,NormalizeDouble(sl,Digits),NormalizeDouble(tp,Digits),"T",Magic,0,MediumBlue);

bu bir itiraz mı olmalı? Ve nasıl doğru yapılır. Yoksa bu komutun CorrectingPrice() işlevine ihtiyacı yok mu?

Şimdiden teşekkür ederim.

Sunucuya işlem talebi göndermeden önce StopLoss ve TakeProfit fiyatlarını hesaplamış olmalısınız. Gördüğüm kadarıyla sırasıyla sl ve tp değişkenlerinde saklanıyorlar.

Bu nedenle, değişkenlerinizin adlarını içine ekleyerek işlevi çalıştırın:

CorrectingPrice(Symbol(), OP_BUY, Ask , sl , tp );

Bir şey olursa, onları sizin için düzeltecek ...

Ve bu fonksiyonu çağırdıktan sonra pozisyon açma fonksiyonunu çağırabilirsiniz.

 

Tünaydın.

KimIV'ten PriceOpenNearPos() işlevini kullanıyorum. Farkettim ki bazen   kayıp en yakın konum ve başka bir konum kullanılır . Böyle yaptım kod günlükte nasıl kaybolduğunu görebileceğiniz bir test için en yakın konum _ lütfen kontrol edin niye ya oluyor .

 int     magic    = 665544 ;

bool flag = false ;

 

int start()

  {

//----

if ((PriceOpenNearPos( NULL , OP_BUY, magic) != 0

&& PriceOpenNearPos( NULL , OP_BUY, magic)- 0.1 <  Bid

&& PriceOpenNearPos( NULL , OP_BUY, magic)+ 0.1 > Bid))

flag = true ;

else

flag = false ;

 

Print ( "::::::::::::::::::::::::: flag = " ,  flag );

Print ( "PriceOpenNearPos(NULL, OP_BUY, magic)= " , PriceOpenNearPos( NULL , OP_BUY, magic));

 

if (!flag)

OpenPosition( NULL , OP_BUY, 0.1 , 0 , 0 ,magic);  

//----

   return ( 0 );

  }

Koşullara göre pozisyonlar birbiriyle örtüşmemelidir ancak test cihazını çalıştırdığınızda pozisyonların örtüştüğünü görebilirsiniz . (usdjpy 5m).

 
artmedia70 :

Sunucuya işlem talebi göndermeden önce StopLoss ve TakeProfit fiyatlarını hesaplamış olmalısınız. Gördüğüm kadarıyla sırasıyla sl ve tp değişkenlerinde saklanıyorlar.

Bu nedenle, değişkenlerinizin adlarını içine ekleyerek işlevi çalıştırın:

Bir şey olursa, onları sizin için düzeltecektir ...

Ve bu fonksiyonu çağırdıktan sonra pozisyon açma fonksiyonunu çağırabilirsiniz.


Teşekkürler, anladım. :)
 
abeiks :

Tünaydın.

KimIV'ten PriceOpenNearPos() işlevini kullanıyorum. Farkettim ki bazen   kayıp en yakın konum ve başka bir konum kullanılır . Böyle yaptım kod günlükte nasıl kaybolduğunu görebileceğiniz bir test için en yakın konum _ lütfen kontrol edin niye ya oluyor .

Koşullara göre pozisyonlar birbiriyle örtüşmemelidir ancak test cihazını çalıştırdığınızda pozisyonların örtüştüğünü görebilirsiniz . (usdjpy 5m).


Kontrol edildi ... test cihazında ... Her şey yolunda. Kendinize pozisyonların nasıl kaybedildiğini gösterin. Veya tam olarak pozisyon kaybı olarak adlandırdığınız şeyi daha ayrıntılı olarak açıklayın.

Ekli, tüm ek özelliklerle birlikte teste hazır bir EA'dır.

Dosyalar:
 

İzliyoruz   Ek. Koşullar gereği pozisyonlar üst üste gelmemelidir ancak terminalde 3 ve 9 pozisyonun aynı fiyattan açıldığı açıktır (ayrıca 4, 6, 8). Sonra dosya günlüğüne bakarız, bir noktada 98.179 pozisyonunun kaybolduğu ve bir başkasının göründüğü açıktır - 98.301. Bu nedenle, pozisyonlar örtüşmektedir.

 
abeiks :

İzliyoruz   Ek. Koşullar gereği pozisyonlar üst üste gelmemelidir ancak terminalde 3 ve 9 pozisyonun aynı fiyattan açıldığı açıktır (ayrıca 4, 6, 8). Sonra dosya günlüğüne bakarız, bir noktada 98.179 pozisyonunun kaybolduğu ve bir başkasının göründüğü açıktır - 98.301. Bu nedenle, pozisyonlar örtüşmektedir.


Kodunuz, sağlanan materyaller ve sabrınız için teşekkür ederiz!

Fonksiyon düzeltildi. İşte yeni sürüm:

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,   http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.07.2013                                                     |
//|  Описание : Возвращает цену открытия ближайшей к рынку позиции.            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    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=- 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 (pp< 0 || pp> MathAbs (OrderOpenPrice()-mi)/p) {
              pp= MathAbs (OrderOpenPrice()-mi)/p;
              oop=OrderOpenPrice();
            }
          }
        }
      }
    }
  }
   return (oop);
}

İşte şimdi nasıl çalışıyor... örtüşme yok

Dosyalar:
 
KimIV :


Kodunuz, sağladığınız materyaller ve sabrınız için teşekkür ederiz!

Fonksiyon düzeltildi. İşte yeni sürüm:

İşte şimdi nasıl çalışıyor... örtüşme yok


Teşekkürler, işe yarıyor! :)
 
KimIV :


Fonksiyon düzeltildi. İşte yeni sürüm:

Igor, yeni işlevlerinle veya bazı işlevlerinde yapılan değişikliklerle bir yere gönderilen yeni kitaplıkların var mı?

Başka bir deyişle - önceden yapılmış değişiklikler ve eklemeler ile güncellenmiş kütüphaneler ...

 
artmedia70 :

Igor, yeni işlevlerinle veya bazı işlevlerinde yapılan değişikliklerle bir yere gönderilen yeni kitaplıkların var mı?

Başka bir deyişle - önceden yapılmış değişiklikler ve eklemeler ile güncellenmiş kütüphaneler ...


Henüz yayınlanmış olan yok ... her şey bir şekilde boş değil .. Ama evet ... Sürekli olarak bir şeyleri düzeltiyorum. Ve 30 yeni parça, hatta daha fazlasını yazdı. Vaktim ve arzum olduğunda sessizce buraya yazıyorum)))

not. Tüm kitaplıkları olduğu gibi sabuna gönderebilirim, aksi takdirde yayınlarsam bir açıklama hazırlamam veya en azından işlevlerin listesini ve amacını belirtmem gerekir ...

 
KimIV :


Henüz yayınlanmış olan yok ... her şey bir şekilde boş değil .. Ama evet ... Sürekli olarak bir şeyleri düzeltiyorum. Ve 30 yeni parça, hatta daha fazlasını yazdı. Vaktim ve arzum olduğunda sessizce buraya yazıyorum)))

not. Tüm libraları olduğu gibi sabuna gönderebilirim, aksi takdirde yayınlarsanız, bir açıklama hazırlamanız veya en azından işlevlerin listesini ve amacını belirtmeniz gerekir ...

İçinde ... onu almak ilginç olacak :) Kişisel bir sabun koyacağım.