TTFのダウンロードと解説|MT4インジケーター

TTFアイキャッチ
  • URLをコピーしました!

TTFというMT4インジケーターがほしいです。

TTFはどんなインジケーターですか?

ホシノ

FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。

この無料EA不労所得が稼げます
累計テスト120年以上・リアル取引公開2020年~

BBF_MQL5-202401006
リアルトレード公開|EA BBF

このページでわかること・できること

〇TTFインジケーターのダウンロード

〇TTFの使い方や計算について解説

目次

TTFのダウンロード

このボタンからTTFのダウンロードが可能。
ダウンロードするインジケーターファイルは.ex4ファイルとなる。

TTFインジケーターのインストール

ダウンロードしたTTFインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。

ファイル>データフォルダを開く>MQL4>indicators

indicatorsフォルダにファイルを移動し、MT4を再起動するとインストールが完了する。

TTFとは?|MT4インジケーター

TTFチャート画像
MT4インジケーターTTF

MT4(MetaTrader 4)インジケーターのTTF(Trend Trigger Factor)は、トレンドの方向性を判断するために使用されるテクニカル指標の一つ。TTFは買いの力と売りの力を比較することで、トレンドの強さと方向を評価する。このインジケーターは、特にトレンドが発生しているかどうかを確認するために有効となる。

以下に、TTFの計算方法とその仕組みについて詳しく解説する。

TTFの計算方法

TTFは以下のステップで計算される

  1. 最高値と最安値の取得
    • 最新のn期間の最高値(HighestHighRecent)と最安値(LowestLowRecent)を取得。
    • 過去のn期間の最高値(HighestHighOlder)と最安値(LowestLowOlder)を取得。
  2. 買いの力と売りの力の計算
    • 買いの力(BuyPower)は、最新の最高値から過去の最安値を引いた値。
    • 売りの力(SellPower)は、過去の最高値から最新の最安値を引いた値。
  3. TTFの計算
    • TTFは買いの力と売りの力の差を、両者の平均値で割って100を掛けた値となる。

    [math]{TTF} = \frac{(\text{BuyPower} – \text{SellPower})}{0.5 \times (\text{BuyPower} + \text{SellPower})} \times 100[/math]

TTFの使用方法

  • 正の値:TTFが正の値を示す場合、これは市場が上昇トレンドにあることを示す。特にTTFが上昇している場合、そのトレンドが強まっている可能性がある。
  • 負の値:TTFが負の値を示す場合、これは市場が下降トレンドにあることを示す。特にTTFが下降している場合、そのトレンドが強まっている可能性がある。
  • シグナルライン:通常、TTFのシグナルラインとして水平のトップライン(例:75)とボトムライン(例:-75)が使用される。TTFがこれらのラインを超えるとトレンドの強さが確認され、売買シグナルとして解釈される。

パラメーター

TTFパラメーター画面
TTFのパラメーター
  • デフォルトの計算バー数: TTFの計算に使用する期間(バー数)。デフォルト値は8。短期的なトレンドを捉えるには小さい値を、長期的なトレンドを捉えるには大きい値を設定する。
  • 上ライン: TTFが正の場合にシグナルとして表示する上ラインの値。デフォルト値は75。この値を超えると強い上昇トレンドを示す。
  • 下ライン: TTFが負の場合にシグナルとして表示する下ラインの値。デフォルト値は-75。この値を下回ると強い下降トレンドを示す。
  • T3期間: T3スムージング期間。デフォルト値は3。この値を変更することで、TTFの滑らかさを調整できる。
  • bパラメータ: T3スムージングに使用されるパラメーター。デフォルト値は0.7。この値を調整することで、スムージングの度合いを変更できる。

TTFのプログラム

//+------------------------------------------------------------------+
//|                                                          TTF.mq4 |
//|                                     Copyright 2024, FX-Bonus.net |
//|                                            https://fx-bonus.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, FX-Bonus.net"
#property link      "https://fx-bonus.net/"
#property version   "1.00"
#property strict
#property indicator_separate_window      // インジケーターを別ウィンドウに表示
#property indicator_buffers 2            // バッファの数を2に設定
#property indicator_color1 LightSeaGreen // メインバッファの色を設定
#property indicator_color2 Red           // シグナルバッファの色を設定

//---- 入力パラメータ
extern int TTFbars = 8;        // デフォルトの計算バー数
extern int TopLine = 75;       // 上ライン
extern int BottomLine = -75;   // 下ライン
extern int t3_period = 3;      // T3期間
extern double b = 0.7;         // bパラメータ

//---- バッファ
double MainBuffer[];           // メインバッファ
double SignalBuffer[];         // シグナルバッファ

