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: プロジェクト作成 & パッケージインストール

📌 まずは作業用に新たにプロジェクトを作成します。

  • デスクトップなどで右クリック → 「新規作成」 → 「フォルダー」
  • フォルダ名を tv-webhook にする
  • フォルダを右クリック「ターミナルで開く」または「コマンドプロンプトをここで開く」を選択

💡 コマンド操作に慣れている方はコマンドで作成してももちろん OK です

■ 初期化

npm init -y

■ パッケージインストール

npm install express body-parser

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

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

// server.js
const express = require("express");
const bodyParser = require("body-parser");

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

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

app.post("/webhook", (req, res) => {
  console.log("✅ 受信データ:", 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 '{\"action\":\"buy\",\"symbol\":\"7203\",\"price\":2500}'

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

✅ 受信データ: { action: 'buy', symbol: '7203', price: 2500 }

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

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

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