Ichimoku Strategies の計算方法
Ichimoku Strategies の計算とは?
Ichimoku Strategies は、市場価格データからIchimoku Kinko Hyoインジケーターのコンポーネントをシステマティックに計算することを指します。このインジケーターは、ローリング統計—主にルックバックウィンドウ内の最高値と最低値、および移動平均の平滑化—から導かれる複数の線とシフトされた「クラウド」境界を生成します。
これをどのように使用するかを考える前に、安定したメカニズム(公式と必要な入力)と変動する条件(選択されたパラメータ設定、データ頻度、入力OHLCシリーズの品質)を分離することが重要です。公式を正確に知っていれば、線を独立して計算し、実装間で結果を比較することができます。
コア入力と前提条件
Ichimokuコンポーネントを計算するには、時間順序付けされたOHLC価格データシリーズが必要です。これは通常、各バー(ローソク足または時間間隔)の開、高、安、終値です。ほとんどのIchimoku実装では、計算の基礎として高、安、終値を使用します。
また、次のパラメータ(ウィンドウ長)が必要です。これらは時々設定可能です:
- Tenkan-sen期間(しばしば転換線長さと呼ばれる)
- Kijun-sen期間(しばしば基準線長さと呼ばれる)
- Senkou span B期間(しばしば先行スパンB長さと呼ばれる)
- シフト/ディスプレイスメント(前方クラウド境界がプロットされる距離と、遅行線が後方にシフトされる距離)
- オプション:どのコンポーネントが特定の平均化方法を使用するか(標準的なIchimokuでは、通常はローリング極値の中央値)
検証のための重要な前提は、同じパラメータとシフトルールを適用し、ローリングハイ/ローを計算する際に「過去のバー」の同じ定義を使用することです(例えば、現在のバーがルックバックウィンドウに含まれるかどうか)。
計算メカニズム(公式レベル)
Ichimokuの標準構造は、5つの関連コンポーネントとして理解できます。正確な名前は異なりますが、数学は一貫しています。
1) Tenkan-sen(転換線)
Tenkan-senは、Tenkan期間内の最高値と最低値の中央値です。
次のように表記します:
- HighestHigh(T) = 過去Tバー(現在のバーを含む、実装によっては別)の高値の最大値
- LowestLow(T) = 過去Tバーの安値の最小値
したがって:
- Tenkan = (HighestHigh(TenkanPeriod) + LowestLow(TenkanPeriod)) / 2
2) Kijun-sen(基準線)
Kijun-senは、Kijun期間を使用して同じ方法で計算されます:
- Kijun = (HighestHigh(KijunPeriod) + LowestLow(KijunPeriod)) / 2
3) Senkou Span A(先行スパンA)
Senkou Span Aは、上記の中央値から導かれ、ディスプレイスメント量だけ前方にシフトされます。
一般的な表現は:
- SenkouA_unshifted = (Tenkan + Kijun) / 2
- SenkouA = SenkouA_unshiftedをディスプレイスメント分前方にシフト
つまり、時間tでの値を計算し、時間t + Displacementにプロットします。
4) Senkou Span B(先行スパンB)
Senkou Span Bは、Senkou span B期間内のローリング極値の中央値を使用し、同じディスプレイスメントで前方にシフトされます:
- SenkouB_unshifted = (HighestHigh(SenkouBPeriod) + LowestLow(SenkouBPeriod)) / 2
- SenkouB = SenkouB_unshiftedをディスプレイスメント分前方にシフト
5) Chikou Span(遅行スパン)
Chikou Spanは、終値をディスプレイスメント量だけ後方にシフトしたものです:
- Chikou = 終値をディスプレイスメント分後方にシフト
つまり、時間tの終値を取り、時間t − Displacementにプロットします。
証拠または例:明示的な手順による自己チェック
この説明にはリアルタイムデータが含まれていないため、最も信頼性の高い「証拠」は、任意の歴史的OHLCデータセットに対して線を再現するために実行できる手順です。
OHLCバーを時間*t = 1, 2, 3, …*でインデックス付けし、次のパラメータを選択するとします:
- TenkanPeriod = T1
- KijunPeriod = T2
- SenkouBPeriod = T3
- Displacement = D
十分な履歴が存在する特定の時間t(t ≥ max(T1, T2, T3))で、次のように計算できます:
- バー(t − T1 + 1 … t)の高値と安値を使用してHighestHigh(T1)とLowestLow(T1)を計算します。
- Tenkan(t) = (HighestHigh(T1) + LowestLow(T1)) / 2。
- バー(t − T2 + 1 … t)のHighestHigh(T2)とLowestLow(T2)を計算します。
- Kijun(t) = (HighestHigh(T2) + LowestLow(T2)) / 2。
- バー(t − T3 + 1 … t)のHighestHigh(T3)とLowestLow(T3)を計算します。
- SenkouB_unshifted(t) = (HighestHigh(T3) + LowestLow(T3)) / 2。
- SenkouA_unshifted(t) = (Tenkan(t) + Kijun(t)) / 2。
- シフトを適用:
- SenkouA(t + D) = SenkouA_unshifted(t)
- SenkouB(t + D) = SenkouB_unshifted(t)
- Chikou(t − D) = 終値(t)。
その後、同じパラメータ値と同じバーデータ定義を使用して、チャート実装が表示する値と対応する時間の計算結果を比較して検証できます。
関連する制限事項と失敗モード
正しい公式を使用しても、検証が不十分な場合、Ichimoku計算は失敗したり誤解を招いたりすることがあります。重要な制限事項には次のものが含まれます:
-
十分な歴史的バーの不足 ローリングハイ/ローには、完全なルックバックウィンドウが必要です。データセットの初期段階では、Tenkan/Kijun/SenkouBが未定義またはプラットフォームによっては少ないポイントで計算される場合があります。これにより、出力が変わり、クロスプラットフォーム比較が不公平になります。
-
時間の整列とディスプレイスメントの混乱 Senkouスパンは前方にシフトされ、Chikouは後方にシフトされます。ディスプレイスメントを考慮せずにIchimoku線を別のシリーズ(例:終値またはローソク足)と比較すると、誤って異なる時間の値を比較してしまう可能性があります。
-
実装間のパラメータ差異 2つのチャートは「Ichimoku」を異なるウィンドウ長や異なるディスプレイスメントで表示する場合があります。このインジケーターは直接パラメータ駆動であるため、両方が「標準」であっても出力が異なることがあります。
-
データ頻度とOHLCソースの差異 異なるタイムフレーム(例:1時間バー対1日バー)を使用すると、ローリング極値と平均が変わります。また、ベンダーはOHLCを少し異なる方法で集約する場合があります(特にセッション境界付近では)、異なる高値/安値を生成します。
-
スパイクとギャップへの感度 Tenkan、Kijun、SenkouBは最高値と最低値に依存しているため、単一の極端なバーが中央値を目立つように移動させることがあります。これはローリング極値を使用する構造的な特性です。
検証と次にチェックすべきこと
計算を独立して検証するには、次の3つの実用的なチェックを「シグナル」解釈に依存せずに行うことができます:
- TenkanPeriod、KijunPeriod、SenkouBPeriod、Displacementの同じパラメータを使用していることを確認します。
- 明示的なローリングウィンドウ公式を使用して1つの歴史的時間点を再計算し、計算したTenkan/Kijun/Senkouが同じ時間のチャートの表示値と一致するか確認します。
- シフトを検証:SenkouAとSenkouBが時間t + Dにプロットされ、Chikouが時間t − Dにプロットされていることを確認します。
さらに深く理解したい場合、次の有用なステップは、設定を変更することでどのバーがローリング極値に含まれるかが変わり、ディスプレイスメントが視覚的な整列をどのように変えるかを理解することです。関連する説明は次のリンクで見つかります:
- /forex-strategies/indicator-based-forex-strategies/ichimoku-strategies/how-do-settings-change-ichimoku-strategies/