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

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

 

2010年07月27日(火)

MQL5でBid、Askはどう書くの? [MetaTrader5]



前回の記事では、MQL5には Bid、Askという変数が予め用意されていないということでした。

じゃあ、

double Bid, Ask;

のように直接宣言すればいいかと言うと、確かに宣言は必要ですが、それだけでは実際の売値、買値の値は Bid、Askには代入されません。

こういう場合、考えるだけでは解決できませんから、調べてみるしかありません。

まずは、MT5のメタエディターのHelpメニューに「MQL5のレファレンス」があります。またその下の「MQL5.community」からは、MetaQuotes社のMQL5のサイトを開くことができます。

画像(450x337)・拡大画像(800x600)

MQL5のコミュニティはサンプルプログラムなど多数掲載されているので、ここを調べるのがてっとり早いでしょう。

メタエディターでは、画面下の「Toolboxウィンドウ」の「Articleタブ」と「Code Baseタブ」の画面に、MQL5コミュニティの記事一覧がリストアップされています。

ここから参考になりそうな記事を探してダブルクリックすると、その記事に直接ジャンプすることができます。

今回はその中で、

Migrating from MQL4 to MQL5

という記事を見てみましょう。

ここで、「Migrating」 は「移住」という意味ですが、プログラミング用語では、「移植」を意味します。つまり、「MQL4からMQL5への移植」ということですね。

この記事、実はかなりの大作です。印刷すると20〜30ページ近くになるんじゃないでしょうか。実際、MQL4とMQL5とはそれだけ違いがあるということなんです。

ここでは、当初の目的であった BidとAskだけ調べてみます。

幸い、BidとAskは、「3. Predefined Variables」の最初の方に記述があり、以下のように書かれています。

MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Ask=last_tick.ask;

MqlTick last_tick;
SymbolInfoTick(_Symbol,last_tick);
double Bid=last_tick.bid;


これを見てなるほどと、意味がわかる人は次に進んでいって構わないのですが、「MqlTick」って何?「SymbolInfoTick()っていう関数の意味は?」「.ask .bid ってくっついているけどこれは何?」と引っかかってしまうと、ちょっと時間がかかるかもしれません。

実は、これを説明するためには「構造体」という考え方を説明しなくてはならないのです。構造体はもともとC言語に導入されている機能ですが、MQL4では導入されていませんでした。ですから、MQL4しか知らない人にとっては初めての内容になるわけです。

構造体の説明は別の機会に説明することにして、今回はもう少し簡単に書ける方法として、
double Ask=SymbolInfoDouble(Symbol(), SYMBOL_ASK);
double Bid=SymbolInfoDouble(Symbol(), SYMBOL_BID);
という書き方を紹介しておきます。

ここで、「SymbolInfoDouble()」という関数は、シンボル(FXでは通貨ペア)の情報のうち、double、つまり、実数の情報を取得する関数です。

Symbol()」はMQL4と同様、プログラムをアタッチしたチャートのシンボル名を返す関数です。MQL5の場合、「_Symbol」と書くこともできます。

その次の「SYMBOL_ASK」、「SYMBOL_BID」がそれぞれ、AskとBidを意味する記号定数(MQL5では列挙型識別子というのですが、これも話すと長くなるので省略)です。

細かいことはさておき、MQL5でBidとAskを表示させるプログラムは以下のようになります。
void OnStart() 
{
double Bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
double Ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
Print("Bid=", Bid);
Print("Ask=", Ask);
}

このスクリプトプログラムを適当なチャートにアタッチすると、その結果は、下図のように「Toolboxウインドウ」の「Expertsタブ」の画面に表示されます。

画像(450x142)・拡大画像(611x193)

ちなみに ToolboxウィンドウはMT4ではTerminalウィンドウと呼んでいたものです。

次回は「構造体」あたりを説明しておいた方がいいかな。


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




Posted at 14時21分


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

Sponsor AD

2010/7

        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 31

プロフィール

豊嶋久道

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

PHOTO

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

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

カテゴリーリスト

最近の記事

検索


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

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

RSS1.0

[Login]


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