Nadaraya Watson Envelope MTF
- インディケータ
-
Evgenii Sutulov
I build trading indicators, strategies, and dashboards that don't repaint.
Seven years doing this. MetaTrader 4, MetaTrader 5, TradingView.
Closed bars only. What you see is what happened.
The bar being formed never changes a published value. - バージョン: 1.3
Nadaraya Watson Envelope MTF は価格に沿った滑らかな中心線と、その周囲を包むエンベロープを描き、価格がエンベロープの外で取引されたあとに内側へ戻ってきたバーを印で示します。
答える問いは狭く、そして本製品が答えると主張するのはその一つだけです。価格が自身の直近の中心から大きく離れ、いま離れることをやめた、という事実です。それを平均回帰の入り口と見るか、トレンドポジションの利益確定の場所と見るか、あるいは何とも見ないかは、利用者の判断です。インジケーターは事象の位置を示すだけで、その良し悪しを評価しません。
線の作り方
中心線は Nadaraya-Watson のカーネル回帰です。各バーはそれ以前のバーの加重平均であり、重みは距離とともに減衰するガウスカーネルで与えられます。エンベロープはその中心から上下に、指定した数の平均絶対誤差だけ離れた位置に置かれます。したがって価格が線の周りで荒れていた場所では広がり、おとなしかった場所では狭まります。
推定は因果的です。バー i はバー i、i-1、i-2 とさらに過去のバーから計算され、右側のバーが使われることは決してありません。これはチャート系サイトでカーネル回帰が通常示される形、すなわち両側で当てはめを行い、新しいバーが来るたびに線が足元で動く形からの意図的な逸脱です。本製品では、バーが確定した時点で中心線はもう変わりません。
チャートに表示されるもの
中心線は自身の傾きで色分けされ、上昇中と下降中で色が変わります。エンベロープの上下の境界は点線の帯として描かれます。BUY と SELL の印は価格がエンベロープに戻ったバーに現れ、それぞれ安値の下と高値の上に置かれます。
描画は価格ウィンドウで、ローソク足の上に行われます。
パネル
チャート上のキャンバスパネルで、ドラッグで移動でき、折りたため、閉じられます。三行の現在情報を表示します。計算が実際に走っている時間足と、有効な窓幅およびバンド幅。最後に確定したバーの結果、すなわち中心の値と、BUY の戻り、SELL の戻り、戻りなしのいずれか。そして数値がプロパティ画面から来たのかパネルから来たのか、そのうち何個が手で変更されたか。
その下に、パネルから動かせるすべての設定が現在値とともに並びます。変更された値は強調されるので、チャートが既定値で動いていないことが一目で分かります。
設定シート
歯車が三つのタブを持つ設定シートを開きます。
Values タブには、シグナルを動かしうる四つの値が入ります。時間足、窓幅 N、バンド幅 h、エンベロープ倍率です。各行にはマイナスとプラスのステッパー、有効な範囲、そしてその値を動かすと何が変わるかを説明する一文が付きます。上部のカウンターは四つのうち何個がプロパティ画面と一致しなくなっているかを示し、ボタン一つですべて元に戻せます。
Alerts タブには、マスタースイッチ、イベントごとのスイッチ、四つのチャネル、分単位の待機時間、そして有効なすべてのチャネルにテスト通知を送るボタンがあります。
Styles タブは外観だけを扱います。配色、中心線とエンベロープと矢印を描画するかどうか、線の太さ、矢印の大きさです。このタブでは何も再計算されません。中心線を非表示にしても、計算もアラートも EA からの読み取りも止まりません。
配色は三種類です。ダーク、ライト、そして青と橙を用い赤と緑を対置しない色覚異常に配慮した配色です。配色ボタンはパネルのヘッダーにあり、チャートのパレットをそれに追従させることもできます。
パネルの位置、配色、折りたたみ状態、シートで変更したすべての値はチャートごとに保存され、時間足の変更と端末の再起動をまたいで残ります。インターフェースは英語です。
アラート
初期状態では無効です。マスタースイッチはオフの状態で出荷されるため、インジケーターを適用しただけでは何も鳴りません。
イベントは BUY シグナルと SELL シグナルです。チャネルはポップアップウィンドウ、サウンド、モバイル端末へのプッシュ通知、電子メール。各イベントと各チャネルに個別のスイッチがあり、既定で2時間の待機時間が同じイベントの繰り返しを抑えます。
アラートは最後に確定したバーで発火します。加えて、既定では無効の形成中バー向けアラートが二つあります。これは現在のバーがまだ開いている間、しかも確定までの指定秒数以内にのみ知らせます。パネルでも入力でも早期と表示されているのには理由があります。バーの途中で存在する戻りは、確定前に消えることがあるからです。
Telegram は本製品には含まれません。
マルチタイムフレーム
Timeframe 設定は、インジケーターを上位時間足で計算させ、その結果をいま見ているチャートに描かせます。読み取るのは確定した上位バーだけです。チャートのバーが示す値は、そのバー自身の時刻までにすでに確定していた最も新しい上位バーのものであり、そのバーを内包する上位バーのものではありません。内包する上位バーはまだ形成中であり、リアルタイムでは知り得ないからです。
BUY と SELL の印は、上位バーが切り替わった一本のチャートバーに置かれます。中心線、エンベロープ、傾きは上位バーの全区間にわたって保持され、それが階段状の見た目を生みます。
他の時間足は端末が背後で構築するため、最初の読み取りが空で返るのは正常なことです。インジケーターは毎秒再試行し、ダウンロード待ちなのか実際に履歴が不足しているのかをパネルに表示します。バーが足りないことを理由に初期化を失敗させることはありません。
EA からの読み取り
すべてのバッファは iCustom と CopyBuffer から利用でき、二つのシグナルバッファは先頭に置かれているので、ストラテジー側で数える必要はありません。
バッファ0の Buy はシグナルバーにおける BUY 印の価格を、それ以外では EMPTY_VALUE を保持します。バッファ1の Sell は SELL 印について同じ役割を果たします。バッファ2の Center はカーネル回帰の中心線で、バッファ3はそれに対応する色インデックスです。バッファ4の Upper とバッファ5の Lower はエンベロープの上下の境界です。バッファ6と7の BuyMark と SellMark はバッファ0と1の描画用の複製です。バッファ8の Signal は下からの戻りで +1、上からの戻りで -1、戻りがなければ 0 となります。バッファ9の Slope は中心が上昇している間は +1、下降している間は -1 です。バッファ10の Override は、パネルから変更された設定の数を示します。
バッファ0と1が契約にあたります。これらは描画されず、Styles タブの設定にかかわらず毎回の計算で埋められ、データウィンドウに現れます。チャート上の矢印はインデックス6と7にある複製で、契約と歩調を合わせています。したがって矢印を消しても EA がシグナルを失うことはありません。
バッファ10があるのは、読み取っている数値が自分の渡したパラメータで計算されたものではないことを EA が判断できるようにするためです。なお、パネルから操作できるのは実際にチャートへ適用されたインスタンスだけです。iCustom で生成されたインスタンスは読み取り専用で、常に渡されたパラメータに従います。
正直な限界
未確定の現在バーに付いた印は、現れたあとに消えることがあります。バーが開いている間は価格がエンベロープの内側にあり、確定時には外側にあれば、印はなくなります。バーが確定したあとは、その印も線も変わりません。
これは売買戦略ではありません。決済ルールもポジションサイズもストップの置き方もなく、そもそも平均回帰が妥当な相場状況かどうかを判定するフィルターもありません。強いトレンドでは価格が長くエンベロープの外に留まり、最終的に生じる戻りはすべてそのトレンドに逆らうものになります。
ここでは収益額、勝率、バックテスト結果のいずれも主張しておらず、それらを推測すべきでもありません。
上位時間足では、チャートの最も古いバーに対して確定済みの上位バーが存在しない場合があり、そこは意図的に空のままにしてあります。
カーネルの窓幅はバー本数で指定します。履歴が短い場合や、ブローカーが履歴を提供しない銘柄では、線は計算に足るバーがそろった地点から始まり、それより前には描かれません。

