2007年11月05日
MT4本目次
- toyolab
- 18:03
- カテゴリー:MetaTrader4入門
MT4本執筆状況です。出版は12月中ということです。
詳細が決まりましたらまた連絡します。価格は2800円+税です。
内容はこんな感じです。
「メタトレーダー入門(仮)」
はじめに
1.メタトレーダーの特長
メタトレーダーの画面
メタトレーダーは高機能なチャートソフト
デモ口座でFX売買の練習をしよう
独自の指標をプログラミングできる
売買ルールをプログラミングして究極の自動売買
システムトレードで欠かせないバックテスト機能も充実
2.インストールしてみよう
動作環境
ダウンロード
インストール
セットアップ
起動
ログインできない場合
アンインストール
ライブアップデート
3.チャートソフトとして利用する
チャートを表示させてみよう
チャートの種類を選ぼう
タイムフレームの変更
ローソク足の見方
好みのチャートスタイルを作ろう
好みのチャートの保存
複数のチャートの表示方法
テクニカル指標の表示
テクニカル指標の削除
ラインなどの挿入
4.デモ口座で売買してみよう
口座情報
新規の売買注文
成行注文
指値・逆指値注文
注文の変更・取り消し
ポジションの決済
取引履歴の確認
5.独自の指標をプログラムする
メタエディターを起動する
プログラミング言語MQL4で何ができるのか
プログラムファイルの保存場所
メタエディターの設定
まずは雛形から始めよう
プログラミングの基礎
「//」から始まる行はコメント
「#」から始まる行はプログラム全体の設定
文の終わりのセミコロン「;」
複数の文をまとめるときは 「{ }」
特別な関数の役割
変数の宣言
計算式の書き方
条件式の書き方
関数の戻り値
指標のための配列
指標プログラムの呼び出されるタイミング
for文による繰り返し計算で指標をチャートに表示させる
指標の色と線種を変える
指標のパラメーター設定
指標の表示範囲を変更する
オシレーター系指標の作成
オシレーター系指標の例(モメンタム)
オシレーター系指標の例(ストキャスティックス)
組み込み指標関数の使い方
組み込み指標関数を組み合わせる
チャートウィンドウへのデータの表示
データウィンドウへの指標データの表示
6.自動売買のプログラミング法
トレードシステム(移動平均交差システム)
売買ルールのためのプログラミング
if文の基本的な書き方
条件式の書き方
条件により関数を終了させる書き方
条件により繰り返しをスキップする書き方
売買シグナルを表示させる
エキスパートプログラムを作成する
システムを検証する
ストラテジーテスターの使い方
レポートの見方
システムのパラメーターの変更
システムのパラメーターの最適化
マネーマネジメント
一定ポイントのストップロス
一定パーセントのストップロス
ポジションサイジング
システムを自動売買させる
売買シグナルをメールなどで知らせる
外部ソフトとのデータの連携
メタトレーダーのデータをデータファイルとして取り出す
メタトレーダーをDDEサーバーとして利用する
7.カスタム指標・エキスパートプログラムサンプル集
移動平均
ボリンジャーバンド
MACD
RSI
ストキャスティックス
パラボリックSAR
ブレイクアウトシステムのシグナル指標
ブレイクアウトシステムのエキスパート
あとがき
付録
A.メタトレーダー採用業者
B.MQL4関数一覧
2007年09月27日
MetaTrader の歴史
- toyolab
- 14:07
- カテゴリー:MetaTrader4入門
MetaQuotes 社のウェブサイトからMetaTrader の歴史について調べてみました。
15 February 2004
MetaTrader 3.82 がリリースされました。いわゆるMetaTrader 3(MT3)のリリース記録はこれしかないのですが、最終バージョンは2005年にリリースされた MetaTrader 3.86です。
12 July 2004
MetaTrader4 に先駆けて、MQL4の開発環境であるMetaEditor 4 のβ版がリリースされました。
22 November 2004
MetaTrader 4 のβ版がリリースされました。
28 February 2005
MetaQuotes Software 社が≪MetaTrader≫をロシアの特許庁に商標登録しました。
01 July 2005
MetaTrader 4 を正式にリリースしました。
03 October 2005
MetaTrader 4 Mobile をリリースしました。
14 November 2006
MetaTrader 4 build 200 をリリースしました。前回の記事での関数名の変更の多くはこのリリース時に行われました。
05 December 2006
MetaTrader 4 MultiTerminal を正式にリリースしました。
複数のアカウントを同時に管理するソフトです。
11 September 2007
MetaTrader 4 build 210 をリリースしました。MetaTrader 4の最新のリリースです。
まだまだバージョンアップは続いています。
MT4の本を書いたばかりなのに、MT5なんて出たら大変だなあと思っていましたが、現在のMT4も半年以上のβテストの後でのリリースですから、しばらくはMT4でいけるのではないでしょうか。
2007年09月24日
名称変更されたMQL4関数について
- toyolab
- 12:50
- カテゴリー:MetaTrader4入門
MQL4の関数の中にはアップデートに伴って関数名が変わったり、仕様が変わったりしているものがあります。
MetaEditor のヘルプの中にその一覧があります。
ブログの過去の記事と関連があるのが、時間を表すCurTime()とLocalTime()です。
関連記事はこちらです。→MT4入門(8) - 通知に関する関数の使い方(1)
以前のバージョンでは、CurTime()もLocalTime()もサーバー上の時間だったので扱いにくかったのですが、最近のバージョンでは、TimeCurrent()、TimeLocal()と関数名が変わり、仕様も
TimeCurrent() - サーバー上の時間
TimeLocal() - ローカルPC上の時間
と変わっています。なので、TimeLocal()を使うと日本時間を簡単に表示させることができるようになりました。
この変更も出版予定のMT4本に反映されています。
2007年08月25日
MT4本執筆状況
- toyolab
- 18:06
- コメントする
- カテゴリー:MetaTrader4入門
時々問い合わせがあるのですが、MT4入門の本、今書いてます。年内に出版の予定です(予定は未定ですが)。
ブログでの連載記事も入っていますが、内容的にはそれよりはるかに膨らんでいます。
プログラミングについては未経験者を対象にしているので、あまり高度な使い方までは説明していません。
なので、あまり凝ったこともできないのですが、その代わりに、テクニカル指標のサンプルプログラムをいくつか追加しています。MT4に付属のサンプルプログラムよりはわかりやすいかと思います。
ところで、MT4もまだライブアップデートでバージョンアップが続いています。そういう状態だと、機能が急に増えたり、メニューや設定画面が変わったり、MQL4の関数も新しいものができたり、関数の名前が変わったりということが起こります。
今執筆中のMT4本でも、1年前のブログの記事の頃から関数名が変わって機能が多少変わったりしているものがありました。
おそらく、今回出版しても、1年後には相当内容が変わっているかもしれません。
出版物だとなかなか改訂版を出すのが難しいので、ちょっとした修正などはブログやウェブサイトで行うしかないでしょうね。
MT5までバージョンが上がってしまったらお手上げですが(^^;
2007年07月01日
MT4での自動売買システムの作り方
- toyolab
- 09:56
- コメントする
- カテゴリー:MetaTrader4入門
MT4では自動売買システムをExpert Advisor(EA)という形で作成しますが、私はいきなりEAを作る前に、売買シグナルの場所を示すカスタム指標を作成することをお薦めします。
もちろんバックテストはEAを使ってやりますし、バックテスト時には売買ポイントもはっきりしますが、バックテストでのシグナルの場所が、売買ルールと合っているかどうかを確認するためには、予めどういう時にシグナルが出るかを把握しておく必要があります。またカスタム指標の方が、売買ルールに利用するすべての指標も合わせて表示させられるので、売買ルールの修正がやりやすくなります。
実は以前の記事「シグナルインディケータの作り方(1)」が、それに相当するもので、そこから Expert Advisor の記事に続くはずだったのですが、説明上色々と難しい部分があり、止まってしまったわけです。
現在執筆中の本では、自動売買システムの作成の流れをシグナルインディケータの作成から始めています。ここでは詳しいことは省略しますが、MT4での自動売買の説明がブログ上で進めなかった理由の一つとして、プログラムの作り方によっては、売買ルール通りのバックテストが行われないケースや、実際には売買できないのにバックテストの結果だけよくなってしまうケースなどがあったからです。
残念ながら、MT4での自動売買システム開発の環境はまだ完成には至っていません。なので、バックテストだけを鵜呑みにしてシステムを作らないようにするためにも、まず売買シグナルの場所を把握する必要があるのです。そして、その通りのバックテストが行われることを確認してはじめて、そのバックテストが信頼できる結果と見なせるのです。
2007年06月28日
MT4入門執筆中
- toyolab
- 19:03
- コメント (2)
- カテゴリー:MetaTrader4入門
MT4入門書、現在執筆中です。だいたい目次は決まってきました。
やはりMT4の機能すべては網羅できないので、テクニカル指標を使うー作るー売買システムに応用するという流れを基に枝葉をつける形になりそうです。
最近、PDF形式のE-BOOKなどが多い中、書籍として出版するのは、コストがかかる分、リターンは少ないです。まあ、リスクは出版社が引き受けてくれるので、ノーリスク、ローリターンといったところでしょうか。実際、書籍の値段は3000円前後になると聞いています。なので、私のところに入る印税なんて1冊数百円程度です。
でも、中身のない情報商材が何万円もの値段で売られている現状を打破するためにも、読者の皆さんには情報の適正な価値を見極めて欲しいと思います。高価な商材でも、その何十倍、何百倍もの利益が本当に得られるのであれば、それは安い買い物です。私の本はそれを読んだだけでは儲けることはできません。そういう意味でこれに何万円もの値段をつけるのは詐欺です。出来上がってみないと何とも言えませんが、3000円程度の値段は適正だと思います。
できれば、これが3000円以上の価値があると思ってくれる人に買ってもらいたいところです。
2007年06月10日
MT4入門-続きは本で
- toyolab
- 15:33
- コメント (3)
- カテゴリー:MetaTrader4入門
MT4入門記事、1年ぶりに復活します。と言ってもブログ上ではなく、書籍の形になるかと思います。
E-BOOKの形で簡単に出すことも考えたのですが、たまたま某投資系出版社からの企画で声がかかり、執筆を依頼されました。
内容的にはMT4の入門書ということで、MT4のインストールから始まり、MT4の使い方、インジケータのプログラミング、自動売買の方法までカバーする予定です。
既にMT4を利用されている中級、上級の方もいらっしゃると思いますが、まずは、最近のシステムトレード、自動売買の流れで、これからシステムトレードの始めたいけど、どんなソフトを使ったらいいのかわからないという方のために、手軽に始められるような内容にしたいと思っています。
他にも、このブログでも触れてきた海外業者の話題、システムトレードや自動売買を行う時の注意点などもコラムの形で随所に散りばめる予定です。
ただ本の場合、執筆、編集、校正、印刷と時間がかかるので今年いっぱいはかかるかと思います。なので、今すぐ始めたい人というより、来年から始めたい人向けになるかと思いますが、気長にお待ちください。
2007年05月24日
Windows Vista で MT4
- toyolab
- 18:27
- コメントする
- カテゴリー:MetaTrader4入門
Windows Vista の場合、標準設定のまま、C:\Program Files の下にインストールすると、プログラムファイルなどユーザーが後から作成したファイルをその下に保存できないので、データ保存の際に書き込みエラーが出たりすることがあります。
それを防ごうとすると、インストールしたフォルダとは別の場所、例えば、
C:\Users\{ユーザー名}\AppData\Local\VirtualStore\Program Files\MetaTrader 4
の下に保存するように保存先を変更しなければならなかったりします。
そのような作業がわずらわしい場合、インストールでインストールフォルダを選択するときに、ユーザーのフォルダの下、例えば、
C:\Users\{ユーザー名}\Program Files\MetaTrader 4
のようなフォルダを選んでインストールしておくと、Windows XP などと同じくインストールしたフォルダの下にデータが保存されるようになります。
2007年04月02日
MetaTrader4 on Windows Vista
- toyolab
- 18:09
- コメント (6)
- カテゴリー:MetaTrader4入門
去年の3月から5月にかけて書いていたMT4入門記事ですが、13回やって突然やめた割には続きの要望がなかったので、ほとんど放置していました。
今回、ささいなことから、MT4について再度考えてみる機会がありました。
以前はMT4で自動売買をさせるために、MT4対応の海外の業者でアカウントを取ったりしてやっていましたが、自動売買からオプショントレードに転向した後も、やはりMT4は使い続けています。
やはり、軽いというのが一番でしょうか。Windows ベースのソフトはどんどん巨大化して重くなっている中で、MT4はかなり軽い部類のソフトだと思います。しかも安定してます。サーバーが切れた以外に途中でソフト自体がフリーズしたりした経験はほとんど記憶にないくらいです。
環境に依存しないことも重要です。今まで Windows XPを利用していましたが、たまたま Windows Vista の載ったノートPCが手に入ったので、MT4を入れてみたところ、見たところ問題なく動作しているようです。OSに依存した凝った技を使わず、シンプルな作りのソフトなのだと思います。
MT4はフリーの為替チャートソフトとしては、手軽さと高機能を兼ね備えた優れものですね。今回改めてそう思いました。
2006年05月07日
MT4入門(13) - シグナルインディケータの作り方(1)
- 手ぶら
- 10:36
- コメント (8)
- トラックバックする
- カテゴリー:MetaTrader4入門
MetaTrader4入門の第13回目です。
今回からはカスタムインディケータの別の使い方を紹介します。
簡単に言ってしまえば、売買シグナルをチャート上に表示させるためのカスタムインディケータの使い方です。
ここでは最も基本的な移動平均のクロスで売買するシステムを考えてみます。
まず、インディケータ用バッファとして短期と長期の2種類の移動平均用バッファと、買いと売りの2種類のシグナル用バッファを定義します。
//---- インディケータバッファ
double BufFastMA[]; //短期MA
double BufSlowMA[]; //長期MA
double BufBuy[]; //買いシグナル
double BufSell[]; //売りシグナル
移動平均用のバッファについてはラインを引くだけなので、これまで説明した通りです。
シグナル用のバッファについては、シグナルのあるところだけ値があり、それ以外の場所では0となります。またシグナルもただの点だけではわかりにくいので、もっとわかりやすい記号や絵文字を表示させたいところです。
そのためにシグナル用バッファの初期化の際に次のような書き方をします。
//---- インディケータの種類の設定(Buyシグナル)
SetIndexBuffer(2, BufBuy);
SetIndexStyle(2, DRAW_ARROW, STYLE_SOLID, 1, Blue);
SetIndexArrow(2,233);
SetIndexEmptyValue(2,0);
これまでと違う点は、SetIndexStyle() で DRAW_ARROW を指定する点です。
そして、SetIndexArrow() で記号の種類として233 を指定します。ここで、233って何かというと、Wingdings という絵文字フォントの番号で、他にも次の表にのようなものが使えます。
これを見ると、233は上矢印の記号となっていることがわかります。
最後に SetIndexEmptyValue(2,0) で、バッファの値をすべて0にクリアしてあります。これは、後でシグナルのところだけ値を入れるので、他の部分は0にしておかないとシグナルでないところに記号が表示されたりするためです。
売りシグナルについても同様に記述します。
//---- インディケータの種類の設定(Sellシグナル)
SetIndexBuffer(3, BufSell);
SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, 1, Red);
SetIndexArrow(3,234);
SetIndexEmptyValue(3,0);
次に実際のインディケータの計算部分について見てみます。start()関数に記述すべき内容は以下の通りです。

