0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[悲報] auカブコムの「kabuステーションAPI」をVPS(Windows Server)で24時間自動化しようとして完全に爆死した話

0
Posted at

[悲報] auカブコムの「kabuステーションAPI」をVPS(Windows Server)で24時間自動化しようとして完全に爆死した話

皆さん、Pythonで日本株のシステムトレード(自動売買)を夢見たことはありますか?
「よし!最強の機械学習アルゴリズムができた!あとはVPS(仮想サーバー)を借りて、APIで24時間全自動でお金を稼いでらおう!」

そう意気込んで、筆者は「お名前.com」のWindowsデスクトップクラウド(Windows Server)を契約しました。
国内の個人向け日本株APIといえば、実質一択とも言える**auカブコム証券の「kabuステーションAPI」**です。

しかし、そこに待っていたのはWindows ServerとClickOnceアプリのアーキテクチャが引き起こす泥沼の地獄でした。
もし今からVPSでkabuステーションを動かそうとしている人がいれば、全力で止めるためにこの記事を書きます。


1. 悲劇の始まり:インストーラーが起動すらしない

VPS環境(Windows Server 2019/2022系)にChromeを入れ、意気揚々と公式サイトから kabuStation_Installer.exe をダウンロードしてダブルクリック。
すると、表示されたのは親の顔より見たくないこの画面。

内部エラーです。(2147483647)

エラーコード 2147483647。16進数で 0x7FFFFFFF
WindowsにおけるCOMやWPF(描画エンジン)、あるいは.NETの極めて深くて致命的な例外を表す死の宣告です。


2. エンジニアの意地:怒涛のハックと強制突破の試み

「単なるセキュリティポリシーかランタイム不足だろう」と高をくくった筆者は、AIアシスタントと共にWindows Serverの深淵に手を突っ込み始めました。

① IEセキュリティ強化(ESC)とSmartScreenの無効化

サーバー特有のガチガチのダウンロード制限をすべてレジストリやサーバーマネージャーから剥がし、完全に無防備状態のWindowsを錬成。
結果:同じエラー

② .NET Framework と Visual C++ 再頒布可能パッケージの強制叩き込み

「お前、裏で必須ライブラリ見つけられなくてクラッシュしてんだろ?」と推測し、PowerShellから直接 Microsoft のサーバーを叩いてサイレントインストールを強行。

# VC++ と .NET 4.8 の強制インストール
$vc64Url = "https://aka.ms/vs/17/release/vc_redist.x64.exe"
Invoke-WebRequest -Uri $vc64Url -OutFile "$env:TEMP\vc_redist.x64.exe"
Start-Process "$env:TEMP\vc_redist.x64.exe" -ArgumentList "/quiet /norestart" -Wait
...

結果:OS再起動後も、同じエラー

③ ClickOnce のキャッシュ爆破

「前回の失敗したプロセスがメモリやキャッシュを掴んでロックしている」と疑い、%LocalAppData%\Apps\2.0 を完全に爆破。
結果:虚しく例外を吐き続けるインストーラー

ここに至るまでありとあらゆる互換性モード(Windows 7/8)も試しましたが、kabuステーションの要塞は一切崩れませんでした。


3. なぜダメなのか?(kabuステーションAPIの絶望の仕様)

諦めかけたとき、先駆者(システムトレード界隈の著名人たち)の過去の記録を掘り起こして、根本的な**「完全なる無理ゲー」**の事実に気付きました。

根本的な勘違い。それは「kabuステーションAPI」という名前です。
一般的にWeb APIといえば、バックグラウンドのPythonプログラムからインターネット越しにピピッと注文が飛ぶ(REST API)を想像します。

しかし、kabuステーションAPIは違います。

  1. 自分のPC上に「kabuステーション本体(重いGUIアプリ)」をインストールする。
  2. 画面を開きっぱなしにしてログインしておく。
  3. その開いている「画面」に対して、Pythonから localhost:18080 へ裏口通信を送る。
  4. 「画面」がそれを代行して注文を出してくれる

つまり、絶対に画面(WPFアプリ)が立ち上がっていなければならないのです。
軽量化のための「画面用ライブラリ」が削ぎ落とされ、グラフィック処理も弱いWindows Serverの環境は、この重厚なレガシーアプリ(ClickOnce/WPF)と絶望的に相性が悪い(サポート外)のです。

さらにトドメを刺す「RDP切断の罠」

仮に、ハックにハックを重ねてどうにかVPSにインストールできたとしても、最悪の罠が待っています。
それは 「VPSの画面(リモートデスクトップ)の『✕ボタン』を閉じた途端、画面のレンダリングが停止するため、裏で待ち受けていたAPIも巻き添えになって凍結(エラー)する」 という仕様です。

先駆者すらも、「別のLinuxサーバーをわざわざもう一台借りて、そこからWindowsサーバーの画面を一生リモートデスクトップで映し続ける」という黒魔術に行き着いていました。本番の資金運用でそんな不安定なアーキテクチャは採用できません。


4. 結論と教訓

  • 結論:Windows Server(VPS) で kabuステーションAPI を「画面なしの放置で」優雅に自動化するのは物理的に不可能。
  • 代替案: 日本株システムトレードでkabuステーション(または楽天マケスピ2)を使うなら、「家のWindows 10 / 11 のパソコンを24時間つけっぱなしにする」のが一番安全で最強のアーキテクチャです。これなら何のエラーも起きません。

せっかく借りたVPSは「1日1回、株価データを大量にダウンロードしてAI予測を回し、結果だけをLINEに通知してくる『全自動シグナル配信専用マシーン』」として余生を過ごしてもらうことにしました。

「まぁ、VPS代の6,500円は勉強代として無駄になったけど、これも貴重な知見だよね!」
と自分を慰めて解約ボタンを押したところ、

「ご解約は来月末での受付となります。」

6,500円が無駄になったと思ったら、翌月以降の解約縛りで合計13,000円をドブに捨ててしまったという悲しいオチがつきました。
株の自動売買をやろうと色めき立ってVPSをポチろうとしている方、どうか私と同じ轍を踏まないでください……!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?