//---- 変数
int draw_begin1 = 0;           // 描画開始位置1
int draw_begin2 = 0;           // 描画開始位置2
double b2 = 0;                 // bの2乗
double b3 = 0;                 // bの3乗
double c1 = 0;                 // 定数1
double c2 = 0;                 // 定数2
double c3 = 0;                 // 定数3
double c4 = 0;                 // 定数4
double r = 0;                  // T3期間
double w1 = 0;                 // 重み1
double w2 = 0;                 // 重み2
double e1 = 0;                 // フィルタ1
double e2 = 0;                 // フィルタ2
double e3 = 0;                 // フィルタ3
double e4 = 0;                 // フィルタ4
double e5 = 0;                 // フィルタ5
double e6 = 0;                 // フィルタ6
double HighestHighRecent = 0;  // 最新の最高値
double HighestHighOlder = 0;   // 古い最高値
double LowestLowRecent = 0;    // 最新の最安値
double LowestLowOlder = 0;     // 古い最安値
double BuyPower = 0;           // 買いの力
double SellPower = 0;          // 売りの力
double TTF = 0;                // TTF値

//+------------------------------------------------------------------+
//| カスタムインジケーター初期化関数                                |
//+------------------------------------------------------------------+
int init() {
    string short_name;
    //---- 2つの追加バッファを使用
    IndicatorBuffers(2);
    //---- インジケーターラインの設定
    SetIndexStyle(0, DRAW_LINE);
    SetIndexBuffer(0, MainBuffer);
    SetIndexStyle(1, DRAW_LINE);
    SetIndexBuffer(1, SignalBuffer);
    //---- DataWindowとインジケーターサブウィンドウラベルの名前を設定
    short_name = "TTF(" + IntegerToString(TTFbars) + ")";
    IndicatorShortName(short_name);
    SetIndexLabel(0, short_name);
    SetIndexLabel(1, "Signal");
    //---- 描画開始位置の設定
    draw_begin1 = TTFbars * 2 + 1;
    draw_begin2 = draw_begin1;
    SetIndexDrawBegin(0, draw_begin1);
    SetIndexDrawBegin(1, draw_begin2);
    //---- 定数の計算
    b2 = b * b;
    b3 = b2 * b;
    c1 = -b3;
    c2 = 3 * (b2 + b3);
    c3 = -3 * (2 * b2 + b + b3);
    c4 = 1 + 3 * b + b3 + 3 * b2;
    r = t3_period;
    //----
    if (r < 1) r = 1;
    r = 1 + 0.5 * (r - 1);
    w1 = 2 / (r + 1);
    w2 = 1 - w1;
    //----
    return (0);
}

//+------------------------------------------------------------------+
//| TTFの計算                                                       |
//+------------------------------------------------------------------+
int start() {
    int i, counted_bars = IndicatorCounted(); // カウントされたバー数

    if (Bars <= draw_begin2) return (0); // バーの数が描画開始位置より少ない場合、終了

    //---- 初期化
    if (counted_bars < 1) {
        for (i = 1; i <= draw_begin1; i++) MainBuffer[Bars - i] = 0;
        for (i = 1; i <= draw_begin2; i++) SignalBuffer[Bars - i] = 0;
    }

    //---- %Kラインの計算
    i = Bars - draw_begin1;
    if (counted_bars > draw_begin1) i = Bars - counted_bars - 1;

    while (i >= 0) {
        HighestHighRecent = High[Highest(NULL, 0, MODE_HIGH, TTFbars, i)]; // 最新の最高値
        HighestHighOlder = High[Highest(NULL, 0, MODE_HIGH, TTFbars, i + TTFbars)]; // 古い最高値
        LowestLowRecent = Low[Lowest(NULL, 0, MODE_LOW, TTFbars, i)]; // 最新の最安値
        LowestLowOlder = Low[Lowest(NULL, 0, MODE_LOW, TTFbars, i + TTFbars)]; // 古い最安値
        BuyPower = HighestHighRecent - LowestLowOlder; // 買いの力
        SellPower = HighestHighOlder - LowestLowRecent; // 売りの力
        TTF = (BuyPower - SellPower) / (0.5 * (BuyPower + SellPower)) * 100; // TTFの計算

        e1 = w1 * TTF + w2 * e1;
        e2 = w1 * e1 + w2 * e2;
        e3 = w1 * e2 + w2 * e3;
        e4 = w1 * e3 + w2 * e4;
        e5 = w1 * e4 + w2 * e5;
        e6 = w1 * e5 + w2 * e6;

        TTF = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3; // フィルタを通したTTF値
        MainBuffer[i] = TTF; // メインバッファにTTF値を設定
        i--;
    }

    //---- 最後のカウントされたバーは再カウント
    if (counted_bars > 0) counted_bars--;

    int limit = Bars - counted_bars;

    //---- シグナルラインの計算(シンプル移動平均)
    for (i = 0; i < limit; i++) {
        if (MainBuffer[i] >= 0)
            SignalBuffer[i] = TopLine;
        else
            SignalBuffer[i] = BottomLine;
    }

    return (0);
}

