1. 相場
  2. 研究

MAMA

MEMO


2022年11月8日

適応移動平均の基礎

有限インパルス応答(FIR)フィルタの適応化については、遮断周波数を測定したサイクル周期の倍数にするという方法をひとつすでに学んだ。 特殊なケースについては、滑らかな線が得られ、なおかつ不要な周波数成分がカットできるようにするために単純移動平均(SMA)の長さを設定することも述べた。瞬時トレンドラインがその一例である。

本章では、無限インパルス応答(IIR)フィルタの計算に非線形性を導入することで、変化に対してより敏速に反応できるようにする方法を紹介する。 非線形性は通常、価格の変動に依存する。まずは、この手法を使ったいくつかの例を挙げ、それからヒルベルト変換を応用する方法を紹介する。

カウフマンの適応移動平均

カウフマンの適応移動平均(KAMA)の根底にある考えは、雑音の激しいマーケットは、雑音の少ないマーケットより、ゆっくりとしたトレンドを必要とするものである。 なぜ比較的雑音の大きいマーケットはゆっくりとしたトレンドが必要かというと、そのようなマーケットでは価格がトレンドラインを下回るのを避けるため、価格はトレンドラインを大幅にリードしなければならないからだ。価格が一方向に動くとき、移動平均は加速する。

ボラが高い状況では移動平均線のクロスが容易に発生してしまうので、平均を取る期間を長くする必要があるという意味だと思う。

KAMAの発明者であるペリー・カウフマンによれば、KAMAは、計算に使える最小の市場期間に基づいてできるだけ速いトレンドを使う方が良い。 これは、EMAの$\alpha$の値を各サンプルごとに変えることで達成できる。KAMAの式は次の通りである。

$$ KAMA = S \times Price + (1-S) \times KAMA[1] $$

この式では、$S$は平滑化要素である。$\alpha$が$S$に置き換えられた以外は、指数移動平均(EMA)の式とまったく同じである。 平滑化要素は2つの限界値と効率比によって構成され、次式で表される。

$$ S = \lbrace E \times (fastest - slowest) + slowest \rbrace^2 $$

$fastest$は周期が最短限界値のときの$\alpha$の値を表し、$slowest$は周期が最長限界地のときの$\alpha$の値を表す。 周期の最短および最長限界値の推奨値はそれぞれ2barおよび30barである。この場合、2つの$\alpha$値は次のようになる。

$$ Fastest = \frac{2}{2+1} = 0.6667 $$ $$ Slowest = \frac{2}{30+1} = 0.0645 $$

したがって、平滑化要素の値は以下のようになる。

$$ S = ( E \times 0.6022 + 0.0645 ) ^2 $$

効率比($E$)は、計算期間の両端の価格差の絶対値を、計算期間において隣どうしの価格の差の絶対値の和で割った値である。 したがって、効率比は次式で表される。

$$ E = \frac{| Price - Price[N] |}{\displaystyle\sum_{i=0}^N | Price[i] - price[i + 1] |} $$

$N$のデフォルトの値は10であるが、ベストな長さをいろいろ試してみることをお勧めする。

可変インデックスダイナミック平均

可変インデックスダイナミック平均(VIDYA)では、主要平滑化定数は一定である。 この定数の推奨値は0.2(9本EMAの$\alpha$に相当する)である。 VIDYAの式は以下となる。

$$ VIDYA = 0.2 \times k \times CLOSE + (1-0.2\times k) VIDYA[1] $$

KAMA同様、非線形性を導入するための相対ボラティリティ項は直近$n$日間の終値の標準偏差と直近$m$日間の終値の標準偏差の比である。 ただし、$m>n$とする。$n$と$m$の推奨値は、それぞれ$n=9$、$m=30$である。

MAMA

KAMAおよびVIDYAと同じように、MAMAの出発点も標準的な指数移動平均(EMA)である。EMAの式は次の通り。

$$ EMA = \alpha \times Price + (1-\alpha) \times EMA[1] $$

ただし、$\alpha < 1$である。この式を言葉にすると次のようになる。

EMAは、現在価格の何分の一に、1からその比率を引いた値とEMAの1bar前の値を掛けて足し合わせたもの。 つまり、$\alpha$の値が大きくなるにつれ、EMAの現在価格に対する感応性は高くなる。 逆に$\alpha$の値が小さくなると、EMAは現在価格よりも前の平均値の影響を受けるようになることを意味する。

