作成者別アーカイブ: addadad

板注文画面を表示する方法

MetaTrader4では、次の方法で板注文画面を表示することができます。板注文画面に表示された価格一覧を元に、指値・逆指値注文の際、ワンクリックで注文を入れることができます。マウス操作により、効率よく、スムーズに注文を行うことができます。

板注文画面を表示する方法は、次の通りです。


気配値表示ウインドウ内、板注文画面を表示したい通貨ペアを右クリックし、一覧から「板注文画面」をクリックします。

MetaTrader4 「気配値表示」ウインドウからの「板注文画面」表示設定画面

次へ

選択した通貨ペアの板注文画面が表示されます。板情報には、現在のレートを基準にして、最小単位での価格が表示されます。板注文画面からの詳しい注文方法は、板注文画面からの成行注文・成行決済の仕方をご覧ください。

MetaTrader4 「板注文画面」

ショートカットキーで板注文画面を表示するには、板注文画面を表示したい通貨ペアを気配値表示ウインドウ一覧よりクリックし、キーボードのAlt+Bキーを押します。

キーボードからの「板注文画面」表示方法

Originally posted 2019-08-12 16:26:37.

第五回 テクニカル分析指標を使って取引しよう!

前回はEAを作るときに参考になるお勧めリンクなどを紹介しました。今回はMT5で標準的に利用できるテクニカル指標を利用して取引を行うEAを作成してみましょう。

テクニカル分析指標とは、過去の銘柄の価格、取引実績、様々な情報を時系列パターンから価格予想・分析をするための手法です。

MT5で利用できるテクニカル分析指標とはどのようなものがあるのでしょうか?大きく目的にわけて、4種類の標準テクニカル分析指標をご用意しています。

トレンド系 相場の方向性(トレンド)を分析するための目安となる指標となります。買い方向 (上昇トレンド) 、売り方向 (下落トレンド )、レンジ相場 (ボックストレンド )等の相場の流れを予測に有効な指標です。 

オシレーター系 相場の変化の大きさ(ボラティリティ) や銘柄の値頃感(買われすぎ、売られすぎ)等の情報を分析して指標から銘柄の予測に有効な指標です。 一般的にオシレーター系は逆張り投資に有効なテクニカル指標とされています。

ボリューム系 各銘柄の取引量に基づいた計算指標が含まれます。FXでは一定期間でのティック(価格の変動)、CFDの場合は取引量が分析の指標となります。

ビルウィリアムズ指標 ビルウィリアムズ指標は、市場心理学、市場分析、カオス理論等の研究に基にビルウィリアムズ 博士によって開発されたテクニカル分析指標です。6つの指標はTRADING CHAOS(邦題: 相場の達人―常勝のカオス思考) の中で紹介されている指標です。

MT5で用意している38の指標についての詳細は、こちらのページからそれぞれのカテゴリー毎にご確認いただけます。
MT5のヘルプ – テクニカル指標https://www.metatrader5.com/ja/terminal/help/charts_analysis/indicators

EAを用いたテクニカル分析指標の値の取得方法について

MT4では下記のような関数でそれぞれのテクニカル指標に関して、指定したチャートのバー番号からスポットでの分析指標の計算結果を取得できました。

MQL4 Document:
istochastic – Stochastic Oscillator指標の指定時点の値を取得

MQL5 Document:
iStochastic – Stochastic Oscillator指標のハンドル取得 
ハンドルを使って、配列内のデータをピックアップする

MT5MT4では、大きく次のような違いがあります。

MT5では1種類のテクニカル分析指標値取得に関しては下記のような方法を用いて一括でまとめて値(配列)を取得することができます。(例: Stochastic Oscillator)

サンプル内使用関数の仕様は下記のMQL5上のリンクでご確認いただけます。
CopyBuffer – 指標の指定されたバッファデータを取得
ArraySetAsSeries – 配列を時系列データのような配列に並び替える

※CopyBufferで使用する引数の情報は下記のリンク内の各分析指標毎の値を確認して設定いただくことで、必要な配列が取得できます。
https://www.mql5.com/ja/docs/indicators 

