VPSサーバ上でkabuステーションAPIを自動実行する方法(2)

kabuステーションAPI 完全自動売買

さくらのVPS for Windows Serverで「kabuステーションAPI」を自動実行して1年が経過しました。過去の記事の内容から多少の変更があるので新たな記事としてまとめます。


自動売買システムの仕様

さくらのVPSの状態

  1. 常時起動して運用(日々の再起動の必要なし)
  2. XAMPPを利用してOS起動時にWebサーバを起動
    • XAMPP起動のショートカットをスタートアップフォルダに配置する
  3. タスクスケジューラで5分毎にプログラムを実行
    • CRONTABの代替、時間に関係なくOS再起動時にも常時実行するように
  4. 自宅PCとのプログラムファイル同期はGoogleドライブにて行う
    • さくらのVPSの設定はリモートデスクトップ接続で簡単にファイル配置できる

システム実行の順序等

  1. 自宅PCを自動起動(BIOSの自動起動設定)
  2. 自宅PCから、さくらのVPSにリモートデスクトップ接続
    • パスワードなしの自動ログイン専用ユーザーを作成
    • リモートデスクトップ接続のショートカットをスタートアップフォルダに配置する
  3. さくらのVPSで、UWSCを使って「kabuステーションを起動」
  4. さくらのVPSで、UWSCを使って「kabuステーションにログイン」
  5. kabuステーションAPIを使った自動売買の実行
  6. さくらのVPSで、タスクスケジューラを使い「kabuステーションを停止」

UWSCやパソコンの自動起動などは過去の記事を参照


定時にUWSCを実行するBATファイル

timeout 3

"C:\Users\Administrator\Desktop\uwsc5302\UWSC.exe" "C:\Users\Administrator\Desktop\start_ie.uws"

timeout 120

"C:\Users\Administrator\Desktop\uwsc5302\UWSC.exe" "C:\Users\Administrator\Desktop\ks_login.uws"

exit

タスクスケジューラで特定の時間に実行する、kabuステーションを起動後、120秒待ってからログインを試みる

※平日のみシステムを起動して自動売買を実行する設定


IEを経由してkabuステーションを起動するUWSCコマンド

//---IEを起動
ie = createOLEobj("InternetExplorer.Application")

//---起動中のIEを見えるように
//ie.visible = True

//---URLにジャンプ
ie.navigate("http://download.r10.kabu.co.jp/kabustation/KabuStation.application")

kabuステーションの自動起動には、ブラウザを経由する必要があるのでこのようになる


kabuステーションにログインするUWSCコマンド

kabucom_password = "xxxxxxxxxx"

//---kabuステーションのウィンドウのタイトル名
kabustation_title = "ログイン"

//---タイトル名からウィンドウIDを取得
window_id = GETID(kabustation_title)

//---IDが見つかれば実行する
IF window_id <>-1 THEN

	//---ウィンドウをアクティブ化
	CTRLWIN(window_id , ACTIVATE)
	
	//---2秒待つ
	SLEEP(2)

	//---パスワードを入力する
	SENDSTR(window_id , kabucom_password , 1)

	//---2秒待つ
	SLEEP(2)

	//---エンターキーを押す
	SCKEY(window_id , VK_RETURN)
	
ENDIF

このログイン部分は1年前と変更はない


タスクスケジューラで「kabuステーションを停止」する

kabuステーションは毎日起動しなおさなければ、情報が更新されずに利用できないので、自動売買システム終了後には、自動的にプログラムを閉じるようにします。

プログラム taskkill 引数の追加 /f /IM KabuS.exe を定時に実行する

※平日のみシステムを起動して自動売買を実行する設定


さくらのVPS上でのプログラム(PHP)の5分毎の実行

プログラム C:\xampp\php\php.exe 引数の追加 -f C:\MyDATA\__LocalWeb\cron.php を5分毎に実行する

※CLI版のPHPまでのPATH、実行するPHPファイルまでのPATHに変更する


その他メモ

  • 11:30以降注文を変更しても、反映は12:05以降となるので、12:10頃に発注する
  • 翌日の値洗いが夕方頃行われるので、15:00以降の発注は、17:00以降に行う
  • たまに異常にレスポンスが悪い時があるので、ザラバ中には発注APIは使わない運用

なんの為にこの記事を書いているの?

個人向けで国内唯一と思われる株取引APIサービスが終了しては困るからです!

株の取引には法的な制約も多くあるため、縛りもあり使い勝手も悪い微妙なカブコムさんのAPIサービスを、みんなで使って盛り上げて行きましょう(サービス終了しないように)


(追記) 2024-09-23

2024/9/21以降、kabuステーションにパスワードも保存出来るようになったので、kabuステーションにログインするUWSCコマンドが簡略化できます。

//---kabuステーションのウィンドウのタイトル名
kabustation_title = "ログイン"

//---タイトル名からウィンドウIDを取得
window_id = GETID(kabustation_title)

//---IDが見つかれば実行する
IF window_id <>-1 THEN

	//---ウィンドウをアクティブ化
	CTRLWIN(window_id , ACTIVATE)
	
	//---10秒待つ
	SLEEP(10)

	//---エンターキーを押す
	SCKEY(window_id , VK_RETURN)

ENDIF


(追記) 2024-10-15

kabuステーションのアップデートでパスワード保存機能が動作しなくなっていました。auカブコムさん雑すぎる、、、


(追記) 2024-10-17

kabuステーションのシステム設定で「保存されているログインパスワードを削除する」を実行すると復活しました。何かしらの設定がこっそり変えられていたようです。

パスワードが表示されている状態で再度パスワードを入力しても正常にログインできたので、簡略化せずにパスワードを再入力するようにしました。