‘プログラミング講座’ カテゴリーのアーカイブ

プログラミング講座の第2回「初期設定」

2010年2月23日 火曜日
人気ブログランキングへ 現在67位!もし10位以内にランクインしたら感謝の気持ちを込めて、トレコミュユーザーにに何かお返しをしたいと考えていますので応援お願いします!(中居犬

Mr.Brainです。

クロスファイアFXですが、トレコミュさんから、引き続き5000円を負担してい頂ける事になりました!値上げまでに買いたいが、まだメタトレーダーについて知識がないので心配なんです。というようなお問い合わせもありましたので、少しは余裕もってみていただけると思います。トレコミュさんありがとうございますm(_ _)m

クロスファイアFX」については、下記のページで詳しく解説していますので、興味のある方はご覧ください。

「クロスファイアFX」の紹介はこちら
「クロスファイアFX」の特典「約定通知メールアプリOrderAutoAlart」紹介はこちら
「クロスファイアFX」の特典「EURCHF無料EA」紹介はこちら
「クロスファイアFX」に関するよくある質問と回答はこちら

さて、今回は2月17日のコラムに続き、プログラミング講座の第2回目を実施したいと思います。(^^)

プログラムの流れにそって、具体的に詳しく解説していこうと思いますが、今回は、カスタムインジケーター(Coutom Indicator)プログラムの初期設定の部分について説明です。まず、前回のカスタムインジケーター(Coutom Indicator)から、初期設定の部分を抜き出ししてみますと以下の部分になります。

//—————————–
// プログラムの説明
//
// プログラム名:SampleInd001.mq4
// 説明    :トレコミュ用サンプルインジケーター
//        単純移動平均線
//—————————–
#property copyright “Copyright(C) 2010, Forex Trading Laboratory”
#property link      “http://t-commu.net/blog/t012/”

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

順番に説明していきますね。

//—————————–
// プログラムの説明
//
// プログラム名:SampleInd001.mq4
// 説明    :トレコミュ用サンプルインジケーター
//        単純移動平均線
//—————————–

の部分は、カスタムインジケーター(Coutom Indicator)の説明になります。”//”以降はコメントとして認識しますので、好きなフォーマットで記載しても構いません。作った本人が分かるように自由に書けばいいと思います。

尚、この部分は、必要なければ書かなくとも構いませんが、何本もカスタムインジケーター(Coutom Indicator)を作ると、後からどんなカスタムインジケーター(Coutom Indicator)なのか分からなくなりますから、この部分に記載しておけば、後から分かりますのでできれば書いておいた方がいいと思います。

次に、著作権表記の部分になりますが、以下の書式で書きます。

#property copyright “Copyright(C) 2010, Forex Trading Laboratory”
#property link      “http://t-commu.net/blog/t012/”

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

#から始まるものは、プリプロセッサ命令と呼びます。プログラム全体に関わる設定を表します。

プリプロセッサ命令には、以下の種類があります。

copyright 値
製作者の著作権を記載します。

link 値
製作者のホームページのURLを記載します。

#define 識別子 値
識別子の部分を値に置き換えて処理します。変数と同じような使い方をします。

#property 識別子 値
識別子に値を設定します。#defineと似ていますが、#defineの識別子は任意に指定できますが、#propertyの識別子は以下の種類に限定されています。

library
ライブラリーの製作時に指定します。

indicator_chart_window
カスタムインジケーター(Coutom Indicator)で計算した値を表示する場所を、チャートウィンドーに指定します。

indicator_separate_window
カスタムインジケーター(Coutom Indicator)で計算した値を表示する場所を、サブウィンドーに指定します。

indicator_buffers 値 (1-8)
カスタムインジケーター(Coutom Indicator)で計算した値を表示するカスタム指標の個数を指定します。メタトレーダー5(MT5)では、この個数に上限はなくなりましたが、メタトレーダー4(MT4)では、上限は8個となっています。

indicator_minimum 値
サブウィンドーの縦軸の最小値を設定します。

indicator_maximum 値
サブウィンドーの縦軸の最大値を設定します。

indicator_colorN 値
N番目のカスタム指標の表示色を設定します。

indicator_widthN 値
N番目のカスタム指標の線の幅を設定します。

indicator_styleN 値
N番目のカスタム指標のスタイルを設定します。

indicator_levelN 値
サブウィンドー上のN番目のレベルの値を設定します。

indicator_levelcolor 値
サブウィンドー上のレベルの色を設定します。

indicator_levelwidth 値
サブウィンドー上のレベルの線の幅を設定します。

indicator_levelstyle 値
サブウィンドー上のレベルの線のスタイルを設定します。

show_confirm
カスタムインジケーター(Coutom Indicator)を起動した時に、確認ウィンドーを表示する場合に指定します。

show_input
カスタムインジケーター(Coutom Indicator)を起動した時に、入力の確認ウィンドーを表示する場合に指定します。

stacksize 値
プログラムのスタックサイズを指定します。通常はあまり使う事はありません

#include ファイル名
ファイル名で指定したファイルを読み込みます。

#import ファイル名
外部プログラムを使う場合にファイル名を指定します。

以上が、初期設定です。設定項目が沢山あるようですが、実際に使用しなければ使わないものも多いので、慣れれば特に悩む事はないと思います。

これを、実際にプログラムに当てて説明すると

//—————————–
// プログラムの説明
//
// プログラム名:SampleInd001.mq4
// 説明    :トレコミュ用サンプルインジケーター
//        単純移動平均線
//—————————–

プログラムの説明部分です、僕の場合は、プログラム名を内容、レヴィジョンなどを記載しています。

#property copyright “Copyright(C) 2010, Forex Trading Laboratory”

著作権表記です。僕の所属する「Forex Trading Laboratory」の記載です。

#property link      “http://t-commu.net/blog/t012/”

ホームページのリンクです。このトレコミュのコラムのURLを記載しています。

#property indicator_chart_window

カスタム指標をチャートウィンドーに表示するという指定です。

#property indicator_buffers 1

カスタム指標の表示数を1に指定します。今回は単純移動平均線を1つ表示するだけなので1を指定します。

#property indicator_color1 Red

カスタム指標(単純移動平均線)の色を赤に指定しています。

後、線の幅とかスタイルの指定もできますが、SetIndexStyle命令で指定できますので、僕の場合は、イニシャル処理で指定する事が多く、初期設定では指定しません。この当たりは製作者の好みによると思います。

以上、今回は、カスタムインジケーター(Coutom Indicator)の初期設定について解説しましたが、いかがでしたでしょうか?

プログラムというと難しく感じてしまうかもしれませんが、こうして、一つ一つ見ていけば、難しいところなど何もありません。特に僕なんか英語は苦手ですが、プログラムは書けちゃいますし読めちゃうんですね(笑)

それでは、次回もお楽しみに!

脱毛 東京 レーザー脱毛

カスタムインジケーター(Coutom Indicator)の作り方

2010年2月17日 水曜日
人気ブログランキングへ 現在62位!もし10位以内にランクインしたら感謝の気持ちを込めて、トレコミュユーザーにに何かお返しをしたいと考えていますので応援お願いします!(中居犬

Mr.Brainです。

僕 Mr.Brain 製作の自動売買EA「クロスファイアFX」が、とても反響を頂いております。ありがとうございます。「クロスファイアFX」については、下記のページで詳しく解説していますので、興味のある方はご覧ください。

「クロスファイアFX」の紹介はこちら
「クロスファイアFX」の特典「約定通知メールアプリOrderAutoAlart」紹介はこちら
「クロスファイアFX」の特典「EURCHF無料EA」紹介はこちら
「クロスファイアFX」に関するよくある質問と回答はこちら

さて、今日はメタトレーダー4(MT4)のプログラミングのお話をしたいと思います。

トレコミュ掲示板でも、最近メタトレーダー4(MT4)のプログラミングの話題がちらほら出始めましたね。メタトレーダー4(MT4)はチャートソフトとしても、とても優秀ですが、やはり、その機能を十分に発揮するには、やはりプログラミングできる事が一番です。

プログラミングできれば、自分の思い描くオリジナルのカスタムインジケーター(Coutom Indicator)を作ったり、自動売買のEAを作ったりもできます。

なので、コラムを読んで頂いている読者の皆さんが、メタトレーダー(MT4)でプログラミングできるように、メタトレーダー4(MT4)のプログラミングの解説していきたいと思います。

では、まず初回の今日は、カスタムインジケーター(Coutom Indicator)の構造についてお話します。

カスタムインジケーター(Coutom Indicator)とは、通称インジケーターと呼ばれ、オリジナルの指標を表示するプログラムです。一つの通貨ペアのチャートに複数のインジケーターを組み込む事ができます。インジケーターは、独自の計算による算出した結果を元にラインやバークグラフを表示したり、売買シグナルを表示したりできます。また、このインジケーターの結果を元に、Expert Advisorで読み込んで自動売買を行う事ができます。

メタトレーダー4(MT4)のプログラミングを憶えるには、まず、このカスタムインジケーター(Coutom Indicator)を憶える事が近道です。カスタムインジケーター(Coutom Indicator)を作る事ができれば、そのカスタムインジケーター(Coutom Indicator)の結果を取り出して自動売買する事ができますので、EAの構造もシンプルになり、また、デバックも非常に簡単です。

カスタムインジケーターの構造は、以下のようになっています。

初期設定

プログラムの説明、著作権表記、リンク
指標の表示場所の宣言
指標バッファの宣言
パラメーターの宣言

イニシャル処理

指標バッファの設定

メイン処理

指標の計算
指標の表示

さて、それぞれの処理について、順番に説明しますね。

初期設定

プログラムの説明
プログラムの説明をコメントで記述します。書式はどのような形でも構いません。作った本人が分かるように自由に書いてください。また、必要なければ書かなくとも構いません。

著作権表記
プログラムの著作権の記述をします。必要なければ書かなくとも構いません。

リンク
プログラムを公開するホームページやブログがあれば、そのURLを記述をします。必要なければ書かなくとも構いません。

指標の表示場所の宣言
指標を表示する場所を宣言します。チャートが表示されている場所はチャートウィンドー、また、チャートの下に分割された別のウィンドーに表示する場合には、セパレーターウィンドーとします。

指標バッファの宣言
チャート上で表示する、ラインやバーの数を指定します。メタトレーダー4(MT4)では、一つのカスタムインジケーター(Coutom Indicator)で8つのラインやバーを表示させる事ができます。

パラメーターの宣言
プログラムで使用するパラメーターを宣言します。パラメーターは、外部パラメーターと内部パラメーターがあります。外部パラメーターは、プロパティー画面から変更できるパラメーターで、内部パラメーターは、プログラム中だけで使用するもので変更できません。

イニシャル処理

指標バッファの設定
指標バッファの設定をします。8つの指標バッファ毎に、名称、ラインの色、太さを設定します。

メイン処理

指標の計算
指標を計算する処理を行います。メタトレーダーで標準のテクニカル指標であれば専用の関数がありますからとても簡単です。

指標の表示
計算した数値を実際に指標バッファにセットします。

以上が、カスタムインジケーター(Coutom Indicator)の構造です。言葉では難しく感じるかもしれませんが、実際に作ってみるととても簡単です。

まず、手始めとして、一番馴染みの深い、移動平均線を表示するプログラムを下記に示します。
//——————————————————————-
// プログラムの説明
//
// プログラム名:SampleInd001.mq4
// 説明    :トレコミュ用サンプルインジケーター
//        単純移動平均線
//——————————————————————-
#property copyright “Copyright(C) 2010, Forex Trading Laboratory”
#property link      “http://t-commu.net/blog/t012/

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

double BufSMA[];

extern int SMAPeriod = 21;

//——————————————————————–
// イニシャル処理
//——————————————————————–
int init()
{
   SetIndexBuffer(0, BufSMA);
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1);
   SetIndexLabel(0,”21SMA”);

   return(0);
}

//——————————————————————–
// メイン処理
//——————————————————————–
int start()
{
   //指標の計算範囲
   int counted_bars=IndicatorCounted();
   int limit=Bars-1-counted_bars;

   for(int i=limit-1; i>=0; i–)
   {
      BufSMA[i] = iMA(NULL,0,SMAPeriod,0,MODE_SMA,PRICE_CLOSE,i);
   }

   return(0);
}

//——————————————————————–

あえて簡単だと思っていただけるように、シンプルに作ってみました。たった一つ移動平均線を描くだけなら、たったこれだけのプログラムで済んでしまうんですね!

このプログラムを実際にチャートで表示してみました。

単純移動平均線

単純移動平均線

 

無事移動平均線が事表示されました。

実際のプログラムの解説は、次回のコラムで説明させて頂きますが、まずは、とても簡単だという事が今回分かっていただければいいかと思います。プログラムっていっても、そんなに構える必要もありませんし、決まった流れにそって同じように作るだけなんです。なので、興味があればぜひチャレンジして頂きたいと思います(^^)

それでは、次回もお楽しみに!

脱毛 東京 レーザー脱毛