2011/12/2
Thomas DeMark Moving Average 1
Thomas DeMark Moving Average 1はThomas R. DeMarkが開発した移動平均です。
概要は高値の移動平均と安値の移動平均を計算しておき、条件に合わせて使い分けるというものです。
Gann Hilo Activatorに似ていますが、移動平均をスイッチする条件は複雑です。
Thomas DeMark Moving Average 1は複雑な計算をする移動平均です。
ここでは任意の日数のThomas DeMark Moving Average 1を計算できるようにOFFSET関数を使います。
G4セル、I4セルははThomas DeMark Moving Average 1の計算に使うパラメータを指定するセルとします。
F列、G列で区間内の最高値と最安値を計算します。簡単な計算式なので式の説明は省略します。
I列、J列でそれぞれ高値の単純移動平均、安値の単純移動平均を計算します。式の説明は単純移動平均を参照して下さい。
K列でbullishの条件判断をします。簡単な計算式なので式の説明は省略します。
L列でbearishの条件判断をします。簡単な計算式なので式の説明は省略します。
M列でDcdの計算をします。Dcdはbullshかbearishが真の場合、3、それ以外は前日Dcd-1という計算を行うので、
これを式にすると
N列でBtを計算します。Btはbullshが真の場合、1、それ以外でbearishが真の場合、-1それ以外は前日Btという計算を行うので、
これを式にすると
O列でThomas DeMark Moving Average 1を計算します。
計算式は
bullshが真の場合、fbullish
それ以外でbearishが真の場合、fbearish
それ以外でDcdが-1以下の場合、前日TDMA1
それ以外でBt=1の場合、fbullish
それ以外はfbearish
という複雑な条件判断を伴う式です。上記を式にすると、赤枠内の赤字部分
G5〜O5セルをコピーし、G6以下のセルにペーストすればThomas DeMark Moving Average 1が計算できます。
Excelファイルがダウンロードできない場合はリンクを右クリックして「対象をファイルに保存」を選択して保存すればダウンロードできます。
概要は高値の移動平均と安値の移動平均を計算しておき、条件に合わせて使い分けるというものです。
Gann Hilo Activatorに似ていますが、移動平均をスイッチする条件は複雑です。
計算式
low = 前日までの安値のM日間最高値
high = 前日までの高値のM日間最安値
fbullish = 安値のN日移動平均
fbearish = 高値のN日移動平均
bullish = 安値 > lowの場合、真、それ以外は偽
bearish = 高値 < highの場合、真、それ以外は偽
Dcd = bullshかbearishが真の場合、3、それ以外は前日Dcd-1
Bt = bullshが真の場合、1、それ以外でbearishが真の場合、-1それ以外は前日Bt
TDMA1 = bullshが真の場合、fbullish、それ以外でbearishが真の場合、fbearish
それ以外でDcdが-1以下の場合、前日TDMA1、それ以外でBt=1の場合、fbullish、それ以外はfbearish
high = 前日までの高値のM日間最安値
fbullish = 安値のN日移動平均
fbearish = 高値のN日移動平均
bullish = 安値 > lowの場合、真、それ以外は偽
bearish = 高値 < highの場合、真、それ以外は偽
Dcd = bullshかbearishが真の場合、3、それ以外は前日Dcd-1
Bt = bullshが真の場合、1、それ以外でbearishが真の場合、-1それ以外は前日Bt
TDMA1 = bullshが真の場合、fbullish、それ以外でbearishが真の場合、fbearish
それ以外でDcdが-1以下の場合、前日TDMA1、それ以外でBt=1の場合、fbullish、それ以外はfbearish
![]() |
日経平均終値とThomas DeMark Moving Average 1の図
ExcelでThomas DeMark Moving Average 1を計算する
Excelで使用する関数
MAX(数値1,数値2,…)
指定した数値や範囲内の数値から最大値を返します。MIN(数値1,数値2,…)
指定した数値や範囲内の数値から最小値を返します。AVERAGE(数値1,数値2,…)
指定した数値や範囲内の数値の平均値を計算します。空白セルや文字列は無視して計算します。OFFSET(基準セル,行数,列数,高さ,幅)
基準セルから指定した行数、列数だけ移動したセルを参照します。または高さ、幅を設定して基準セルから指定した高さ、幅のセル範囲を指定します。OR(条件式1,条件式2,…)
条件式の中に真がある場合は真を返します。条件式すべてが偽の場合は偽を返します。IF(条件式,真の場合,偽の場合)
条件式を満たす場合は真の場合の値、満たさない場合は偽の場合の値を返します。ROW(セル)
セルの行番号を返します。何も指定しない場合はROWが書かれたセルの行番号を返します。![]() |
ここでは任意の日数のThomas DeMark Moving Average 1を計算できるようにOFFSET関数を使います。
G4セル、I4セルははThomas DeMark Moving Average 1の計算に使うパラメータを指定するセルとします。
F列、G列で区間内の最高値と最安値を計算します。簡単な計算式なので式の説明は省略します。
I列、J列でそれぞれ高値の単純移動平均、安値の単純移動平均を計算します。式の説明は単純移動平均を参照して下さい。
K列でbullishの条件判断をします。簡単な計算式なので式の説明は省略します。
L列でbearishの条件判断をします。簡単な計算式なので式の説明は省略します。
M列でDcdの計算をします。Dcdはbullshかbearishが真の場合、3、それ以外は前日Dcd-1という計算を行うので、
これを式にすると
IF(OR(K5,L5),3,M4-1)
となります。N列でBtを計算します。Btはbullshが真の場合、1、それ以外でbearishが真の場合、-1それ以外は前日Btという計算を行うので、
これを式にすると
IF(K5,1,IF(L5,-1,N4))
となります。O列でThomas DeMark Moving Average 1を計算します。
計算式は
bullshが真の場合、fbullish
それ以外でbearishが真の場合、fbearish
それ以外でDcdが-1以下の場合、前日TDMA1
それ以外でBt=1の場合、fbullish
それ以外はfbearish
という複雑な条件判断を伴う式です。上記を式にすると、赤枠内の赤字部分
IF(K5,I5,IF(L5,J5,IF(M5<=-1,O4,IF(N5=1,I5,J5))))
になります。G5〜O5セルをコピーし、G6以下のセルにペーストすればThomas DeMark Moving Average 1が計算できます。
Excelファイルがダウンロードできない場合はリンクを右クリックして「対象をファイルに保存」を選択して保存すればダウンロードできます。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
↑ TOP PAGE