Kien888288528
New Member
- 1
- 0
Chào cả nhà, em cũng đua đòi code mà lỗi ko chạy, ai đó giúp em với
em code chỉ báo vẽ màu cho spanb ichimoku: khi trend tăng thì vẽ màu xanh, trend tăng là close > tenkan, kịjun,spana, spanb tất cả ở quá khứ, close > spana, spanb ở hiện tại và spana tương lai > spanb tương lai:
#include <Indicators/Trend.mqh>
CiIchimoku* Ichimoku;
//--- indicator settings
#property indicator_chart_window
#property indicator_buffers 9
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 LimeGreen
#property indicator_width1 2
double sp1tl[];
double sp2tl[];
double trendtang[];
double tenqk[];
double kijqk[];
double sp1ht[];
double sp2ht[];
double sp1qk[];
double sp2qk[];
void OnInit()
{
Ichimoku = new CiIchimoku();
Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
SetIndexBuffer(0,trendtang,INDICATOR_DATA);
SetIndexBuffer(1,sp1tl,INDICATOR_DATA);
SetIndexBuffer(2,sp2tl,INDICATOR_DATA);
SetIndexBuffer(3,tenqk,INDICATOR_DATA);
SetIndexBuffer(4,kijqk,INDICATOR_DATA);
SetIndexBuffer(5,sp1ht,INDICATOR_DATA);
SetIndexBuffer(6,sp2ht,INDICATOR_DATA);
SetIndexBuffer(7,sp1qk,INDICATOR_DATA);
SetIndexBuffer(8,sp2qk,INDICATOR_DATA);
IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawn
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,51);
//--- lines shifts when drawing
PlotIndexSetInteger(0,PLOT_SHIFT,25);
}
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 start;
//---
if(prev_calculated==0)
start=0;
else
start=prev_calculated-1;
//--- main loop
for(int i=start; i<rates_total && !IsStopped(); i++)
{
MqlRates PArray[];
int Data=CopyRates(_Symbol,_Period,0,1,PArray);
Ichimoku.Refresh(-1);
double spanAtl= Ichimoku.SenkouSpanA(0);
double spanBtl= Ichimoku.SenkouSpanB(0);
double spanAht= Ichimoku.SenkouSpanA(-25);
double spanBht= Ichimoku.SenkouSpanB(-25);
double spanAqk= Ichimoku.SenkouSpanA(-51);
double spanBqk= Ichimoku.SenkouSpanB(-51);
double tenkanqk= Ichimoku.TenkanSen(-25);
double kijunqk= Ichimoku.KijunSen(-25);
sp1tl=spanAtl;
sp2tl=spanBtl;
tenqk=tenkanqk;
kijqk=kijunqk;
sp1ht=spanAht;
sp2ht=spanBht;
sp1qk=spanAqk;
sp2qk=spanBqk;
if(
sp1tl>=sp2tl
&& close>tenqk
&& close>kijqk
&& close>sp1ht
&& close>sp2ht
&& close>sp1qk
&& close>sp2qk
)
{
trendtang=sp2tl;
}
else
{
trendtang=EMPTY_VALUE;
}
}
//---
return(rates_total);
}
Đây là file của em, nhơ mọi người sửa giúp em ạ
em code chỉ báo vẽ màu cho spanb ichimoku: khi trend tăng thì vẽ màu xanh, trend tăng là close > tenkan, kịjun,spana, spanb tất cả ở quá khứ, close > spana, spanb ở hiện tại và spana tương lai > spanb tương lai:
#include <Indicators/Trend.mqh>
CiIchimoku* Ichimoku;
//--- indicator settings
#property indicator_chart_window
#property indicator_buffers 9
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 LimeGreen
#property indicator_width1 2
double sp1tl[];
double sp2tl[];
double trendtang[];
double tenqk[];
double kijqk[];
double sp1ht[];
double sp2ht[];
double sp1qk[];
double sp2qk[];
void OnInit()
{
Ichimoku = new CiIchimoku();
Ichimoku.Create(_Symbol,PERIOD_CURRENT,9,26,52);
SetIndexBuffer(0,trendtang,INDICATOR_DATA);
SetIndexBuffer(1,sp1tl,INDICATOR_DATA);
SetIndexBuffer(2,sp2tl,INDICATOR_DATA);
SetIndexBuffer(3,tenqk,INDICATOR_DATA);
SetIndexBuffer(4,kijqk,INDICATOR_DATA);
SetIndexBuffer(5,sp1ht,INDICATOR_DATA);
SetIndexBuffer(6,sp2ht,INDICATOR_DATA);
SetIndexBuffer(7,sp1qk,INDICATOR_DATA);
SetIndexBuffer(8,sp2qk,INDICATOR_DATA);
IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawn
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,51);
//--- lines shifts when drawing
PlotIndexSetInteger(0,PLOT_SHIFT,25);
}
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 start;
//---
if(prev_calculated==0)
start=0;
else
start=prev_calculated-1;
//--- main loop
for(int i=start; i<rates_total && !IsStopped(); i++)
{
MqlRates PArray[];
int Data=CopyRates(_Symbol,_Period,0,1,PArray);
Ichimoku.Refresh(-1);
double spanAtl= Ichimoku.SenkouSpanA(0);
double spanBtl= Ichimoku.SenkouSpanB(0);
double spanAht= Ichimoku.SenkouSpanA(-25);
double spanBht= Ichimoku.SenkouSpanB(-25);
double spanAqk= Ichimoku.SenkouSpanA(-51);
double spanBqk= Ichimoku.SenkouSpanB(-51);
double tenkanqk= Ichimoku.TenkanSen(-25);
double kijunqk= Ichimoku.KijunSen(-25);
sp1tl=spanAtl;
sp2tl=spanBtl;
tenqk=tenkanqk;
kijqk=kijunqk;
sp1ht=spanAht;
sp2ht=spanBht;
sp1qk=spanAqk;
sp2qk=spanBqk;
if(
sp1tl>=sp2tl
&& close>tenqk
&& close>kijqk
&& close>sp1ht
&& close>sp2ht
&& close>sp1qk
&& close>sp2qk
)
{
trendtang=sp2tl;
}
else
{
trendtang=EMPTY_VALUE;
}
}
//---
return(rates_total);
}
Đây là file của em, nhơ mọi người sửa giúp em ạ
Giới thiệu sách Trading hay
Giao Dịch Theo Xu Hướng Để Kiếm Sống
Sách chia sẻ chiến lược giao dịch, tâm lý, phương pháp quản lý vốn thực chiến của Trader 18 năm kinh nghiệm giao dịch theo xu hướng
Bài viết liên quan