テクニカル分析指標を利用した取引ツールについて

実際に2種の分析指標を使用した取引を実行するためのEAを作成してみましょう。今回はオシレータ系の Stochastic Oscillator(ストキャスティックス)指標 とLarry Williams’ Percent Range(ラリーウィリアムパーセントレンジ)指標を組み合わせた取引ツールを作成します。

取引条件:
1.Stochastic:Main LineがSignalラインと下向きに交差
2.Larry Williams’ Percent Range:-20 以上の場合に売ポジションを新規に建てる

それぞれの売買シグナルに関する判定基準はmql5.com上のこちらからご確認いただけます。 
mql5.com: Stochastic 
mql5.com: Larry Williams’ Percent Range

EAの処理の流れとしては、1種類のテクニカル分析指標と変わらず下記のような流れとなっています。

1.EA起動時に各指標をキャッシュに展開し、ハンドルを取得(OnInit関数)

2.現在の各指標の配列を取得(OnTick関数)
3. 取引シグナルの判別し、ポジションのオープン (OnTick関数) 
※Tick 受信時に(2)(3)の繰り返し

4.EA終了時に各指標のメモリ上のキャッシュを解放(OnDeinit関数)

こちらはプログラム内の処理を抜粋したものになります。
実行可能な全体のEAについてはブログに添付しているEAをご利用下さい。

各種テクニカル分析指標のハンドル値、配列を取得するためのサンプルについてはこちらの記事を参照しています。こちらの各関数を参照することで、効率良くEAを作成することが可能です。
初心者のためのMQL5: EXPERT ADVISORでのテクニカルインディケーター使用ガイド –https://www.mql5.com/ja/articles/31 

分析指標を利用した取引ツール、いかがでしたか?
設計時には分析指標の判定基準等、テクニカル分析指標の内容の理解が大切になります。mql5.com、MT5のヘルプ等を活用してより良い結果となるEAを作成していきましょう。

Originally posted 2019-08-12 13:31:30.

ティックチャートを表示する方法

MetaTrader4では、ティックチャートを表示できます。バーチャート、ロウソク足チャート、ラインチャートとは異なり、売買が成立したタイミングでチャートが記録されていきます。土日などの取引時間外では、取引がないため、チャートは横線で表示されます。

ティックチャートの表示方法は、次の通りです。


気配値表示ウインドウ内、ティックチャートを表示したい通貨ペアをクリックします。次に、ウインドウ下の「ティックチャート」タブをクリックします。

MetaTrader4 気配値表示「通貨ペアリスト」画面

次へ

選択した通貨ペアのティックチャートが表示されます。「通貨ペアリスト」画面に戻る場合は、気配値表示ウインドウの「通貨ペアリスト」タブをクリックします。

MetaTrader4 気配値表示「ティックチャート」画面

なお、ティックチャートの切り替えは、気配値表示ウインドウ内、ティックチャートを表示したい通貨ペアを右クリックし、「ティックチャート」をクリックすることでも、表示が可能です。

MetaTrader4 気配値表示「通貨ペアリスト」画面2

ショートカットキーでティックチャートを表示するには、ティックチャートを表示にしたい通貨ペアを気配値表示ウインドウ一覧よりクリックし、キーボードのSpaceキーを押します。再度、Spaceキーを押しますと、通貨ペア一覧画面に戻ります。

キーボードからの「ティックチャート」表示方法

Originally posted 2019-08-12 16:25:53.

第四回 MQL5.comを使いこなそう!

前回は取引データの取得方法についてプログラムを作成してみました。EA、テクニカル指標など、実現させる方法を調べるときに、MQL5.comはとても便利です。

今回では、MQL5.comを使って、MQL5でのプログラム作成時に役立つリンク情報をご紹介します。 

MQL4 からMQL5への移植についての記事

MQL4で作成したプログラムをMQL5でも使えるようにしたい、MQL4で学んだ内容と比較してMQL5で作成したい、といった時にお役にたてる記事、リンクを紹介します。

