2012/06/14

MT4用EA実行環境構築 - トレード用PCの障害への備えと「myfxbook」



さてまたしても1ヶ月以上前になってしまった前回は、スマホからMT4操作時の誤操作防止対策について書きました。今回は、MT4用EA実行用PCの障害発生時を想定した対策myfxbook」利用を検討している様子について書いてみたいと思います。

まず、どうやって障害を検出してそれを知るのか?という点から。

【PC障害と障害通知方法】
-------------------------
これは以下のブログ記事で書いたとおり、myfxbook」というサービスを利用する事にした。

本当は、自宅のもう一台の予備用PCからトレード用PCが動いているかどうかを監視する方法もあったけど、予備用PCがとても古い機種で、スペックが低く、立ち上げているだけで結構電力を使ってしまい、電気代に影響する事が判明。

本業ならクラスタ構成にするけど、個人でそんな事はできない。仮に電気代が問題無いレベルなのであれば、監視用アプリを作る事になる。どうせ自宅の別PCで自作監視用アプリ作るのであれば、自動切換え(フェイルオーバー)したくなるのが人情。

参考:もしPC障害対策アプリを作るとするなら
簡単な仕組みで言うと、ロック・ディスク方式で、マシン構成(前述リンク先)にある、NASにロック用ファイルを生成して、現用トレード用PCで該当ファイルをロックしておき、予備機では、そのファイルのロックを試行する。もしロックに成功したら、現用トレード用PCが障害停止したとみなして、予備機のMT4用EAを起動するという単純なロジック。

けど、考慮漏れが怖い。
一番怖いのは誤検知で、誤検知の要因はいろいろある。
普段からNAS自体の排他が時々おかしくなる事があったり、各種バックアップでNASが高負荷になるタイミングがあったり、決して安定している訳でも無い。

で、考慮漏れがあった場合何が発生するかというと、MT4用EAが2台のPCで同時実行されることになって、結果的に2倍のリスクを取る事になる。

リスクが顕在化した時のインパクトが大きいのでPC障害対策アプリ開発は止める事にした。
-------------------------

という事で、アプリ自作は却下し、myfxbook」利用案を採用。
そして次は「myfxbook」について

【「myfxbook」で障害検出する設定方法】
-------------------------
1.そもそも「myfxbook」というサービスって?
このサービス自体は、海外のWebページで、MT4用EAのパフォーマンスを見れたり、自分のパフォーマンスを他人にWebで公開する事ができるのが目的(多分)。
このサービスがどうやってEAパフォーマンスを把握しているかと言うと、MT4がPublisherという機能でトレードデータを送信。myfxbook」側で受信したデータを加工してWebに表示させてる。なので、MT4のPublisherへの設定と、myfxbook」への設定が必要。MT4のパスワードには読み込み専用のパスワード(Investor)があるので、それを「myfxbook」に設定する。なので、たとえ「myfxbook」に問題があっても、勝手にトレード状況を変更されたりしないので安心。
#他にもトレード状況を把握するサービスがあるけど、専用DLLとかをMT4に組み込まないといけないのが、安定性を損ねそうでちょっと嫌・・・

で、この「myfxbook」は、MT4から一定間隔毎にデータを受信して、Web表示画面に反映させるのですが、この「データ」が来なくなったら、「来なくなった旨」を指定メールアドレスにメール通知する機能があるので、これを利用する。

2.「myfxbook」での設定方法
基本的なmyfxbookの設定方法は、以下のブログで丁寧に説明されてます。

・ただいまFX自動売買中

これらの設定をした後、以下で障害を検出する様に設定。
myfxbook」 → (右上)「Settings」 → 「Messages」タブ内の「Account Update Failure Notification」

※設定例(私の場合)
上記設定の場合、30分間MT4から更新が来なければメールが来る事になる。
MT4からは5分間各でデータを送信しているのに、30分間停止しないとメールが来ないのは検出時間が長すぎるのでは?という疑問が当然の様に出てくるのですが、理由があります。
-------------------------

【「myfxbook」で障害検出運用をしてみると】
-------------------------
1.「myfxbook」による検出の特性
さて、今までの説明だと、これでPC障害検出に課題がなさそうに見えるのですが、実はそうでもありません(涙) 冒頭に触れたとおり、実は本記事投稿時点で、「myfxbook」自体が不安定なのです(涙)
MT4からデータ送信時に、MT4でエラーを検出して送信リトライされている分にはいいのですが、どうもMT4側動作にも問題がある様で、「myfxbook」からの応答待ち状態で、Publisher機能が停止している事がよくあります。結果どうなるかと言うと、前述の障害検出メールが送信される事になり、誤検出。

