2015年12月25日金曜日

[MQL超入門] その005 とりあえずやってみよう!簡単インジケータ作成1

プログラムを覚える基本は、とりあえずやってみることです。
作ってみて失敗して、また作るといった繰り返しができることがソフトウェアの良いところです。

※余談
リアル口座を運用しているMT4を使用する場合、ソフトウェアの作成に失敗すると、取引に影響が出ます。
そこで、プログラム開発用にMT4のデモ口座を作ることをお勧めします。

[雑記]MT4のデモ口座はどこがいい?
http://mt4program.blogspot.jp/2015/12/mt4.html
などから、プログラム開発用のデモ口座を開き、プログラムはデモ口座が動いているMT4上で作ることをお勧めします。

説明の記事が2回続きましたので、足りていないところは後回しにして、とりあえず、インジケータを作成してみましょう。

メタエディター上で下記の通りに操作してみてください。


ナビゲータ上で、[Indicators]を一度クリックして青反転表示になった所で、マウスの右クリックから[新規ファイル(N)]を選択します。

・図005.01 インジケータ 新規作成



MQL4ウィザードにて[カスタムインディケータ」を選択した状態で、[次へ(N)]をクリックします。
 ・図005.02 MQLウィザード インジケータ 選択

名前の箇所に[Indicators\heikin]と入力して[次へ(N)]を押します。
※heikinの箇所は半角英数字であれば好きな名前で問題ありません。またブラウザの環境によってIndicatorsとheikin間の記号が¥マークではなく、バックスラッシュ(/の反対)に表示されてしまっているかもしれません。Indicatorとheikinの間は¥マークです。
 ・図005.03 MQLウィザード 名前の決定

[次へ(N)]をクリックします。
 ・図005.04 MQLウィザード カスタムイベントハンドラの選択


インジケータに描画する変数を追加します。[追加]をクリックします。
 ・図005.05 MQLウィザード プロットの追加

最後に[完了]をクリックして終了です。
 ・図005.06 MQLウィザード プロットの追加 後


とりあえず、やってみようですので、細かい説明は次の機会ということにして、これでインジケータが出来上がりました。

[MQL超入門] その002 最初の一歩。Hello world!
を参考に、実行してみてください。

MT4でインジケータを表示するときに出てくる、いつもの初期画面をOKすると、価格情報以外何もないチャートが表示されているかと思います。

プログラムを止めてみましょう。メタエディタ上で赤い停止ボタンをクリックしてください。
・図005.07 停止
MT4でチャートが消えたかと思います。

インジケータの作成~実行~停止まで、一通り行うことができました。何も表示されないインジケータでは楽しくないため、早速プログラムを作ってみましょう。

少し長くなりましたので、次回に続きます。

次の回へ


ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログへ

2015年12月24日木曜日

[MQL超入門] その004 コメントと、定数 変数 計算式 代入式

実際のプログラムに入る前に、最低限必要な知識として

コメントと、定数 変数 計算式 代入式

を説明したいと思います。

■コメント

これは、プログラム上何もしない文字列です。

・・・・?なぜ、こんなものがあるのかというと、作っているときは覚えているのですが、あとから見たときにわからなくならないよう、自由な文字列を入力できるようになっています。

コメントがきれいに書かれているプログラムは、後から見直したときに、なぜ、こんな処理をしたのかを思い出しやすくなります。

MQL上、コメントは、次の二つの書き方があります。

// 1行コメント

/*
ブロックコメント
*/

スラッシュを二つ続けて記入すると、その後ろの文字列は、改行が入るまで、コメントとして扱われます。

また、/* */で囲った範囲も同じようにコメントとして扱われます。

コメントは、プログラム上何もしない文字列ですので、言語に関係なく自由に記載することができます。

■定数 変数 計算式 代入式
定数から、代入式までは、一度に説明したいと思います。

定数とは、1や10など値そのものを指します。
変数は、中の値を変更できる箱と思ってください。
計算式は、+-など四則演算を含む様々な計算をしている式です。
代入式は、変数の中身を変える式です。

さて、一度に説明しましたが、中学数学の方程式を思い出すと、イメージが付きやすいかと思います。具体的なコード例とイメージ図です。

// 変数の宣言
int x;
int y;

// 変数へ、定数の1を代入する。
x=1;

// 1が設定されているxに2を足すため、yは3になる。
y=x + 2;

// yには3が入っていて、3を足すので、yは6になる。
y=y + 3;

図004.01 定数 変数 計算式 代入式

次の回へ


ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログへ

2015年12月23日水曜日

[MQL超入門] その003 プログラムの基本を学ぼう。入力+処理=>出力

いよいよ、プログラムに入っていきたいと思います。
超入門ということで、基本的な考え方から入ります。

プログラムは、基本的な構造が決まっています。

それは

入力+処理=>出力

という考え方です。

入力は、マウスのクリックや、価格情報のことを示します。
処理は、入力に対する計算など、何か変更や計算を行うことです。
出力は、画面の表示や、ポジション操作をことです。

図003.01 入力+処理=>出力のイメージ

プログラムは、この3つの要素を考えることが一番最初の作業です。

MQLでは、出力はわかりやすいです。

MT4としてインジケータとしてチャートを表示したいのか、EAとしてポジションを自動売買したいのかが決まるためです。

ですので、どのような入力をもとに、どんな処理をして、チャートの表示や自動売買を行うか?という事を考えます。

入力は主に価格の情報となります。もちろん、そのほかいろんな情報を入力することは可能ですが、MQLでは価格が一番簡単に入力として扱える情報となっています。

そこで、第一ステップとして

価格を入力して、何か処理をして、チャートを表示する。

という流れを勉強していきたいと考えています。

あえて、処理については説明しませんでした。
この部分がプログラムの一番大切なところであり、また難しいところです。

この処理を行えるようになるための、基礎的な知識が必要です。


次は、基礎的な

定数 変数 計算式 代入式

という、プログラムには欠かせない、計算処理について説明したいと思います。

次の回へ

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログへ

2015年12月22日火曜日

[MT4インジケータ]TEMAかい離率 瞬間的かい離で利食い&逆張りタイミング?


相変わらずの逆張り大好きっ子です。

えぇ日々逆張りに使えないかどうか考えています(笑)

移動平均に対するかい離率ですが、ラインからのかい離率というのは、どの程度まで行くのか予測が難しいところがあります。

もう少し瞬間値的なかい離なら、ある程度制限されるのではないかと思い、TEMAに対してのかい離率をグラフにしてみました。

計算式は下記の通りです。

TEMAかい離率[%]= 終値 / TEMA × 100 - 100

0を中心に上方向にかい離している場合は+、下方向にかい離している場合は-となります。

・・・まぁ裁量トレードの方はチャートを見たら一目なので、あまり必要ないかもしれません。どちらかというとシステムトレード派の方の利食いタイミングなどの測定向けかなぁとは思っています。Gewinn6でも利食いタイミングに使用しています。

で、これを使って逆張り仕掛けたらどんなもん?と思って、超単純にバックテストで実験してみました。

2011/1/1~2015/12/20 EURGBP 1Hにて、0.5%/-0.5%を超えたのち、0.5/-0.5を再び下回った際、ポジションを24時間保持した場合の結果です。ストップとか利食いとか全く考えず24時間後に閉じる単純ロジックです。

初期証拠金 10000.00   スプレッド 15
純益 802.24 総利益 1942.95 総損失 -1140.71
プロフィットファクタ 1.70 期待利得 17.44
絶対ドローダウン 203.32 最大ドローダウン 417.62 (4.05%) 相対ドローダウン 4.05% (417.62)

総取引数 46 売りポジション(勝率%) 23 (78.26%) 買いポジション(勝率%) 23 (60.87%)
 勝率(%) 32 (69.57%) 負率 (%) 14 (30.43%)
最大 勝トレード 202.57 敗トレード -163.02
平均 勝トレード 60.72 敗トレード -81.48
最大 連勝(金額) 7 (331.43) 連敗(金額) 3 (-216.03)
最大 連勝(トレード数) 561.87 (5) 連敗(トレード数) -248.09 (2)
平均 連勝 3 連敗 1


おぉ。利食いも損切も全く考えてない状況で、単に24時間後にクローズするだけで+引けはなかなかです。
まぁ5年で取引回数が50回を下回ってますので、かなりサンプルが足りないですよね。ただ、EURUSD 1Hでも同じく+引けしました。うん。まぁ考え方をまとめてちゃんと組めば、もしかしてそれなり?


プロぐランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログへ


ということで、TEMAかい離率のコードはこちらから

2015年12月21日月曜日

[MQL超入門] その002 最初の一歩。Hello world!

まずは、第一歩を踏み出してみましょう。
メタエディターを立ち上げて、下の通りに操作してみてください。

メタエディター左側にある、ナビゲーターと書いてある小さい枠内の[Scripts]と書かれている個所を、マウスでクリックします。Scriptsの文字が青く反転しますので、その状態でマウスの右クリックを行い、[新規ファイル(N)]をクリックします。

・図002.01 新規ファイルの作成


MQL ウィザードという画面が表示されますので、[スクリプト]が選択されていることを確認して、[次へ(N)]をクリックします。

・図002.02 MQLウィザード スクリプト選択


次の画面で、名前の欄に[Scripts\] と書かれていると思います。¥マークの後ろに[Test]と追加して、[完了]をクリックします。

・図002.03 MQLウィザード 名前の入力

英語っぽい、いろいろ書かれた画面が表示されれば、新規ファイルの追加は成功です。

・図002.04 テストスクリプトの画面

さて、まず日本語が入力可能かどうかを確認します。
まず、新しく追加したファイルの適当な箇所を一度クリックした後、[あいうえお]と入力してみてください。画面左上に[あいうえお]と表示されたら、[Enter]キーをおします。

・図002.05 あいうえおを入力

メタエディター上に、正しく[あいうえお]が表示されればOKです。
よくわからない文字に変化したり、□が表示されたりする場合は、フォント設定を行います。

・図002.06 あいうえおを入力

フォント設定は、オプションから行います。メニューの[ツール(T)]→[オプション(O)]を選択します。

・図002.07 オプション画面の表示

オプション画面が表示されたら、フォントと書かれているところをクリックします。フォントの設定が行えますので、[MS ゴシック]を選択したのち、スクリプトの箇所にて[日本語]を選択します。

最後に[OK]をクリックします。

・図002.08 オプション画面 フォント設定


さぁ、ここまでで準備完了です。
プログラムの世界では、一番初めはHello worldという文字列を表示するというのが恒例行事となっています。早速、Hello worldを表示してみましょう。

赤字の部分をそのまま入力してみてください。先ほど入力した[あいうえお]は消してください。
//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  MessageBox("Hello world");

  }
//+------------------------------------------------------------------+


赤字の部分を入力したら、メタエディターの実行ボタンをクリックしてみましょう。
緑色の再生ボタンのようなマークです。

・図002.09 実行ボタン


画面にHello worldと書かれたメッセージが表示されたら成功です。
さぁまず第一歩を踏み出すことができました。

・図002.10 実行結果

このように、文字列を書いて、それを動かすことを「プログラムを実行する。」と言います。

MT4では、MQLと呼ばれる言葉を使ってプログラムを書くことができます。
この言葉を駆使して、さまざまな取引や解析を行うことで、一歩進んだトレードが可能になります。

ちなみに実行ボタンを押しても、エラーと書かれた箇所に、赤いびっくりマークが出て実行できない場合は、もう一度、MessageBox("Hello world");と書いた部分を確認してしてください。すべて半角文字の必要があります。全角文字が入力されていると正しく実行できません。全角スペースと半角スペースは見分けが付きませんので、特に注意してください。

次の回へ