【無料ダウンロード可】TEMAインジケーターとは?ラグを抑えたトレンド判断ができるMT4ツールを解説

【無料ダウンロード可】TEMAインジケーターとは?ラグを抑えたトレンド判断ができるMT4ツールを解説アイキャッチ

トレンドをより正確に、そして早く捉えたい方へ。
TEMA(Triple Exponential Moving Average)は、従来の移動平均よりもラグ(遅延)を抑え、滑らかなラインで相場の流れを視覚化できるインジケーターです。

TEMA
TEMA

この記事では、TEMAの仕組みや活用法をわかりやすく解説し、MT4で使えるTEMAインジケーターのダウンロード方法も紹介します。
完全無料で使える.ex4ファイルを下記より取得可能ですので、ぜひご活用ください。


【⬇ インジケーターのダウンロードはこちら】

目次

TEMAインジケーターとは?|三重指数移動平均の基本知識

TEMA(Triple Exponential Moving Average|三重指数移動平均)は、通常の移動平均よりもラグ(遅れ)を抑えながら、価格の動きを滑らかに表示するインジケーターです。
1994年にPatrick Mulloy氏によって提案され、主にトレンドフォロー型の戦略で用いられています。

MT4に対応したTEMAインジケーターは、チャート上に一本の滑らかなラインを表示し、相場の流れやトレンド転換の兆しを視覚的に把握しやすくするため、多くのトレーダーに支持されています。

TEMAの仕組みと計算ロジック

TEMAは単純な指数移動平均(EMA)を3段階にわたって組み合わせることで、ラグを低減しつつ、ノイズの少ないラインを生成します。

具体的には、以下のステップで計算されます。

  1. **EMA1(第1段階のEMA)**を計算
  2. **EMA1のEMA(EMA2)**を計算
  3. **EMA2のEMA(EMA3)**を計算
  4. それらを組み合わせて最終的なTEMAを算出:
      TEMA = 3 × EMA1 − 3 × EMA2 + EMA3

この式により、EMAが持つ「遅れ(ラグ)」の性質を打ち消し、反応が早くかつスムーズなラインが得られます。

EMAとの違い|なぜラグが小さいのか?

EMA(指数移動平均)は、直近の価格に重みを置いて平均をとるため、SMA(単純移動平均)よりも早く反応しますが、それでもある程度の遅れが生じます。

TEMAは、このEMAを3段階にわたって補正することで、ラグをさらに軽減しながら、ノイズを抑えたトレンドラインを実現しています。
その結果、価格の変化に対する追従性が高まり、トレンドの転換点や継続のサインをより早く捉えることが可能になります。

「早すぎず・遅すぎない」絶妙なバランスが、TEMAの大きな魅力です。

TEMAのメリットと特徴

TEMAインジケーターは、従来の移動平均線では見逃されやすい微細なトレンドの変化や初動のシグナルを、より明確に捉えやすくする工夫が施されています。
特に、ラグ(遅れ)を減らしながらもノイズを抑えるという特性は、短期から中長期まで幅広いトレードスタイルに適しています。

ここでは、TEMAの主要なメリットを2つの観点から紹介します。

ノイズ除去とトレンド把握の両立

一般的な移動平均は価格変動の平均値を取ることでノイズをならしますが、そのぶん反応が鈍くなりがちです。
一方、TEMAは複数のEMAを組み合わせて計算されるため、価格のムダな上下動(ノイズ)を軽減しつつ、価格の方向性を滑らかに表現できます。

これにより、チャート上の“ざらつき”を減らしながらも、本質的なトレンドの流れを把握しやすくなるのが大きな利点です。
特にレンジ相場からトレンド相場への切り替わりなど、微妙な局面でも視覚的な判断材料を提供してくれます。

反応の早さと滑らかさ

トレンドの発生や転換を見逃さず、早めに察知するためには、インジケーターの「反応の速さ」が重要です。
TEMAは、ラグを軽減した構造によって一般的なEMAよりも素早く価格変動に反応します。

それでいて表示されるラインは滑らかで、過剰な反応によるダマシ(誤シグナル)も起きにくいため、裁量判断にも適しています。

