JForexでの(本格)自動取引開始

なんとかストラテジーの形ができあがったので、本格的に運用することにしました。

実はJForexで自動運用するのは、事実上初めてといってもいいかもしれません。
何年か前に少し試してみて、2週間ほどで止めた記憶があります・・・
JForexは裁量取引メインで、自動取引は主にMT4/5を今までは使っていました。

JForexのメリットの1つとして、ストラテジーのリモート実行があります。
Dukascopy社のサーバ上で追加コスト無しで、実行できるシステムです。

しかし、今回は自分で実行環境を整備することにしました。
理由は以下の通り

  • 開発をEclipse上で行っており、機能クラス別に別ファイル構成にしている
  • リモート実行を可能にするためには、独自の.jfx形式に変更しなければならない
  • JForexのストラテジーエディターは、単一ファイルのみをサポートしている
    (多分。パッケージ等いくら試してもダメでした)
  • 作りが悪いのか、単一ファイル化するために、コピペのみならず、少々の手直しが必要になる
  • 将来的に他プログラムと連携させるには、リモート実行では不可能

等々の理由により、独自環境としました。

選んだのは、Google Cloud Platformです。

選んだ理由はいくつかありますが

  1. 12か月$300分の無料トライアル枠に興味があった
  2. Alway Free枠の f1-micro が、実用に耐えるのか試してみたかった
  3. 将来的にディープラーニングと連携する場合に、プリエンプティブ料金体系と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

コメントを残す

メールアドレスが公開されることはありません。