Pine Scriptで出来高フットプリントがご利用可能になりました

03 2

Pine Scriptが出来高フットプリントに対応しました。これにより、各価格バー内の詳細なオーダーフローに直接アクセスできるようになりました。

このアップデートにより、下位の時間足を使った回避策に頼ることなく、カスタム・フットプリント・インジケーターの構築、精密な出来高指標の取得、およびバー内のアクティビティの分析が可能になります。

Pineでフットプリントを活用するメリット

Footprintリクエストを使えば、高度なバー内データに即座にアクセスし、構造的に重要なオーダーフローレベルをマッピングできます。主な機能は以下の通りです:

  • 詳細な出来高の内訳: バー全体および特定の価格レベルにおける正確な「買い」(ask)と「売り」(bid)の合計出来高
  • 精密な出来高デルタ: 買い圧力と売り圧力の正確な差
  • 重要なオークションレベル: バーのポイント・オブ・コントロール(POC)、バリューエリア・ハイ(VAH)、バリューエリア・ロー(VAL)への即時アクセス
  • インバランス: 特定の価格行における買い・売りのインバランスデータ

request.footprint() をカスタムスクリプトと組み合わせることで、戦略と実行に集中しながら、詳細なオーダーフローデータをプログラムでモニタリングすることができます。

フットプリントとデータ構造の仕組み

request.footprint() 関数は、現在のバーの出来高フットプリント情報をリクエストするためのコアツールです。呼び出されると、そのバーのすべての出来高フットプリントデータを含むフットプリントオブジェクトを返します。

データは主に2つの構造で編成されています:

  • フットプリントオブジェクト: バー全体の指標にアクセスできます。footprint.*() 関数を使用することで、買い出来高合計、売り出来高合計、バー全体の出来高デルタなどのデータを取得できます。
  • Volume_rowオブジェクト: ポイント・オブ・コントロール(POC)やバリューエリアの境界など、フットプリント内の特定の価格行を表します。volume_row.*() 関数を使用することで、特定の行の価格レベル、出来高、出来高デルタ、インバランスを取得できます。

注: 特定のバーでフットプリントデータが利用できない場合、request.footprint() 関数は na を返します。

footprint.*()volume_row.*() 関数で指標を取得しようとする前に、返されたオブジェクトが naでないこと をスクリプトで必ず確認してください。

使用例

以下は、フットプリントをリクエストし、データポイントにアクセスする方法を示すシンプルなスクリプトです:

//@version=6
indicator("Footprint Data Highlight", overlay = true)

// Request the footprint object for the current bar (100 ticks per row, 70% Value Area)
footprint reqFootprint = request.footprint(100, 70)

// We use a block to ensure we only process data when the footprint is available
if not na(reqFootprint)
    // 1. Access overall bar metrics from the `footprint` object
    float totalBuyVol = reqFootprint.buy_volume()
    float totalSellVol = reqFootprint.sell_volume()
    float volumeDelta = reqFootprint.delta()

    // 2. Retrieve a specific `volume_row` object (the Point of Control)
    volume_row pocRow = reqFootprint.poc()

    // 3. Access specific price values from the `volume_row` object
    float pocUpperPrice = pocRow.up_price()
    float pocLowerPrice = pocRow.down_price()

// --- USING THE VARIABLES ---

// Use Buy/Sell Volume and Delta in a label
    if barstate.islast
        label.new(bar_index, high,
               text = "Buy: " + str.tostring(totalBuyVol, format.volume) +
               "\nSell: " + str.tostring(totalSellVol, format.volume) +
               "\nDelta: " + str.tostring(volumeDelta, format.volume),
               color = color.new(color.blue, 20),
               textcolor = color.white,
               style = label.style_label_down)

    // Use POC prices to highlight the POC area on the chart
    linefill.new(
               line.new(bar_index, pocUpperPrice, bar_index[1], pocUpperPrice, color = color.orange),
               line.new(bar_index, pocLowerPrice, bar_index[1], pocLowerPrice, color = color.orange),
               color.new(color.orange, 80))

// Plotting the volume delta on a separate pane (if moved to non-overlay)
// or as a reference value in the Data Window
plot(not na(reqFootprint) ? reqFootprint.total_volume() : na, "Volume Delta", display = display.data_window)

なお、フットプリント機能を使用するには、PremiumまたはUltimateプランが必要です。

Pine Script® のエクスペリエンスに関する最新の改善情報については、ユーザーマニュアルのリリースノートをご確認ください。

これらの機能が皆様のお役に立てば幸いです。プラットフォームをより良くするために、引き続きフィードバックやご提案をお寄せください。私たちは皆様のためにTradingViewを構築しており、皆様のご意見をいつでもお待ちしております。

TradingViewチーム

Look first Then leap

あなたのためのTradingView、その最高の機能を最大限にご活用ください