2021.3.5
SMAをわかりやすく表示させたい【FX日誌#69】
トレードにおいて移動平均線ってめちゃめちゃ重視されてて、僕もなるべくすべての時間軸のSMAは意識するようにしています。
大勢の人が見ているというのは、それだけで根拠たりえるからですね。トレンドラインなんかはやっぱ人によって引き方は異なったりしますが、水平線なんかは確度が高まりますし、SMAなんて期間さえ合致すれば誰が見ても同じポイントを指し示すわけですからね。
ということで、ちょっと前に
マルチタイムフレーム分析するためのプログラムを書いたりしたんですが、そこで吹き出した問題として、実は
時間軸の乖離が激しいと正しく線が表示されないという問題を抱えていました。
つまり、標準のsma関数を使ってプロットすると、正しく結果が表示されないということです。ただ、長い時間軸のSMAは
正直傾きなんか意識してない気がするので、個人的には
水平線さえ表示できればいいと思ってます。
という観点で、このように手動でドットの水平線を引き、週末に微調整している、って感じです。
ただこれだとちょっと確度が微妙なので、より正確に「現時点でのSMAの値」を表示させることができないか、というインジケーターを作れないか探してみたいなと。
水平線を引く関数自体は存在しているので、あとはSMAの値を実数値で取れれば、ここに代入してはい終わり、って感じです。
調べたら
こういうエントリが参考になりそうなので、内容をちょちょっと書き換えて作ったのがこちらです。
//@version=4
study("dynamic horizontal line", overlay=true)
period_A = input(title="月足短期", defval=12)
time_f_A = input(title="月足短期", type=input.resolution, defval="1M")
SMA_A = security(syminfo.tickerid, time_f_A, sma(close, period_A), barmerge.gaps_on)
period_B = input(title="月足中期", defval=24)
time_f_B = input(title="月足中期", type=input.resolution, defval="1M")
SMA_B = security(syminfo.tickerid, time_f_B, sma(close, period_B), barmerge.gaps_on)
period_C = input(title="月足長期", defval=60)
time_f_C = input(title="月足長期", type=input.resolution, defval="1M")
SMA_C = security(syminfo.tickerid, time_f_C, sma(close, period_C), barmerge.gaps_on)
period_D = input(title="週足短期", defval=13)
time_f_D = input(title="週足短期", type=input.resolution, defval="1W")
SMA_D = security(syminfo.tickerid, time_f_D, sma(close, period_D), barmerge.gaps_on)
period_E = input(title="週足中期", defval=26)
time_f_E = input(title="週足中期", type=input.resolution, defval="1W")
SMA_E = security(syminfo.tickerid, time_f_E, sma(close, period_E), barmerge.gaps_on)
period_F = input(title="週足長期", defval=52)
time_f_F = input(title="週足長期", type=input.resolution, defval="1W")
SMA_F = security(syminfo.tickerid, time_f_F, sma(close, period_F), barmerge.gaps_on)
period_G = input(title="日足短期", defval=20)
time_f_G = input(title="日足短期", type=input.resolution, defval="1D")
SMA_G = security(syminfo.tickerid, time_f_G, sma(close, period_G), barmerge.gaps_on)
period_H = input(title="日足中期", defval=75)
time_f_H = input(title="日足中期", type=input.resolution, defval="1D")
SMA_H = security(syminfo.tickerid, time_f_H, sma(close, period_H), barmerge.gaps_on)
period_I = input(title="日足長期", defval=200)
time_f_I = input(title="日足長期", type=input.resolution, defval="1D")
SMA_I = security(syminfo.tickerid, time_f_I, sma(close, period_I), barmerge.gaps_on)
plot(SMA_A, trackprice=true, transp=100,linewidth=8, color=#ffff00)
plot(SMA_B, trackprice=true, transp=100,linewidth=8, color=#ff0000)
plot(SMA_C, trackprice=true, transp=100,linewidth=8, color=#ffffff)
plot(SMA_D, trackprice=true, transp=100,linewidth=5, color=#ffff99)
plot(SMA_E, trackprice=true, transp=100,linewidth=5, color=#ff9999)
plot(SMA_F, trackprice=true, transp=100,linewidth=5, color=#aaaaaa)
plot(SMA_G, trackprice=true, transp=100,linewidth=3, color=#ffff00)
plot(SMA_H, trackprice=true, transp=100,linewidth=3, color=#ff0000)
plot(SMA_I, trackprice=true, transp=100,linewidth=3, color=#ffffff)
ぺぺーっと書いたプログラムなので、明らかにコピペ臭漂ってて雑ですが、想定する動作にはなりそうです。
1時間足で見るとこんな感じです。まあだいぶいろんな線が表示されてて見づらいかも知れませんけど、僕がわかるような色分けをしてるので大丈夫です(笑)
僕の中では短期が黄色、中期が赤色、長期が白色、というのがベースにあって、月足、週足、日足の順番に線が細くなっていくようになってます。
ただそれだけだと月足と週足のサイズ感が紛らわしかったので、週足はちょっと色を薄くして判別がつくようにしてます。
かなり小さいドットもこのチャートに見えますが、これは今回の件とは全く関係ない、フィボナッチリトレースメントのドットです。赤が月足、緑が週足、水色が日足と色分けしてあります。
まあ正直あんまり見てない線ではあるので消してもいい線ではあるんですけど、反応することはあるので一応残してるって感じです
実際のエントリーでは、このでかいドットの線が見えた時に「ここが市場参加者に意識されるか?」ぐらいのぼんやりとした根拠にしか使わないのですが、表示があるのとないのとでは目安のつけやすさが段違いなので、今後も使っていきたいなと思います。
まあもし導入したい方がいましたらソースコードは勝手にコピペして使ってもらっても構いませんが、導入方法は答えるのめんどいので各自でググってくださいね^^