SSブログ
前の10件 | -

property③ [ ・#property]

■indicator_colorN color
表示する線色を指定する
・Nは1~8を指定
(作成する指標等のバッファに割り当た番号(0を割り当てた場合1、1を割り当てた場合2))
・color は色

サンプル:#property indicator_color1 Blue 

色の指定は「Navigater」画面のタブで「Dictionary」を選択して
color-navi.JPG

表示された画面上でStanderd constance→WEB coloeを選択するとWEB colorの一覧画面が表示されます。
color.JPG

■indicator_widthN int
表示する線の太さを指定する
・Nは1~8を指定
(作成する指標等のバッファに割り当た番号(0を割り当てた場合1、1を割り当てた場合2))
・intは線の太さで数値
・太さがどのくらいになるかは数値の部分を書き換えて試してください。

サンプル:#property indicator_width1 1

■indicator_styleN int
表示する線の種別を指定する
・Nは1~8を指定
(作成する指標等のバッファに割り当た番号(0を割り当てた場合1、1を割り当てた場合2))
・intは線の種類が規定されている数値(0~4) or 規定値
・以下が指定できる値
0 STYLE_SOLID  1本線
1 STYLE_DASH 1  点線
2 STYLE_DOT 2
3 STYLE_DASHDOT 3
4 STYLE_DASHDOTDOT 4
・線の種別は指定を変えて試してみてください。

サンプル:##property indicator_style1 STYLE_DOT

2個の移動平均線を色、太さ、線種を変えて表示してみた。
indicator_color.JPG

【サンプル時の指定】
#property indicator_chart_window
#property indicator_buffers 3

#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 DarkOrchid

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 2

#property indicator_style1 STYLE_DOT
#property indicator_style2 STYLE_DASHDOT
#property indicator_style3 STYLE_SOLID

property② [ ・#property]

■#property indicator_buffers 1
独自指標の作成をする際の計算結果やその他情報などを保存しておく為の領域の数を指定。
14日移動平均と30日移動平均の作成を行う場合などは2を指定。
#property indicator_buffers 2

指定できるMAXは8

8個使って14日、15日、16日・・・の移動平均線を表示してみる。
indicator_buffers.JPG

※実際は計算結果等の保存バッファ領域の指定等と関わってきます。
タグ:MetaTrader

property① [ ・#property]

特定のパラメタを指定します。

宣言はインディケータファイルの関数外部で↓のような感じ

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

//---- buffers
double ExtMapBuffer1[];


int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
return(0);
}

■#property indicator_chart_window
作成したindicatorをチャート画面のどの部分へ表示するか指定する宣言。
で、この宣言を行うと、メインチャート画面上に作成したindicatorの内容が表示される。
indicator_chart_window.JPG

■#property indicator_separate_window
これを指定するとメインのチャート画面が上下分割され、上にはメインチャート、
下に作成したindicatorの内容が表示される。
indicator_separate_window.JPG

#property indicator_separate_window宣言したindicatorを何個か表示させるとその都度画面が分割されていきます。
indicator_separate_window2.JPG

で同一ファイル内でindicator_chart_windowとindicator_separate_windowの宣言を同時に行うことは出来ない感じ。
タグ:MetaTrader

共通テーマ:マネー

移動平均線を作成してみる [ ・Custom Indicator作成]

移動平均線の作成をしてみる。線の色は赤。で間隔は14で。

●最初の部分を修正。
最初の部分こんな感じに変更。

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red

//---- buffers
double ExtMapBuffer1[];

//---- span
extern int Span = 14;

・最初の設定はいつもと同じ感じ。間隔は14の移動平均を引くのでextern int Span = 14;で指定。

●次にinit内を修正
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
//----
return(0);
}

・ここもいつもと同じ。

●最後にstartを修正。ここで移動平均の計算
int start()
{
//----
  for(int i=0; i<Bars; i++){
   ExtMapBuffer1[i] = 0;
   for(int j=0;j<Span;j++){
    ExtMapBuffer1[i]= ExtMapBuffer1[i] + Close[i+j];
   }
   ExtMapBuffer1[i] = ExtMapBuffer1[i]/Span;
  }
//----
return(0);
}

・14個分の終値を足して14で割る。Close[0]が現在値なのでClose[1]、Close[2]。。。Close[13]まで足して14で割ったものを現時点のExtMapBuffer1[0]へ入れる。

・14個分の終値を足し始める前に保存用のExtMapBuffer1を0でクリア。

いつもと同じで、コンパイルしてエラーが無いことを確認。MetaTrader側のチャート上に表示されている指標を一旦削除して新たによみこむと
1.JPG

ここでちょっと問題。チャートの時間足を日足に変更して、チャートにマウスをあて左クリックして、右へ右へと画面スライドさせていくと、データ表示開始部分(14個分のデータがそろっていない部分)の表示がおかしくなる。過去なのでさほど気にならないが。
2.JPG
タグ:MetaTrader

矢印記号を表示してみる [ ・Custom Indicator作成]

矢印記号を表示してみる。単純に陰線時には↓矢印を、陽線時には↑矢印を表示させてみる。ベースは2本の線を表示したファイルへ修正を加えていってみる。

●最初の部分
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Blue

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

double BuyBuf[];
double SellBuf[];

#property indicator_buffers 4とした。2本の線と↑↓のデータを格納用なので4。↑と↓の表示確保用にdouble BuyBuf[];とdouble SellBuf[];を追加。

●init部分
int init()
{
//---- indicators
  SetIndexStyle(0,DRAW_LINE);
  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(0,ExtMapBuffer1);
  SetIndexBuffer(1,ExtMapBuffer2);

  SetIndexBuffer(2,BuyBuf);
  SetIndexBuffer(3,SellBuf);

  SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,1,Blue);
  SetIndexArrow(2,233);

  SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,1,Red);
  SetIndexArrow(3,234);