記事:MQL4からMQL5への移植

MQL5 記事:https://www.mql5.com/ja/articles/81

MQL4からMQL5について関数の新旧対照表を一覧表形式になっており、移植に役に立つ内容が記載されています。

リファレンス :MQL4からMQL5への移植

MQL5 ドキュメント:https://www.mql5.com/ja/docs/migration

リファレンスの一部として基本的な定義済み変数、予約イベント関数についてMQL4との違いについて記載しています。

初心者のためのMQL5: EXPERT ADVISORでのテクニカルインディケーター使用ガイド

テクニカル指標の計算値の取得方法がMQL4から大きく変わりました。こちらの内容を確認することで、非常に簡単な例を参考に学習することができます。

MQL5参照リンク: https://www.mql5.com/ja/articles/31

Expert Advisorのデバッグとテスト

EA作成時のデバックの仕方について、丁寧に記載しています。
ブレークポイントの設定や動作検証時に設定した変数値の確認方法などが丁寧に記載されています。

MQL5 記事: https://www.mql5.com/ja/articles/100 
※項目 3. Expert Advisorのデバッグとテスト

MQL5標準トレードクラスライブラリの使用

MQL5では通常の関数に加え、標準ライブラリとしてEAを作成するために必要な関数をまとめているクラスライブラリをご用意しています。
こちらを用いることで、より効率よくプログラミングを進めることができるようになります。

MQL5 記事: https://www.mql5.com/ja/articles/138

Originally posted 2019-08-12 13:30:43.

MetaTrader4で表示される時間について

MetaTrader4では、GMT(グリニッジ標準時)というロンドンの標準時間(GMT+0)で表示されています。また、夏時間と冬時間が設けられているため、時期により日本時間へ変換した際の時間が異なります。日本時間はGMTとの時差は9時間、GMT+9です。

気配値表示ウインドウ内の時間表示は、次のように確認します。


次の図に記載の表示時刻(05:01:08)を例にしますと、夏時間採用時は日本時間11:01:08となり、冬時間採用時は日本時間12:01:08となります。

MetaTrader4 「気配値表示」ウインドウ時間表示画面

MetaTrader4上の表示時間を、お住まいの地域やご希望のタイムゾーンに併せて設定変更することはできません。上記の時差を参考に、時刻計算を行う必要があります。

Originally posted 2019-08-12 16:25:07.

第三回 MQL5で現在のデータを取得しよう

前回は取引についてのプログラムを作成してみました。
それでは取引を行うとき、どのような基準で売買を決定するのでしょうか?
現在の銘柄の予想価格、ポジションがオープンしてからの利益幅、テクニカル分析、様々な情報の取得が必要となります。

今回はプログラミングを通して、主要なデータ取得方法を確認してみましょう。

取得情報 利用方法の例
現在の時間 指定経過時間で一度決済
現在のロウソク足 分析指標へのデータ取得
現在の価格 目的の値を判断して、決済・新規注文を実行

現在の時間

”時間”を管理することでどのようなことができるでしょうか?
取引時に係るスワップ等を考慮した取引期間を制限、特定の時間内のEA取引を設定(日本の株式市場オープン時間のみの取引EA)、時間というパラメータを考慮したルールに沿った取引をすること等が可能になります。

MQL5のドキュメントを参考に、”時間”を取得するプログラムを作成しましょう。

ドキュメント : https://www.mql5.com/ja/docs/dateandtime
日付と時刻 に関する関数を確認できます。

こちらの関数はMT4で使用できた関数と同じ関数です。同様の結果を得ることができます。

現在のチャート情報 

履歴データであるチャート上のOpen/High/Low/Close情報を取得して分析指標などに適用することが可能です。

ドキュメント : https://www.mql5.com/ja/docs/series
時系列と指標データへの取得方法が確認できます。

こちらの関数はMT4で使用できた関数と同じ関数です。同様の結果を得ることができます。

一方MT4とは異なる点として、以下の予約関数が廃止されました。

