基礎から学ぶシステムトレード
シストレブログ人気ランキング  

シストレ徹底攻略シストレマスターへの道ワールド・トレーディング・エッジ基礎から学ぶシステムトレードシストレニュースシストレツールシストレナビTOPへ

 

2010年11月29日(月)

MQL5:スプレッドを表示するインジケータ [MetaTrader5]



MQL5の標準ライブラリを使ったEAの記事が続いたので、今回はちょっと休憩して、インジケータの話です。

MT4とMT5では、ヒストリカルデータの構造が色々と変わっていますが、その一つに、売買スプレッドのデータがあります。

MT4では、売買スプレッドはリアルタイムでBid、Askから算出できますが、過去のデータとしては記録されません。なので、バックテストを行う場合は、それを行った時点でのスプレッドに固定されます。

以前は、FX業者の多くが固定スプレッドを採用していたので問題なかったのですが、最近では、可変スプレッドを採用する業者も増えてきました。また原則固定スプレッドなのですが、時間帯によってスプレッドを変える業者もあります。

そういう状況に対応させるためか、MT5では、スプレッドを過去のデータとして記録できるような構造に変わりました。

そのスプレッドデータの扱いですが、これは簡単で、始値や終値などと同じように扱うことができます。

以前の記事で簡単なカスタム指標を作成したと思いますが、そこで実行される関数は

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& Time[],
const double& Open[],
const double& High[],
const double& Low[],
const double& Close[],
const long& Tick_volume[],
const long& Volume[],
const int& Spread[])

のように宣言されていました。これを見ると、Open, High, Low, Close などに並んで最後に Spread というパラメータがあります。これが売買スプレッドのことです。

なので、これを指標バッファに代入すればスプレッドをインジケータとして表示させることができるのです。
for(int i=limit; i<rates_total; i++) Buf[i] = Spread[i];

プログラムはこんな感じになります。

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots 1

#property indicator_label1 "Spread"
#property indicator_type1 DRAW_HISTOGRAM
#property indicator_color1 Red
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1

// 指標バッファ
double Buf[];

// 初期化関数
int OnInit()
{
// 指標バッファの割り当て
SetIndexBuffer(0, Buf, INDICATOR_DATA);
return(0);
}

// 開始関数
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& Time[],
const double& Open[],
const double& High[],
const double& Low[],
const double& Close[],
const long& Tick_volume[],
const long& Volume[],
const int& Spread[])
{
int limit = prev_calculated;
if(prev_calculated > 0) limit--;

for(int i=limit; i<rates_total; i++) Buf[i] = Spread[i];

return(rates_total);
}

その他の変更点は、サブウィンドウに表示させるために

#property indicator_separate_window

と指定したところと、スプレッドを棒グラフのような形状で表示するために
#property indicator_type1 DRAW_HISTOGRAM

と指定したところです。

チャートに挿入すると下図のようにスプレッドの変化がサブウィンドウに表示されます。

画像(450x230)・拡大画像(800x409)

>>“基礎から学ぶシステムトレード”全記事バックナンバーはこちらから




Posted at 11時17分


ページのトップへ ページのトップへ

Sponsor AD

2010/11

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

プロフィール

豊嶋久道

2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めたトレーディングシステムの研究を行っている。システムトレードを基礎から正しく理解するための情報を発信する予定。

PHOTO

ランダムウォークとランダムトレード(2)

ランダムウォークとランダムトレード(2)

カテゴリーリスト

最近の記事

検索


当サイトコメントについて

当コメントは情報提供のみを目的として作成されたものであり、投資に関してはご自身でご判断くださいますようお願い致します。また、当資料は著作物であり著作権法により保護されております。無断で全文または一部を転載することはできません。

RSS1.0

[Login]


powered by a-blog
Copyright (C) 2008 PhiConcept,Inc. All rights reserved.