頂いたアドバイスを元に最終調整中です。来週ぐらいに登録予定ですので、登録されましたら是非皆様お試しください。
さて、今日は久しぶりに小ネタです。本当に小ネタです(笑)
MQL4についてきているCArrayDoubleクラスですがMinimumとMaximumにバグがあります。
内部で使用しているArrayMinimumとArrayMaximumの引数ですが、下記の通りです。
int ArrayMaximum( const void& array[], // 対象配列 int count=WHOLE_ARRAY, // 確認エレメント数 int start=0 // 開始インデックス );
ところがCArrayDoubleではこのように使用されており引数の意味とあっていません。
//+------------------------------------------------------------------+
//| Find minimum of array                                            |
//+------------------------------------------------------------------+
int CArrayDouble::Minimum(const int start,const int count) const
{
//バグ!
return(ArrayMinimum(m_data, start, count));
}
正しくはこのようになります。
//+------------------------------------------------------------------+
//| Find minimum of array                                            |
//+------------------------------------------------------------------+
int CArrayDouble::Minimum(const int start,const int count) const
{
//バグ!
return(ArrayMinimum(m_data, count, start));
}
//+------------------------------------------------------------------+
//| Find maximum of array                                            |
//+------------------------------------------------------------------+
int CArrayDouble::Maximum(const int start,const int count) const
{
//バグ!
return(ArrayMaximum(m_data, count, start));
}
まぁわかっていて逆に渡すというのもありなのですが、やっぱり気持ち悪いので元コードを修正して使用しています。
