-
Notifications
You must be signed in to change notification settings - Fork 12
Home
このツール群は Linux + Wine + MetaTrader4/5 で構成する自動売買サーバーの構築と監視をサポートするツール群です。 とくに複数の MT4/5 を扱う手間を軽減するためのものです。
このツール群の外側も含めた全体構成
自動売買において、最も最悪の事態は「決済されないこと」です。 MetaTraderのクラッシュやサーバーの予期せぬ再起動を検知して対処をすれば被害は最小で済みます。 そのためのツール群です。
-
対応している Linux のディストリビューション
- Ubuntu
- Debian
-
動作確認環境は以下のディストリビューションの x86_64, minimal 版
- Ubuntu 14.04, 16.04, 18.04
- Debian 8, 9
-
動作確認環境のカーネルバージョン
-
まっさらな VPS に MetaTrader4/5 (以下MT4/5) を動かすのに必要なもの一式をインストール
-
起動時にMT4/5を自動起動
-
以下のことを検知してLINEに通知
- VPSの再起動検知
- MT4/5 のクラッシュ検知
- ソフトウェア更新有無(自動更新はしない)
- ポジションの変化(新規、決済)の検知
- 価格、スプレッド、Pingの異常値検知
↑ こうなる。そしてこの状態を保っていることを監視するためのもの。
- 既存パッケージの最新化
- 可能ならば swap 領域の作成
- vncserver + wm2
- 要するに最小構成のGUI
- wine
- Linux 上で Windows 用アプリを動かすソフト
- MT4/5 インストーラ の起動
- MT4 のインストールは GUI での操作が必要なためインストーラ起動後は手動で進める必要あり
- スプレッド等のモニタリングデータをファイルに書き出すためのEA
まっさらな Linux VPS → 自動売買開始 → 監視 → LINE通知 までを一通りやってみましょうヽ(=´▽`=)ノ
- VMインスタンス作成
- 自動売買に必要なものをインストール
- VMインスタンスの GUI にリモート接続
- MetaTrader をインストール・設定
- LINE への通知設定(LINE側)
- LINE への通知設定(VM側)
- 再起動検知やMT4/5クラッシュ検知を設定
- ポジション新規/決済、価格、スプレッド、Pingの異常検知を設定
-
Stackdriver で外側からの監視
- サーバーそのものやネットワークのダウンを検知する
- 全体構成図では LINE 通知になっていますが、まずは手順が簡単なメール通知の設定手順です
- 不正アクセス防止のところは GCE がよしなにやってくれてるので気にしなくてOK
- 他の格安VPSの場合はちゃんとしないと驚くほど攻撃を受けるので注意
まずは crontab.
# start MetaTrader automatically at boot time
@reboot "$ATST_HOME/mtctl.sh" start land-fx
0 9 * * * "$ATST_HOME/check_daily.sh"
* * * * * "$ATST_HOME/check_reboot.sh"
30 6 * * * "$ATST_HOME/truncate_monitoring.sh" land-fx
30 8 * * * "$ATST_HOME/image_report.sh" land-fx
* * * * * "$ATST_HOME/check_monitoring.sh" land-fx
* * * * * "$ATST_HOME/check_order.sh" land-fx
* * * * * "$ATST_HOME/check_process.sh" land-fx
* * * * * "$ATST_HOME/check_ping.sh" land-fx
* * * * * "$ATST_HOME/check_price.sh" land-fx
* * * * * "$ATST_HOME/check_spread.sh" land-fx
こんな感じで設定しておけば、再起動時とMT4/5プロセスが落ちたときや、ポジションの新規や決済、値動きやスプレッド、Pingに異常が有った時ににLINEへ通知してくれます。
「land-fx」となっている部分はMT4/5がインストールされているフォルダ名なら何でもよく、複数指定可能。 指定された名前に該当するMT4/5のインストールフォルダを前方一致で検索するのでフォルダ名の先頭の一部を記載しておけばOK.
@reboot の行は再起動時のMT4/5の自動起動設定です。
mtctl.sh は 複数の MT4/5 の一覧・起動・終了・状態確認ができるスクリプトです。使い方は↓こん感じ。
Usage: mtctl.sh [-qsh] <list|start|status|stop> <MetaTrader Name1> [<MetaTrader Name2> ...]
list: list MetaTrader installed
start: start MetaTrader
status: print status of specified MetaTrader
stop: stop MetaTrader
<MetaTrader Name>: folder name MetaTrader installed. It's searched in a forward match. (ex: "MetaTrader 4")
-s: when list, show running status.(slow)
-q: quiet mode. print nothing.
-h: help. print this message.