- チャートのどこを見ていたのかわからなくなる
- あのとき何が起きていたのか調べたい
- 他のインジケーターのサインなどと照らし合わせたい
時間軸を切り替えてチャートを左右に動かながら見ていると、最初にどの部分を見ていたのか分からなくなる事が多いです。
チャートの転換ポイントなどで、何か共通するサインが起きているのかを見やすくするために、簡単な検証用インジケーターを作ってみました。
ZigZagの転換ポイントに縦線を引く簡単なものですが、一手間加えてマルチタイムフレームっぽくしています。
検証にお役立てください。
“ZigZag縦線検証用インジケーター” をダウンロード
inspectionZigZag-1.mq4 – 19 回のダウンロード – 5.73 KB目次
インジケーター概要
このインジケーターはZigZagの転換点に縦線を引くだけのインジケーターです。
パラメータで指定した時間軸のZigZag転換点の線を他の時間軸で簡単に見ることができます。
次の画像は日足チャートのZigZagを4時間足チャートに切り替えたものです。
ZigZagが必須となりますので、ご利用のMT4のライブラリからダウンロードしてください。


日足チャートで描画された縦線を、他の時間軸チャートで確認する事ができます。
縦線だけ指定した時間軸で表示されているので、下位時間足の細かい動きと照らし合わせることで詳細な分析が可能です。
コード
//+------------------------------------------------------------------+
//| inspectionZigZag.mq4 |
//| Copyright 2022,Greeds Co., Ltd. |
//| https://greeds.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022,Greeds Co., Ltd."
#property link "https://greeds.net"
#property version "1.00"
#property strict
#property indicator_chart_window
int _cnt=0;
enum TimeFrames
{
Current=0,
M1=1,
M5=5,
M15=15,
M30=30,
H1=60,
H4=240,
D1=1440,
W1=10080,
MN1=43200,
};
extern TimeFrames TimeFrame = D1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
if(Period()==TimeFrame)
{
Print("DELETE");
ObjectsDeleteAll();
}
return(INIT_SUCCEEDED);
}
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| 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[])
{
if(Period()==TimeFrame){
int limit=rates_total-prev_calculated;
for(int i=0; i<limit; i++)
{
double zig = iCustom(NULL,0,"ZigZag",12,5,3,0,i);
if(zig!=NULL)
{
hoge(i);
_cnt++;
}
}
}
return(rates_total);
}
//+------------------------------------------------------------------+
void hoge(int index) {
string obj_name = "inspection"+(string)_cnt;
int chart_id = 0;
ObjectCreate(chart_id,obj_name,
OBJ_VLINE,
0,
Time[index],
0);
ObjectSetInteger(chart_id,obj_name,OBJPROP_COLOR,clrYellow);
ObjectSetInteger(chart_id,obj_name,OBJPROP_STYLE,STYLE_DOT);
ObjectSetInteger(chart_id,obj_name,OBJPROP_WIDTH,1);
ObjectSetInteger(chart_id,obj_name,OBJPROP_BACK,false);
ObjectSetInteger(chart_id,obj_name,OBJPROP_SELECTABLE,true);
ObjectSetInteger(chart_id,obj_name,OBJPROP_SELECTED,false);
ObjectSetInteger(chart_id,obj_name,OBJPROP_HIDDEN,true);
ObjectSetInteger(chart_id,obj_name,OBJPROP_ZORDER,0);
}