Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1366

 

Her şey buna mı bağlı?

 //+------------------------------------------------------------------+
//| Получим High для заданного номера бара                           |
//+------------------------------------------------------------------+
double CNewBar::iHighMax( int ot, int bands)
  {
   double result=- 1 ;
   for (i=ot; i<bands; i++)
       if (m_ExtLowerBuffer[i]!= EMPTY_VALUE )
         if (m_ExtLowerBuffer[i]>result)
            result=lh;
   return (result);
  }

Biraz gelenek, değil mi?

 
Mikhail Toptunov # :

Her şey buna mı bağlı?

Biraz gelenek, değil mi?

 EMPTY_VALUE

bu, double tipin maksimum değeridir, daha yüksek bir şey yoktur

 
Alexey Viktorov # :

Anladığım kadarıyla, asla sıfıra eşit bir değere sahip olmayacak olan göstergenin maksimum değerini bulmanız gerekiyor.

NULL'dan nefret ediyorum ve asla başarısız olmayan sayısal değerlerde her zaman 0.0 kullanırım.

Sistemi yükleyeceğini düşündüm veya düşünüyorum, sözde bir şeyi tartıyor ve EMPTY_VALUE ve NULL güya önemli değil. Pekala, hayal kuruyorum, bu yüzden ortalığı karıştırmam!

 
Alexey Viktorov   # :

Anladığım kadarıyla, asla sıfıra eşit bir değere sahip olmayacak olan göstergenin maksimum değerini bulmanız gerekiyor.

NULL'dan nefret ediyorum ve asla başarısız olmayan sayısal değerlerde her zaman 0.0 kullanırım.


Sıfır yaparsam hem maksimumu hem de minimumu aramam gerekir, o zaman minimum değeri bulamam !!!

 
Aliaksandr Hryshyn # :

bu, double tipin maksimum değeridir, daha yüksek bir şey yoktur

yani, bir dizideki bir değişkeni en az ağırlığa sahip olacak şekilde nasıl boş olarak atayabilirim?

 
Aliaksandr Hryshyn # :

bu, double tipin maksimum değeridir, daha yüksek bir şey yoktur

NULL ise, o zaman daha kolay olacak mı?

 

Genel olarak yaptım, ipuçları için teşekkürler, size alçak yay, Dağın sakinleri))

 //+------------------------------------------------------------------+
//| Получим Lowest для заданного промежутка                          |
//+------------------------------------------------------------------+
double CNewBar::iLowMin( int ot, int bands)
  {
   double result= EMPTY_VALUE ;
     for ( int i=ot; i<ot+bands; i++)
       if (m_ExtLowerBuffer[i]!= NULL )
         if (m_ExtLowerBuffer[i]<result)
            result=m_ExtLowerBuffer[i];
   return (result);
  }
//+------------------------------------------------------------------+
//| Получим High для заданного номера бара                           |
//+------------------------------------------------------------------+
double CNewBar::iHighMax( int ot, int bands)
  {
   double result= NULL ;
   for ( int i=ot; i<ot+bands; i++)
       if (m_ExtUpperBuffer[i]!= NULL )
         if (m_ExtUpperBuffer[i]>result)
            result=m_ExtUpperBuffer[i];
   return (result);
  }

Daha basit bir seçenek varsa, sistem için hangisinin olduğu çok ilginç.

 

Yardım edin, herkes yardım edebilir!

Bir dizi üzerinde yineleme nasıl yapılır, böylece yineleme

1) çapraz olarak

2) değer aralığında (0)


Bu algoritmaları büküyorum, hiçbir yere varamayacağım

 void OnStart ()
{
   for ( int k = 0 ; k < ARRAY_SIZE_X; k++ ){
       for ( int x = k, y = 0 ; x >= 0 && y < ARRAY_SIZE_Y; x--, y++ ){
         Print ( "y = " , y, ", x = " , x );
         if ( array[y][x] > 0 )
         {
         }
      }
   }
   for ( int k = 1 ; k < ARRAY_SIZE_Y; k++ ){
       for ( int x = ARRAY_SIZE_X- 1 , y = k; x >= 0 && y < ARRAY_SIZE_Y; x--, y++ ){
         Print ( "y = " , y, ", x = " , x );
         if ( array[y][x] > 0 )
         {
         }
      }
   }
}
 
Mikhail Toptunov # :

Yardım edin, herkes yardım edebilir!

Bir dizi üzerinde yineleme nasıl yapılır, böylece yineleme

1) çapraz olarak

2) değer aralığında (0)


Bu algoritmaları büküyorum, hiçbir yere varamayacağım

Çapraz olarak ise, bir döngü yeterlidir. Ya da ben soruyu yanlış anladım.

Belki buna ihtiyacın var

 /********************Script program start function*******************/
void OnStart ()
 {
   int array[ 5 ][ 3 ];
   for ( int k = 0 ; k < ArrayRange (array, 0 ); k++)
   {
     for ( int x = 0 ; x < ArrayRange (array, 1 ); x++)
     {
       if (k+x >= ArrayRange (array, 0 ))
         break ;
       Print ( "array[" , k+x, "][" , x, "]" , array[k+x][x]);
     }
   }
 } /******************************************************************/
/*****************************End program****************************/
ama bu bir taslak...
 
Alexey Viktorov # :

Çapraz olarak ise, bir döngü yeterlidir. Ya da ben soruyu yanlış anladım.

Belki buna ihtiyacın var

ama bu bir taslak...

hmm güzel çözüm bu çıktı, farklı göstermek gerekiyor. nasıl olduğunu düşünürken