MQL4(MT4) IndicatorCountedの使い方

Custom Indicators
スポンサーリンク

IndicatorCounted()の使い方

MQL4 (MT4)のIndicatorCounted()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。

使用GPTs:EA Creator

MT4 MQL4のAPIのIndicatorCountedの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。

使い方

IndicatorCounted関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で使用される関数の一つです。この関数は、インディケーターによって既に計算されたデータバーの数を返します。主に、インディケーターが新しい価格データを受け取るたびに再計算を行う際に、不必要な計算を避けるために使用されます。

関数の基本形式

int IndicatorCounted();

この関数はパラメータを取らず、既に計算されたバーの数を整数で返します。

使用例

以下の例では、単純なカスタムインディケーターの一部としてIndicatorCounted関数を使用しています。この例では、最後に計算されたバーから計算を再開します。

// カスタムインディケーターの計算を行う関数
int start() {
    int counted_bars = IndicatorCounted();
    int i, limit;

    // 既に計算されたバーの数を取得
    limit = Bars - counted_bars - 1;

    // 新しいバーのデータのみを計算
    for(i = limit; i >= 0; i--) {
        // ここにインディケーターの計算ロジックを記述
    }

    return(0);
}

注意点

  • 計算済みバーの理解: IndicatorCountedが返す値は、チャート上の最後のバーから計算済みのバーの数を示します。これにより、インディケーターは未計算の新しいバーのみを処理することができます。
  • ループの開始点: 計算する必要のあるバーのインデックスを計算する際、Bars - counted_bars - 1を使用して、正しい開始点を求めます。この計算により、最新のバーから計算を開始できます。
  • エッジケースの処理: チャート上に新しいバーが追加されたときや、履歴データが更新されたときなど、特定の状況ではIndicatorCountedが期待通りに動作しない場合があります。特に、最初の呼び出し時には0が返されることがあり、これはすべてのバーが未計算であることを意味します。
  • パフォーマンスの最適化: IndicatorCounted関数を使用する主な目的は、パフォーマンスの最適化です。この関数を利用することで、必要のない計算を省略し、インディケーターの効率を高めることができます。

IndicatorCounted関数を適切に使用することで、カスタムインディケーターの計算効率を大幅に向上させることが可能です。ただし、その動作を正確に理解し、適切な計算開始点を設定することが重要です。

MQL4リファレンス

正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/customind/IndicatorCounted

他のカスタムインジケータ関数の利用方法

以下のそれぞれのリンク先で確認していますので、ご参照ください。

関数名概要
HideTestIndicatorsテスト中にグラフ上のインディケータを隠すかどうかを設定します。チャート上での表示を制御するのに使用されます。
IndicatorSetDoubleインディケータの設定可能なdouble型プロパティ(例: 最小値、最大値)を設定します。これはインディケータの表示範囲やスケールを調整するのに使われます。
IndicatorSetIntegerインディケータの設定可能なinteger型プロパティ(例: 描画スタイル、幅)を設定します。インディケータの見た目をカスタマイズするのに役立ちます。
IndicatorSetStringインディケータの設定可能なstring型プロパティ(例: 名前)を設定します。インディケータの識別や説明に使用されます。
SetIndexBufferインディケータ計算結果を格納するバッファを設定します。インディケータのデータを格納する配列を割り当てるのに必要です。
IndicatorBuffersインディケータが使用するバッファの数を設定します。計算に必要なデータ配列の数を定義します。
IndicatorCounted既に計算されたバーの数を返します。これにより、新たに計算が必要なデータのみを処理できます。
IndicatorDigitsインディケータの価格データの表示精度(小数点以下の桁数)を設定します。チャート上での価格表示を制御します。
IndicatorShortNameインディケータの短縮名を設定します。チャートのデータウィンドウに表示される名前です。
SetIndexArrowインディケータのバッファに対して表示する矢印記号を設定します。特定の条件を示すマーカーとして利用されます。
SetIndexDrawBeginインディケータが描画を開始するバーの数を設定します。これにより、過去の特定のポイントから描画を開始できます。
SetIndexEmptyValueインディケータのバッファで未定義の値を表すために使用する値を設定します。空のデータポイントを示すのに使用されます。
SetIndexLabelインディケータの各バッファのラベルを設定します。データウィンドウに表示される各バッファの説明テキストです。
SetIndexShiftインディケータの描画をずらすバーの数を設定します。インディケータの表示を時間軸に沿って前後に移動させることができます。
SetIndexStyleインディケータの線のスタイル、太さ、色を設定します。インディケータの視覚的表現をカスタマイズするのに使われます。
SetLevelStyleインディケータのレベル線のスタイルと色を設定します。特定の価格レベルや意味のある閾値を示すのに使用されます。
SetLevelValueインディケータのレベル線の値を設定します。これにより、チャート上に表示される水平線の位置を定義できます。

関連記事

スポンサーリンク
海外FXキャッシュバック口座開設ならTariTali(タリタリ)
タイトルとURLをコピーしました