auカブコム証券でのシステムトレードの方法(3) auカブコムのkabuステーションを、WindowsのVPSで自動起動する方法

スポンサーリンク

kabuステーションは毎日起動しなければならない

auカブコム証券で、WebAPIやWebSoketを使用して自動売買をするためには、自動売買システムを動作させるWindows端末上で、「kabuステーション」というアプリケーションを動作させる必要があります。

みなさんもそうだと思いますが、私はシステムトレードというものは一度セットアップしてしまえば、あとはほったらかしにして運用したいと考えています。

しかし、kabuステーションというアプリケーションはなかなかの曲者で、一度起動するとそのままというわけにはいきません。以下のような問題点があります。

  • kabuステーションを毎日起動しなさないと、自動売買のAPIの発行に失敗する
  • kabuステーションの起動時にパスワードの入力が必要なため、単純な自動起動ができない
  • kabuステーションは、ClickOnceという形式のアプリケーョンのため、単純に実行ファイルをキックするかたちでの起動ができない

また、すでにMT4でFXの自動売買をしている方は、WindowsのVPSサーバーをレンタルして、そこでMT4を運用している人が多いと思います。そうすると、VPSサーバを操作する方法としては、リモートデスクトップを使用すると思いますが、リモートデスクトップからの操作においても、kabuステーションの自動起動・停止は一筋縄ではいきませんでした。

現在、私は試行錯誤の末、kabuステーションの自動起動・停止をVPSサーバ上で全く手を触れることなく実施することができています。ここでは、その方法をお伝えしていきたいと思います。

実施手順

UWSCのインストール

Windowsのデスクトップ作業自動化ツールに、UWSCという有名なソフトがあります。このソフトは世界的にみても大変優秀なソフトなのですが、作者がネット上の消息を絶ってしまい、ソフトだけが存在している状態です。
しかし、他のツールと比較しても制約が少なく、安定して動作し、スクリプトを組むのも簡単であることから、kabuステーションの操作を行いのはこのツールを利用することにしました。

この記事を書くにあたり、以下のサイトを参考にさせていただきました。

パソコンの起動と同時にkabuステーションに自動ログインする方法 | コジンテキネット
auカブコム証券でAPI接続サービス「kabuステーション API」が始まりました。 このサービスは無料で使えて便利なのですが、Win...

ベクターにソフトが残っていますので、そちらからインストールしてください。

kabuステーション自動起動の設定

kabuステーションはClickOnceアプリケーションなので、ファイルをキックしても自動起動できない

冒頭でも書きましたが、kabuステーションの自動起動は直観的にはできません。kabuステーションはよくあるexe形式のファイルのアプリケーションではなく、ClickOnceと呼ばれる形式のアプリケーションだからです。

kabuステーションをインストール時に作成される以下のファイルは、アイコンからショートカット形式のファイルに見えますが、実はそうではなく、appref-ms形式というClickOnce特有の形式です。この形式のファイルは参照先が実行可能形式のファイルではないので、Windowsのコマンドプロントから直接起動することも、cmdコマンドの引数にファイル名を指定して起動することもできません。

ClickOnceアプリケーションであるkabuステーションを起動するには、Internet ExplorerからURLを指定すればよい

このappref-ms形式ファイルの実体は実はただのテキストファイルで、kaubステーションのappref-msファイルをテキストエディタで開くと、以下のようになっています。

http://download.r10.kabu.co.jp/kabustation/KabuStation.application#KabuStation.application, Culture=neutral, PublicKeyToken=51166bf540f0e773, processorArchitecture=msil

つまり、ClickOnceのappref-msファイルというのは、つまるところHTMLリンクファイルにすぎません。ClickOnce形式のアプリケーションというのは、もともと「ブラウザからリンクをクリックするだけで、ローカル端末に配布され実行される」というコンセプトのアプリケーションです。そのため、appref-msファイルはその「リンクをクリックする」という操作を代替するものなのです。

また、auカブコム証券のWebサイトにログインすると、kabuステーションを起動するボタンがあるのですが、それは上記のURLへのリンクになっています。

したがって、ClickOnceアプリケーションであるkabuステーションアプリケーションを自動起動する方法としては、一度Internet Explorereを起動して、そのリンク先として上記のURLを指定するということになります。

ちなみに、IE以外だとファイルがダウンロードされたり(Chrome)、ポップアップが出力されたり(Edge)して、うまく自動起動できませんでした。

この方法で起動すると、ショートカットで起動した場合とは異なり、kabuステーションアプリケーションの更新時にWindowsの警告が表示され、処理が止まってしまいます。
そのため、予め.exeファイルのダウンロード時に警告を出さないように設定しておく必要があります。

UWSCを用いてIEを起動するスクリプトを作成

UWSCを用いてIEを起動するUWSCのスクリプトファイルを作成します。

いろいろなサイトにやり方は書いてあると思いますが、私が使用しているスクリプトファイルの内容を載せておきます。

//
//  UWSCマクロでIEを自動操作するサンプルコード
//


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


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



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

これを拡張子.UWSとした任意のファイル名で保存しておきます。

タスクスケジューラからUWSCを実行

UWSC自体にも時間指定で実行する機能はあるのですが、私はMT4の自動起動にもWindowsのタスクスケジューラを使用しているので、kabuステーションもタスクスケジューラから実行しています。

私がWindowsタスクスケジューラに定義しているタスクの内容を載せておきます。Windows Server 2012 R2の内容ですが、他のWindowsのバージョンでも大体同じだと思います。

kabuステーションのサポート時刻は6:30以降なので、起動時刻は6:30以降にする必要があります(下記の例では7:30)。

タクスに直接Internet Explorer(iexplore.exe)を指定し、引数に”http://download.r10.kabu.co.jp/kabustation/KabuStation.application”を指定しても上手くいきませんでした。一度IEを起動してからURLを指定するかたちを再現しないと、ClickOnceアプリケーションは起動できないようです。

コメント