KimIV'ten faydalı özellikler - sayfa 113

 
togomsk :


Hey!

Nedense kütüphaneniz bağlandığında, extern operatörü çalışmayı durdurur, yani değişkenler tanımlanır, her şey normal şekilde derlenir ve prensipte danışman çalışır, ancak aynı zamanda, danışmanın tek bir parametresi yoktur. oldukça fazla parametre olmasına rağmen, türe başlamak. Nedeni ne olabilir?


kodda bul

 #property library

Ve sil.

 

sondan bir önceki işlemler için bu işleve j değişkeni eklendi. enfeksiyon olması gerektiği gibi çalışmıyor. Bana neyin yanlış olduğunu söyle.

double GetProfitLastClosePos(string sy="", int op=-1, int mn=-1, int j=0 ) {
tarihsaat o;
çift p=-1;
int i, k=OrdersHistoryTotal();

if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if ( OrderSelect (i -j , 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()==dk) {
if (o<SiparişKapatZamanı()) {
o=SiparişKapatZamanı();
p=SiparişProfit();
}
}
}
}
}
}
}
dönüş(p);
}
 
abdul1 :

sondan bir önceki işlemler için bu işleve j değişkeni eklendi. enfeksiyon olması gerektiği gibi çalışmıyor. Bana neyin yanlış olduğunu söyle.

OrdersHistoryTotal() içinde kapatılan siparişlerin sağ -> soldan (son sağdaki) kapanış saati ile dikkate alındığını dikkate alırsak:

 double GetProfitLastClosePos ( string sy= "" , int op=- 1 , int mn=- 1 ,
                               int j= 0 )           // Искомый (по номеру) ордер от последнего закрытого 
{
     int k = OrdersHistoryTotal (), li_cnt = 0 ;
//----
     if (sy == "0" || sy == "" ) sy = Symbol ();
     for ( int i = k - 1 ; i >= 0 ; i--)
    {
         if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ;
         if ( OrderSymbol () != sy) continue ;
         if ( OrderType () > 1 ) continue ;
         if (op >= 0 ) if ( OrderType () != op) continue ;
         if (mn >= 0 ) if ( OrderMagicNumber () != mn) continue ;
         if (j == li_cnt) return ( OrderProfit ());
        li_cnt++;
    }
//----
     return (- 1.0 );
}

İşlev, son kapatılan siparişten j-inci sıranın kârını, Magic, tür enstrümanına göre "filtrelenmiş" olarak döndürür. Ve sayılar 0'dan sayılır.

 
TarasBY :

OrdersHistoryTotal() içinde kapatılan siparişlerin sağ -> soldan (son sağdaki) kapanış saati ile dikkate alındığını dikkate alırsak:

İşlev, son kapatılan siparişten j-inci sıranın kârını, Magic, tür enstrümanına göre "filtrelenmiş" olarak döndürür. Ve sayılar 0'dan sayılır.

neye ihtiyacın var!! teşekkür ederim.
 

Merhaba.

Aynı lotlu Al ve Sat emirlerini, karı +'ya gittiğinde zıt emirlerle kapatacak bir fonksiyona ihtiyacımız vardı. Bir işlev yapmaya çalıştım ama 4108 hatası alıyorum (doğru biletler değil)

Bana burada sorunun ne olduğunu söyleyebilir misin?

 //+------------------------------------------------------------------+
int fCloseBu(){
         // Закрываем встречные
   double LotB,LotS,PrB= 0 ,PrS= 0 ;
   int TicketB,TicketS,i, k= OrdersTotal ();

   for (i=k- 1 ; i>= 0 ; i--) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if (( OrderSymbol ()== Symbol () || Symbol ()== "" )) {
         if (Magic_N< 0 || OrderMagicNumber ()==Magic_N) {
         //----------
         if ( OrderType ()==OP_BUY){
           if (PrB< OrderProfit ()+ OrderSwap ()+ OrderCommission ()) {
            PrB= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
            LotB= OrderLots ();
            TicketB= OrderTicket ();
          }
        }
         if ( OrderType ()==OP_SELL){
           if (PrS< OrderProfit ()+ OrderSwap ()+ OrderCommission ()) {
            PrS= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
            LotS= OrderLots ();
            TicketS= OrderTicket ();
          }
        }
       if (PrB> 0 && PrS> 0 && LotB==LotS) {
           OrderCloseBy (TicketB,TicketS, CLR_NONE );
           Print ( "Закрываем пару встречных ордеров c одинаковыми лотами в плюсе" );
          }  
        }
      }
    }
  }
//-------------
   return ( 0 );
}
//+------------------------------------------------------------------+
 
Tüm kontrol döngüsü tamamlandığında siparişleri kapatmak gerekir, yani. for ifadesinden sonra, içeride değil.
 
lütfen bana ayarlarda hareketli ortalamayı kaydırma yeteneği ile hareketli ortalamaların kesişimleri üzerinde çalışan bir danışmanı nerede bulabilirim ???
 
Roger :
Tüm kontrol döngüsü tamamlandığında siparişleri kapatmak gerekir, yani. for ifadesinden sonra, içeride değil.


Teşekkür ederim! Başka birinin böyle bir işleve ihtiyacı varsa, o zaman şöyle olacaktır:

 //+------------------------------------------------------------------+
//|    Закрываем встречные                                           |
//+------------------------------------------------------------------+
int fCloseBu(){
   double LotB,LotS,PrB= 0 ,PrS= 0 ;
   int TicketB,TicketS,i, k= OrdersTotal ();

   for (i=k- 1 ; i>= 0 ; i--) {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
       if (( OrderSymbol ()== Symbol () || Symbol ()== "" )) {
         if (Magic_N< 0 || OrderMagicNumber ()==Magic_N) {
         //----------
         if ( OrderType ()==OP_BUY){
           if (PrB< OrderProfit ()+ OrderSwap ()+ OrderCommission ()) {
            PrB= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
            LotB= OrderLots ();
            TicketB= OrderTicket ();
          }
        }
         if ( OrderType ()==OP_SELL){
           if (PrS< OrderProfit ()+ OrderSwap ()+ OrderCommission ()) {
            PrS= OrderProfit ()+ OrderSwap ()+ OrderCommission ();
            LotS= OrderLots ();
            TicketS= OrderTicket ();
             }
           }
         }
       }
     }
   } //for
   if (PrB> 0 && PrS> 0 && LotB==LotS) {
     OrderCloseBy (TicketB,TicketS, CLR_NONE );
     Print ( "Закрываем пару встречных ордеров c одинаковыми лотами в плюсе" );
  }
//-------------
   return ( 0 );
}
//+------------------------------------------------------------------+
 
Bu dil için herhangi bir video eğitimi var mı?
 
Andrei5 :
Bu dil için herhangi bir video eğitimi var mı?
Orada kitap var. İnternetten okuyabilir veya bilgisayarınıza indirebilirsiniz. Yukarıda ara -> "Öğretici".