メタトレーダー4でプログラムを作ってみよう -25ページ目

メタトレーダー4でプログラムを作ってみよう

無料のトレードソフトであるメタトレーダー4のプログラムを作るコツをアップします。初心者がインジケーターとEAのプログラムを作成できるのを目指します。

テスターを使用してEAの検証を行う際、

Mismatched charts errors
 
というのが出る場合があります。



メタトレーダーでは、検証する時間足より細かい時間足を使用して、詳しく検証することができます。

例えば5分足で検証する場合、1分足のデータも使用してリアルに違い状態ですることができます。

Mismatched charts errors は、相互の時間足で四本値の値が異なる場合にエラーとして報告されます。

ある5分足の高値が、100.00 だったのに、

1分足でその時間帯では、99.90 までしか行っていないような場合などで、

データが一致しないということでエラーが報告されます。

このエラーの原因はデータを読み込むタイミングなどにより生じます。

これを防ぐ方法として、1分足のデータから他の足を作成する方法があります。

既に読み込まれた1分足を使用して他の足を作成してしまえば、

Mismatched charts errors が出ることはありません。

このデータを作成するのに、Period_Converter というスクリプトを使用します。

使用自体は簡単なのですが、使用する前に少しやっておくことがあります。

その辺りも含めて次回に説明したいと思います。




 
メタトレーダーには Script(スクリプト) と呼ばれるものも用意されています。

スクリプトはインジケーターやEAと違って、基本的に1回の動作で終了します。

ナビゲーター」の「Script」のところにあります。



中身は、注文系が多いです。



試しに rotate_text をチャートにセットしてみましょう。

すると赤いラインがひかれ、rotating_text という文字が回ります。



しばらくすると、REMOVED に変わります。



スクリプトを終了させるには、チャート上で右クリックをしてメニューを表示させ、

スクリプトの削除」を選択してください。



このように、処理が終わらないスクリプトもありますので、注意してください。

その際は自分で終了させる必要があります。

プログラムの作り方自体は、インジケーターやEAと同じですので、

1回で終わるような処理はスクリプトで作成しましょう。




   
メタトレーダーで指値注文をする場合、最小値幅に注意する必要があります。

各通貨ペアの値幅を確認するには、気配値表示で右クリックしてメニューを出し、

メニューの「通貨ペア一覧」をクリックします。


この一覧から目的の通貨ペアを選んで、「閉じる」をクリックします。



なんで「閉じる」なのかはわかりませんが、誤訳のようです。ヾ(@^▽^@)ノ

そんないい加減なところがかわいいところでもあります。


すると、選択した通貨ペアの詳細なデータが出てきます。



色々ありますが、上の3つだけ説明します。

Spread は Ask と Bid の差です。

画像の物は 0 になっていますが、

スプレッドが可変の業者は 0 と表示されることがあるようです。

実際にスプレッドが 0 というわけではないのでご注意を!


Digits は、小数点以下の桁数です。

2~5のどれかになります。


Stops level が指値を入れる際の最小値幅になります。

この値幅は現在値からの値幅です。

画像の例では 70 となっていますので、

現在値から 70ポイント以上離れたところの注文でないと受け付けてくれません。

ポイントというのは pips とはちょっと違います。

小数点以下が、2桁4桁表示の業者はポイントがそのまま pips になりますが、

3桁5桁表示の業者は 10ポイント が 1pip になります。


なので、3桁5桁表示の業者の 70ポイントは、7.0pips となります。

ここはわかりにくいので注意してください。


実際の注文での注意点です。


上の画像で、Ask が 1.44685 Bid が 1.44656 となっています。

買いと同時に、リミット(利食い)とストップ(損切り)を入れたい場合は、

リミット Bid+70ポイント=1.44658+0.00070=1.44728 以上
ストップ Bid-70ポイント=1.44656-0.00070=1.44586 以下


で設定する必要があります。


逆に、売りと同時に、リミット(利食い)とストップ(損切り)を入れたい場合は、

リミット Ask-70ポイント=1.44656-0.00070=1.44586 以下
ストップ Ask+70ポイント=1.44658+0.00070=1.44728 以上


で設定する必要があります。

Stops level の値幅制限は気がつかないことが多いです。

「ターミナル」の「Experts」に「Error=invaid stops」と表示されていれば、

この制限に引っ掛かっていますので、設定値を変更してみてください。