これらの廃止された関数は、MT5上ではイベント処理関数であるOnCalculate関数 を使用する場合に、現在の値を処理するための情報としてMT4同様の方法で使用することが可能です。ただし、Indicatorのみで使用でき、EA、Scriptでは使用できませんのでご注意下さい。

※プログラム実行 – 指標及びエキスパートアドバイザーで使用出来ない関数を参照してください。 MQL5:https://www.mql5.com/ja/docs/runtime/running

現在の価格情報(Tick)

現在の価格を取得することで、注文、発注管理等を行うことができます。MetaTrader5で利用できるティック受信時間、Bid, Ask, Volumeを利用できます。

ドキュメント : https://www.mql5.com/ja/docs/constants/structures/mqltick
現在のティック情報を取得方法を確認できます。

こちらの関数はMT4と同じ関数です。同様の結果を得ることができます。

Originally posted 2019-08-12 13:29:49.

気配値表示ウインドウの表示内容変更方法

MetaTrader4では、初期設定の際、気配値表示ウインドウには通貨ペアとBid(買値)/Ask(売値)の値が表示されています。さらに簡単な設定で、スプレッド、安値/高値、時間といった、取引を行う上で有益な情報を表示することが可能です。

気配値表示ウインドウ内の表示内容を変更する方法は、次の通りです。


MetaTrader4 インストール後の初期設定段階では、次の図のように通貨ペア、Bid(買値)/Ask(売値)が表示されています。

MetaTrader4 初期設定時の「気配値表示」ウインドウ画面

表示情報を追加・変更するには、気配値表示ウインドウを右クリックし、表示された一覧内、「スプレッド」「高値/安値」「時間」からご希望の項目をクリックします。

「気配値表示」ウインドウ表示設定画面

「スプレッド」を選択しますと、一覧にスプレッドが表示されます。

「気配値表示」ウインドウ スプレッド表示画面

「高値/安値」を選択しますと、一覧に高値及び安値が表示されます。

「気配値表示」ウインドウ 高値/安値表示画面

「時間」を選択しますと、一覧にデータ最新取得時間が表示されます。

「気配値表示」ウインドウ 時間表示画面

「スプレッド」「高値/安値」「時間」の全てを選択することで、情報を一度に表示することもできます。

「気配値表示」ウインドウ 全情報表示画面

MetaTrader4では、スプレッドを表示する際、ポイント表示を採用しており、1ポイント=0.1pipsとなります。次の表示を例にしますと、スプレッドは「50ポイント=5.0pips」を意味しています。

「気配値表示」ウインドウ スプレッド表示画面

Originally posted 2019-08-12 16:24:14.

第二回 プログラムで取引をしよう!

MQL5.comを確認してみよう!

MQL5を使ってプログラムを作成するにあたって、MQL5.comというコミュニティサイトをご紹介します。特にドキュメントのページにはMQL5の関数ドキュメンテーションは最も頻繁に利用されるページでしょう。
また、下記のようにMQL5を作成するにあたって有効な情報が集約されています。

ドキュメント : https://www.mql5.com/ja/docs
MQL5言語に関する公式リファレンスです。MQL5の関数、構文と簡単なコーディングの例を確認できます。
コードベース : https://www.mql5.com/ja/code
無料のサンプルEA、インディケーター、スクリプトダウンロードでき、先輩たちが作ったプログラムをサンプルとして参考できます。
フォーラム : https://www.mql5.com/ja/forum
世界中のトレーダーと知識を共有し、情報交換の場です。困った時に、お互いに助け合いの場でもあります。過去の書き込みを調べたら、解決策が出てくるかもしれません。
記事 : https://www.mql5.com/ja/articles
プロのトレーダーによって投稿された研究記事からテクニカル指標やEAを作成する方法まで学ぶことができます。記事はカテゴリ毎に分類されており、様々な有益な情報をすばやく見つけることができます。
MQL5で取引操作をしてみよう!

それでは早速、コーディングで注文してみましょう。 
新規注文と決済注文を一回ずつやります。

