シグナル生成の「ワークド例」とは?
シグナル生成とは何か(定義)
シグナル生成とは、入力(たとえば、価格系列から得られるインジケーター値、モデルの出力、またはルールベースの観察)を、出力へと変換するプロセスです。この出力は、自動化された意思決定プロセス、または人間の意思決定プロセスで使用できます。この記事でいう「シグナル」とは、タイムスタンプ付きの分類(例:強気/弱気/ニュートラル)や、ルールの出力(例:「クロス条件が成立」)のような、構造化された結果を指し、将来の結果を保証するものではありません。
ワークド例とは、すべての前提が明示され、すべての計算が示され、読者が同じ入力を使って同じ手順を再実行できるような、透明性のある数値またはシナリオの手順説明です。
ワークド例:前提を明示したルールベースのシグナル生成
ここでは、2つの移動平均に基づくシンプルなルールで、1つのタイムステップにつき1回シグナルを生成すると仮定します。
前提(最初に明示)
- データ:一定間隔で取得された「終値」の固定された過去データセットを使用します。リアルタイムデータは想定しません。
- タイムステップ:価格は1時間ごとにサンプリングします。
- ウィンドウ長:短期平均は3点、長期平均は5点を使います。
- 計算:単純移動平均(SMA)を使用します。
- シグナルルール:SMA(3) > SMA(5) → 「UP」;SMA(3) < SMA(5) → 「DOWN」;等しい場合 → 「NEUTRAL」。
- コストと執行:この例では、シグナルを取引へ変換せず、コストとスリッページは無視します。
シナリオ入力
直近の終値5つを考えます(右が最新):
- 1時間前:101
- 2時間前:102
- 3時間前:100
- 4時間前:99
- 5時間前:98
計算:
- SMA(3) は最後の3点を使います:(100 + 99 + 98) / 3 = 297 / 3 = 99.0
- SMA(5) は最後の5点を使います:(101 + 102 + 100 + 99 + 98) / 5 = 500 / 5 = 100.0
ルールを適用:
- SMA(3) = 99.0、SMA(5) = 100.0
- SMA(3) < SMA(5) なので、生成されるシグナルは直近のタイムスタンプで「DOWN」です。
読者が独立して検証できること
読者は、同じ前提の数値から2つの平均を再計算し、比較の向きが一致することを確認することで、この例を検証できます。
メカニクス:何が安定で、何が変動するか
安定したメカニクス(「どうやって」):
- 定義された入力→出力の対応(計算方法とルール)。
- 明確なタイミング(どのバーまたはタイムスタンプで計算するか)。
- 決定論的な数学(同じ入力なら同じ出力が得られる)。
変動する条件(「何が変わり得るか」):
- 入力データそのもの:異なる提供元やデータクリーニングによって、異なる価格系列が生成され得ます。
- タイミングとサンプリング:異なるバー境界や更新頻度を使うと、計算される平均が変わります。
- 執行コンテキスト:正しいシグナルを生成できたとしても、実運用では執行タイミング、取引コスト、プラットフォームの挙動に依存します。
期待すべき制約と失敗パターン
- データの不一致:ライブ入力が想定した系列と異なる場合(わずかに違うだけでも)、生成されたシグナルが反転し得ます。
- 先読みとリーク:ルールが誤ってタイムスタンプの後の情報を使ってしまうと、テストではうまくいっているように見えても、正しく実行したときには成立しない可能性があります。
- パラメータへの感度:ここではウィンドウ長(3と5)を選んでいますが、変更すればシグナルの出現頻度が変わります。
- 非定常性:過去データで見えていた関係が、継続しないことがあります。
結果は市場環境、コスト、執行、管轄(jurisdiction)によって変わるため、ワークド例は予測を示すものではなく、メカニクスを示すものとして解釈すべきです。
検証と次の問い
シグナル生成を独立に検証するには、同じチェックリストに注目してください:(1) 明示された前提、(2) 明確な計算、(3) 計算された値を出力ラベルへ対応づけるルール、(4) 明確なタイムスタンプ付け。
次のステップとして、別の(ただし前提としている)入力系列でワークド例を繰り返し、メカニクスを同一に保ったまま、SMA(3) が SMA(5) をクロスしたときにシグナルがどう変わるかを観察します。
DOCUMENT END