なんとかストラテジーの形ができあがったので、本格的に運用することにしました。
実はJForexで自動運用するのは、事実上初めてといってもいいかもしれません。
何年か前に少し試してみて、2週間ほどで止めた記憶があります・・・
JForexは裁量取引メインで、自動取引は主にMT4/5を今までは使っていました。
JForexのメリットの1つとして、ストラテジーのリモート実行があります。
Dukascopy社のサーバ上で追加コスト無しで、実行できるシステムです。
しかし、今回は自分で実行環境を整備することにしました。
理由は以下の通り
- 開発をEclipse上で行っており、機能クラス別に別ファイル構成にしている
- リモート実行を可能にするためには、独自の.jfx形式に変更しなければならない
- JForexのストラテジーエディターは、単一ファイルのみをサポートしている
(多分。パッケージ等いくら試してもダメでした) - 作りが悪いのか、単一ファイル化するために、コピペのみならず、少々の手直しが必要になる
- 将来的に他プログラムと連携させるには、リモート実行では不可能
等々の理由により、独自環境としました。
選んだのは、Google Cloud Platformです。
選んだ理由はいくつかありますが
- 12か月$300分の無料トライアル枠に興味があった
- Alway Free枠の f1-micro が、実用に耐えるのか試してみたかった
- 将来的にディープラーニングと連携する場合に、プリエンプティブ料金体系とTPUの存在が大きかった
でしょうか、特に#2と#3が決め手になりました。
GCPの使い方自体は調べればすぐに出てくるので省略します。
OSはCENTOSのV8を選択しました。SSHのルートログイン/パスワードログイン共にデフォルトで無効になっており、とりあえずポートだけ変更しました。
で、肝心の使用状況ですが、以下の通りです。(起動1日後の状態)
※JForexツールからではなく、SDKクライアントからストラテジーを実行しています(GUI機能は無し)
ストラテジーは2つ平行起動しています。(startStrategy()を2回発行)
1.vmstatの結果
メモリは余裕があるとまではいきませんが、スワップは発生しておらず、足りているようです。
CPUに関しては利用率は全く問題なさそうですが、rが少し大きめです。(ほぼr=3~5を維持)
ストラテジー1つでの起動であれば、もう少し減りそうです。
CPU利用率の推移
全く問題ありません。(前半の山は構築作業時のものです)
JForexツール上でのストラテジー起動になると、メモリがかなり厳しくなりそうです。
結論
GCPの無料 f1-microインスタンスでの自動取引運用は十分可能である(お勧めは1ストラテジー迄)
個人的には、多少コストが増えても n1-highcpu-2(2core、1.8GB)以上を使いたいと考えます。
おまけ
アメリカ(アイオワ)のケース
APIC: The ping is finished, the fastest API server is saved: l-ja-usa-e-97-36-b.dukascopy.com:10443 (30 ms)
日本(自宅)のケース
APIC: The ping is finished, the fastest API server is saved: l-ja-jpn-36-a.dukascopy.com:10443 (8 ms)
dukasの中継サーバまでの距離は、日本の方が近かったw
最終的には少し高いですが、チューリッヒにサーバーを置きたいですね( ̄▽ ̄)
おまけ2
コメントが残るか心配していましたが、無事ポジション一覧に残っていました。
本格運用といいながら、金額はお試しですw