MetaTrader 5 build 3210: シャープレシオ計算アルゴリズムの改訂、新しい行列メソッド、指標の最小/最大値の制御

シャープレシオの計算アルゴリズムを、値が1年間隔に対応する従来の式に一致するように改訂しました。

11 2月 2022

MQL5

  1.  ベクトルと行列の最小、最大、ArgMinArgMaxおよびSum関数を追加しました。これらの関数を使用して、最小値と最大値、関連するインデックス、および合計を見つけます。
  2.  マトリックスのFlatメソッドのサポートが追加されました。これらの方法を使用すると、行列要素を2つではなく1つのインデックスでアドレス指定できます。
    double matrix::Flat(ulong index) const;      // getter
    void matrix::Flat(ulong index,double value); // setter

    行列要素のアドレスを計算するための擬似コード:

    ulong row=index / mat.Cols();
    ulong col=index % mat.Cols();
    
    mat[row,col]

    たとえば「matrix mat(3,3)」の場合、要素へのアクセスは次のように記述できます。

      読み取り値: x=mat.Flat(4) (x=mat[1][1]と同等)
    書き込み: mat.Flat(5, 42) (mat[1][2]=42と同等)

    無効な行列インデックスを使用して関数を呼び出すと、OutOfRange critical execution errorがスローされます。

  3.  MQL5プログラム入力パラメータの浮動小数点数の形式を改善しました。いくつかの実数を読み取る場合、多くのゼロを持つ数値が入力パラメータに代入されました。たとえば、0.4は0.400000000002として表されました。
  4.  Math\Stat\Math.mqh数学ライブラリのエラーを修正しました。このライブラリのMathSample関数は、バックトラッキングを使用してサンプリングする場合の同様の数学ライブラリの従来の動作と一致するように改訂されました。
  5.  CopyTicks/CopyTicksRangeで、金融商品にティックが提供されていない場合に深夜を越えるときに古いデータが返される可能性があるエラーを修正しました。
  6.  新しいINDICATOR_FIXED_MINIMUMおよびINDICATOR_FIXED_MAXIMUM値をENUM_CUSTOMIND_PROPERTY_INTEGER列挙に追加しました。
    これらのプロパティを使用すると、IndicatorSetInteger関数を使用して指標の最小および最大値を固定または固定解除できます。IndicatorSetInteger(INDICATOR_FIXED_MINIMUM/INDICATOR_FIXED_MAXIMUM, true)を呼び出す場合、現在の最小値または最大値が使用されます。




テスター

  1.  シャープレシオの計算アルゴリズムを、値が1年間隔に対応する従来の式に一致するように改訂しました。以前のアルゴリズムは、取得したPnLの変動性に基づいており、ポジションに対するエクイティ変動を無視していました。計算にはエクイティの動きが含まれ、シャープレシオは古典的な方法で解釈されるようになりました。
    • シャープレシオ< 0 ストラテジーは不採算であり、適切ではありません(悪い)
    • 0 < シャープレシオ < 1.0 リスクは報われません。このようなストラテジーは、代替手段がない場合に検討できます(不定)
    • シャープレシオ ≥ 1.0 シャープレシオが1より大きい場合。リスクが報われ、ポートフォリオ/ストラテジーが結果を示すことができる可能性があります(良い)
    • シャープレシオ ≥ 3.0 高い値は、特定の各取引で損失を得る可能性が非常に低いことを示します(とても良い)

ターミナル

  1.  ターミナルによるメモリ消費を最適化しました。
  2.  ネットワークサブシステムによるプラットフォーム操作の改善により、パフォーマンスが向上し、ネットワーク遅延が減少しています。
  3.  グリッドレンダリングが無効になっている場合のインジケーターのゼログリッドレベルの表示を削除しました。