さて前回は、開発中のMT4用EAテスト計画と、落とし穴等について書きました。今回は、本格的なテスト開始に向けて、最終的なMT4の環境について検討している様子を書いてみたいと思います。
まずは前提としているHW構成は、以前の記事の通りで、下図。
【ハードウェア構成】
-------------------
この環境には2台のPCがあって、今後EAを追加していったり、バグ対応等をしていく事を考えると、少なくとも、以下の4つのMT4用環境が必要。
【MT4環境】
-------------------
1.MT4用EA開発用環境
EAを開発して、テスターでテストするまでの環境
2.デモ口座用テスト環境
テスターでできるテスト内容は限られるので、より本番に近いテスト環境として、
デモ口座でのテストをする環境
3.トレード用環境
実際のトレードを行うための環境
4.バックアップ環境
トレード用PC故障時のトレード用環境
-------------------
これを絵にして詳細化すると、下の図
【論理構成図】
-------------------
下の図の水色の四角毎にMT4をインストールする。
-------------------
で、2台のPCを用いてどうしたいかというと。
【やりたい事】
-------------------
1.「デモ口座テスト用MT4」と「トレード用MT4」は24H動かしたい
2台ともPCを立ち上げっぱなしにはしたくないので、
「デモ口座テスト用環境」と「トレード用環境」は同じPCにインストール
することに。
当然気になる事は、本当のトレードを行う環境に、デモ口座用MT4
を同時起動しても大丈夫なのか、という事。
しかし、メモリさえ足りていて、テスタで動かさなければ、問題なしと判断した。
実際、メモリは結構あまってるし。
実際、メモリは結構あまってるし。
2.EA/独自インジケータのソースもコンパイル済みモジュールも
一箇所でマスタ管理しておきたい。
開発/修正したMT4用EAを「デモ口座用テスト環境」や、「トレード用環境」に
リリースする時は、NASで一元管理したファイルを使いたい。
そうしないと、リリースミスの原因になるから。
一箇所でマスタ管理しておきたい。
開発/修正したMT4用EAを「デモ口座用テスト環境」や、「トレード用環境」に
リリースする時は、NASで一元管理したファイルを使いたい。
そうしないと、リリースミスの原因になるから。
3.EA修正時の運用
「開発用MT4」でEAを開発してテスターでテストした後、「デモ口座テスト用環境」で
テストしてから、「トレード用環境」にリリースしたい。
つまり、MT4用EAを修正した場合に、テスターだけでテストしても、
テスターでは動かないロジックが多数あるので、より「トレード用環境」に近い
「デモ口座用テスト環境」でのテストをしてから、「トレード用環境」へのリリースを実施したい。
4.トレード用ノートPC故障時は、普段使い用PCで代替できる様にしたい
-------------------
次に、環境ごとに検討している事を整理すると。
【開発用MT4】
----------------------------------
EAの開発と、テスターでのテストをする為の環境。
利用するMT4は、実際のトレードで使用するFX業者のもの。
この環境以外では、EAのプログラム修正は行わない。
----------------------------------
【デモ口座テスト用環境】
-------------------
デモ口座テスト用環境は4つのMT4をインストールする。
本番トレード開始以降は、1つのMT4は常時起動。他の3つは、テスト実施時のみで
その内1つだけ起動してテストする。(トレード用MT4への影響を極力すくなくする為)
1.「テスト用設定1」デモ口座用MT4
主に細かいロジックのテストをする為の環境。実際にトレードするFX業者のMT4を使う。
・タイムフレームを短くする事で売買回数を増やし、サーバ障害時売買時のタイミング
のズレや、サーバ障害時の動作確認。
・特定のロジックを通すテストの為に、プロパティ値を極端な値にして評価。
2.「テスト用設定2」デモ口座用MT4
基本的に本番相当の設定でEAを常時動かしておく環境。実際にトレードするFX業者の
MT4を使う。デモ環境と本番環境との差異を見るための環境。
プロパティ値や、通貨ペア、タイムフレームをトレード用環境と同じにしておく。
また、複数EAを同居させる。
3.「テスト用設定3」デモ口座用MT4
共通部品の汎用性を確認する為の環境。
ただし、実際にトレードするFX業者とは異なり、MODE_FREEZELEVELが設定されてい
るFX業者のMT4を使用する。
売買回数を増やすために、タイムフレームを短くしてEAの細かい動作確認をする。
4.「テスト用設定4」デモ口座用MT4
共通部品の汎用性を確認する為の環境。
ただし、実際にトレードするFX業者とは異なり、ECN系列(OrderSend時に
SL/TPを指定できない)FX業者のMT4を使用する。
売買回数を増やすために、タイムフレームを短くしてEAの細かい動作確認をする。
----------------------------------
【トレード用環境】
-------------------
1.EA毎にMT4を起動する(トレード用MT4-1~3)
今のトレーディングプランでは1つのEAで4通貨ペアをトレードする
予定だけど、今後は3つ程度のEAを同時に動かす予定。
3つ同時にMT4を起動しようとすると、インストールディレクトリも
別にしないといけない。
●EA毎にMT4を起動する理由
・今後作るEAも全て1つのMT4で動かしたとすると、それぞれ複数通貨ペアでトレードする
事を踏まえると、以前の記事で書いたコンテキスト・ビジー(ERR_TRADE_CONTEXT_BUSY)
になる確率が高くなってしまうので、それを軽減したい。
事を踏まえると、以前の記事で書いたコンテキスト・ビジー(ERR_TRADE_CONTEXT_BUSY)
になる確率が高くなってしまうので、それを軽減したい。
・EAバグの影響範囲を局所化したい
あるEAのバグが原因で、暴走したり、MT4自体が落ちてしまう状況を考えた場合に、
その影響を他のEAに与えたく無い。
・起動するMT4の数はある程度抑えておきたい
EA毎且つ、通貨ペア毎にMT4を起動させる案もあるが、同じEAをたくさんの
ディレクトリにインストールが必要になり、運用が煩雑になるし、煩雑になれば、
それだけ作業ミスも発生しやすくなる。
2.MT環境障害対応用のMT4環境も用意しておく(トレード用MT4-4)
何らかの問題で、特定のトレード用MT4が起動しなくなってしまった場合に備えて、
予備用のMT4をインストールしておき、通常は起動しないでおく。
これは、一つのMT4が起動しなくなっただけで、正常に動いているMT4まで、
バックアップ環境に切り替えるという事をしたくない為。
-------------------
【バックアップ環境】
-------------------
1.基本的には「トレード用環境」と同じ
トレード用環境のバックアップ環境なので同じにしないと。。。
バックアップ用なので、1つのMT4という考え方もあるけど、
トレード用ノートPC故障時の「トレード用環境」からのデータ移行を
考えると、同じにしておかないと、手順が複雑になってしまう。
2.ExpertAdvisorは無効化しておく
・いかんせん普段使い用のPCなので、うっかり起動してしまうと良くない。
・実際に切り替える場合に、NASにバックアップしているファイルを
バックアップ環境にコピーしてから起動させるが、他にも起動後に必要な
設定が出てくるかもしれない。
-------------------
ざっくりとは、以上。
やっていくうちに変わるかもしれないけど。。
で、こういう環境にした場合にいろいろと課題が。
【課題】
---------------------
1.異常を通知するメールについて
異常通知メールを携帯に転送している。普段は携帯メール受信時は着信音をオフにしてるが、
本番に入ったら、メール着信音を鳴らす予定。
この時、「デモ口座テスト用環境」からのメール通知なのか、「トレード用環境」から
のメール通知なのかを区別できる様にしないといけなかった。
#デモ口座からの異常通知で音を鳴らしたくないので。
なので、「デモ口座テスト用環境」と「トレード用環境」で、メール送信元を変更する。
そして、メールヘッダからも区別できる様にする。
2.MT4プロセスダウン検出
本来監視したいのは、「トレード用環境」のMT4プロセス。
でも以前の記事で検討していた方法では区別できない。。。
区別しないという選択肢もあるけど、悩ましいところ。
#MT4が落ちた時には、一瞬重くなるし、どっちにしても1回PC再起動
した方がよさそうなので。
3.MT4回線切断検出
これも以前の記事の方式だと、前述「2.」と同じ事が言える。
でもこの場合は、「デモ口座テスト用環境」と「トレード用環境」を区別したい。
「デモ口座テスト用環境」の場合はどうでも良いけど、「トレード用環境」
でのこの現象が発生したら、状況を注視したり、場合によっては、FX業者に問い
合わせしないといけないので。
実際にトレードするサーバのIPアドレスが変わらなければ、それで検索する
方法もあるけど、まだ実際の口座を開いていないので、不明。
あまり変わらないのであれば、サーバのIPアドレスで検索する方式に。
---------------------
本当に一人でする事か?
ちなみに、最近してたこと。
EAの共通部品だけで2000行あるソースを印刷して、ざぁ~っと目視確認したら、40件ぐらい修正箇所が出てしまった。。。
改善箇所とか、保守性に関する内容もあるけど、バグもそれなりに。。
そして、本来のトレードルールは4H足だけど、トレード回数が少ないのでデモ口座でもあまり評価にならない。なので、前述の通りに5分足の「デモ口座テスト用環境」を一つだけ作ってEAを動かしはじめたら、
警告メールの嵐
ほとんどがリトライアウトだったので、リトライ回数を増やした。
だけど
原因不明な
バグが3件
先は長い
そして、原因不明なバグに悩まされながら「FXシステムトレード初心者奮闘記」の「MT4用EA開発時代」は目先のバグ修正作業に向かうのでした。。
#MT4はなかなか手ごわい。。。
0 件のコメント:
コメントを投稿