[MT4] tester cannot calculate prices が出てしまった場合の対処方法
昨日まで使えていた EA でテストをしようとしたところ、"tester cannot calculate prices" というエラーが出て、動かなくなってしまいました。 エラーの前に "margin exchange rate cannot be calculated" という警告が出ているのも気になります。
調べてみたところ、以下のような条件下でおこるようです1。
- "Expert properties"(エキスパート設定)の "Initial deposit currency"(初期証拠金通貨)がブローカーのものと異なる
- テストの "Symbol" (通貨ペア)が直接計算できない2
- サーバーと通信出来ていない
参考
対策1 テスト用の通貨を変更する
"Expert properties"(エキスパート設定) を開きます3。
"Testing"(テスト設定)タブを選択し、 "Initial deposit"(初期証拠金)の通貨を変更します。
基本的には、ブローカーの通貨(日本のブローカーなら"JPY")にすると大丈夫のようです。
テストしたい通貨ペアの Base Currency ("USDJPY" なら "JPY", "EURUSD" なら "USD"、基本的に後側の通貨)にしても大丈夫かもしれません。
対策2 サーバーに接続する
対策1でも駄目なら、サーバーに接続するとうまくいくかもしれません4。
一度、サーバーに接続してからテストを実行し、その後オフラインにしても問題はなさそうです。
原因は?
今回、複数ある環境で再現実験をしてみたのですが、再現しないものもありました。 サーバーから何らかの情報を受け取っていて、その情報が足りないと起こるようです。
あくまで推測ですが、多分以下のようなことではないかと思います。
例えば、"Initial deposit"(初期証拠金)通貨を "USD" にしてあり、「"EURJPY" を 101.315円で買う」という処理が走ったとします。 この時、証拠金計算のために JPY -> USD の換算が必要になりますが、その換算が出来なかった場合、エラーになるのだろうと思います。
- 変換用レートがどこかに保存されているはずなので、それを使用
- 換算レートが保存されていなかった場合、サーバーに問い合わせ
- サーバーに接続できなかったらエラー