for文の中でそれぞれのバッファを計算するのはこれまでと同じです。
最初の2行は短期と長期の移動平均の計算です。FastMA_Period と SlowMA_Period はそれぞれ後からでも変えられるように extern 宣言されています。
初期値としては
//---- パラメータ
extern int FastMA_Period = 10;
extern int SlowMA_Period = 20;
となっています。
そして、その次の2行がシグナルの計算です。ここでは条件判別のために if 文を使っています。わかりやすいように買いシグナルの条件を図に示してみます。

図の中で丸で囲んだ部分が買いシグナルを出したい場所です。
移動平均のクロスをどう表せばよいかというと、まず、クロスする直前では、短期移動平均(BufFastMA)は長期移動平均(BufSlowMA)より下です。そしてクロスした直後では、上下関係が逆転します。
つまり、クロスした直後がi番目のバーの位置だとすると、
BufFastMA[i] > BufSlowMA[i]
と表せます。そして、その前の(i+1)番目のバーでは、
BufFastMA[i+1] < BufSlowMA[i+1]
または
BufFastMA[i+1] = BufSlowMA[i+1]
となっているはずです。MQL4ではC言語と同様、等号と不等号は一つで表せるので、
BufFastMA[i+1] <= BufSlowMA[i+1]
となります。これら二つの条件をANDを表す && という論理演算子で結んであげたものが買いシグナルの条件となります。
ここでは、バーの終値の位置にシグナルを表示させるために BufBuy[i] = Close[i] としています。
売りシグナルの場合は全く逆なので if 文中での不等号の向きを逆にすればいいだけです。
今回のプログラムを Sample10_Ind.mq4 としてアップロードしておきます。
(Download Sample10_Ind.mq4)
あと、プログラム中に
//---- データウィンドウのラベル
SetIndexLabel(0,"FastMA");
SetIndexLabel(1,"SlowMA");
SetIndexLabel(2,"BuySignal");
SetIndexLabel(3,"SellSignal");
という部分があります。
これはMetaTraderのメニューから [View]-[DataWindow]を選んだときに表示されるウィンドウにインディケータの値が表示されますが、そのラベルをわかりやすいように設定するためのコードです。データウインドウに表示させたくなければ、空白("")を設定すればOKです。
今回のプログラムをチャートにアタッチするとこんな感じになります。
どうしても移動平均のクロスだとシグナルが出るのが遅れてしまうので、もみ合いでは勝てませんが、トレンドが出れば大きく勝てることがよくわかります。
ちょっと長くなったので、今日はこのへんで。
次回はレンジブレイクアウトシステムを例にシグナルインディケータの話を続けます。
MetaTrader4入門その他のエントリー
2006年04月30日
2006年04月22日
2006年04月11日
2006年04月10日
2006年04月09日
2006年03月30日
2006年03月27日
2006年03月20日
2006年03月18日
2006年03月16日
2006年03月13日
2006年03月09日
上位ランキングのブログ記事はこちら