✅ まとめると:
TEMAは「反応が速く、なめらかで、かつノイズが少ない」という、理想的な移動平均線の特性を追求したインジケーターです。

TEMAの使い方と売買戦略

TEMAインジケーターは、トレンド系の中でも特にラグが少なく、滑らかなラインを表示するため、トレンドの初動を捉える場面や、押し目・戻りの判断に役立ちます。

このパートでは、TEMAを使った基本的な売買判断の考え方と、他のテクニカル指標と組み合わせて活用する応用例をご紹介します。

TEMAを使ったエントリーの考え方

TEMAを単独で活用する場合、以下のようなシンプルなルールで売買シグナルを捉えるのが一般的です。

✅ 買いの基本パターン

  • 価格がTEMAラインを上抜けたら、買いエントリーを検討
  • TEMA自体が右肩上がりになっているかも同時に確認

✅ 売りの基本パターン

  • 価格がTEMAラインを下抜けたら、売りエントリーを検討
  • TEMAが右肩下がりで推移している場合は、トレンドの継続を期待

✅ 利確・損切りの目安

  • トレンドの転換が疑われる場面(TEMAが横ばい・クロス)で手仕舞いを検討
  • 前回高値・安値やATRを参考にストップロスを設定するとより安全

他の指標と組み合わせた活用例(RSI・MACDなど)

TEMAは、他のインジケーターと併用することでシグナルの信頼性を高めることができます。以下に代表的な組み合わせを紹介します。

● TEMA × RSI(相対力指数)

TEMA-RSI
TEMAにRSIを合わせて買いを検討する例(赤の垂直線)
  • TEMAでトレンド方向を確認
  • RSIで買われすぎ・売られすぎを判断
    → 例:TEMAが上昇中で、RSIが30付近から反転上昇したタイミングでエントリー

● TEMA × MACD(移動平均収束拡散法)

TEMA-MACD
TEMAにMACDを合わせて買いを検討する例(赤の垂直線)
  • TEMAで全体のトレンドを把握
  • MACDのゴールデンクロスやデッドクロスでエントリー判断
    → トレンドに沿ったエントリーの精度を上げたいときに有効

● TEMA × ボリンジャーバンド

TEMA-BB
TEMAにボリンジャーバンドを合わせて買いを検討する例(赤の垂直線)
  • ボリンジャーバンドの±2σ付近からの反発と、TEMAの方向性を組み合わせて反転を狙う戦略も有効です。

💡 ワンポイント:
インジケーターは“万能な答え”ではなく、“判断材料”です。複数の情報を組み合わせ、根拠のあるトレード戦略を立てることが大切です。

TEMAインジケーターのダウンロードと導入方法

TEMAインジケーターは、MT4に無料で導入できるテクニカルツールです。
このセクションでは、.ex4ファイルのダウンロードからインストールまでの手順をわかりやすく解説します。

TEMA.ex4のダウンロードリンク

以下のリンクから、TEMAインジケーター(TEMA.ex4)を無料でダウンロードできます。
ファイルはコンパイル済みの状態で配布されているため、インストール後すぐにMT4上で使用できます。

📥【TEMAインジケーターをダウンロードする】

※ファイルはウイルスチェック済み/MT4対応。再配布や商用利用はご遠慮ください。

MT4へのインストール手順

  1. MT4を起動し、メニューの「ファイル」>「データフォルダを開く」をクリック
  2. MQL4フォルダ内のIndicatorsフォルダを開く
  3. ダウンロードした TEMA.ex4Indicators フォルダへ移動
  4. MT4を再起動する
  5. ナビゲーター内の「カスタムインジケーター」にTEMAが表示されているか確認
  6. 任意のチャートにドラッグ&ドロップすればインジケーターが表示されます

💡補足:
表示されない場合は、MT4の再起動や、チャートの時間足変更を試してください。
セキュリティ設定で制限されている場合は、「オプション」→「インディケーターのDLL使用を許可」も確認してみましょう。

TEMAのソースコードと技術解説(学習者向け)

このセクションでは、TEMAインジケーターのソースコードを学習目的で解説します。
MQL4でカスタムインジケーターを作成したい方、またはコードの仕組みを理解して自分なりに改造したい方の参考になるよう、構造ごとに分解して説明します。