救いは、例えPublisherが停止していても、EAは動作継続できている点。

なので、障害検出メール受信したのでトレード用PC状況確認してみても、何の問題も発生していないという事がしばしば。少し前は本当に頻繁だったけど、本ブログ記事投稿時点では少しマシになった感じ。

ちなみに、Publisherが一旦停止してしまった状態になると、MT4再起動しないとPublisher動作が復活しない様です。

2.「myfxbook」から障害検出メールを受信した時
前述の通り、「myfxbook」からの障害検出メール受信は「ガセ」が多いので、本当に障害が発生しているのか確認が必要で、以下が手順書。

●「予備用PCへの切替判断」手順
1.myfxbookからのメール契機
2.myfxbookで更新日時確認(30分以内であればOK)
3.TeamViwerでログインし、パブリッシャー停止障害が発生していればMT4を再起動
4.TeamViwerでログインできなかった場合、以下。
5.LiveMessengerのログイン状態を確認する → 予備用PCもオフラインであればISP障害と判定
6.TeamViwerで予備用PCにログインする
7.予備用PCからメインPCにUltraVNCを実行し、停止している事を確認した時点で、PC障害と判定する
-------------------------

さて、無事にPC障害を検出できても、復旧できなければ意味が無いという事で、次の内容は予備用PCへの切替方法について。まずはおさらいとして、マシン機器構成。

 ※後半【構成概略】参照

そして、予備用PCへの切替方式について。

【予備用PCへの切替方式】
-------------------------
大枠の考え方は、予備用PCにも同じ設定をしておいて、MT4の大域変数が格納されているファイルを定期的(5分毎)にNASへバックアップ。PC切替時は、NAS内の大域変数ファイルを、予備用PCのMT4実行環境にコピーして、MT4を起動するという流れ。定期的なバックアップには「Buckup」というソフト、予備用PCへの大域変数ファイルコピーは「BunBackup」というソフトを使用。

●「予備用PCへの切替」手順
1.TeamViwerで予備用PCにログインする
2.「PC障害時用」フォルダをあける
3.「MT4(予備機への切り替え)」ファイルをダブルクリックし、
  BunBackupを起動する
4.BunBackupの全バックアップを実行する
  ※これでNASから予備用PCに大域変数格納ファイルがコピーされる
5.MT4を起動し、EA実行ボタン押下後、以下を確認する。
  ・ログインされた事
  ・EAが実行状態になっている事
6.Buckupを起動する
7.ExPingを起動する(※補足を後述)
8.UQ-WiMAX経路を有効にする(※補足を後述)
9.UQ-WiMAXルータの電源をACから取る様に接続しなおす(※補足を後述)

さて上記のうち、「7.」~「9.」について補足説明。

●補足説明
7.これはISP障害検出用のソフトウェアは予備用PCで動かしていないため。
  以下の「8.」の背景で、UQ-WiMAXを無効化しているので切替ってしまうと通信経路
  が全断になってしまうので、ISP異常を検出してUQ-WiMAXに経路を切り替える為の
  「ExPing」は、平常時は停止させているため。
8.UQ-WiMAXと基地局とのパケット通信を極力削減するため、UQ-WiMAXの経路は
  普段は無効化している。
9.これはUQ-WiMAXルータがメインPCのUSBから電源供給をしている事に起因。
  この作業は流石に自宅に戻ってから手動で行う。メインPC故障時は新たにPCを購入する。
  新しいPCのセットアップが終わるまでは予備用PCで運用する。なので電源供給をメインPC
  から受けれなくなるので、予備用PCから電源供給する様接続しなおす。
-------------------------



やっぱり今回もFXブログに見えない・・・

でも、MT4用EA実行環境構築シリーズは一旦これで終わり!


そして、「FXシステムトレード初心者奮闘記」は、ついに「MT4用EA実行環境構築」シリーズが終わり、次はまるでFXのブログみたいな記事に進むのでした。
#今ライブ口座で動作中のEA君、口座残高が投入資金+6%になって利益が出てる状態!!嬉しい!!

0 件のコメント:

コメントを投稿