//----
  return(0);
}

新たに追加した↑と↓部分のデータ表示させる為に、SetIndexBuffer(2,BuyBuf);、SetIndexBuffer(3,SellBuf);を追加して、さらにSetIndexStyleが表示用の色等の設定でSetIndexArrowが表示する文字というか絵文字の番号を指定。細かな説明は省きました。詳細はMetaEditorのHELPで確認下さい。

絵文字の番号はMetaEditor画面左のNavigator画面からSearchのタブを選択して、SetIndexArrowでサーチ。で検索結果からSetIndexArrowをダブルクリック。
15.JPG

画面下にSetIndexArrowのHELP説明が表示されるのでその中からArrow codesをクリック
16.JPG

で表示さらた画面の一番したまでスクロールさせてWingdingsをクリック
17.JPG

で絵文字と対応番号一覧が確認できます。
18.JPG

●start部分
int start()
{
//----
 for(int i=0; i<Bars; i++){
   ExtMapBuffer1[i] = High[i];
   ExtMapBuffer2[i] = Low[i];
   if(Open[i] > Close[i]){
    SellBuf[i] = Close[i];
   }
   if(Close[i] > Open[i]){
    BuyBuf[i] = Close[i];
   }
 }
//----
 return(0);
}

陽線ならSellBufへ(↓矢印表示用)、陽線ならBuyBufへ(↑矢印表示用)終値を入れる。

いつものようにコンパイルして再描画
19.JPG
で↓↑矢印が表示されました。独自指標作成おこなって売買ポイント表示させるくらいならこれだけの機能の使用でも十分かなと思います。
タグ:Meta Trader

共通テーマ:マネー

線を2本表示してみる [ ・Custom Indicator作成]

終値を結んだ線を表示してみたが、今度は2本線を表示してみる。高値を結んだ線(色は赤)と安値を結んだ線(色は青)。表示画面はメインチャートへ表示。

●最初の部分を修正。
最初の部分こんな感じに変更。

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

・1本の線のときは#property indicator_buffers 1となっていたが2本分のデータを保存するので#property indicator_buffers 2へ変更。indicator_color1 が1本目の線の色indicator_color2 が2個目の線の色

・1本の線のときはExtMapBuffer1だけだったが、もう1本分の線の情報を保存しておく為ExtMapBuffer2を追加。高値保存用にExtMapBuffer1、安値保存用にExtMapBuffer2。

●次にinit内を修正
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);
//----
return(0);
}

