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

 

2020年2月11日(金曜日)に、更新されたMetaTrader 5プラットフォームがリリースされます。

このアップデートでは、従来の式、新しい行列方式、最適化されたメモリ消費、およびデータ転送を改善するための改善されたネットワークシステム操作に基づいて、改訂されたシャープレシオ計算アルゴリズムが提供されます。

また、ENUM_CUSTOMIND_PROPERTY_INTEGER列挙型にINDICATOR_FIXED_MINIMUMとINDICATOR_FIXED_MAXIMUMの2つの新しいプロパティを追加しました。これらは、IndicatorSetDouble関数を使用して最小および最大の指標値を修正/修正解除します。


さらに、Math\Stat\Math.mqh数学ライブラリのいくつかのエラーを修正し、深夜を越えたときに古いデータを返す可能性があるCopyTicks関数とCopyTicksRange関数の操作を修正しました。

これらの変更は、更新されたMetaTrader 5プラットフォームバージョンの他の新機能とともに、以下で詳細に説明されています。


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





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

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


更新はLive Updateシステムを介して利用できるようになります。