記事の目次

根拠と適用範囲

以下の定義は、Fidelity、Sierra Chart、およびChaikin Analyticsと照合されています。蓄積と分配は、価格と出来高の計算結果の解釈であり、参加者の身元や提案された設定に対する検証済みのリターンを直接観察したものではありません。[1] [2] [3]

データと市場有効な高値、安値、終値、出来高フィールドを持つ、一貫性のあるOHLCVバー。ティック出来高を使用するバージョンは価格更新アクティビティを測定するため、別途識別する必要があります。
研究対象の時間足日足バージョンと日中バージョンは、それぞれ個別にテストする必要があります。この記事で示されているウィンドウ長は、研究上の設定であり、最適化された推奨事項ではありません。
−1から1までのスケールにおける合成CMF系列は、実験的な0.05閾値を突破した後、弱まります。これは指標系列であり、価格や純資金フローではありません。図解を原寸で開く
オリジナルの合成図。−1から1スケール上の合成CMF系列は、実験的な0.05閾値を越え、その後弱まります。これは指標系列であり、価格や純資金フローではありません。

実践の流れ

実践手順: チャイキン・マネー・フロー:出来高で重み付けした終値の位置
詳しい手順を以下に示します。各段階でデータ不足や条件不成立があれば、除外理由を記録します。
  1. OHLCVを検証しますレンジの一貫性、非負のボリューム、および欠落しているバーを確認してください。
  2. 終値のレンジ内位置を計算する高値と安値が等しい場合の処理と指標の尺度を定義します。
  3. 固定ウィンドウを適用する完了した観察結果と正の分母を使用してください。
  4. 価格構造を確認するフィルターでは、無効なブレイクアウトを修復することはできません。
  5. 重み付けコントロールを比較するCMF を出来高で加重しない終値位置の指標と、コスト控除後の結果を比較します。

CMFが測るのはレンジ内の終値位置であり、前の終値からの方向ではない

OBV は直前の終値からの変化に応じて出来高に符号を付けます。CMF は現在の終値がそのバー自身のレンジの上部か下部かを測ります。H が L より大きい場合、乗数は (2C−H−L)/(H−L) で、高値なら +1、安値なら −1、中間ならゼロです。[1] 前日比で下落した日でも、その日の高値付近で引ければ正の寄与となり得ます。

CMF は各バーの乗数と出来高の積を合計し、移動窓内の総出来高で割ります。この記事は −1 から 1 の尺度を使います。結果を 100 倍する製品もあり、Chaikin Analytics は ±100 の尺度を説明しています。[3] 前者の閾値 0.05 は後者の 5 に相当します。単位を確認せず閾値を移すと、ほぼ全件またはほぼゼロ件しか通さないフィルターになり得ます。

乗数は、レンジ内の最終位置を表します。レンジ内での経路や、各取引を開始した側を再現するものではありません。高値、安値、終値、出来高が同じ2本のバーは、取引シーケンスや注文フロー履歴が大きく異なっていても、CMFへの寄与度は同じになります。

テスト前に、フラットバーと欠損データを定義する

高値と安値が等しい場合、元の分数は定義されません。ここで提案する慣例では、分母にバーのボリュームを残しつつ、乗数をゼロに設定します。これは、終値の位置から方向性を示す証拠がないことを意味します。別のプラットフォームではバーを省略したり、異なるルールを使用したりする場合があります。慣例を記録し、フラットバーが頻繁に発生する場合の感度を調べてください。

高値が安値より低いデータ、記録されたレンジ外の終値、負の出来高は除外します。分母の総出来高がゼロなら、中立のゼロではなく利用不可の値とします。Fidelity は一般的な設定として21期間を挙げています。[1] [2] 10、20、50などの代替窓は個別の研究設定として実験記録に残します。

完成バー方式の実装では、ウィンドウ全体と現在の終値観測値が受信された後に利用可能になります。効率化のため、分子と分母の合計値を継続的に計算しますが、単純なウィンドウ全体の計算結果と比較してテストしてください。特にデータに非常に大きな値と非常に小さな値が含まれている場合、小さな減算誤差が長いデータストリームで蓄積される可能性があります。

for i in full_window(t, n=21):
    assert L[i] <= C[i] <= H[i] and V[i] >= 0
    multiplier[i] = 0 if H[i] == L[i] else (2*C[i]-H[i]-L[i])/(H[i]-L[i])
denominator = sum(V[i] for i in full_window(t,21))
cmf[t] = NA if denominator == 0 else sum(multiplier[i]*V[i] for i in full_window(t,21))/denominator
filter_ok = cmf[t] > 0.05  # proposed threshold, scale -1..1

三本のバーによる計算とギャップの反例

計算を説明するために短いウィンドウのみを使用します。バー A には H=110、L=100、C=108、V=100 があり、乗数は 0.6 になります。バー B には H=112、L=102、C=104、V=200 があり、−0.6 になります。バー C には H=L=C=105 と V=100 があり、規定のフラットバールールではゼロになります。CMF は (60−120+0)/400=−0.15 です。

高値と安値が等しいバーを分子と分母の両方から除くと、結果は −0.20 になります。プラットフォームの規則が分かるまで、どちらの値もその出力と比較できません。閾値をまたぐ判定が変わり得るため、この小さな例を実装テストに含めます。

