[MT4指标]LabTrend1变色k线指标
主图指标
mt4指标类型:震荡指标
是否能用在mt4手机版上:否
是否含有未来函数:无
可以用在韬客外汇返佣网的平台上
//+------------------------------------------------------------------+
//| LabTrend1_v2.mq4 |
//| Copyright ? 2006, TrendLaboratory Ltd. |
//| http://finance.groups.yahoo.com/group/TrendLaboratory |
//| E-mail: [email protected] |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2006, TrendLaboratory Ltd."
#property link "http://finance.groups.yahoo.com/group/TrendLaboratory"
//----
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Blue
#property indicator_color4 Red
#property indicator_width3 0
#property indicator_width4 0
//---- input parameters
extern double Risk =3; //Price Channel narrowing factor (1..10)
extern int TimeFrame =0; //TimeFrame in min
extern int Signal =1; //Display signals mode
extern int ColorBar =1; //Display color bars mode: 0-no,1-yes
extern int SoundAlertMode=0; //Sound Alert switch
//---- indicator buffers
double UpTrendSignal;
double DownTrendSignal;
double UpTrendBar;
double DownTrendBar;
double smax;
double smin;
double trend;
int Length=9, time[2];
bool Expert=true;
double BSMAX[2],BSMIN[2];
bool UpTrendAlert=false, DownTrendAlert=false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator line
IndicatorBuffers(7);
SetIndexBuffer(0,UpTrendSignal);
SetIndexBuffer(1,DownTrendSignal);
SetIndexBuffer(2,UpTrendBar);
SetIndexBuffer(3,DownTrendBar);
SetIndexBuffer(4,smax);
SetIndexBuffer(5,smin);
SetIndexBuffer(6,trend);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(2,DRAW_HISTOGRAM);
SetIndexStyle(3,DRAW_HISTOGRAM);
SetIndexArrow(0,108);
SetIndexArrow(1,108);
//---- name for DataWindow and indicator subwindow label
short_name="LabTrend1("+DoubleToStr(Risk,2)+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"UpTrend Signal");
SetIndexLabel(1,"DownTrend Signal");
SetIndexLabel(2,"UpTrend Bar");
SetIndexLabel(3,"DownTrend Bar");
//----
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexEmptyValue(2,0.0);
SetIndexEmptyValue(3,0.0);
SetIndexDrawBegin(0,Length);
SetIndexDrawBegin(1,Length);
SetIndexDrawBegin(2,Length);
SetIndexDrawBegin(3,Length);
//----
return(0);
}
//+------------------------------------------------------------------+
//| LabTrend1_v2 |
//+------------------------------------------------------------------+
int start()
{
datetime TimeArray;
int i,shift,y=0,MaxBar,limit,counted_bars=IndicatorCounted();
double high, low, price, sum, UpBar,DnBar;
double bsmax[1],bsmin[1];
double LowArray,HighArray;
int Line=0; //Display line mode: 0-no,1-yes
//----
if (Bars-10) counted_bars--;
//----
MaxBar=Bars-1-Length-1;
limit=Bars-counted_bars-1 + TimeFrame/Period();
//----
if (limit>MaxBar)
{
for(shift=limit;shift>=MaxBar;shift--)
{
smax[Bars-shift]=0.0;
smin[Bars-shift]=0.0;
UpTrendSignal[Bars-shift]=0.0;
DownTrendSignal[Bars-shift]=0.0;
UpTrendBar[Bars-shift]=0.0;
DownTrendBar[Bars-shift]=0.0;
}
limit=MaxBar;
}
if(ArrayResize(bsmin,limit+2)!=limit+2)return(-1);
if(ArrayResize(bsmax,limit+2)!=limit+2)return(-1);
int Tnew=Time[limit+1];
//----
if (limittime[1])Print("Error1");
else Print("Error2");
return(-1);
}
// Draw price channel boards + calculation : Channel middle, half channel width,
ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);
ArrayCopySeries(LowArray,MODE_LOW,Symbol(),TimeFrame);
ArrayCopySeries(HighArray,MODE_HIGH,Symbol(),TimeFrame);
for(shift=0,y=0;shift=0;i--)
{
smin[shift]=MathMin(smin[shift],LowArray[y+i]);
smax[shift]=MathMax(smax[shift],HighArray[y+i]);
}
}
for(shift=limit;shift>=0;shift--)
{
UpTrendSignal[shift]=0.0;
DownTrendSignal[shift]=0.0;
UpTrendBar[shift]=0.0;
DownTrendBar[shift]=0.0;
// Calculation channel stop values
bsmax[shift]=smax[shift]-(smax[shift]-smin[shift])*(33.0-Risk)/100.0;
bsmin[shift]=smin[shift]+(smax[shift]-smin[shift])*(33.0-Risk)/100.0;
// Signal area : any conditions to trend determination:
// 1. Price Channel breakout
trend[shift]=trend[shift+1];
if(trend[shift+1]<0 && Close[shift]>bsmax[shift]) trend[shift]=1;
if(trend[shift+1]>0 && Close[shift]labtrend1_v2.jpg
发表于:2014-09-18 09:53只看该作者
2楼
职业交易者的交易之路
韬客社区www.talkfx.co
发表于:2015-07-08 00:56只看该作者
4楼
感谢分享
韬客社区www.talkfx.co
发表于:2016-04-29 09:12只看该作者
5楼
下载测试一下先
韬客社区www.talkfx.co
发表于:2017-08-09 00:41只看该作者
6楼
缺钱,灌水赚通宝,谢谢分享!!
韬客社区www.talkfx.co