USDJPY を1 ロット成行買いで新規注文する場合(売 / 買) 

MQL4ではOrderSend関数を使って、ロット数や注文タイプなど、色々な引数を入れていましたよね。
MQL5では 、MqlTradeRequest(取引要求)とMqlTradeResult(取引結果)という二つの構造体がOrderSend関数の引数になります。ロット数、注文タイプ、約定したチケット番号などは、全てこの二つの構造体の要素になっています。

※構造体の全ての要素はリンク先で確認して下さい。
MqlTradeRequest 
MqlTradeResult

今回は次のような 内容をMqlTradeRequest(取引要求)に設定します。
 - action : 注文実行タイプの設定 : (成行 / 注文 / 変更 / 削除)
 - symbol : 銘柄
 - volume : 取引ロット
 - type : Buy / Sell 
 - price : 注文価格
 - deviation : スリッページ許容幅

実行結果はMqlTradeRequest(取引結果)に格納されるので、確認できます。
 - retcode : 取引サーバのリターンコード
 - deal : 約定チケット(サーバー約定処理された場合)
 - order : 注文チケット (サーバー約定処理された場合)

※注文タイプによって使う要素が異なります。詳細、その他の要素はMQL5のページを参照して下さい。 

実行結果 – USDJPY 0.1 ロットの買いポジションを建てました。
実行結果 – USDJPY 0.1ロットの 売りポジションを建てました

※どのEAが取引したか判別できるように、ユニークなMagicNumberをセットしましょう。

オープンしたポジションの決済注文を出します

ポジションを決済するには、以下の様にコーディングします。
取得した情報をMqlTradeRequestにセットして、OrderSend決済注文を出します。今回は買注文を実行してオープンしたポジションの決済注文を行います。

実行結果 – チケット番号301907が決済されました 。 
※ チケット番号301910はチケット番号301907の決済注文となります。

Originally posted 2019-08-12 13:28:32.

気配値表示ウインドウから特定通貨ペアを非表示にする方法

MetaTrader4では、気配値表示ウインドウに表示する通貨ペアをカスタマイズして見やすくすることが出来ます。閲覧が不要な銘柄など、気配値表示ウインドウに表示したくない銘柄を選択して、ウインドウの一覧から個別に削除(非表示に)することができます。

気配値表示ウインドウ内に表示された特定通貨ペアを非表示にする方法は、次の通りです。


気配値表示ウインドウを右クリックし、「非表示」をクリックします。

気配値表示ウインドウ内特定通貨ペア非表示設定画面

次へ

気配値表示ウインドウ内から特定通貨ペアが削除され非表示になります。

気配値表示ウインドウ内特定通貨ペア非表示完了画面

ショートカットキーで「気配値表示ウインドウ」から特定ペアを非表示にするには、非表示にしたい通貨ペアをクリックし、キーボードの「Delete」キーを押します。

キーボードからの「通貨ペアリスト」非表示方法

Originally posted 2019-08-12 16:23:27.

第一回 MQL5プログラミングのための前知識

このブログはMQL5を使って、MT5のエキスパートアドバイザー(EA)、インディケーター、スクリプトを開発する皆さんに向けて役に立つ情報を共有させて頂きます。

