Hatalar, hatalar, sorular - sayfa 1471

 

Bir yöntemin sonunda const değiştiricisinin amacı nedir?

SetPoint( const int point, const datetime time, const double price) const ;    < ------

Değişken adlarının başlatılmasında bu değiştiriciyi kullanmanın ne yararı var?

Değişkenin değişemeyeceğini ve farklı bir değer alamayacağını biliyorum.

Belki bu değiştirici bir şekilde programı hızlandırır ???

 
Vladimir Pastushak :

Bir yöntemin sonunda const değiştiricisinin amacı nedir?

Değişken adlarının başlatılmasında bu değiştiriciyi kullanmanın ne yararı var?

Değişkenin değişemeyeceğini ve farklı bir değer alamayacağını biliyorum.

Belki bu değiştirici bir şekilde programı hızlandırır ???

Bu OOP'tan. Yöntemin çağrıldığı nesneyi değiştirmediği anlamına gelir. Argümanların bununla hiçbir ilgisi yok.

Avantajı, prototipe baktığınızda nesnenin değişmeyeceğini, yani. görünürlük.

 
MT4 test cihazının "Grafik" sekmesinde sağ tıklayın ve "Kopyala"yı seçin, açılır pencere/menü kaybolmaz.
 

Beyler, herkes sağlıklı) Lütfen kodu yazmama yardım edin (veya daha doğrusu küçük bir parça), amaç şu - sipariş seçme geçmişi işlevi ve orada son siparişin hangi değerle kapandığını görmem gerekiyor - olumlu veya olumsuz. Kim beceriksiz, lütfen abonelikten çıkın (aksi takdirde zaten kafamı kırdım))))

Şimdiden teşekkürler.

 
Tema97 :

Beyler, herkes sağlıklı) Lütfen kodu yazmama yardım edin (veya daha doğrusu küçük bir parça), amaç şu - sipariş seçme geçmişi işlevi ve orada son siparişin hangi değerle kapandığını görmem gerekiyor - olumlu veya olumsuz. Kim beceriksiz, lütfen abonelikten çıkın (aksi takdirde zaten kafamı kırdım))))

Şimdiden teşekkürler.

MQL4

 //+------------------------------------------------------------------+
   // Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу, типу и магику
   bool isLossLastClosePos( string sy, int op, int mn) {
       datetime t= 0 ;
       int i, j=EMPTY;
       for (i=OrdersHistoryTotal()- 1 ; i>= 0 ; i--) {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) {
             if (OrderMagicNumber()!=mn) continue ;
             if (OrderSymbol()!=sy)       continue ;
             if (OrderType()!=op)         continue ;
             if (t<OrderCloseTime()) {
               t=OrderCloseTime();
               j=i;
               }
            }
         }
       if ( OrderSelect (j,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderProfit()+OrderCommission()+OrderSwap()< 0 ) return ( true );
         }
       return ( false );
   }
//+------------------------------------------------------------------+
   // Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу и магику
   bool isLossLastClosePos( string sy, int mn) {
       datetime t= 0 ;
       int i, j=EMPTY;
       for (i=OrdersHistoryTotal()- 1 ; i>= 0 ; i--) {
         if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)) {
             if (OrderMagicNumber()!=mn) continue ;
             if (OrderSymbol()!=sy)       continue ;
             if (OrderType()> 1 )           continue ;
             if (t<OrderCloseTime()) {
               t=OrderCloseTime();
               j=i;
               }
            }
         }
       if ( OrderSelect (j,SELECT_BY_POS,MODE_HISTORY)) {
         if (OrderProfit()+OrderCommission()+OrderSwap()< 0 ) return ( true );
         }
       return ( false );
   }
//+------------------------------------------------------------------+

Şu şekilde kontrol ediyoruz:

 if (isLossLastClosePos(symbol, magic)) {
   // последняя позиция закрыта в убытке
   }
 
Tema97 :

Beyler, herkes sağlıklı) Lütfen kodu yazmama yardım edin (veya daha doğrusu küçük bir parça), amaç şu - sipariş seçme geçmişi işlevi ve orada son siparişin hangi değerle kapandığını görmem gerekiyor - olumlu veya olumsuz. Kim beceriksiz, lütfen abonelikten çıkın (aksi takdirde zaten kafamı kırdım))))

Şimdiden teşekkürler.

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает тип закрытия по профиту, 
//|  1= позиция закрыта в профите,                                             |
//|  2- позиция закрыта в минусе                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int isCloseLastPosByStoporTake( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   int       i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, 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()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
       double ocp=OrderProfit();
if (OrderProfit()+OrderCommission()+OrderSwap()> 0 ) return ( 1 );
if (OrderProfit()+OrderCommission()+OrderSwap()< 0 ) return ( 2 );
  }
   return ( 0 );
}

öğrenmek için şunu yapın:

 if (isCloseLastPosByStoporTake( "" ,- 1 ,- 1 )== 1 ) // Позиция закрыта в плюсе
if (isCloseLastPosByStoporTake( "" ,- 1 ,- 1 )== 2 ) // Позиция закрыта в минусе
 
Artyom Trishkin :

MQL4

Şu şekilde kontrol ediyoruz:

))))

 //+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг убыточности последней позиции.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isLossLastPos( string sy= "" , int op=- 1 , int mn=- 1 ) {
   datetime t;
   int       i, j=- 1 , k=OrdersHistoryTotal();

   if (sy== "0" ) sy= Symbol ();
   for (i= 0 ; i<k; i++) {
     if ( OrderSelect (i, 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()==mn) {
               if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
   if ( OrderSelect (j, SELECT_BY_POS, MODE_HISTORY)) {
     if (OrderProfit()< 0 ) return (True);
  }
   return (False);
}
 
Vladislav Andruschenko :

))))

Artık ipuçlarınla aptallık yaptığını anlıyorsun, değil mi?

Kod benim. Mantık ve değişken isimlerini Igor'dan devraldım. Yani - ipucunu geç. Fonksiyon adı? Anlamını mı yansıtıyor yoksa İngilizce boom-boom mu konuşuyorsun?

 
Artyom Trishkin :

MQL4

Şu şekilde kontrol ediyoruz:

Çok teşekkürler!!!!
 
Vladislav Andruschenko :

öğrenmek için şunu yapın:

Çok teşekkürler !!!