BOSとCHoCHをコードにすると、「確定」をいつにするかで矢印の時刻が変わる
5本 高値の確定に要る右側の足 | 20時間 4時間足で印が付くまで | 0.1倍 ブレイクに上乗せするATR |
MT4/MT5のインジケーターを作って、GogoJungleで販売している lab.aiueo です。
SMC(スマートマネーコンセプト)の BOS と CHoCH は、どちらも「直前の高値・安値を抜けたこと」を表します。抜けた向きがそれまでの流れと同じなら BOS、逆なら CHoCH です。
チャートを目で見て「ここで高値を抜けた」と言うのは簡単です。ところが、インジにしようとすると、「高値」と「抜けた」の両方に、いつ確定したことにするかを決めないといけません。
その決め方しだいで、矢印が出る時刻が変わります。
今日は、SMC-Radar と SMC-Signal で私がどう決めたか、そのせいで画面の見え方がどうずれるかを書きます。売買の判断には触れません。
1高値は、右に5本そろうまで確定しない
私のインジでは、「左右5本ずつの足より高い足」を高値(スイングハイ)にしています。安値も同じです。5本は、設定(SwingLength)で変えられます。
問題は、右側の5本です。ある足が高値かどうかは、その足のあとに5本の足が確定するまで分かりません。
そのため、高値の印は、5本たってから、5本前の足に付きます。
- 15分足なら、75分後
- 1時間足なら、5時間後
- 4時間足なら、20時間後
一度付いた印は、あとで動きません。だから「描き直し」ではありません。ただ、見ている側からすると「さっきまで無かった印が、5本前に出てきた」ように見えます。
2抜けたかどうかは、終値で決める
高値を「抜けた」と判断する条件は、次の2つにしました。
- ヒゲではなく、終値で抜けること
- 高値に、ATR(値幅の平均)の0.1倍を足した所より上で引けること
ヒゲで一瞬だけ抜けた足では、ブレイクにしません。足が確定して、終値が出てから判定します。そのため、ブレイクの矢印は、抜けた足が確定したときに、その足に付きます。
0.1倍の上乗せは、高値ぴったりで引けた足をブレイクにしないためです。設定(BreakoutBuffer_ATR)で変えられます。
3高値は、確定する前には抜かれない
ここで、作っていて気づいたことがあります。
高値は「右の5本がすべて自分より低い」ことで確定します。ということは、右の5本の中に、高値の上で引ける足はありません。
つまり、確定する前の高値が抜かれることは、仕組み上ありません。
困るのは、目で見る高値と、インジの高値が違うことです。
たとえば、ある高い足の右に、低い足が3本あるとします。4本目の足がその高値を上抜けて引けました。目で見ると「高値を抜けた」です。
でもインジから見ると、この足は右に5本そろう前に、自分より高い足が来ました。だから、そもそも高値ではありません。何も起きていないので、矢印は出ません。
インジが見ているのは、その前に確定していて、まだ抜かれていない高値です。その高値を抜けるまで、BOSもCHoCHも出ません。
4本数を変えると、矢印の時刻が変わる
左右の本数(SwingLength)を小さくすると、高値が早く確定します。細かい高値もブレイクの対象になるので、矢印は早く、多く出ます。
大きくすると、高値の確定が遅くなり、大きな高値だけが残ります。矢印は遅く、少なくなります。
どちらが正しい、ということはありません。小さくすれば細かい動きに反応し、大きくすれば大きな流れだけを拾います。同じチャートでも、本数を変えると、矢印の出る足が変わります。
5利確の線で起きた、確定のずれ
SMC-Signal では、この「確定の遅れ」で、一度ずれを出しています。
SMC-Signal は、矢印を出すときに、近くの高値・安値を使って利確の目安を3つ引きます。以前の版では、矢印を出した時点ではまだ確定していなかった高値・安値も、あとから使ってしまうことがありました。
私の環境でインジを入れ直したところ、2つ目の利確の価格が 1.21165 から 1.21028 に変わりました。
矢印を出した時点では確定していなかった高値が、入れ直したときには確定していて、計算に入っていたのです。
直し方は、「矢印を出した足の時点で、すでに確定していた高値・安値」だけを使うことでした。具体的には、矢印の足から、左右の本数(5本)以上前にある高値・安値だけを使います。
6EAにしたとき、「1本前の足」でだけ発注した理由
検証のために、SMC-Signal の判定をそのまま使うEAを作ったことがあります。そのとき、発注のルールを1つ決めました。
理由は2つです。
- インジは、チャートに入れた瞬間に、過去の矢印をまとめて描きます。この制限がないと、EAは入れた瞬間に、過去の矢印の分だけ発注してしまいます
- インジは、新しい足のたびに過去をまとめて計算し直します。古い足に、あとから矢印が見つかることがあります。その矢印で発注すると、矢印の価格ではなく、今の価格で入ることになります
古い足に、あとから矢印が付いていないかは、以前の記事の方法で測れます。直す前の版では、途中で現れた矢印の36〜42%が、8本以上前の足に付いていました。今の版では0本です。
画面とのずれ方の、まとめ
- 高値・安値の印:5本たってから、5本前の足に付く
- ブレイクの矢印:抜けた足が確定したときに、その足に付く
- 目で見た高値と、インジの高値は違うことがある:左右5本の条件を満たしていない高値は、インジにとって高値ではない
- 利確の目安:矢印の時点で確定していた高値・安値だけで決める
作る側として、決めていること
- 高値・安値は、左右の本数で確定させる。確定するまでは使わない
- ブレイクは、終値とATRの上乗せで判定する。ヒゲでは判定しない
- 過去の矢印を計算し直すときも、その足の時点で確定していたものだけを使う
- EAで使うなら、いま確定した足の矢印だけで発注する
SMC-Radar と SMC-Signal
SMC-Radar は、BOS・CHoCH・OB・FVGなどを、チャートに自動で描くインジです。SMC-Signal は、それを5つの根拠の点数にして、確定した足で矢印を出すサインツールです。高値・安値とブレイクは、どちらもこの記事で書いた決め方(左右5本・終値・ATRの0.1倍)が初期設定です。
SMC-Radar(MT4) | 販売ページを見る |
SMC-Radar for MT5 | 販売ページを見る |
SMC-Signal(MT4) | 販売ページを見る |
SMC-Signal MT5 | 販売ページを見る |
本記事は、私自身の開発で決めた定義と、確認したことをもとに書いています。BOS・CHoCHの定義は、作る人や流派によって異なります。特定の売買手法を勧めるものではありません。紹介しているインジケーターは相場分析を補助するツールであり、利益を保証するものではありません。投資判断はご自身の責任で行ってください。
最後まで読んでいただき、ありがとうございました。