ソースコードを詳しく解説

このコードはTTFインジケーターを計算し、結果をメインバッファとシグナルバッファに格納する。TTFはトレンドの強さと方向を示し、シグナルラインはその結果を視覚的に表現できる。

ヘッダ

#property indicator_separate_window      // インジケーターを別ウィンドウに表示
#property indicator_buffers 2            // バッファの数を2に設定
#property indicator_color1 LightSeaGreen // メインバッファの色を設定
#property indicator_color2 Red           // シグナルバッファの色を設定
  • indicator_separate_window: インジケーターをチャートの別ウィンドウに表示。
  • indicator_buffers: 使用するバッファの数を2に設定。
  • indicator_color1: メインバッファのラインの色を設定。
  • indicator_color2: シグナルバッファのラインの色を設定。

入力パラメータ

extern int TTFbars = 8;        // デフォルトの計算バー数
extern int TopLine = 75;       // 上ライン
extern int BottomLine = -75;   // 下ライン
extern int t3_period = 3;      // T3期間
extern double b = 0.7;         // bパラメータ
  • TTFbars: TTFの計算に使用する期間(バー数)。デフォルト値は8。
  • TopLine: TTFが正の場合のシグナルライン。デフォルト値は75。
  • BottomLine: TTFが負の場合のシグナルライン。デフォルト値は-75。
  • t3_period: T3スムージングの期間。デフォルト値は3。
  • b: T3スムージングに使用されるパラメータ。デフォルト値は0.7。

バッファ

double MainBuffer[];           // メインバッファ
double SignalBuffer[];         // シグナルバッファ
  • MainBuffer: 計算されたTTF値を格納するバッファ。
  • SignalBuffer: シグナルラインの値を格納するバッファ。

変数

int draw_begin1 = 0;           // 描画開始位置1
int draw_begin2 = 0;           // 描画開始位置2
double b2 = 0;                 // bの2乗
double b3 = 0;                 // bの3乗
double c1 = 0;                 // 定数1
double c2 = 0;                 // 定数2
double c3 = 0;                 // 定数3
double c4 = 0;                 // 定数4
double r = 0;                  // T3期間
double w1 = 0;                 // 重み1
double w2 = 0;                 // 重み2
double e1 = 0;                 // フィルタ1
double e2 = 0;                 // フィルタ2
double e3 = 0;                 // フィルタ3
double e4 = 0;                 // フィルタ4
double e5 = 0;                 // フィルタ5
double e6 = 0;                 // フィルタ6
double HighestHighRecent = 0;  // 最新の最高値
double HighestHighOlder = 0;   // 古い最高値
double LowestLowRecent = 0;    // 最新の最安値
double LowestLowOlder = 0;     // 古い最安値
double BuyPower = 0;           // 買いの力
double SellPower = 0;          // 売りの力
double TTF = 0;                // TTF値

これらの変数はTTFの計算に必要な中間値や定数を格納する。

初期化関数

int init() {
    string short_name;
    //---- 2つの追加バッファを使用
    IndicatorBuffers(2);
    //---- インジケーターラインの設定
    SetIndexStyle(0, DRAW_LINE);
    SetIndexBuffer(0, MainBuffer);
    SetIndexStyle(1, DRAW_LINE);
    SetIndexBuffer(1, SignalBuffer);
    //---- DataWindowとインジケーターサブウィンドウラベルの名前を設定
    short_name = "TTF(" + IntegerToString(TTFbars) + ")";
    IndicatorShortName(short_name);
    SetIndexLabel(0, short_name);
    SetIndexLabel(1, "Signal");
    //---- 描画開始位置の設定
    draw_begin1 = TTFbars * 2 + 1;
    draw_begin2 = draw_begin1;
    SetIndexDrawBegin(0, draw_begin1);
    SetIndexDrawBegin(1, draw_begin2);
    //---- 定数の計算
    b2 = b * b;
    b3 = b2 * b;
    c1 = -b3;
    c2 = 3 * (b2 + b3);
    c3 = -3 * (2 * b2 + b + b3);
    c4 = 1 + 3 * b + b3 + 3 * b2;
    r = t3_period;
    //----
    if (r < 1) r = 1;
    r = 1 + 0.5 * (r - 1);
    w1 = 2 / (r + 1);
    w2 = 1 - w1;
    //----
    return (0);
}
  • IndicatorBuffers: 使用するバッファの数を設定。
  • SetIndexStyle: 各バッファのスタイルを設定。
  • SetIndexBuffer: 各バッファをインデックスに割り当てる。
  • IndicatorShortName: インジケーターの短縮名を設定。
  • SetIndexLabel: インジケーターラインのラベルを設定。
  • SetIndexDrawBegin: 描画開始位置を設定。
  • T3スムージングの定数計算: 各定数を計算する。

