このツール群は Linux + Wine + MetaTrader4/5 で構成する自動売買サーバーの構築と監視をサポートするツール群です。 とくに複数の MT4/5 を扱う手間を軽減するためのものです。
このツールや関連する情報については無保証です。このツールや関連する情報を使用して被るいかなる損害も当方は一切責任を負いません。ご利用は自己責任となります。
このツール群の外側も含めた全体構成
自動売買において、最も最悪の事態は「決済されないこと」です。 MetaTraderのクラッシュやサーバーの予期せぬ再起動を検知して対処をすれば被害は最小で済みます。 そのためのツール群です。
対応している Linux のディストリビューション
動作確認環境は以下のディストリビューションの x86_64, minimal 版
動作確認環境のカーネルバージョン
まっさらな VPS に MetaTrader4/5 (以下MT4/5) を動かすのに必要なもの一式をインストール
VPS再起動時にMT4/5を自動起動
以下のことを検知してLINEに通知
↑ こうなる。そしてこの状態を保っていることを監視するためのもの。
まっさらな Linux VPS → 自動売買開始 → 監視 → 通知 までを一通りやってみましょうヽ(=´▽`=)ノ
Google Cloud Platform の一番低スペックのVPS(VMインスタンス)は無料で使えて十分実用に耐えるので、とりあえずこれで。
まずは crontab.
MAILTO=""
PATH="%%ATST_HOME%%:/bin:/usr/bin:/usr/local/bin" ← %%ATST_HOME%% の部分はインストール時に auto-trading-support-tools のパスに置換される
# List of MetaTrader which should be Monitored.
# It consists of space separated, single quoted MetaTrader name.
# ex. "('Land-FX' 'MetaTrader 5' 'MetaTrader 4')"
TARGET="('Land-FX')"
0 9 * * * check_daily.sh
* * * * * check_reboot.sh
@reboot wrapper.sh "$TARGET" mtctl.sh start
30 6 * * * wrapper.sh "$TARGET" truncate_monitoring.sh
30 8 * * * wrapper.sh "$TARGET" report_image.sh
* * * * * sleep 10; wrapper.sh "$TARGET" check_order.sh
* * * * * sleep 40; wrapper.sh "$TARGET" check_order.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_monitoring.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_process.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_ping.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_price.sh
* * * * * sleep_random.sh; wrapper.sh "$TARGET" check_spread.sh
こんな感じで設定しておけば、再起動時と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|monitor> <MetaTrader Name1> [<MetaTrader Name2> ...]
list: list MetaTrader installed
start: start MetaTrader
status: print status of specified MetaTrader
stop: stop MetaTrader
monitor: preview monitoring data file.
<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.