トップ  >  MQL4リファレンス  >  カスタムインジケータ  >  IndicatorCounted
スポンサーリンク
検索

↑の検索エンジンが表示されない人は、
↓の古い検索エンジンを使用して下さい。
カスタム検索
MQL4リファレンスツリー
IndicatorCounted



IndicatorCounted


インジケータ起動後、変化していないバーの量を返します。


関数書式:
int  IndicatorCounted();



■引数

無し



■戻り値
インジケータ起動後、変化していないバーの量を返します。



■備考
計算された場合は再計算を必要としません。
ほとんどの場合、インデックス値と同じ数は再計算の必要はありません。
この関数は計算を最適化する為に使用されます。

サンプルソース(インジケータ):

static int tick_count = 0;

int start() // 旧バージョン(Build 600より前)で使用されていたインジケータ用関数
{

    int limit;
    int counted_bars = IndicatorCounted(); // 計算済みバー数取得
    
    if( counted_bars < 0) {
        Print("エラー。チャートデータがあるか確認して下さい");
        return(-1);
    }


    limit= Bars - counted_bars ; // 未だ計算されていないバー数(チャート上のバー数 - 計算済みバー数)

    printf( "tick受信回数:%d, 未計算バー数:%d, チャート上のバー数:%d, 計算済みバー数:%d"
            , tick_count, limit , Bars ,counted_bars );
    tick_count++;
    

    return(0);
}


出力結果:
09:23:32.065	Custom indicator test_ind EURUSD,H1: loaded successfully
09:23:32.066	test_ind EURUSD,H1: initialized
09:23:32.066	test_ind EURUSD,H1: tick受信回数:0, 未計算バー数:1015, チャート上のバー数:1015, 計算済みバー数:0
09:23:46.518	test_ind EURUSD,H1: tick受信回数:1, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:23:59.035	test_ind EURUSD,H1: tick受信回数:2, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:02.310	test_ind EURUSD,H1: tick受信回数:3, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:02.356	test_ind EURUSD,H1: tick受信回数:4, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:02.576	test_ind EURUSD,H1: tick受信回数:5, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:02.887	test_ind EURUSD,H1: tick受信回数:6, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:23.294	test_ind EURUSD,H1: tick受信回数:7, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:34.681	test_ind EURUSD,H1: tick受信回数:8, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014
09:24:55.289	test_ind EURUSD,H1: tick受信回数:9, 未計算バー数:1, チャート上のバー数:1015, 計算済みバー数:1014





管理人の勝手なコメント:
現在のバージョンでは、カスタムインジケータはOnCalculate()関数を使用しています。
古いバージョンでのint start()関数は今でも使用する事は可能ですが、
start()とOnCalculate()関数は同じソース内で使用すると競合してコンパイルエラーになります。

また、OnCalculate()関数の引数のprev_calculatedを使用する事で、IndicatorCounted()関数を使用する必要は無くなります。
現在のバージョンのメタエディターで新規にカスタムインジケータを作成する場合は、IndicatorCounted()関数を使用する機会は殆ど無いと思います。




スポンサーリンク
スポンサーリンク


Copyright ©2015 MT4でEA自作しちゃお~ All Rights Reserved.


Top

inserted by FC2 system