初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1366

 

难道真的要归结到这一点吗?

//+------------------------------------------------------------------+
//| Получим 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);
  }

这是种习俗,不是吗?

 
Mikhail Toptunov #:

难道真的要归结到这一点吗?

这是种习俗,不是吗?

EMPTY_VALUE

这是双倍数的最大值,没有比这更高的值了。

 
Alexey Viktorov #:

按照我的理解,你需要找到永不等于零的最大指标值。

我讨厌NULL,总是在数值中应用0.0,这从来没有失败过。

我认为它将加载系统,EMPTY_VALUE 和NULL不会有多大影响。我不知道我在想什么!

 
Alexey Viktorov #:

按照我的理解,你需要找到永不等于零的最大指标值。

我不能忍受NULL,总是在数值上应用0.0,这永远不会失败。


我需要同时寻找最大值和最小值,如果我做的是零,那么我就找不到最小值了!!。

 
Aliaksandr Hryshyn #:

这是双倍数类型的最大值,没有比它更高的了。

也就是说,我如何指定数组中的一个变量为空,使其重量最小?

 
Aliaksandr Hryshyn #:

这是双倍数类型的最大值,没有比它更高的了。

如果是NULL,会不会更容易?

 

无论如何,这样做了,感谢你的提示,为你的山区居民点赞))))。

//+------------------------------------------------------------------+
//| Получим 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);
  }

如果有一个更简单的选择,非常有趣的是,哪一个系统?

 

帮助,谁能帮帮我!?

我如何用蛮力迫使一个数组通过

1)在对角线上

2)(0)的范围内


我一直在尝试这些算法,但我无法取得任何进展。

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 #:

帮助,谁能帮帮我!?

如何用蛮力迫使一个数组通过

1)在对角线上

2)(0)的范围内


我正在尝试这些算法,但我找不到它。

如果在对角线上,一个循环就足够了。或者,也许我把问题搞错了。

也许你需要它

/********************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****************************/
但这是一个粗略的草案...
 
Alexey Viktorov #:

如果是对角线,一个周期就够了。或者,也许我误解了这个问题。

也许这就是你需要的东西。

但这是一个草案...

嗯,这是个很酷的解决方案。 我有这个,我需要重新安排。 我还在想怎么做。