稼働までの手順
KabuLinkは、利用者自身がTradingViewで作成したアラートを、利用者自身の証券口座接続へ中継するサービスです。登録後は、まず接続を1つ作成して接続テストから始めます。売買シグナル、投資判断、銘柄推奨は提供しません。試行モードの違いは 試行モード にまとめています。
全体の流れ
- アカウント登録と利用規約・プライバシーポリシー・リスク説明への同意。
- 必要に応じてStarter trialまたはProを開始。試用後はStarterへ継続課金します。既存契約の変更は契約管理から行います。
- 登録後は、まず接続を1つ作成し、最初は試行モードで確認。
- 接続テストを実行し、接続一覧の状態がOKになることを確認。
- TradingViewのWebhook URLとMessage JSONを設定。
- Webhookテストと注文ログで、意図した銘柄・数量・口座・戦略IDが記録されることを確認。
- ライブ取引へ進む場合だけ、少額・最小数量で最終確認。
1. アカウント登録
KabuLink画面のアカウント欄にメールアドレスとパスワードを入力し、3つの確認チェックを入れて登録します。登録後、API Tokenが自動入力されます。
- API TokenはKabuLink画面上の操作に使われます。
- ログインし直すと新しいAPI Tokenが発行され、古いTokenは無効になります。
- 契約状態はAPI Token欄の下に表示されます。
2. 契約と接続数
1つの契約内で複数の証券口座接続を持てます。口座を増やすために同じユーザーで複数契約する必要はありません。
- starter trial: 接続1件、月間Webhook 300件、60日間の試用付き。
- starter: 接続1件、月間Webhook 300件。
- pro: 接続3件、月間Webhook 2000件。
接続数がプラン上限を超える場合や、一時的に使わない接続がある場合は、接続一覧の「停止」「再開」でWebhook処理対象にする接続だけを稼働させます。停止中の接続はWebhook処理と異常通知の対象から外れます。
3. 接続状況と通知設定
既に接続済みの場合は、まずKabuLink画面の「接続状況」と「接続一覧」を確認します。
- 接続状況では、登録済み接続、稼働中、対応が必要、停止中、Agentオンライン/オフラインを確認します。
- 接続一覧では、対象接続を選んで「接続テスト」「API状態」「注文一覧」「履歴」を確認します。
- 「メール通知設定」では、接続切れ・接続テスト失敗、Agentオフライン、再認証期限前通知のON/OFFを設定できます。
- 接続ごとの通知ON/OFFも設定できます。通知OFFでも監視と画面上の状態更新は継続します。
- 通知が多い場合は、不要な通知種類をOFFにするか、対象接続だけ通知OFFにします。使わない接続は接続一覧で停止すると、Webhook処理と異常通知の対象から外れます。
- メール本文にはKabuLink公式URLをそのまま記載します。短縮URLや外部リダイレクトURLは使いません。
4. 接続作成
接続は「発注先口座・リスク設定・Webhook URL」の単位です。同じ証券口座と同じリスク設定であれば、複数のTradingView戦略や複数銘柄で同じWebhookを使い回せます。
- 口座ID(Account ID)、市場、口座種別、税区分、取引モードを実口座に合わせます。
- Account IDは証券会社APIが口座を識別するIDです。ログインID、メールアドレス、KabuLinkのユーザーIDではありません。
- Allowed SymbolsはKabuLink側の任意の安全制限です。空欄ならKabuLink側では銘柄を絞りません。
- Allowed Symbolsは取引可能銘柄一覧ではありません。実際に取引できるかどうかは、証券会社側の市場、口座区分、権限、商品種別、取引時間、注文種別で判定されます。
- 1回の最大数量、1日の最大注文数、シグナル有効期限を先に保守的に設定します。
- 最初は試行モードを使い、dry_run、simulate、paper、readonlyの役割を分けて確認します。
5. 口座ID(Account ID)の取得方法
口座ID(Account ID)は、証券会社のAPIやGatewayが返す口座識別子を入力します。形は証券会社ごとに異なります。
- Webull: OpenAPIのaccount_listで返るaccount_idを使います。メールアドレスやWebullログインIDではありません。
- IBKR: 口座種別は実際の口座表示に合わせます。cashならcash、marginならmarginを選びます。信用・証拠金区分は通常空欄でよく、ブローカー側で明示が必要な場合だけ入力します。紙取引ではDUから始まるID、本番ではUから始まるIDになることが一般的です。
- moomoo: OpenDの口座一覧で返るacc_id等の口座識別子を使います。SIMULATE/REALや市場と一致させます。
- 複数口座が表示される場合は、発注したい口座、市場、口座種別、税区分が一致するものを選びます。
6. Webullの場合
WebullはOpenAPI Key/Secret署名方式で扱います。通常時はKabuLinkがバックグラウンドで読み取りAPIを確認し、異常時のみユーザー対応を促します。
- Webull OpenAPI Key/Secretが有効であること。
- KabuLinkサーバーIPがWebull側の許可IPに含まれていること。
- 口座ID(Account ID)はOpenAPIのaccount_listで返るaccount_idを入力し、市場と一致していること。
- 接続一覧のWebull状態または接続テストでOKになること。
- 401やapi_key_invalidなどのエラーが継続する場合は、Webull側で再ログインまたはKey/Secret再発行後に再接続します。
- 表示されたエラーコードがapi_key_invalid、ip_not_allowed、permission_denied等の場合は、Webull側設定(キー、権限、許可IP)を確認します。
7. Saxoの場合
SaxoはAccountKeyで口座を選び、さらに銘柄ごとにSaxo側のUicとAssetTypeを解決してから接続を保存します。TradingViewのtickerだけではSaxoの発注先銘柄を一意に決められない場合があるためです。
- ブローカーでSaxoを選び、Saxo Environmentは最初はSIMを選択します。
- Saxo Developer PortalのSIM 24時間トークン、またはOAuthで取得したAccess Tokenを入力します。
- 「Saxo口座候補取得」を押し、発注したい口座を選びます。ここで保存される口座ID(Account ID)はSaxoのAccountKeyです。
- Saxo銘柄検索にAAPL、NVDA、ISIN、銘柄名などを入力し、「Saxo銘柄候補取得」を押します。
- 候補のSymbol、Description、Currency、Exchange、AssetTypeを確認し、「この銘柄を使う」を押します。これでUic、AssetType、Saxo側Symbolが口座プロファイルに反映されます。
- 「接続を作成」または既存接続なら「接続を更新」を押して、AccountKey、Uic、AssetType、Saxo側Symbolを保存します。
- 接続一覧で対象接続を選び、接続テスト、Webhookテストの順に確認します。最初はdry_runのまま進めます。
- SIMでAAPLのようなtickerを使って確認する流れで問題ありません。
- 銘柄候補が複数出る場合は、取引したい市場・通貨・商品種別に一致する候補を選びます。
- Saxo接続は、誤発注防止のため、保存したSaxo銘柄マップにないTradingViewのsymbolを拒否します。複数銘柄を使う場合は、Saxo銘柄検索で対象銘柄を順番に追加してから接続を更新します。
- Saxoの実発注にはAccountKey、Uic、AssetType、LIVE環境、OAuthまたはトークン、有効なLIVE許可が必要です。
- SIMトークンは期限切れになるため、期限切れ時はSaxo側でトークンを再取得して接続情報を更新します。
8. Agent型ブローカー初回導入
kabuステーション API、IBKR、moomooなど、利用者PC側のアプリが必要な接続はKabuLink Agentを使います。AgentはKabuLinkへアウトバウンド接続するため、利用者PCのローカルAPIをインターネットへ公開する必要はありません。
迷った場合は、PC側アプリの起動、Agent対象ブローカー選択、ペアリングコマンド発行、配布ZIPダウンロード、ZIP展開、OS別実行コマンド実行、Agentオンライン確認、接続作成、接続テスト、API状態、Webhookテスト、注文一覧確認の順に進めます。証券会社別の細かな設定は Agent設定Tips にまとめています。
SBI NeoTradeなどは現在準備中です。対応が確定したら同じ手順に追加するため、現時点ではIBKR・moomoo・kabuステーションを優先して案内してください。
- KabuLink画面のKabuLink Agentセクションで、Agent名を任意で入力し、このAgentが担当するブローカーを選択します。
- 「ペアリングコマンド発行」を押します。顧客は一時コードを意識せず、画面に表示されたOS別コマンドをコピーして実行します。
- 「配布ZIPダウンロード」を押し、画面に表示されたSHA256と、Windowsの
Get-FileHash .\kabulink-agent.zip -Algorithm SHA256の結果が一致することを確認します。 - ZIPを展開します。Windowsでは例として
C:\KabuLinkAgent、Linux/macOS/WSLでは例として~/kabulink-agentに展開すると、その後の説明と合わせやすくなります。 - Windowsでは、展開した同じフォルダで画面に表示されたPowerShellコマンドを実行します。コマンドはKabuLink画面からコピーしてください。
- 権限エラーで
Register-ScheduledTaskが拒否される場合、自動起動タスク登録が失敗しています。管理者権限のPowerShellで同コマンドを再実行してください(他ユーザーの既存タスクがある場合は事前に削除)。 - KabuLinkのAgent一覧で、状態が「オンライン」、対応ブローカーに選択したブローカー、最終確認が現在時刻に近いことを確認します。更新推奨が出た場合は、同じフォルダへ最新の配布ZIPを上書きし、
update-windows-agent.ps1を実行します。 - kabuステーションの場合は、kabuステーションを起動し、ログイン済み、API有効、注文画面が見える状態にします。
- kabuステーション接続では、Agent側の
kabulink-agent.envにKABU_STATION_API_PASSWORD、KABU_STATION_ORDER_PASSWORD、KABU_STATION_BASE_URL、dry_run/readonly/liveフラグを設定します。 - 検証時は
http://localhost:18081/kabusapi、本番口座確認時はhttp://localhost:18080/kabusapiを使います。最初は必ずKABU_STATION_DRY_RUN=1、KABU_STATION_READONLY=1、KABU_STATION_ENABLE_LIVE=0で確認します。 - KabuLinkで対象ブローカーの接続を作成し、登録済みAgentを選択します。接続テスト、API状態、Webhookテストの順に確認します。
- ライブへ進む前に、注文一覧で証券会社側の状態とKabuLink注文ログが一致することを確認します。最初の実注文は対象銘柄を限定し、最小数量または十分に小さい数量で行います。
サポートからログ取得を依頼された場合は、Agentフォルダで powershell.exe -ExecutionPolicy Bypass -File .\agent-service\kabulink-agent-diagnostics.ps1 を実行します。診断ZIPではAgent tokenや証券会社パスワードはマスクされます。
9. Agent型接続が止まった場合
kabuステーションやAgentは利用者PC上で動くため、PC再起動、ログアウト、アプリ終了、ネットワーク切断で一時的に止まることがあります。復旧時は、新しいTradingViewシグナルを止めてから状態確認します。
- KabuLinkの接続一覧で対象接続を選び、「停止」を押します。
- 証券会社アプリを起動し直し、ログイン済み、API有効、注文一覧が見える状態にします。
- Agentがオフラインの場合は、KabuLink Agentフォルダで
powershell.exe -ExecutionPolicy Bypass -File .\agent-service\kabulink-agent-register-task.ps1を実行し、常駐タスクを再登録・起動します。 - 1〜2分待ってもAgentがオンラインにならない場合は、KabuLink画面で「ペアリングコマンド発行」を押し、新しいペアリングコマンドを同じAgentフォルダで実行します。
- それでもオンラインにならない場合だけ、最新の配布ZIPを上書きまたは再展開し、ペアリングコマンドを再発行して入れ直します。
- KabuLinkでAgentがオンラインになったことを確認します。
- 同じ接続で「接続テスト」「API状態」「注文一覧」の順に押します。
- 証券会社画面とKabuLink注文ログを見比べ、未完了注文の有無を確認します。
- 状態が確認できた場合だけ「再開」を押します。注文状態が不明な場合は停止のままサポートへ連絡してください。
「停止」は新しいKabuLink処理を止める操作です。証券会社側に既に出ている注文を自動で取消すものではありません。
10. 取引可能銘柄の確認
KabuLinkのAllowed Symbolsは安全のための許可リストであり、「この証券会社で取引できる銘柄一覧」を示すものではありません。
- 取引可能銘柄は、証券会社の画面、APIの銘柄検索、取引権限、口座区分、市場設定で確認します。
- KabuLinkでは接続テスト、Webull状態、dry_run/readonlyの注文プレビューで、設定ミスや権限エラーを確認します。
- ライブ取引前は、対象銘柄ごとに最小数量またはプレビューで発注可否を確認してください。
11. TradingView設定
接続作成後、Webhook URL欄で対象接続を選択し、表示されたURLをTradingView AlertのWebhook URLに貼り付けます。MessageにはJSONを設定します。
バックテストページの詳細設定からコピーする内容はTradingView側の戦略パラメータです。Webhook URLとMessage JSONは、KabuLink画面で接続ごとに生成されたものを使います。バックテストは過去データでの検証であり、将来の利益や損失回避を保証するものではありません。
{
"alert_id": "{{ticker}}-{{time}}",
"strategy_id": "swing-v1",
"strategy_name": "Swing v1",
"signal_time": "{{time}}",
"symbol": "AAPL",
"side": "buy",
"quantity": 1,
"order_type": "market"
}
- alert_idは重複しない値にします。
- strategy_idとstrategy_nameを入れると、戦略別の注文集計ができます。
- Max Signal Age Secondsを使う場合はsignal_timeを含めます。
12. 稼働前チェック
- 接続テストがOK。
- Webhookテストで注文ログが作成される。
- 注文ログの口座プロファイル、プレビュー、戦略、銘柄、数量が想定通り。
- TradingViewから実際のテストアラートを送ってログに残る。
- 異常時に問い合わせまたは通知で原因を確認できる。
13. ライブ取引へ進む場合
ライブ取引は最後の段階です。dry_runやreadonlyで一連の流れを確認した後、最小数量・限定銘柄・少ない注文数で確認してください。
- 取引モードをrealにする前に、接続テストが直近OKであること。
- WebullではWEBULL_DRY_RUN=0、WEBULL_READONLY=0、WEBULL_ENABLE_LIVE=1が必要です。
- IBKRやmoomooでは各Gateway/SDK側の本番発注許可やログイン状態も確認します。
- 想定外の挙動があれば、接続を停止して原因を確認します。