Giter Site home page Giter Site logo

fx-misc / auto-trading-support-tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from terukusu/auto-trading-support-tools

0.0 1.0 0.0 4.63 MB

Linux+Wine+MetaTrader 構成の自動売買サーバー運用をサポートするツール群

Home Page: https://github.com/terukusu/auto-trading-support-tools/wiki

Shell 47.60% MQL4 27.53% MQL5 24.87%

auto-trading-support-tools's Introduction

Auto Trading Support Tools

このツール群は Linux + Wine + MetaTrader4/5 で構成する自動売買サーバーの構築と監視をサポートするツール群です。 とくに複数の MT4/5 を扱う手間を軽減するためのものです。

このツールや関連する情報については無保証です。このツールや関連する情報を使用して被るいかなる損害も当方は一切責任を負いません。ご利用は自己責任となります。

このツール群の外側も含めた全体構成

自動売買において、最も最悪の事態は「決済されないこと」です。 MetaTraderのクラッシュやサーバーの予期せぬ再起動を検知して対処をすれば被害は最小で済みます。 そのためのツール群です。

  • 対応している Linux のディストリビューション

    • Ubuntu
    • Debian
  • 動作確認環境は以下のディストリビューションの x86_64, minimal 版

    • Ubuntu 14.04, 16.04, 18.04
    • Debian 8, 9
  • 動作確認環境のカーネルバージョン

    • 格安VPSに多い仮想化方式 OpenVZ で使われるカーネル
      • 2.6.32-xxx
      • 3.10.0-xxx
    • 少しお高い VPS に多い仮想化方式 KVM で使える最近のカーネル
      • 4.15.0-xxxx

このツール群でできること

  • まっさらな VPS に MetaTrader4/5 (以下MT4/5) を動かすのに必要なもの一式をインストール

  • VPS再起動時にMT4/5を自動起動

  • 以下のことを検知してLINEに通知

    • VPSの再起動検知
    • MT4/5 のクラッシュ検知
    • ソフトウェア更新有無(自動更新はしない)
    • ポジションの変化(新規、決済)の検知
    • 価格、スプレッド、Pingの異常値検知
  • 通知内容のサンプルはこちら


↑ こうなる。そしてこの状態を保っていることを監視するためのもの。

このツールがインストール・設定するもの

  • 既存パッケージの最新化
  • 可能ならば swap 領域の作成
  • vncserver + wm2
    • 要するに最小構成のGUI
  • wine
    • Linux 上で Windows 用アプリを動かすソフト
  • MT4 インストーラ の起動
    • MT4 のインストールは GUI での操作が必要なためインストーラ起動後は手動で進める必要あり
    • MT5を使う場合はインストーラの起動も手動
  • スプレッド等のモニタリングデータをファイルに書き出すためのEA

Google の無料VPSでの例

まっさらな Linux VPS → 自動売買開始 → 監視 → 通知 までを一通りやってみましょうヽ(=´▽`=)ノ

Google Cloud Platform の一番低スペックのVPS(VMインスタンス)無料で使えて十分実用に耐えるので、とりあえずこれで。

  1. VMインスタンス作成
  2. 自動売買に必要なものをインストール
  3. VMインスタンスの GUI にリモート接続
  4. MetaTrader をインストール・設定
  5. LINE への通知設定(LINE側)
  6. LINE への通知設定(VM側)
  7. 再起動検知やMT4/5クラッシュ検知を設定
  8. 自動売買を開始する
  9. ポジション新規/決済、価格、スプレッド、Pingの異常検知を設定

を、一通り行っている作業動画がこちら↓

おまけ

既にLinux + Wine + MetaTrader4/5 で自動売買をしている人向けの紹介

まずは 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.