2021年6月27日
相場の状態判別
現在、相場の状態判別を以下のように行っている。
相場を2つの状態に分ける
価格変動は「サイクル成分」と「トレンド成分」によって形成されると考え、まず相場の状態を以下の2つに分類する。
サイクルモード
サイクル成分が支配的な状況では、価格は上下運動を行い、「上昇波動」と「下降波動」を繰り返す。 その時、トレンド成分が弱いとヨコヨコでレンジを形成し、トレンド成分が強いとトレンドに沿ったジグザグを形成することになる。
トレードモード
トレンド成分が支配的な状況ではサイクルの示す波動の限界を突破して、価格は同じ方向に動き続ける。 この状態をトレンドモードと名付け、更に4つに状態分けをする。
Cycle Indicatorの目的と要件
「Cycle Indicator」は、トレーダーが上記の状態判別を行うことをサポートをするためのもの。 複数の時間軸の状態の組み合わせで総合的に判断を行うため、それぞれの時間軸の分析は素早く行いたい。
必要な機能
- サイクルの計算
- SupportとResistanceの描写
- 状態判別のための(適応型)移動平均線
- 状態を識別しやすくするための文字出力
- その他、判断を補助する機能
文字出力はプロセスを飛ばし、結論を瞬時に把握するための機能となる。 すべてを1つのインジケーターに集約することは難しいので、メインパネル用とサブパネル用の2つを制作する。
Cycle Indicatorの改良
課題
テーブル
2つの時間軸の状態判別を文字出力して、テーブルに集約することを考えましたが、ちょっと難航しています。
study(resolution="")
としながら、テーブルをコードに含めるとエラーが出ます。
これを回避するためには、resolutionを使った簡易的な方法ではなく、security()
関数を使ったインジケーターの作りこみが必要そうです。
チャートの時間軸と上位時間時の2つの時間軸でインジケーターを走らせると当然2つのテーブルが出来上がります。 それらの位置を調整して1つのテーブルかのように見せることは可能そうなのですが、これを苦労して実現する価値があるのが微妙なところ。
チャートを見たときに素早く状態を把握できれば目的は達成できるわけで、 これまで通り、下部パネルのサイクルと一緒に状態判別を文字として表示すれば良さそうです。
ということで、2つの時間軸の状態判別を1つのテーブルに集約することは見送ることにしました。
メインパネル用
ローソク足と同じパネルに表示するインジケーターです。
ごちゃごちゃと色々描写されていますが、これで適用しているインジケーターは2つです。 同じインジケーターをチャートの時間軸と上位の時間軸で使っているだけです。 いつも掲載しているチャートと同じような見た目ですが、若干計算式が変わっています。
サブパネル用
チャート下部の別パネルに表示する相場のサイクルをビジュアル化するインジケーターです。
相場のサイクルと、右側に状態判別を文字で表示するようになっています。
文字の出力は、table
を使うとresolution絡みがやっかいなので、plotchar
を使って出力しました。
追加要素として、下のインジケーターと同様の矢印を表示するようにしました。
今回のバージョンのまとめ
大きな見た目の変化はありませんが、裏で動いているインジケーターは大分すっきりしました。 これまでと同じように、時間軸の異なる複数のチャートを行き来しながら、トレードプランを作成するためのツールとして使っていきます。
今後は、「トレードにおけるストレスをより減らすにはどうすれば良いか」という視点で、引き続きインジケーターに育てていければと思っています。