ソースコード全文はこちらをクリック
#property strict
#property indicator_chart_window
//--- input parameters
input int InpPeriod = 14; // Period

//--- indicator buffers
double TEMA_Buffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   // Indicator buffer mapping
   SetIndexBuffer(0, TEMA_Buffer);
   
   // Set the line style and color to Aqua
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1, clrGold);
   SetIndexLabel(0, "TEMA");
   
   // Indicator name
   IndicatorShortName("TEMA("+IntegerToString(InpPeriod)+")");
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i, counted_bars = IndicatorCounted();
   if(counted_bars < 0) return(-1);
   if(counted_bars > 0) counted_bars--;
   int limit = rates_total - counted_bars;

   // Calculate EMA1, EMA2, and EMA3
   double EMA1[], EMA2[], EMA3[];
   ArrayResize(EMA1, rates_total);
   ArrayResize(EMA2, rates_total);
   ArrayResize(EMA3, rates_total);

   int period = InpPeriod;
   double k = 2.0 / (period + 1);

   for(i = 0; i < limit; i++)
     {
      if (i == 0)
        {
         EMA1[i] = close[i];
         EMA2[i] = EMA1[i];
         EMA3[i] = EMA2[i];
        }
      else
        {
         EMA1[i] = (k * close[i]) + ((1 - k) * EMA1[i - 1]);
         EMA2[i] = (k * EMA1[i]) + ((1 - k) * EMA2[i - 1]);
         EMA3[i] = (k * EMA2[i]) + ((1 - k) * EMA3[i - 1]);
        }
     }

   // Calculate TEMA
   for(i = 0; i < limit; i++)
     {
      TEMA_Buffer[i] = (3 * EMA1[i]) - (3 * EMA2[i]) + EMA3[i];
     }

   return(rates_total);
  }

プロパティ設定と初期化処理

まずは、インジケーター全体の定義や初期設定を行うプロパティ部分と、OnInit()関数での初期化処理を見ていきます。

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Gold
  • #property indicator_chart_window: チャートウィンドウにインジケーターを表示
  • #property indicator_buffers 1: 使用するバッファ数は1本
  • #property indicator_color1 Gold: 描画ラインの色はゴールド

続いて、初期化関数 OnInit() では、以下のようにバッファ設定やスタイルの指定が行われています。

SetIndexBuffer(0, TEMA_Buffer);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1, clrGold);
SetIndexLabel(0, "TEMA");
IndicatorShortName("TEMA(" + IntegerToString(InpPeriod) + ")");

これらにより、チャート上に表示されるTEMAラインのデザイン・ラベル・名前が設定されます。

入力パラメーターとバッファ構成

input int InpPeriod = 14; // 計算に使う期間(初期値は14)
double TEMA_Buffer[];     // TEMAの描画用バッファ
  • input int InpPeriod: ユーザーが設定できる期間(例:14や21など)。EMAの計算ベースとなります。
  • TEMA_Buffer[]: 描画されるインジケーターバッファです。この配列に計算結果が格納され、チャートに表示されます。

インジケーターでは、バッファ=ラインそのものを表すため、描画ロジックと密接に関係します。

OnCalculate関数とTEMAの計算ロジック

メインとなるのが OnCalculate() 関数です。この中で、TEMAを構成する3段階のEMAが順に計算され、最終的なTEMA値が算出されます。

EMA1[i] = (k * close[i]) + ((1 - k) * EMA1[i - 1]);
EMA2[i] = (k * EMA1[i]) + ((1 - k) * EMA2[i - 1]);
EMA3[i] = (k * EMA2[i]) + ((1 - k) * EMA3[i - 1]);
TEMA_Buffer[i] = (3 * EMA1[i]) - (3 * EMA2[i]) + EMA3[i];
  • EMA1 → EMA2 → EMA3 の順にスムージング
  • 最後に TEMA = 3×EMA1 − 3×EMA2 + EMA3 という式でTEMAを出力

この処理は配列で過去のバー全体に対して繰り返し計算され、すべてのローソク足に対してTEMAラインが描画されます。

💡 ワンポイント解説:
k = 2 / (期間 + 1) はEMAの重み係数(スムージングファクター)で、期間が短いほど敏感になります。