SetIndexStyleなるものが線の種類を指定するものらしい。今回でいうと、SetIndexStyle(0,DRAW_LINE);で1本目、でSetIndexStyle(1,DRAW_LINE);で2本目。

SetIndexBufferなるものが格納したデータ(ExtMapBuffer1)を画面上へ表示させるしくみになっているみたいなので、2本分おんなじようにおこなう。

●最後にstartを修正。こんな感じ。高値と安値を最初に指定したExtMapBuffer1、ExtMapBuffer2へ入れる。
int start()
{
//----
for(int i=0; i<Bars; i++){
ExtMapBuffer1[i] = High[i];
ExtMapBuffer2[i] = Low[i];
}
//----
return(0);
}

いつもと同じで、コンパイルしてエラーが無いことを確認。MetaTrader側のチャート上に表示されている指標を一旦削除して新たによみこむと
14.JPG
2本の線が表示されました。

タグ:MetaTrader

共通テーマ:マネー

終値を結んだ線を表示2 [ ・Custom Indicator作成]

終値を結んだ線が表示できたので、色と画面表示方法を変更してみた。

最初のベースファイルを作成した際に赤を指定したが、プログラムを修正して青に変更してみる。

ファイル先頭部分が
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
となっている。

【画面表示方法を変更】
indicator_chart_windowなるものが画面表示方法を意味している。
・#property indicator_chart_windowでチャートメインへ作成指標を表示
・#property indicator_separate_windowで別枠へ作成指標を表示
となるようです。別枠へ表示をさせてみるので#property indicator_separate_windowへ変更。

【線色を変更】
#property indicator_color1 Redが線の色を指定している。
線色を青に変更してみるのでindicator_color1 Redからindicator_color1 Blueへと変更。

こんな感じへ変更。
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Blue

コンパイルしてエラーが無いことを確認。MetaTrader側のチャート上に表示されている指標を一旦削除して新たによみこむと
13.JPG
別枠画面上に線色が青の状態で表示されました。
タグ:MetaTrader

共通テーマ:マネー

終値を結んだ線を表示 [ ・Custom Indicator作成]

単純に終値を結んだ線をチャート上へ表示してみる。

Custom indicator の作成手順を踏んだ後に作成されたベースファイルを修正していきます。表示されたファイル中の「int start()」部分。どうやらここを修正する感じ。

//+------------------------------------------------------------------+
//| Custom indicator iteration function
//+------------------------------------------------------------------+
int start(){
//----
for(int i=0; i<Bars; i++){
ExtMapBuffer1[i] = Close[i];
}
//----
return(0);
}

●int start()
この部分はツールバーから表示させる動作を行った場合に最初に動くようです。その後レートが変化するたびに呼ばれていく。。。。。独自指標を作成し表示を行いたい場合には、この部分へ独自指標のルールを記述すればよさそう。

●Bars
画面上に表示されるバー(分足等)の数。Barsってやつを参照すると、バーの数がわかる。

●Close
これもBarsと同じ感じ。参照すると終値が取得できる。Close[0]で最新の終値情報が参照できてClose[1]で1個前、Close[2]で2個前。。。

●ExtMapBuffer1
これが独自指標に必要なデータ類を保存しておく領域。計算値なんかや売り、買いポイントなんか等。今回は終値をそのまま代入した。ExtMapBuffer1名は今回はそのまま使いました。

で、最新のデータから終値を表示バー数分保存。(forが繰り返し)その他もろもろは作成されたベースファイルのまま。

このままでは作成したものをMetaTraderで実行できないので、実行できる形式へ変換してやる。ツールバー上の「compile」ボタンをおす。
8.JPG

その際画面に表示されているToolBox画面のErrors項目に"0 errors(s) 0 waning(s)"と表示されたらとりあえずOKです。記述書式等がまずい場合にはエラーメッセージが表示されるので、修正してください。
9.JPG

compileが成功すると実行可能なファイルが作成されます。MetaTraderのインストール先のディレクトリ(参考:C:\Program Files\MetaTrader\experts\indicators)にファイル名.mq4なるファイルが出来上がっています。

実際に作成した指標を表示させる。Meta Trader側のツールバーからテクニカル指標を表示させる項目を選択し、表示されるメニューから「カスタム」を選択すると、カスタム指標一覧が表示さます。先ほど作成したCustom Indicatornのファイル名部分が一覧に追加されていることが確認できるかと思います。これを選択。
10.JPG

