GitHub で見る

Tape Reader 戦略ダイアグラム

ローソク足は1本の足のあいだに何が起きたかを語り、歩み値(テープ)はそれがどのように起きたかを語ります。このダイアグラムは約定データのストリームを購読し、1件ごとの約定数量を直近100件の平均数量と比較して、その平均の数倍にあたる約定を「急いでいる誰かの足跡」として扱います。読み取りは確定したローソク足ごとに1回だけ行われるため、1日に何千回も発生するストリームであっても、判断は1本の足につき1回に保たれます。

戦略の概要

  • ティックのストリームはシグナルの両方の要素を運びます。一方のコンバーターは各約定の数量を読み取り、もう一方はその価格を読み取ります。
  • 直近100件の約定数量の移動平均により、この銘柄で「普通の約定」がどの程度なのかを常に把握できます。そのためダイアグラムのどの部分も、特定の価格水準や契約サイズに縛られません。
  • 計算式が各約定の数量をその平均で割り、単純な倍率に変換します。1 は平均並みの約定、5 は直近の標準の5倍にあたる約定を意味します。
  • 1つの変数がこの倍率を、もう1つの変数が約定価格を、ローソク足が確定するまで保持します。ローソク足がそれらのトリガーであり、これによってティック速度の計測とローソク足速度の判断が同じ時計の上に置かれます。
  • Size factor との比較が、その約定が大口だったかどうかを判定します。前の値 (Previous value) ブロックとコンバーターで取得した1本前のローソク足の終値が、どちら方向だったかを判定します。
  • ポジション (Position) ブロックはゼロと3回比較され、エントリー用のノーポジション判定と、エグジット用の買い持ち判定・売り持ち判定を与えます。
  • 戦略の約定 (Strategy trades) は自己約定をすべて通知し、ローソク足カウンターをリセットします。これにより、エントリーかエグジットかを問わず約定のあとは、決められた本数のローソク足のあいだダイアグラムは市場に手を出しません。
  • 2つのエントリーはいずれも「開くのみ」に設定した ポジション変更 (Position modify) ブロックで、エグジットは「閉じる」に設定した3つ目のブロックです。そのため保有ポジションは常に1つだけで、反対方向を取る前に必ず手仕舞われます。

エントリーとエグジットの条件

  • ロングエントリー: ローソク足の確定直前に成立した最後の約定が、平均約定数量の Size factor 倍以上であり、その価格が1本前のローソク足の終値より上で、ポジションがなく、クールダウンが経過していること。ポジション変更 (Position modify) が Order volume 分を成行で買います。
  • ショートエントリー: 同じ大口約定ですが、価格が1本前のローソク足の終値より下の場合です。こちらもノーポジションの状態から、クールダウンが経過していること。ポジション変更 (Position modify) が Order volume 分を成行で売ります。
  • エグジット: 利益確定(テイクプロフィット)も損切り(ストップロス)もありません。買い持ちのときに1本前の終値より下で大口約定が成立すると買いポジションを閉じ、その終値より上で大口約定が成立すると売りポジションを閉じます。2つのエグジット条件は1つの 組み合わせ (Combination) にまとめられ、「閉じる」に設定した ポジション変更 (Position modify) ブロックを起動します。ポジションを手仕舞う約定もクールダウンを再スタートさせるため、次のエントリーは同じ本数のローソク足を待つことになります。

パラメーター

パラメーター 既定値 説明
Candles 00:05:00 ダイアグラム全体が動作するローソク足の時間軸。歩み値の読み取りはすべて、そのローソク足が確定した時点で行われます。
Average Prints 100 倍率の基準となる平均数量を、直近の何件の約定から求めるか。ウィンドウが短いほど売買の活況の変化に速く追随しますが、平均自体の振れも大きくなります。
Size Factor 5 大口とみなすために、約定が平均数量の何倍に達する必要があるか。値を上げるとシグナルはより稀で選別されたものになり、歩み値が閑散として条件を満たす約定が出ないときは値を下げます。
Cooldown Bars 3 約定のあと、次のエントリーが許可されるまでに確定したローソク足が何本経過する必要があるか。
Order Volume 1 各エントリー注文の数量(銘柄の取引単位)。手仕舞い注文の数量は保有ポジションから決まり、この値は参照されません。

ダイアグラムの詳細

  • 計測されるのは契約枚数ではなく比率です。そのため同じ Size factor は、1単位未満の刻みで気配が出る銘柄でも、整数ロットで気配が出る銘柄でも同じように読めます。
  • 平均には、比較対象となっているその約定自身も含まれます。そのため非常に大きな約定は自分のものさしをわずかに押し上げます。ウィンドウに100件ある場合、標準の5倍の約定でも倍率は4を超える値として読み取られます。
  • 読み取られる約定は、ローソク足が確定する前に届いた最後の1件です。それを保持する変数こそが、1日に何千回も発生するストリームと、1本の足につき1回だけ下すべき判断とのあいだに立っています。変数がなければ、数量の判定と価格の判定は別々の時計で答えを出し、決して一致しません。
  • クールダウンのカウンターは、エントリーのブロックではなく自己約定のブロックからリセットされるため、手仕舞いの約定でも待機が始まります。これがなければ、あるトレードのエグジットと次のエントリーが隣り合うローソク足に並んでしまいます。
  • チャートパネルには、ローソク足、平均約定数量、保持された倍率と Size factor のライン、エントリーとエグジットの注文、そしてすべての自己約定が描画されます。そのため、トレードのきっかけとなった約定を、対応するローソク足の隣で確認できます。

使い方

.json ファイルを Designer に読み込み、バックテスターで過去データを使って実行し、実運用の前にパラメーターやブロック自体を自分の銘柄に合わせて調整してください。