よくある質問(FAQ)

TEMAのおすすめ期間設定はありますか?

一般的には14期間が基本ですが、トレードスタイルによって調整が有効です。
短期トレード(スキャルピング〜デイトレード)では5〜10、
中長期(スイング〜ポジショントレード)では21〜55程度の設定がよく使われます。

相場環境や他のインジケーターとの組み合わせも考慮し、バックテストやデモトレードで最適な期間を検証することをおすすめします。

SMAやEMAと比べてTEMAが優れている点は?

ラグ(遅延)が少なく、価格への反応が速い点がTEMAの大きな特徴です。
単純移動平均(SMA)はなめらかですが反応が遅く、EMAはやや敏感すぎる場面もあります。
TEMAはその中間に位置し、滑らかさと反応速度を両立したバランスの良いインジケーターです。

TEMAは単独で使えますか?それとも補助的な役割ですか?

単独でも活用できますが、他のテクニカル指標と組み合わせると精度が上がります。
TEMAだけでトレンドの強弱を判断することも可能ですが、エントリーやエグジットの判断にはRSIやMACDなどのモメンタム系と併用すると、だましを回避しやすくなります。

MT5でもこのTEMAインジケーターは使えますか?

本記事で配布しているTEMAインジケーターはMT4専用(.ex4形式)です。
MT5をご利用の方は、MQL5形式(.mq5/.ex5)のTEMAインジケーターを別途探す必要があります。
※当サイトでは今後、MT5版インジケーターの配布も検討しています。

表示されない・動作しないときの対処法は?

以下を確認してください:

  • ファイルを MQL4/Indicators フォルダに正しく配置したか
  • MT4を再起動したか
  • ナビゲーターに表示されているか(表示されない場合はコンパイルエラーの可能性)
  • チャートにドラッグ&ドロップした後、パラメーターに誤りがないか

それでも表示されない場合は、MT4のビルドバージョンやインジケーターの互換性を確認しましょう。

TEMAインジケーターはリペイントしますか?

いいえ、TEMAは確定したローソク足に対してはリペイントしません。
TEMAは過去の終値をもとに計算されるため、リアルタイムで表示中の未確定バーを除けばリペイントの心配はありません
ただし、インジケーターの仕様によっては、ティック単位で一時的に値が動くことがあるため、確定足での判断を基本にするのが安全です。

複数のチャートで同時に使っても重くなりませんか?

一般的なPC環境であれば、TEMAを複数チャートに適用しても処理は軽量です。
TEMAは比較的シンプルな計算構造のため、5〜10枚程度のチャートに同時適用してもMT4が重くなるケースはまれです。
ただし、他に複雑なインジケーターやEAを同時に動かしている場合は、PCのメモリやCPU負荷に注意してください。

TEMAはレンジ相場でも使えますか?

TEMAはトレンド相場で真価を発揮しますが、レンジ相場の判断材料にもなります。
価格とTEMAが何度も交差するような場面では、トレンドの不在=レンジ状態と判断できます。
また、TEMAが横ばいで推移している期間は、新たなトレンドが発生する前の「待ち」時間帯と見なすこともできます。

まとめ|TEMAでトレンド判断の精度を高めよう

TEMAインジケーターは、トレンド系指標の中でもラグの少なさと滑らかさを兼ね備えた高機能ツールです。
トレンドの初動や転換をいち早く捉えるために、従来の移動平均(SMA・EMA)では満足できなかった方にとって、有効な選択肢となるでしょう。

特に以下のような方におすすめです:

  • 無駄なノイズを排除して相場の本質を捉えたい方
  • 裁量トレードの判断材料をより明確にしたい方
  • 他の指標と組み合わせて、トレンド系の戦略を強化したい方

インジケーターは万能ではありませんが、使い方と組み合わせ方を工夫すれば、トレードの精度と一貫性を大きく向上させることが可能です。
まずは、実際にチャートに導入して、TEMAの反応性や特性を体感してみてください。

この記事で紹介したインジケーターのように、取引効率を上げる無料ツールをお探しの方へ
当サイトの無料EA一覧ページでは、実用性の高い自動売買ツールを多数紹介しています。

👉 無料EAを探す

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次