「株テック | Kabutech Lab.」は、日本株トレードを初心者向けに解説するメディアです。

ツールの使い方や考え方、環境構築方法を学ぶ場として、主に以下の内容を解説しています:

  • TradingViewを使ったバックテスト・ストラテジーの実践情報
    (プログラミング知識がなくても始めやすい検証ツールです)
  • 三菱UFJ eスマート証券のkabu APIを使った環境構築
    (日本株の発注が可能な数少ないAPI接続サービスです)

バックテストは自作プログラム(Pandasなど)で応用可能、発注は他の証券会社のRSSなどでも対応できます。
特定の証券会社やツールを強く推奨するものではありません。

以下の点にご留意ください:

  • 個別銘柄の売買や投資判断の助言は行いません。
  • サンプルのストラテジーやコードは学習・検証用の参考資料であり、実際の売買や利益を保証しません。
  • バックテストは過去データに基づく結果であり、将来の成果を保証しません。
  • 自動売買環境はエラーハンドリングと十分な整備が必須です。
  • 市場変動、システム障害、予期せぬ遅延やエラーなどのリスクがあります。

投資はあくまで自己責任です。リスクを理解して慎重に取り組んでください。

当サイトでは一部アフィリエイト広告を利用しています (プライバシーポリシー)。

ご質問はこちらまでお気軽にどうぞ。

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

自動売買環境構築 ステップ一覧

本シリーズは、自動売買環境構築を基礎から応用まで実践的に学べる構成です。
STEP1: 体験 → STEP2: 事前ガイド → STEP3以降: 実践活用

🔧 ストラテジー作成

戦略設計からPineスクリプトでの実装までをガイド

詳しく見る

📊 バックテスト

戦略を検証し、改善するための手法と実装

詳しく見る

🛠️ 自動売買の構築

TradingView, kabu API などを使った環境構築ステップ

詳しく見る

📦 システム拡張

Slack連携やプロセス監視・安定強化など、運用拡張手法

詳しく見る

更新情報

2025-10-08 TradingView × Node.js × kabu API 自動売買テンプレートのご案内の追加

本シリーズ記事内容をまとめた テンプレートDLのお知らせを掲載しました。
記事と組み合わせることで、環境構築や 自動売買 運用を最短でセットアップできます。
※テンプレートは記事本文とは別途購入が必要です。

2025-10-21 localtunnelの補足とCloudflare運用のリンクを追加

localtunnelの利用に関する補足情報と、Cloudflare Tunnelを活用した運用方法のリンクを追加しました。

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

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

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

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

👥 この記事は誰向け?

この記事は以下のような方におすすめです。

  • 自動売買を始めてみたいけど、いきなり本番は不安な方
  • TradingView のアラートを活用して株の売買を自動化したい方
  • 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 などのサービスからは直接アクセスできません。