MT5がこれから急速に普及していくと期待されるものの、MQL5に関する情報コンテンツはまだまだ少ないと言われています。そのため、MetaQuotesはMQL5コミュニティ(https://www.mql5.com)というMQL5の利用者コミュニティにて豊富なコンテンツと情報交換の場を提供しております。更に、このブログでは日本の利用者のために特化したMQL5に関するコンテンツを増やしていこうと思います。

そして第一回ですが、MQL5を使う前に、まずMT5では注文、約定、建玉はどのように保存されているか、MT4との違いなど、前提となる知識を整理します。

取引情報の取扱い

MQL5でプログラミングを始める前に、MT4とMT5の取引データの違いを確認します。
MT5では取引情報に約定の概念が加わり、 口座履歴に表示される取引履歴も異なります。 MT4の場合、1注文番号、1列の表示データで表現されていましたが、 MT5の場合にはより詳細な情報を表示することができます。
取引約定情報が加わることでサーバー間での処理時間を知ることなども詳細に知ることが可能となり、より詳細かつ効率的に自動取引ツール、EAを作成することができます。

例 : ポジションオープン時のデータ状態

注文: ユーザーが操作し、取引サーバーに送ったデータ
取引: 取引サーバーによって処理された注文情報 ※
ポジション:約定の結果、売買が成立した取引情報

※MetaTrader 5からは新規に取引というデータ概念が登場しました。

MQL5参照リンク:MQL5.com: https://www.mql5.com/ja/articles/211

MT4 : MQL4とMT5 : MQL5取引に関する関数の違い

また、MT5ではすべての注文処理が一つの関数に集約されました。 要するに、成行、指値、変更、決済、キャンセルといったリクエストは全てトレーダーから出した「注文」であり、其々「注文」の内容が異なると、MT5で見直した考えです。

MQL5ではこのような関数や取引データの取扱に関するMQL4からの変更点があります。

MetaTrader5上での取引情報を確認しよう

成行注文によりポジションをオープンし、ポジションを持ちます。

USDJPY を1 ロット成行買いで新規注文し、111.012円で約定した場合

[ツールボックス ] – [取引] 
[オープン中のポジション、約定前の指値注文、逆指値注文はこちらに表示されます。MT4同様注文、チケット、ポジション約定時間、数量、約定価格が表示されます。

[ツールボックス ] – [口座履歴] 
取引履歴には4種類の表示方法があります。

[ 注文と約定]MT4と違い、注文と約定は2行になります。

注文: ユーザーが操作し、取引サーバーに送信したデータ
約定: 取引サーバーによって処理された内容

1行目は注文を送信した情報として注文時間、銘柄、チケット(Order ID)、注文のタイプ、 1ロット、 価格(Market: 成行注文のため)と表示されます。
2行目には注文情報に対する約定取引情報として約定時間、チケット(Deal ID)、in(新規ポジションオープン)、ロット、成行注文約定時の価格が2行面に注文情報に対する取引約定情報として表現されます。
※左に表示されるアイコンは買:青色、売:赤色となります。

[ 取引一覧 ] 
口座履歴には注文がサーバーで 約定処理をした注文の履歴が表示されます。
この場合には注文番号(OrderID)、USDJPY、買注文、注文価格内容(成行の場合にはMarketと表示)、発注時間、状況(filled成立/cancelled不成立)といった情報が確認できます。 MT4にはありません

[ ポジション一覧 ]
MT4にはないポジション履歴の一覧です。
クローズしていないため、ポジション履歴はありません 。

先程約定した USDJPY 1.0 ロットの買いポジションを成行で決済注文し、111.054円で約定した場合

[ 注文と約定] 
MT4と違い新規と決済は2つの注文として表示され、それぞれの約定情報も含め合計4行になります。

注文: 取引者が出した要求
約定: 要求に対する応答

1行目 – 新規注文
2行目 – 新規注文の約定(in)
3行目 – 決済注文
4行目 – 決済注文の約定(out)
※ MT4にはないin」と「out」の概念は新規と決済を表しています。
チケットに表示される数字はそれぞれの注文ID(Order ID)取引ID(Deal ID)を表わしています。

[注文一覧]
注文のみ表示され、状況欄でfilled / cancelled など情報で約定結果分かりますが、新規か決済か、また約定価格が分かりません。

”価格”には注文内容が表示されるため、成行注文の場合には価格に”market”と表示されます。

[取引一覧]
約定のみ表示され、注文時の価格が分かりません。

[ポジション一覧]
決済したので、ポジション履歴が表示されます。
新規約定時間、決済約定時間、新規約定価格、決済約定価格を確認できます。
MT4の取引履歴と似ています

以上、MT5の取引履歴の見方はよく分かりましたか。次回からは、プログラミングの話を始めます

Originally posted 2019-08-12 13:24:02.