- 投稿
- 未分類
なぜフィッシャートランスフォームなのか 経緯
バイナリーオプションをやっていて思ったのが、ある状況の相場がこのまま続くのかそれともそれは一時的なものなのか?それがある程度判別できたらいいのに
天井か底かではなく、例えば相場がヨコヨコ状態でそれが続くのか?
或いは、上向きになっているけどそれがずっと続くのか(要は現状はまだインしてないけど残り時間を考えるとこの角度が続くとインしそうだ)とか或いはその逆
そもそもバイナリーだと順張りで天底を当てて利確するというのは非常に分が悪い。勿論天底が分かれば仮にインされてしまったとしてもそこから反転してアウトになるかもしれないが、いずれにしろ天底があたってもそこからどれくらい動くのかが分からなければ意味はない。
そんなときこのフィッシャートランスフォームがヒットした、という具合である。
フィッシャートランスフォームの適用とMetaTrader5の市場分析に対するフィッシャートランスフォーム
このインジケーターはトレーディングビューにも実装されているけどかなり情報が少ない。フィッシャー・トランスフォーム (FT)
一応ざっくりまとめておくと
ストキャスティクスの考え方で、それを正規分布に変換している てな感じだろうか(笑)
フィッシャー変換とかでてきてもうこの時点で大多数の人が離脱するのではなかろうか。ストキャスティクスを使えばよかろうもんとなること請け合いである(笑)
しかし、少し掘り下げてみると
ストキャスティクスとフィッシャートランスフォーム
ストキャスティクスは数値が0~100で限定されているがフィッシャートランスフォームは基本的にそのような限定はない(パラメータをいじくって限定できるのかも)
ストキャスティクスは買われすぎ売られすぎから相場の反転もみることができフィッシャートランスフォームも同様に反転を判別できるが、
ストキャスティクスは100以上にならないし0以下にもならない 言い換えると80以上になると買われすぎと判断される
一方でフィッシャートランスフォームはオシレーターが反転しはじめたところが反転ポイントとなる
このことはかなり重要で、ストキャスティクスで例えば80以上になってもずっとそこに滞留し続ける場合もあるが、このとき買われすぎと判断しているが実際は相場が上がっている場合も多々ある、いわゆるダマシと言うやつかというとそうでもない。なぜなら80以上になってからデッドクロスをしてから売り始めるのでロングしていたら手仕舞いポイントといえるからである
一方でフィッシャートランスフォームでの手仕舞いポイントはオシレーターが反転を始めたところになるが、ストキャスティクスで80以上に張り付いている場合フィッシャートランスフォームでは反転せずにまた上向きはじめるということになる。
また、このような場合ストキャスティクスは相場が下落し始めなくてもデッドクロスして80以下に下降しがちである。つまり売り始めたのになかなか下がらないという感じ。
フィッシャートランスフォームでも同様のことが起こるが、相場がなかなか下がらない場合はデッドクロスしてもその下降が相対的にゆるやかになる。
フィッシャートランスフォームはあくまで現状の相場状態の否定ポイントをみる
といった感じだろうか。ストキャスティクスは買われすぎ売られすぎを判別し結果として相場の反転ポイントも判別することができるが、フィッシャートランスフォームは現状の否定ポイントだとすると、上昇している場合は上昇がとまるのであり、この場合よこよこになる場合もあればそこが天井で下落する場合もある。勿論ダマシもあるだろう。
従ってフィッシャートランスフォームは例えばゆるやかに上昇しているような、長い時間軸でみるとヨコヨコと言っていいレンジの場合でも波形がゴールデンクロスする場合もある。これはヨコヨコ終了とみていいはずだが、ストキャスティクスだとこの時点で80以上になっている可能性もある。
そこで改めてストキャスティクスの計算式をみてみる
https://www.oanda.jp/lab-education/beginners/technical_analysis/stoch/
スローストキャスティクスでは
%Kの「現在の価格位置の相対的水準」は、「一定期間の値幅を100としたときに、現在がどの水準にいるか」
一方の「%D」は、「%K」を移動平均化
ストキャスティクスはあくまで価格そのものをみるために現在の価格水準が過去の値幅と比較してどうか?という見方です。これはボリンジャーバンドなどでも同じですね。
ボリンジャーバンドもそうですが、仮に+2σの位置にあっても決して買われすぎにはならずにそのまま滞留したり上がっていくことが多くむしろ順張りに使った方がいいとも言われたりします。
なぜそうなるのかというと、騰落の幅を正規分布で考えて(要するにバンドの幅)高い低いかをみているのに、基準となる現在の価格水準は既に+2σの位置にあるわけでバンドの中央値は当該価格の平均値になっているからです。値幅でσをとるならその平均は値幅の平均とならねばならず、そうするとバンドの中央値は原資産の価格平均ではなく直近終値の価格に平均値幅をプラスしてバンド幅を考えなければなりません。
そうすると現在の価格水準はあたりまえですが決して高い水準にはなりません。
結局バンドの中央値をいくらに設定するかに大きく依存してしまうのでボリンジャーバンドで買われすぎとか売られ過ぎを判断するのは難しいと言わざるを得ません。
この点ストキャスティクスは正味の値幅をもとにしているのでそういう意味ではボリバンよりも精度が高そうです。とは言え当日の終値と過去の最安値の値幅と当日含めて最高値最安値の値幅を比べるのでどんなに高くても100を超えることはなく、また、もし買われ過ぎと判断するならこれ以上上がる事はないことになりますが、高値更新することなんてザラでしょう。
フィッシャートランスフォームの計算要領
一方でフィッシャートランスフォームはどうでしょうか。
https://fx-meta4-indicator.blogspot.com/2017/01/indi-fisher-transform.html?m=1
これによるとやはりストキャスティクスの考え方が基本にあるようですが、様々な補正が加えられよく分かりません(笑)
フィッシャー変換とか正規分布とか、推測するにストキャスティクスで出てくる値を正規分布として捉え直すということかなと。。。
母相関係数の信頼区間を求めるためには、まず次の式を用いて標本から算出した相関係数rを変換します。この変換を「フィッシャーのz変換」といいます。
どうやら、共分散が関係してそうですね。。。
やはり、ロジック自体が分からないのでどうしようもないですね。移動平均とストキャスティクスの共分散を変換している感じでしょうか。
相関係数が高いと線がくっついて低いと離れていくと考えるとクロスするあたりは値幅と移動平均が同じくらい(という言い方は明らかに変ですけど(笑))で、そこらへんがピークと考えれば辻褄があうな(笑)
このロジックだと現在価格がこの位置にあるからピークとはならないのでボリバンやストキャスティクスの欠点を補えることになる。。。かも、しれない
改めてフィッシャートランスフォームの計算式をみてみる
https://jp.tradingview.com/support/solutions/43000589141/
計算
フィッシャー・トランスフォームの計算式は次のとおりです:フィッシャー・トランスフォーム = ½ * ln(1 + X / 1 - X)
各定義:
ln= 自然対数X= -1から+1の間の値に変換された価格
フィッシャー・トランスフォームを計算するには、まず、調査対象となる過去期間 (例: 期間9)を選択します。これはインジケーターをどれだけの期間に適用するかを決めるということです。
期間を選択したら、その期間の価格を-1から+1の間の値に変換します。Xを入力し、計算式の括弧内すべての計算を忘れずに行ってください。
この結果の自然対数を取ります。
さらに得られた結果に0.5を掛けます。
各期間の区切りごとにこの計算を繰り返して、直近の価格までを-1から+1の間の値に変換します。 (これは直近の期間を基準とします)。
最後に前回の計算値から今回の計算値を加算/減算します。これで完了です。
>その期間の価格を-1から+1の間の値に変換します。。。
それがようわからん(笑)
Excelでテクニカル計算
計算式
中値(高値と安値の平均値)のN日ストキャスティックスを計算し、それを-1~1の間の値に変換する。
さらに計算した値を平滑化定数αで平滑化する。これをValueとする。
FT = 0.5 × ln((1 + Value) ÷ (1 - Value)) + β × 前日FT
Nは任意だが10位が適当,α=0.33,β=0.5とする
H4セルは期間内高値、期間内安値の期間を指定する
J4セルはValueの平滑化定数を指定する
L4セルはFTの平滑化定数を指定するセル
G列で中値(高値と安値の平均)を計算
H列,I列でそれぞれG列の期間内高値、期間内安値を計算
K列でJ列の異常値のチェック
L列でFTを計算
$J$4*2*((G6-I6)/(H6-I6)-0.5)+(1-$J$4)*J5・・・ 平滑化 ← VALUE
※(G6-I6)/(H6-I6)がストキャスティクスの計算
※2*((G6-I6)/(H6-I6)-0.5)が-1~1に変換
=IF(J6>0.999,0.999,IF(J6<-0.999,-0.999,J6))・・・ 異常値のチェック
0.5*LN((1+K6)/(1-K6))+$L$4*L5・・・ FTの計算
※0.5*LN((1+K6)/(1-K6))がフィッシャーのZ変換
※$L$4*L5が前日のFT
フィッシャーのZ変換
※FT = 0.5 × ln((1 + Value) ÷ (1 - Value))
フィッシャートランスフォームの計算式のざっくり流れ
つまり、
①ストキャスティクスを-1~1に変換したものを平滑化
②これをフィッシャー変換したものに③前日のフィッシャートランスフォームをプラスして当日のフィッシャートランスフォームが算出される
そのまま普通に考えるとプラスの場合はどんどん増えていくしマイナスの場合はどんどん減っていく
前日と当日で大きく値が変わらない場合が多いだろうからそのまま足していくとプラスの場合はほぼ倍になってしまう
このため前日のFTには0.5を乗じているのだろう
なので仮に当日の素のFTが1であっても、前日のFT換算が0.5くらいになるのでトータル1.5程度
翌日も同様に当日の素のFTが1くらいであっても前日のFT換算が0.75になるのでトータル1.75くらいとなる
逆に翌日の素のFTが0.75くらいに下がると前日のFT換算0.75にプラスしてトータル1.5程度となる
フィッシャートランスフォームの計算式から推測するロジック
フィッシャー変換している対象は「ストキャスティクスを-1~1に変換したものを平滑化」したものであり
要するにストキャスティクスをフィッシャー変換していると言える
ストキャスティクスの計算対象は
当日の終値と過去の対象期間の最安値 と 過去の対象期間の高値と安値
なので、結局この共分散、或いは相関係数などを正規分布化しているとみることができる
現在の相関度が過去の相関度と比べると高くなっているか低くなっているかを判別するもの、と言えそうだ
そうすると波形が上向きで数値が高い場合ほど相関度が高いといえ、それはすなわち当日の高値が対象期間の値幅に近くなっていることを意味するだろう
この点、ストキャスティクスだとさらにそれから上昇を続けても値が100を超えることはないが、フィッシャートランスフォームでは上昇を続けることもありうる
そして、その波形が頭打ちになって下降を始めるのは当日の値幅が縮まっている(高値更新しなくなった)を意味するだろう。。。