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ステーション自動起動の設定
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ファイルはその「リンクをクリックする」という操作を代替するものなのです。
したがって、ClickOnceアプリケーションであるkabuステーションアプリケーションを自動起動する方法としては、一度Internet Explorereを起動して、そのリンク先として上記のURLを指定するということになります。
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)。
コメント