さて、昨日の終値が110で、今日はギャップダウンしてからH=101、L=99、C=100.8と取引されたとしましょう。終値が9.2下落したにもかかわらず、乗数は0.8プラスになります。CMFはギャップによる損失を直接測定していません。すべてのプラスの値を強気とみなすシステムでは、大幅な下落時に買いを入れる可能性があります。

このチャートは、提案された閾値を突破し、その後弱まる合成経路CMFを示しています。縦軸の値は指標単位であり、価格でも利益を上げた取引の割合でもありません。また、この図は過去のパフォーマンスサンプルではありません。

ブレイクアウトフィルターとパーシステンスバリアントを別々にテストする

過去の窓または確定済みピボットから抵抗水準を固定します。終値がこれを上回ったら、現在の CMF がゼロより上という条件と、直近五つの CMF のうち少なくとも四つがゼロより上という条件を比較します。後者は単一時点ではなく持続性を測ります。四と五は研究用設定であり、原著者の規則として帰属させるものではありません。

エントリは、クローズ後の次の実行可能イベントで発生します。その時点で既に判明している構造無効化レベルにストップを配置します。ベースラインが2Rターゲットと20バー時間終了を使用している場合は、CMFを使用しないブランチでもこれらの規則を維持します。そうしないと、選択と終了の変更が混在し、比較の解釈が困難になります。

肯定的な結果が出ても、価格構造の失敗は覆されません。元の無効化条件が発生した時点で、候補をキャンセルしてください。期限後に確認が届いた場合は、遡って期間を延長するのではなく、期限切れの機会として記録してください。空売りテストには、独自の実行条件と借入条件が必要です。

重なる持続性判定の窓は強く依存します。五本のバーに四つの正の観測値があっても、異なる出所からの四つの独立した票ではありません。相関した観測数を根拠のない確率や信頼度に変換してはいけません。

ダイバージェンスを確定済み価格ピボットと対応付ける

提案された強気ダイバージェンスは、2つの確定した安値を使用します。2番目の安値はより低く、同じタイムスタンプでサンプリングされたCMFはより高くなっています。マッチング許容範囲を最初に定義せずに、魅力的なCMFの底値を独自に選択しないでください。候補は、後の価格ピボットが確定した場合にのみ表示され、その後の価格トリガーが必要です。

CMF は移動窓の比率です。出来高の大きい観測値が窓から外れると、現在のバーが平常でも符号が変わることがあります。窓に入る項と外れる項の分子への寄与を記録して交差を説明します。この機械的効果は、新しい資金流入の証拠とは限りません。

乖離代替案をテストする際は、価格のみのコントロールと同じピボット検出器、確認遅延、ペアリングポリシーを使用してください。そうしないと、見かけ上のメリットがインジケーターではなく、異なるイベントタイミングから生じている可能性があります。確認前に失敗した候補も保持し、目に見える勝者がサンプル全体にならないようにしてください。

出来高加重の効果を切り分ける対照条件

CMFを、同一の価格候補における同じ終値位置乗数の非加重平均と比較してください。これは、出来高による加重が終値位置以外の有用な情報を追加するかどうかを直接的に問うものです。その後、RVOLを別の実験として追加してください。出来高から導出された2つの数量は、自動的に独立した確認としてカウントされるべきではありません。

ギャップ発生日、高値と安値が等しいバーの発生頻度、少数の大出来高バーが支配する窓について結果を分けて報告します。最終的な時系列テスト前に窓の長さと閾値を固定し、スプレッド、スリッページ、次の実行可能イベントでの現実的な約定を含め、コスト控除後の期待値、頻度、ドローダウンを示します。

計算が成功したからといって、戦略が成功したとは限りません。まず、計算結果とデータ取得日時が正しいことを確認し、次に、未知のデータに基づいて予測の有用性を評価する必要があります。勝ち銘柄の緑色のインジケーター領域は、代表的なサンプルを提供しているわけではなく、投資可能な優位性を示しているわけでもありません。

よくある落とし穴

大幅なギャップダウン後でも正の CMF

当日のレンジ内で終値が高くても、前の終値からは大幅な損失になり得ます。

計算窓から外れる観測値を無視する

符号の変化は現在の異常な取引活動ではなく、古い観測値の寄与が窓から外れたためかもしれません。

蓄積という解釈から参加者を特定したと考える

この計算式では、機関投資家が資産を購入したか、純資金が流入したかを立証することはできない。

この手法を使う前のチェックリスト

ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。

0/7 項目

よくある質問

CMFはOBVと同じですか?

いいえ。CMF は現在のバーのレンジ内における終値位置を使い、OBV は連続する終値間の方向を使います。

CMFがゼロを上回った場合、ブレイクアウトが成立するのでしょうか?

検証可能な特徴量を提供するだけです。コスト控除後の結果が改善するかは、イベント定義、市場、約定コストに依存します。

研究資料

各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。

  1. Chaikin Money FlowFidelity. 定義、式、一般的な21期間設定、および慣習的な解釈。 確認日: .
  2. Chaikin Money Flow — Studies ReferenceSierra Chart. CMF計算のプラットフォーム実装。 確認日: .
  3. Chaikin Money FlowChaikin Analytics. プロバイダーのドキュメントには、±100スケールと価格・数量の解釈について説明されています。 確認日: .

関連する手法

リスクについて

この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.

実際の資金を使う前にルールを検証する

アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。

App StoreでBacktestをダウンロード