更新情報
自動売買環境構築シリーズを刷新しました(✅ 旧版購入者様への特典あり)
この度、
自動売買
環境構築シリーズを2026年最新版へとアップデートしました。
本シリーズはこれまで有料記事として提供してまいりましたが、今回の刷新を機に主要ステップを無料公開いたしました。
📢 旧シリーズ(有料記事)をご購入いただいた方へ
これまで多くのフィードバックをいただき、心より感謝申し上げます。旧版をご購入いただいた皆様には、特典をご用意しております。
特典の受け取り方法や代行の詳細については、下記の案内ページをご確認ください。
👉️ (KFO) 環境構築代行・優待特典のご案内
なお、ご購入済みの旧記事(アーカイブ)も引き続き閲覧可能です。
👉️ 旧シリーズ:自動売買環境構築 2025 を見る
API 認証と発注処理を行う受信サーバーを Node.js で作成する
自動売買
を始めるうえで、避けて通れないのが「
API
による発注処理」です。
三菱 UFJ e スマート証券のkabu ステーション
API
を使えば、これまで手動で行っていた注文操作を、コードで自動化できるようになります。
この記事では、その第一歩として「
API
認証と発注処理」を
Node.js
というツールを使って動かしていきます。
💡 まずはコピペで OK!初心者でも動かせるように構成しています
✅ 本記事のコードは 基本コピペで OK!
「まずは動くこと」を目標に、最小構成でシンプルに解説しています。
もちろん、より深く理解できるに越したことはありませんが、
最初は 動かしてみるだけでも十分な一歩です ✨
補足や解説も入れてあるので、理解を深めたい方もご安心ください!
💡 JavaScript の基礎知識がなくても、手順通りに進めれば問題ありません。まずは「動かしてみること」を最優先にしています。
👥 この記事は誰向け?
この記事は以下のような方におすすめです。
-
Node.js
初心者やプログラミング経験が少ない方でも、
自動売買
の基礎を体験したい方
- kabu ステーション
API
を使った
自動売買
に興味がある方
- 手動での株注文から、自動化にステップアップしたい方
💡 ※本シリーズ内容は「注文処理の構成・学習用サンプル」です。
実運用前に必ずテスト環境または小額で動作確認を行ってください。
📦 テンプレート販売について
👉 TradingView × Node.js × kabu API 自動売買テンプレートから有料でダウンロード可能です。
シリーズ記事の手順通りでも自力構築は可能です。時間を節約したい方・すぐ動かしたい方はご活用ください。
⚠️ 購入するだけで
自動売買
環境が完成するものではありません。記事に沿って設定・
API
接続・動作確認を行う必要があります。
【環境構築代行 KFO(Kabutech Flex Order)】
「自分でコードを書いてデバッグする時間は、ない」 「とにかく安定環境で運用を始めたい」
という方は、構築を丸投げして「最短距離」で実戦に入ってください。
👉 KFO(Kabutech Flex Order) 環境構築代行サービス詳細はこちら
Node.js ってなに?なぜ使うの?
Node.js
(ノードジェイエス)とは、JavaScript というプログラミング言語を使って「サーバー側の処理」を実行できるツールです。
もともと JavaScript は Web ブラウザの中で使われるものでしたが、
Node.js
を使うことで「自分のパソコンでスクリプトを動かす」ことが可能になります。
💡 今回の活用イメージ
この連載では、たとえば以下のような構成で
Node.js
を活用していきます:
-
TradingView
から
Webhook
で売買シグナルを受け取る
- 受け取ったシグナルをもとに、
Node.js
から kabu ステーション
API
へ注文を送信する
- 応用編として
Slack
連携なども可能
自動売買
の分野では、Python がよく使われる印象があるかもしれませんが、
Node.js
も十分に実用的です。
特に、
Webhook
連携や
API
通信をシンプルに書ける点で扱いやすく、自動化との相性も良好です。
詳しく理解したい方はこちら
👉️ JavaScript(Node.js)でのkabuステーション API運用時の注意点まとめ
本記事でできること
この記事では、以下の流れを順を追って解説していきます。
-
Node.js
のインストールと環境構築
-
API
認証
トークン
の取得(ログイン処理)
- 株の注文を出すコードの実装
- よくあるエラーと実行時の注意点
💡 この記事では、すでに kabu ステーションのインストールと
API
キー発行が済んでいることを前提としています。
まだの方は、先に事前ガイドをご確認ください。
1. Node.js のインストールと環境構築
Step 1 | Node.js をインストールしよう
まずは、
Node.js
本体をパソコンにインストールしましょう。
公式サイト(日本語あり)
👉 https://nodejs.org/ja
- ページを開いたら Windows インストーラー(.msi)をクリックしてダウンロードします。
- ダウンロードした .msi ファイルを実行し、基本的にはすべてデフォルトで「Next」を連打でインストール OK。特別な設定は不要です。
- 一部ライセンスに「Accept(同意)」のチェックが必要になりますが、
Node.js
は無料で利用できます。
✅ インストール確認コマンド(コマンドプロンプトの使い方)
Node.js
をインストールできたかどうかを確認するために、パソコンで「コマンド」を入力してチェックします。
📌 Windows でコマンドプロンプトを開く方法
- スタートメニューを開く(Windows キー)
- 「cmd」と入力して、「コマンドプロンプト」をクリック
「PowerShell」や「Windows ターミナル」でも同様に使えます
黒い画面が出てきたら、以下のコマンドを順番に入力してみてください。
node -v
npm -v
それぞれ、v●.●.● のようなバージョン番号が表示されれば OK です。
これで
Node.js
と、そのパッケージ管理ツールである npm(エヌピーエム)が使えるようになります。
もし「node というコマンドは認識されません」と表示された場合は、インストールがうまく反映されていない可能性があります。
その場合は、いったん
Node.js
を再インストールしてみてください。
Step 2 |作業用フォルダを作成しよう
コードを書いていくための作業フォルダを、自分のわかりやすい場所(例:デスクトップ)に作成しましょう。
📌 フォルダの作成方法
- デスクトップなどで右クリック → 「新規作成」 → 「フォルダー」
- フォルダ名を kabu-api-demo にする
📌 コマンドプロンプトをそのフォルダで開く
- 作った kabu-api-demo フォルダを 右クリック
- 「ターミナルで開く」または「コマンドプロンプトをここで開く」を選択
- ※表示される内容は Windows のバージョンによって異なります
✅ この操作で、最初からそのフォルダに入った状態でコマンドが実行できます
npm init -y
これを実行すると、
Node.js
のプロジェクト設定が完了します!🎉
フォルダ内に package.json というファイルができていれば成功です。
💡 .json 等の拡張子 が見えていない場合は、エクスプローラー上部の「表示」→「ファイル名拡張子」にチェックを入れると表示されます。
Step 3 | kabu ステーション API で認証トークンを取得しよう
kabu ステーション
API
を使うには、まず最初に「認証
トークン
」を取得する必要があります。
この「認証
トークン
」は、プログラムが正しくログインしていることを示す“鍵”のようなもので、
API
パスワードを使って取得します。
取得した
トークン
を使うことで、初めて株価を取得したり、注文を出したりといった操作ができるようになります。
💡
API
パスワードは kabu ステーション上で事前に設定しておく必要があります(後ほど詳しく解説します)
まずは検証用 API で安全にテストします
いきなり本番環境での処理は不安…という方も多いはず。
まずは検証用
API
で、注文の流れだけを確認してみましょう。
そのうえで問題がなければ、本番環境に切り替える形が安心です。
📦 必要な準備:axios ライブラリのインストール
自動売買
では、
API
に対して「データちょうだい!」「注文して!」といったリクエストを送る必要があります。
この通信をラクにしてくれるのが、
axios
というライブラリです。
Node.js
にも標準で通信機能はありますが、
axios
を使うとシンプルなコードで書けて、エラー処理もしやすいので、多くの現場で使われています。
ターミナルで以下を実行します:(前回 STEP2 で作成した kabu-api-demo で実行)
npm install axios
✍️ 「認証トークン」を取得するコードを書いてみよう
まず、先ほど作成したフォルダ(例:kabu-api-demo)の中に、
新しいファイル auth.js を作成しましょう。
📌 ファイル作成方法(Windows の場合)
- エクスプローラーで kabu-api-demo フォルダを開く
- 右クリック → 「新規作成」 → 「テキスト ドキュメント」
- ファイル名を auth.js に変更(拡張子 .txt を .js に)
💡 コードファイルの編集
作成した auth.js ファイルを編集するには、次の手順で OK です:
- ファイルを右クリックし、「メモ帳」または「Visual Studio Code(VS Code)」を選んで開きます
- メモ帳は Windows に最初から入っているので手軽に使えます
- VS Code はプログラミングに適した無料エディタです
※ 初めての方には「Visual Studio Code」という無料エディタがおすすめです。シンプルで使いやすく、プログラミングにも向いています。
👉 https://code.visualstudio.com/
auth.js をエディタで開き以下のコードをに貼り付けてください:
// auth.js
const axios = require("axios");
const data = {
APIPassword: "ここにAPIパスワード",
// 実際のAPIパスワードに置き換えてください。
// kabu ステーション上で設定・確認できます。(検証用/本番用があります)
};
const url = "http://localhost:18081/kabusapi/token"; // 検証用
// const url = 'http://localhost:18080/kabusapi/token'; // 本番用
axios
.post(url, data, {
headers: {
"Content-Type": "application/json",
},
})
.then((response) => {
console.log("ステータス:", response.status, response.statusText);
console.log("レスポンスヘッダー:", response.headers);
console.log("レスポンスデータ:", response.data);
})
.catch((error) => {
if (error.response) {
console.error("APIエラー:", error.response.status, error.response.data);
} else {
console.error("通信エラー:", error.message);
}
});
🚀 実行してみよう
コマンドプロンプトまたはターミナルで以下を入力:
node auth.js
✅ 結果
下記のように表示されれば成功です 🎉
レスポンスデータ: { ResultCode: 0, Token: 'ここに認証トークン' }
補足とトラブルヒント
🔐 認証トークンについての補足
認証
トークン
は、kabu ステーションを起動している間だけ有効です。
そのため、次のようなタイミングでは
トークン
を再取得する必要があります:
- PC を再起動したとき
- kabu ステーションを再起動したとき
- 一定時間経過して
トークン
の有効期限が切れたとき
💡 トラブル対処ヒント
- kabu ステーション が起動していないと失敗します!
→ 必ず「
API
の有効化(ON)」状態にしておきましょう
- パスワードが間違っている場合は 401 エラーになります
続く Step 4 では、この
トークン
を使って実際に株のデータを取得したり、発注するステップに進みます!
Step 4 |認証トークンを使って発注してみよう
ここでは、Step 3 で取得した 認証
トークン
を使って、実際に株の注文を出す方法を解説します。
これが、
自動売買
システムの“心臓部”
とも言える処理です。
✍️ 発注コードの準備
プロジェクトフォルダ内に新しく send-order.js というファイルを作成してください。
📁 ファイル作成手順
- フォルダ内を右クリック → 「新規作成」 → 「テキスト ドキュメント」
- ファイル名を send-order.js に変更
📝 ひな形コード(シンプルな
成行
買い注文)
// send-order.js
const axios = require("axios");
const token = "取得したトークンに置き換えてください"; // 取得したトークンに置き換えてください
// const url = "http://localhost:18080/kabusapi/sendorder"; // 本番用URL
const url = "http://localhost:18081/kabusapi/sendorder"; // 検証用URL
var data = {
Symbol: "8306", // 銘柄コード(例:8306 は三菱UFJフィナンシャル・グループ)
Exchange: 9, // 市場コード(9: SOR)
SecurityType: 1, // 商品種別(1: 株式)
Side: "2", // 売買区分('1': 売、'2': 買)
CashMargin: 2, // (2:信用新規)
MarginTradeType: 1, // ((1: 制度信用)
DelivType: 0, // (0:指定なし)
AccountType: 4, // 口座種別(4: 特定)
Qty: 100, // 注文数量(例:100株)
FrontOrderType: 10, // 注文種類(10: 成行)
Price: 0, // 注文価格(成行を指定した場合、0を指定)
ExpireDay: 0, // 有効期限(0: 本日限り)
};
axios
.post(url, data, {
headers: {
"Content-Type": "application/json",
"X-API-KEY": token,
},
})
.then((response) => {
console.log("注文成功:", response.data);
})
.catch((error) => {
if (error.response) {
console.error("APIエラー:", error.response.status, error.response.data);
} else {
console.error("通信エラー:", error.message);
}
});
📌 実行手順
- kabu ステーションを起動しておく(
API
ON 状態)
- auth.js を実行して
トークン
を取得
- 取得した
トークン
文字列を send-order.js の config.token に貼り付け
- ターミナルで以下を実行:
node send-order.js
✅ 成功時のレスポンス例:
注文成功: { Result: 0, OrderId: null }
💡 ここまでは検証 URL なので、実際には注文は通りません。(OrderId が null)
🟢 テストが問題なければ…いよいよ本番注文!
検証用
API
での注文が成功したら、いよいよ本番環境でリアルな発注を試すステップです。
最初は少額・慎重に、でも自分のコードで株が動く瞬間はちょっと感動モノです!✨
🔄 本番に切り替えるには?
やることはシンプル。
これまでに作成した auth.js と send-order.js の
API
パスワードやベース URL を本番用に変更だけです 👇
📌
API
パスワードと URL 以外のコードや
トークン
取得の流れは変わりません。
auth.js と send-order.js の両方を同じ環境(検証 or 本番)に統一してください。
パスワードとベース URL が混在していると認証エラーになります。
■auth.js
- 本番用の
API
パスワードに変更
- url を本番用に変更(18081 -> 18080)
const data = {
APIPassword: "本番用のAPIパスワードに変更",
};
const url = "http://localhost:18080/kabusapi/token"; // 本番用URL
再度、コマンドプロンプトまたはターミナルで以下を入力してください
node auth.js
■send-order.js
-
トークン
を再設定(本番用に再度取得した
トークン
に変更)
- url を本番用に変更(18081 -> 18080)
const token = "ここに本番用認証トークン"; // (再度auth.jsで取得した↑ものに変更)
const url = "http://localhost:18080/kabusapi/sendorder";
✅ 本番発注!
再度コマンドプロンプトまたはターミナルで以下を入力すると実際に発注されます。
node send-order.js
発注成功の確認方法
注文が成功すると、kabu ステーション上の 「株式」 ->「注文
約定
照会」に反映されます。
ここに注文が表示されていれば、
kabu API
からの発注は成功です 🎉
※💡
ザラ場
の場合はそのまま
約定
します。
🧯 よくあるエラーと対処法
発注の段階では、ちょっとした設定ミスでエラーになることがよくあります。
ここでは初心者がつまずきやすいポイントとその対処法をまとめました。
よくあるエラーコード
❌ 401 Unauthorized(認証失敗)
- 原因:
トークン
が空、間違っている、有効期限切れ
- 対処法:
- auth.js を実行して新しい
トークン
を取得
- send-order.js の config.token にコピペで貼り直す
- 再実行
❌ 400 Bad Request(パラメータミス)
- 原因:注文パラメータに不正な値(例:口座種別や銘柄コードのミス)
- 対処法:
- Symbol や FundType、AccountType の値が正しいか再確認
- kabu ステーションの口座設定と一致しているかもチェック
❌ ECONNREFUSED(接続できない)
- 原因:kabu ステーションが起動していない or
API
受信が OFF
- 対処法:
- kabu ステーションを起動し、「ツール」→「
API
」→「有効にする」が ON になっているか確認
🔍 うまくいかない時のチェックリスト
| チェック項目 |
内容 |
| kabu ステーション起動済み? |
✅ |
| API は「有効」にしてある? |
✅ |
| パスワードは合ってる? |
✅ |
| トークンは毎回貼り替えた? |
✅ |
✅ Step 5 |トークン取得と注文処理を自動化しよう(コード分離編)
✍️ ここまでで、認証
トークン
の取得から、検証用
API
での注文処理までが一通り完了しました。
ただし、実際に運用していく中では 「
トークン
を毎回コピペで貼る」
というのは面倒ですし、
トークン
の有効期限切れによるエラーも起きやすくなります。
そこで、ここでは以下のようにコードを整理して、
トークン
取得 → 発注を一括で実行できる仕組みにしてみましょう
👇 ここから先は、より実践的な「コードの自動化・構造化」に取り組んでいきます!
🔧 構成イメージ(4 ファイル構成)
作業フォルダ kabu-api-demo/ の中に、以下の 3 ファイルを用意します:
kabu-api-demo/
├─ config.js // 固定値を記載
├─ auth.js // 認証トークンを取得する関数
├─ order-data.js // 注文内容を作成するファイル
└─ send-order.js // 認証+注文を一括で実行するメインスクリプト
① 固定値を定義するファイル(config.js)
// config.js
module.exports = {
config: {
// baseUrl: "http://localhost:18080", // 本番URL
baseUrl: "http://localhost:18081", // 検証URL
apiPassword: "ここにAPIパスワード", // kabuステーションのAPI設定画面で確認
},
};
kabu ステーション
API
の基本設定を集約します。
他ファイルから共通で使えるよう、URL やパスワードをここで一元管理する事で保守性を高めたり、環境の切り替えを簡単に行えるようにしています。
② 認証トークンを取得する関数(auth.js)
// auth.js
const axios = require("axios");
const { config } = require("./config");
async function getToken() {
const url = `${config.baseUrl}/kabusapi/token`;
const data = {
APIPassword: config.apiPassword,
};
try {
const res = await axios.post(url, data, {
headers: { "Content-Type": "application/json" },
});
return res.data.Token;
} catch (err) {
console.error("❌ 認証エラー:", err.response?.data || err.message);
throw err;
}
}
module.exports = { getToken };
💡 このファイルでは getToken() 関数としてエクスポートしておくことで、他のスクリプトから簡単に再利用できます。
③ 注文内容を作成するファイル(order-data.js)
// order-data.js
const { config } = require("./config");
/**
* 信用注文データを作成する関数
*/
function createOrderData({ symbol, qty, action }) {
const order = {
Symbol: symbol,
Exchange: 9, // 市場コード(9: SOR)
SecurityType: 1, // 商品種別(1: 株式)
Side: "2", // 売買区分('1': 売、'2': 買)
CashMargin: 2, // (2:信用新規)
MarginTradeType: 1, // ((1: 制度信用)
DelivType: 0,
AccountType: 4, // 口座種別(4: 特定)
Qty: qty, // 注文数量(例:100株)
FrontOrderType: 10, // 注文種類(10: 成行)
Price: 0, // 注文価格(成行を指定した場合、0を指定)
ExpireDay: 0, // 有効期限(0: 本日限り)
};
// ---
// 信用新規の場合
// ---
if (action === "BUY") order.Side = "2";
if (action === "SELL") order.Side = "1";
// ---
// 信用返済の場合
// ---
if (action === "CLOSE_LONG" || action === "CLOSE_SHORT") {
order.CashMargin = "3"; // 信用返済
order.DelivType = 2; // 2: お預り金
order.Side = action === "CLOSE_LONG" ? "1" : "2";
order.ClosePositionOrder = 0;
}
return order;
}
module.exports = { createOrderData };
💡 発注の内容だけを分離することで、将来的に
TradingView
の
Webhook
等からの入力値に応じて柔軟に注文内容を切り替えられるようになります。コードの見通しや保守性も向上します。
④ 認証+発注を一括で行うメインスクリプト(send-order.js)
// send-order.js
const axios = require("axios");
const { config } = require("./config");
const { getToken } = require("./auth");
const { createOrderData } = require("./order-data.js");
(async () => {
try {
const token = await getToken(); // 自動でトークン取得
// -----------
// 注文内容を変える場合はここの変更をするだけに!!
// (将来的にWebhookから受け取るパラメータ)
// 例は(8306、100株を信用成行買い)
const symbol = "8306";
const qty = 100;
const action = "BUY";
// -----------
const orderData = createOrderData({
symbol,
qty,
action,
});
const res = await axios.post(
`${config.baseUrl}/kabusapi/sendorder`,
orderData,
{
headers: {
"Content-Type": "application/json",
"X-API-KEY": token,
},
},
);
console.log("✅ 注文成功:", res.data);
} catch (err) {
if (err.response) {
// APIからのレスポンスが返っている場合(400や401など)
console.error("❌ APIエラー:", err.response.status, err.response.data);
} else {
// APIサーバーにすら届いていない場合(ネットワーク障害など)
console.error("❌ 通信エラー:", err.message);
}
}
})();
💡 発注処理の起点となるファイルです。注文内容の編集は基本的に symbol や qty などを変更するだけで済むように構成されています。
Webhook
対応時にもこの形を保てば拡張しやすくなります。
✅ 実行方法はこれまでと同じ
これまでバラバラに行っていた
トークン
取得と注文処理を、自動化して 1 ファイルのみの実行で完結させます。
以下のコマンドを実行すれば、
トークン
の取得と発注が一気に完了します 🎉
node send-order.js
サンプルコードは検証用
API
向けになっています。
config.js の URL と
API
パスワードを本番用に変えると実際に発注されます。
💡 注文内容を簡単に変えられる仕組み
order-data.js に注文を作成する仕組みをまとめておくことで、
- プログラムの複雑なロジックには触れずに
- 銘柄や数量を変えるだけで再利用できる
という 「カスタマイズのしやすさ」 が手に入ります。
初心者の方でも、「コードの中身をいじって壊してしまうかも…」という不安なく、安全に設定を変えられるようになります。
🚀 次回予告:TradingView のシグナル内容に応じてから注文も変える
さらに次回の記事では、この order-data.js の内容を
TradingView
(トレーディングビュー)というツールから送られてくる
Webhook
(自動通知)で受け取り、注文内容に反映させる方法 を解説します。
チャート
上のシグナルに応じて、自動で買い注文が出る。
そんな未来を、自分の手で作れるようになります!
次回はまさに、その第一歩を踏み出します。
✅ まとめ:小さな発注から、安全に始めよう
今回は、
Node.js
を使って
kabu API
経由で発注する基本ステップを体験しました。
-
Node.js
の環境構築
- 認証
トークン
の取得
- 実際の注文送信
- 今後の拡張(
Webhook
受信、
Slack
通知など)にも対応しやすい
この流れを通して、「自分のコードで株を動かす」という初めての一歩が踏み出せたはずです。
💡 実運用前に注意すべきこと
- 最初はテスト的に 少額 & 安全な銘柄で注文するのが鉄則
-
API
の仕様や挙動は都度変更されることもあるため、公式ドキュメントを併用
次の STEP では、
TradingView
の
チャート
の
アラート
をトリガーとして、
Webhook
を受信する仕組みを構築します!💪✨
👉 TradingViewのWebhookとkabu API連携|Node.jsで受信環境を構築するステップガイド
もし「理解はできるけど、自分で組むのは大変そう…」と感じたら、それは普通です。
本記事の構成は、本業エンジニアが設計するレベルの内容も含んでいます。 「コードのデバッグに時間を溶かすより、戦略を考える時間に集中したい」 そんな方は、環境構築そのものを丸投げできるサービスも用意しています。
👉 KFO(Kabutech Flex Order) 環境構築代行サービス詳細はこちら