LoginSignup
2
3

More than 5 years have passed since last update.

Metatrader4プロセスが起動してなかったら、自動的に起動する仕組みを構築する

Posted at

VPSサーバ上でMetatrader4を運用していると、WindowsUpdateや運用側のメンテナンス等でOSの再起動が発生し、思わぬことでMetatrader4が停止してしまうことがある。
EAを安定稼働させるため、Metatrader4のプロセスを定期的に監視し、プロセスが起動してなかったら自動的に起動する仕組みを考えた。

VPSサーバはWindows OSなので、まずはバッチプログラムでMetatrader4のプロセスを監視するプログラムを書いた。
簡単なプログラムだが、プロセスが起動してなかったら、自動的に起動する処理を実装した。

@echo off 
rem 
rem Metatrader4のプロセスをチェックし、
rem 存在していなかったらプロセスを起動
rem
rem                                                ぶしちゃ

rem ★起動させたいMT4の実行ファイル名とパスを設定★
set APP_NAME=terminal.exe
set APP_FOLDER=C:\Program Files (x86)\FXTF MT4\

rem プロセスが起動しているかどうかを、tasklist コマンドでチェック   
for /f %%i in ('tasklist /FI "IMAGENAME eq %APP_NAME%" 2^>^&1') do (  
    if /i %%i == %APP_NAME% (
        echo Metatrader4は既に起動済みです。
        goto ENDLOOP;
    )
)

rem 起動してなければ起動する
echo Metatrader4を起動します。
start " " "%APP_FOLDER%%APP_NAME%"

rem 起動済みであれば何もせずに終了
:ENDLOOP  

このバッチプログラムを、タスクスケジューラを使って定期的に実行してやれば、Metatrader4が停止しても、自動的に起動してくれるから安心。

<参考:タスクスケジューラの使い方>
https://qiita.com/Richard_Roe/items/44e16841f16ee40c6113
http://www.atmarkit.co.jp/ait/articles/1305/31/news049.html

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3