さて前回は、MT4でEA運用中の「サーバ障害」と「プロセス障害」の検出及び検出時の対応について書きました。今回はその一連の機能を実現するシステムのリリースのお知らせです。
#ダウンロードは本記事最後の方にあります。
前回のブログ記事を書いた後、コメントを頂いたり、考え方を変えたりしたことが何点か。
【前回検討結果からの変更点】
--------------------------------
1.「システム異常の詳細」ポップアップ画面が表示された場合
「logs」配下に「crashlog.log」というファイルが生成されるとのコメントを頂いた。
実際試して見ると、「システム異常の詳細」表示後に出力され、MT4を再起動すると、
該当ファイルが削除される事を確認。
正直、前回記事で検討したポップアップ画面のタイトルで判別する方式が汚くて
嫌いだったので、この「crashlog.log」のファイルが生成されたかどうかで判定する
方式に変更。
該当ファイルを検出したら、MT4が該当ファイルへの書き込み完了を待ってから、
ファイル名に検出年月日/時分秒を付与したファイル名に変更してから、MT4を
再起動する様にした。
2.スレッド障害検出機能の追加
前回記事の通りの方式で実装。ただ全く未評価。他に悪影響は与えないのでロジックは
残したまま。
この機能はトレード用EA側での対応が必要なので、EA開発共通部品「ahfw」の
修正も必要なんだけど、それはまだ未実装。いづれリリースします。
3.プログラム構成からバッチファイルを削除
前回記事では、バッチファイルからMT4起動用のプロセスを起動して、そのプロセスから
MT4を起動するという方式をとっていた。
背景にはパラメータの変更をバッチファイルを書き換える事で対応しようと考えてた。
でもよく考えると、パラメータの設定は「ini形式ファイル」ですれば簡単にできる。
なので、バッチファイルをやめて、MT4起動用プロセスで「ini形式ファイル」から
各種パラメータを読み込む様に変更。
4.メール送信用バッチファイルを削除
上記「2.」とほぼ同様の理由で、メール送信ソフトの起動方法を「ini形式ファイル」に
記述すれば済む話なので、メール送信用バッチファイルは削除。
もし「WinMailCmd」以外のメール送信ソフト以外を使用して、コマンド一発でメール送信
できないタイプのソフトだった場合は、バッチファイルを作成してそれを起動すればいい話。
--------------------------------
そして結局どんな機能と構成になったかと言うと以下。
【障害監視システムの機能と方式】
--------------------------------------
1.障害監視システムの機能
●MT4プロセス障害対応機能
MT4のプロセス/スレッド障害を検出し、自動的にメール通知及びMT4を再起動
します。MT4再起動に成功した場合は、その旨をメール通知します。
設定ファイルで指定された回数以上のMT4再起動を抑止することができます。
本機能の独自ログファイルにログ出力します。
スレッド障害を検出するためにはトレード用EAを一部変更する必要があります。
●トレードサーバ障害通知機能
通常は、ティックデータを受信しない限りEAは動作しないため、トレードサーバが
長時間停止していた場合には障害を検出する事ができませんが、本システムを使用する
ことにより、トレードサーバで長時間障害が発生した場合にメール通知することが可能
となります。
2.補足説明
●上記説明の「スレッド障害」とは
MT4ではEAを動かしているチャート単位のEA障害と思ってください。
たとえば、start()関数内で処理中に無限ループに入ってしまって、いつまでたっても
start()関数から抜けない様な状態です。
たとえば、start()関数内で処理中に無限ループに入ってしまって、いつまでたっても
start()関数から抜けない様な状態です。
●MT4用EA開発共通部品「ahfw」使っていなくても大丈夫です
以前リリースしたMT4用EA開発共通部品「ahfw」を使っていなくても、
このシステム単独で機能します。ただし、「スレッド障害」検出機能は、トレード用
EAで対応する必要があります(詳細はドキュメントを参照してください)。
3.障害監視システムの方式
以下の図の、青色の部分が障害監視システムに相当します。
さて、本障害監視システムの命名
「ahfw_hc」
※「AHaha_fxtrader FrameWork Health Check」というこれまた短絡的な命名。。。
それがなんやねん。。
という話はおいといて、リリースのお知らせです。
【MT4障害監視システム「ahfw_hc]リリース】
-------------------------------
1.ダウンロード
以下のHPへのリンクからダウンロードしてください。
→ 「 MT4障害監視システム「ahfw_hc」 」
2.ダウンロードしたファイルの中身
●ユーザーズガイド
以下のファイルがユーザーズガイドです。まずはご一読ください。
「MetaTrader4EA障害監視システム「ahfw_hc」ユーザーズガイド.pdf」
●MT4障害監視アプリケーション
「Release\AHFWStartMT4.exe」 ・・・ MT4障害監視アプリケーション本体
「Release\AHFWStartMT4.ini」 ・・・ MT4障害監視アプリケーション設定ファイル
●監視用EA
「Release\experts\AHFW_HC.ex4」 ・・・ 監視用EA本体
「Release\experts\AHFW_HC.mq4」 ・・・ 監視用EAソース
3.その他
今回「MT4障害監視アプリケーション」のソースは添付してません。
理由は以下。
・VisualC++のプロジェクト関連ファイル毎リリースするか、ソースファイルだけに
するか今一歩決めきれてない。
→ できればプロジェクト関連ファイル毎リリースしたかったんですが、どうも関連
ファイル内に、私の本名が。。。
→ 別のディレクトリにコピーしたときに上手くそのままコンパイルできるか
どうかを確認しきれてない。
→ なのでソースファイルだけの提供をしようかと思ったけど、コンパイルの
仕方とかのドキュメントが間に合わない。
・不要な行(別に悪影響は無いけど)がある
それを削除→再評価してからリリースしたかったというだけの理由です。
#だって変な不要コード残ってたら恥ずかしい。。。。
いづれ少なくとも、ソースを公開します。
-------------------------------
実績はデモ口座で丸1日だけ。
#問題(誤検知)は発生しませんでした。。
度胸のある方、
ご試食ください。。。
ご試食ください。。。
そして、なかなかEA評価が進まない中、「FXシステムトレード初心者奮闘記」の「MT4用EA開発時代」は、MT4EA開発用共通部品を修正しながら、どこかに向かうのでした。
#デモ口座上の1つのMT4でEAのstart()排他処理外して約2日動かしたが、「OrderSelect問題」再発せず。。
0 件のコメント:
コメントを投稿