メイン計算関数

int start() {
    int i, counted_bars = IndicatorCounted(); // カウントされたバー数

    if (Bars <= draw_begin2) return (0); // バーの数が描画開始位置より少ない場合、終了

    //---- 初期化
    if (counted_bars < 1) {
        for (i = 1; i <= draw_begin1; i++) MainBuffer[Bars - i] = 0;
        for (i = 1; i <= draw_begin2; i++) SignalBuffer[Bars - i] = 0;
    }

    //---- %Kラインの計算
    i = Bars - draw_begin1;
    if (counted_bars > draw_begin1) i = Bars - counted_bars - 1;

    while (i >= 0) {
        HighestHighRecent = High[Highest(NULL, 0, MODE_HIGH, TTFbars, i)]; // 最新の最高値
        HighestHighOlder = High[Highest(NULL, 0, MODE_HIGH, TTFbars, i + TTFbars)]; // 古い最高値
        LowestLowRecent = Low[Lowest(NULL, 0, MODE_LOW, TTFbars, i)]; // 最新の最安値
        LowestLowOlder = Low[Lowest(NULL, 0, MODE_LOW, TTFbars, i + TTFbars)]; // 古い最安値
        BuyPower = HighestHighRecent - LowestLowOlder; // 買いの力
        SellPower = HighestHighOlder - LowestLowRecent; // 売りの力
        TTF = (BuyPower - SellPower) / (0.5 * (BuyPower + SellPower)) * 100; // TTFの計算

        e1 = w1 * TTF + w2 * e1;
        e2 = w1 * e1 + w2 * e2;
        e3 = w1 * e2 + w2 * e3;
        e4 = w1 * e3 + w2 * e4;
        e5 = w1 * e4 + w2 * e5;
        e6 = w1 * e5 + w2 * e6;

        TTF = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3; // フィルタを通したTTF値
        MainBuffer[i] = TTF; // メインバッファにTTF値を設定
        i--;
    }

    //---- 最後のカウントされたバーは再カウント
    if (counted_bars > 0) counted_bars--;

    int limit = Bars - counted_bars;

    //---- シグナルラインの計算(シンプル移動平均)
    for (i = 0; i < limit; i++) {
        if (MainBuffer[i] >= 0)
            SignalBuffer[i] = TopLine;
        else
            SignalBuffer[i] = BottomLine;
    }

    return (0);
}
  • IndicatorCounted: カウントされたバーの数を取得。
  • 初期化: バッファの初期化を行う。
  • %Kラインの計算: 最高値と最安値を使用してTTFを計算。
  • フィルタリング: フィルタを通してTTF値をスムージングする。
  • シグナルラインの計算: シグナルラインを設定。

MT4インジケーターまとめ

  • URLをコピーしました!
  • URLをコピーしました!

このEAを使って、将来の見通しが立ちました

収入を増やしたい、将来のための資産が欲しい、支払いに縛られない自由な生活がしたい

このEAを使うと将来が見通せます。

22年以上で無敗の安定取引。リスク0%運用も可能なロジック。年利100%越えの上級者向け取引も可能。

マネーマシンとして育て上げることで大きな不労所得を得られます。

BBF-Girl
ドリームEA_BBF 無料ダウンロード
BBF_MQL5-202401006
リアルトレード公開|EA BBF

ポジション監視の時間

集中力は続いてますか?


オートクローズツールを使ってポジション管理を自動化


自動ポジション管理だから万が一でも大丈夫

あなたは空いた時間を自由に、効率的に使えます

自動決済ルールは独自にカスタム可能

ストップ、リミット変更にも対応。

エントリー後のポジション管理をすべて自動化できるトレーディングサポートツール。

トレード中のちょっとした離席など、念のためセットといった使い方も可能。

MT4用自動決済ツール【AutoCloseTool】は無料で入手できます。

オートクローズツール

取引ごとにキャッシュバックが発生します

もらわないだけ損している
取引ごとに毎回発生する現金のキャッシュバック
海外FXのキャッシュバックはメリットしかないサービスです

取引ごとにキャッシュバック
目次