詳細設定画面が表示されます。全般で表示されるされている項目のチェックをOFFにして「OK」ボタンを押すと
11.JPG

チャート上に終値を結んだ線が表示されました。
12.JPG
タグ:MetaTrader

共通テーマ:マネー

Custom Indicatorの作成開始 [Custom Indicator]

Custom Indicatorの作成を開始してみる。今回は終値を線で結んだものをチャート上へ表示させる単純なものを作成してみようと思う。

ツールバーの「!」マークボタンを押して
1.JPG

Meta Editorを起動する。
2.JPG

Meta Editorが起動したら下記ツールボックスの左端にある「新規作成」ボタンを押すか、メニューから「ファイル」→「new」を選択。
3.JPG

すると新規作成ファイルの選択画面が表示されます。独自のテクニカル指標をチャート上に表示させるプログラムを作成する場合には、Custom Indicatorを選択して「次へ」ボタンをクリック。
4.JPG

これから作成するCustom Indicatorのファイル名をname欄に設定。今回はtestとし「次へ」ボタンをクリック。
5.JPG

最後にテクニカル指標の表示方法等を設定する画面が表示されます。ここでの設定は、後でプログラムを書き換える事で変更がききます。慣れてきたらあまり意識しなくていいかもしれないです。
6.JPG

●Indicator in separae windowにチェックを入れるとメインチャート上ではなく、メインチャート画面が区切られて、別枠で表示れます。(よくある値動きチャートの下にテクニカル指標の画面表示がされる感じです。)チェックしなければメインチャート上へ表示されます。

●ADDボタンを押すと表示させたい線の色が指定出来るようになります。今回は終値を結ぶ1本の線を表示させたいので、ADDボタンを押して、線の条件を加えます。type欄やColor欄をダブルクリックすれば色や線種一覧のリストボックスが表示されるので、好きなものへ変更して下さい。複数本表示させるような場合にADDボタンを押していくことで追加できます。最大8個までしか追加はできません。

これでオリジナルテクニカル指標作成の前段階準備は完了です。画面にはプログラムコード画面が表示されます。表示されたものをベースに自分独自のテクニカル指標を作成していきます。
7.JPG

作成されたファイルは、画面右に表示されるディレクトリ画面のIndicatorの配下に作成されます。
タグ:MetaTrader

共通テーマ:マネー

システム構築前に [システム構築前に]

ここまでは、単純にMetaTraderに備わっている機能を使って、チャートやデモ口座での売買をやってみた。

まずまずの使い勝手かな。本題は自動売買を行えるようにするこや、独自売買ポイントのテクニカル指標などを作成してみること。

でもどうやって作成していけば。。。

自動売買や独自指標を作成するにはプログラミングをして動作させる必要がある。MetaTraderではこのプログラムを書く言語が「MQL4」という呼び名らしい。どんな感じのものか書かれたファイルをインストール先(デフォルトのままなら)の下記ディレクトリより
C:\Program Files\MetaTrader\experts\indicators
ファイル拡張子が.mq4となっているファイルをテキストエディタなんかで開いて見た。

int init()
{
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Digits+1);
//---- indicator buffers mapping
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+")");
SetIndexLabel(0,"MACD");
SetIndexLabel(1,"Signal");
//---- initialization done
return(0);
}

こんな感じ。
プログラミング言語的には「MQL4」という呼び名だが、ぱっと見C言語というプログラミング言語に近いかな。

このプログラミングを書いたり管理したり、書いたプログラミングをMetaTrader上で実行させられる状態にする為には、Meta Editorなるツールを起動して行うようだ。ツールバーの「!」マークボタンを押すと
1.JPG

Meta Editorが起動します。
2.JPG

あと、
Custon Indicator機能作成が独自に作ったテクニカル指標をチャート上に表示させるプログラミング作成でExpert Advisor機能作成が自動売買のプログラミングの作成となるみたい。

ここらへんは触っていけば、言葉の意味や何が出来るかは、わかってくるかな。
タグ:MetaTrader

共通テーマ:マネー
前の10件 | -

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。