TradingViewのWebhookとkabu API連携|Node.jsで受信環境を構築するステップガイド

Webhook 自動売買入門| TradingView×Node.js でローカル受信する方法

前回の記事では、三菱 UFJ e スマート証券の kabu ステーション API を使って、Node.js から株の発注処理を行う方法を紹介しました。

👉 kabu ステーション API の認証と発注の基本|自動売買を始める第一歩

今回はその続編として、 TradingView のアラートから送られた Webhook 通知を、Node.js 側で受け取る仕組みを構築していきます。

📌 この記事のゴール

TradingView の Webhook 通知を Node.js で受け取り、将来的に株式発注へつなげる基盤構築の解説記事です。 TradingView チャート に仕込んだアラートをトリガーとして、Webhook 通知を Node.js(ローカルサーバー)で受信できる状態を作ることです。

今回使うのは、Expresslocaltunnelという 2 つのツールだけです。

  • Express:Node.js で簡単にサーバーを立てられる軽量フレームワーク
  • localtunnel:ローカルサーバーを一時的にインターネット公開できる便利なツール

どちらも無料で使えて、初心者でもすぐセットアップできます。

この記事でわかること

  • Node.js と Express で Webhook 受信サーバーを簡単に作る方法
  • localtunnel を使ってローカルサーバーをインターネット公開にする方法
  • TradingView 側で Webhook URL を設定し、実際に通知を飛ばす手順
  • Webhook を受信して動作確認する基本の流れ

ステップ ①: Node.js で Webhook 受信用サーバーを作成

まずは Express を使って TradingView からの Webhook を受信するサーバーを作ります。

自動売買体験記事で登場した「体験くん」の、本番環境向けバージョンを作成します。

1: プロジェクトに追加 & パッケージインストール

📌 今回の処理は、前回記事で作成した kabu-api-demo フォルダに 機能を追加する形で実装していきます。

  • まだフォルダを削除していない場合は、そのまま kabu-api-demo フォルダを使ってください。
  • ターミナルで kabu-api-demo フォルダを開きましょう。
cd path/to/kabu-api-demo

💡 コマンド操作に慣れていない方は、エクスプローラーから kabu-api-demo フォルダを右クリック → 「ターミナルで開く」でも OK です。

■ 必要なパッケージの追加インストール

npm install express

※ express は、Webhook( TradingView 側からの通知)を受け取るために必要なモジュールです。

2: Webhook 受信サーバーを作成

新しいファイル server.js を作成しましょう。

// server.js
const express = require("express");

const app = express();
app.use(express.json());

app.get("/", (req, res) => {
  res.send("サーバーは正常に動作しています!");
});

app.post("/webhook", (req, res) => {
  const timestamp = new Date().toISOString();
  console.log(`[${timestamp}] ✅ Webhook受信: ${JSON.stringify(req.body)}`);
  res.status(200).json({ message: "OK", received: req.body });
});

app.listen(3000, () => {
  console.log(
    "🚀 サーバー起動中:[http://localhost:3000](http://localhost:3000/)"
  );
});

3: server 起動

node server.js

起動後、手元のブラウザで http://localhost:3000 にアクセスしてみましょう!

「サーバーは正常に動作しています!」というテキストが表示されれば OK です。

🛡️ Windows 環境の場合、最初に「このアプリへのアクセスを許可しますか?」というファイアウォール通知が出ることがあります。
開発用のローカル環境であれば、「許可」して問題ありません。

4: curl で POST リクエストの動作テスト

curl(カール)とは、コマンドラインから HTTP リクエストを送るためのツールです。 これを使うと、簡単にサーバーに対してデータを送って動作確認ができます。

まずは TradingView の設定をする前に、curl コマンドを使って POST リクエストの受信テストをしてみましょう。

🪟 補足: Express を起動しているターミナルとは 別のウィンドウ(またはタブ) で、以下のコマンドを実行してください。

curl.exe -X POST http://localhost:3000/webhook -H "Content-Type: application/json" -d '{\"symbol\":\"8306\",\"side\":2,\"qty\":100,\"cashMargin\":1}'

正常に動作していれば、サーバー側のコンソールに以下のようなログが表示されます:

[2025-08-07T01:42:25.855Z] ✅ Webhook受信: {"symbol":"8306","side":2,"qty":100,"cashMargin":1}

これで POST リクエストを正しく受け取れていることが確認できました 🎉

ステップ ②: localtunnel で外部公開

ローカルで動かしているサーバー(http://localhost:3000)は、あくまで自分のパソコン内で動いているものなので、 外部の TradingView などのサービスからは直接アクセスできません。