したがって、EMAを適応化するには、$\alpha$の値を独立したパラメーターに応じて変化させればよい。 MAMAの目的は、位相(phase)の変化率とEMAの$\alpha$とを関連付けることで、EMAを適応性のあるものに改良することにある。

EMAは全てのデータを計算対象とし、古いデータが計算から外れることなく、常に新しいデータを加えながら計算するのが特徴。 EMAの最初の値は、単純移動平均と同じでn日間の終値の合計をnで割って求める。 2日目以降は以下式で求める。 $$EMA = EMA[1] + \alpha \times (Price - EMA[1])$$ この式は文中のEMA式と同じ。 平滑化定数はα=2÷(n+1)で計算される。この平滑化定数を用いた計算により、ウェイトの減衰が指数関数的となる。

位相は0から360°までが1サイクルである。0から360°までは継続的に進むが、新しいサイクルが始まると位相は突然0に戻るので途切れてしまう。 つまり、位相の変化率は1サイクルにつき360°である。しかし、サイクルが短くなると位相の変化率は加速する。 例えば、10barサイクルの位相の変化率は1barにつき10°になる。サイクルの周期はマーケットがトレンドモードのときは長くなる傾向がある。

サイクルの位相は同相成分(InPhase)と直交成分(Quadrature)の比の逆正接を計算して求める。 位相の変化率は、位相差を連続的に取ることで求められる。

phase = I1 != 0 ? math.atan(Q1 / I1) * 180 / pi : 0
deltaPhase = nz(phase[1]) - phase
「$\times$ 180 / pi」の部分が意味不明。単に1を掛けているだけに見える。

逆正接関数(arctan)による位相計算は、半サイクル、すなわち-90°から+90°の範囲内でしかできない。 位相は半サイクルごとに元に戻るので、位相の変化率は半サイクルごとに大きな負の値を取ることになる。 マーケットがトレンドモードにあるときも位相の変化率は負になる。

しかし、位相は時間と同じように正の方向に進まなければならないので、位相の変化率が負になることは理論的には無い。 したがって、位相の変化率は1以上に制限する。

deltaPhase := deltaPhase < 1 ? 1 : deltaPhase

MAMAの$\alpha$の値は、パラメーターとして設定した最大値と最小値の間の値を取ることができる。 推奨最大値は$FastLimit=0.5$で、推奨最小値は$SlowLimit=0.05$である。 $FastLimit$を位相の変化率で割ったものが変数$\alpha$の値となる。

alpha = fastLimit / deltaPhase
alpha := alpha < slowLimit ? slowLimit : alpha
位相の変化率が大きいと分母が大きくなるので$\alpha$の値は小さくなる。ただし、$\alpha$の値は$SlowLimit$を下限とする。 位相の変化率が負の場合、deltaPhaseは1となるので、$\alpha$は$FastLimit$に設定した値となる。
  • 位相の変化率の値が負の場合、$\alpha$ の値は必ず$FastLimit$に設定される
  • 位相の変化率が大きい場合、$\alpha$ の値は$SlowLimit$を限度とする

逆正接関数(arctan)は、-90°から+90°の間で位相反応を待ち、-90°でラップアラウンド(位相送り)する。 したがって、位相がラップアラウンドする境界では位相の変化率は大きな負の値を取ることになる。 位相の変化率が負の値を取る場合、その値を+1に制限することで、EMAの$\alpha$の値は$FastLimit$に設定される。

理論的正弦波では、位相のラップアラウンドの境界は、ヒルベルト変換により位相が90°遅延するので、0と180°で生じる。

変数$\alpha$の値は、位相のラップアラウンドにより半サイクルごとに必ず$FastLimit$に設定される。 そして比較的大きな$\alpha$の値によって、MAMAは敏速に価格に近付く。 位相のラップアラウンド後は、$\alpha$の値は通常通りの小さな値に戻る。 $\alpha$の値が小さくなると、MAMAは$\alpha$の値が$FastLimit$だったときの値をほぼそのまま維持する。

このように$\alpha$の値が比較的大きな値と比較的小さな値の間で切り替わることで、波動に見られるような漸進的(ぜんしん:急がないで段階を追って少しずつ進んで行くこと)な動きが生み出される。 マーケットがトレンドモードにある時はサイクル周期が長いので、サイクルモードの時に比べて漸進的な動きが生じる頻度は低い。

相場の最新記事

  1. 12月25日から12月29日

  2. 12月18日から12月22日

  3. 12月11日から12月15日

  4. 12月4日から12月8日

  5. 11月27日から12月1日

PAGE TOP