図書館通いになりそう。

といっても物理的なそれとは違いMetaEditorのツールボックスにある図書館です。コード戦士にとっては宝箱みたいなもの?!誰とかは分かりませんが、ここからコピペして売っている猛者もいそうな気がします。

  • Expert Advisor— エクスパートアドバイザ
  • Indicator— インディケータ
  • Script— スクリプト
  • Library— ライブラリ

BBインジケーター

同じところをぐるぐる回って目が回る。メリーゴーランド回ってるだけじゃどこにも行けないけれど乗ってるだけで結構楽しい。自分の感覚としっくりこないインジケーターは作りたくない。いろいろと試みるがうまくいかない。下手な考え休むに似たり。なんのことないシンプルなボリンジャーバンドの上下を超えた時にサインを出すインジケーターだけが実践で使えそうです。小さきことは良きことかな。サインを判断するのは結局人間ということで良いような気がしますが、やっぱりEA化出来るようなものを作りたいものです。

 

BB_Indicator.mq4

#property copyright "Copyright 2017, WIZSYS Networks Corp."
#property link "https://www.wizsys.net/"
#property version "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 clrBlue
#property indicator_color2 clrRed
#property indicator_width1 1
#property indicator_width2 1
//--- input parameters
extern int bb_peirod = 20; //ボリンジャーバンドの周期
extern double bb_deviation = 2.0; //ボリンジャーバンドの偏差
int minSize=5;
double up[];
double down[];
// Custom indicator initialization function
int OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,up);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexLabel(0,"Up Arrow");
SetIndexBuffer(1,down);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexLabel(1,"Down Arrow");
//---
return(INIT_SUCCEEDED);
}
// Custom indicator iteration function
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
int limit = rates_total - prev_calculated;
if(prev_calculated==0)limit--;
for(int i=0;i<limit;i++)
{
double bBU_value = iBands(_Symbol,0,bb_peirod,bb_deviation,0,PRICE_HIGH,MODE_UPPER,i);
double bBL_value = iBands(_Symbol,0,bb_peirod,bb_deviation,0,PRICE_LOW,MODE_LOWER,i);
if(bBU_value < High[i]) up[i]=Low[i]; else if(bBL_value > Low[i])
down[i]=High[i];
}
//--- return value of prev_calculated for next call
return(rates_total-1);
}