论坛全局菜单下方 - exness285X70 - 韬客社区论坛全局菜单下方 - 荔枝返现285X70 - 韬客社区论坛全局菜单下方 - ThinkMarkets285X70 - 韬客社区论坛全局菜单下方 - TICKMILL 285X70 - 韬客社区
查看:767回复:1
草龙韬客社区韬客社区
注册时间2004-12-17
[MT4指标]ExTrendv2指标
韬客社区
楼主发表于:2014-03-19 17:42只看该作者倒序浏览
1楼 电梯直达
电梯直达
附图指标, mt4指标类型:趋势指标 是否能用在mt4手机版上:否 是否含有未来函数:无 //+------------------------------------------------------------------+ //| ExTrendv2.mq4 | //| Copyright ? 2006, Alex Sidd (Executer) | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright ? 2006, Alex Sidd (Executer)" #property link "mailto:[email protected]" //---- #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Green #property indicator_color2 Red //---- double TrBufferUp; double TrBufferDn; double FrBufferUp; double FrBufferDn; //---- double FractUp1 = 0; double FractUp2 = 0; double FractDn1 = 0; double FractDn2 = 0; datetime FTimeUp1, FTimeUp2, FTimeDn1, FTimeDn2, curTime; //+------------------------------------------------------------------+ //| ExTrend initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, TrBufferUp); SetIndexDrawBegin(0, 1); SetIndexLabel(0, "Up_Line"); //---- SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, TrBufferDn); SetIndexDrawBegin(1, 1); SetIndexLabel(1, "Down_Line"); //---- SetIndexStyle(2, DRAW_ARROW); SetIndexBuffer(2, FrBufferUp); SetIndexDrawBegin(2, 1); SetIndexLabel(2, "Up_Fractal"); SetIndexArrow(2, 217); //---- SetIndexStyle(3, DRAW_ARROW); SetIndexBuffer(3, FrBufferDn); SetIndexDrawBegin(3, 1); SetIndexLabel(3, "DownFractal"); SetIndexArrow(3, 218); //---- short_name="ExTrend"; IndicatorShortName(short_name); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("FractalLineUp"); ObjectDelete("FractalLineDn"); return(0); } //+------------------------------------------------------------------+ //| Level Calculate Function | //| 趔黻鲨? 忡?蜞 桤 FractalLines Indicator | //+------------------------------------------------------------------+ double LevelCalculate(double Price1, double Time1, double Price2, double Time2, double NewTime) { double level; if(Time2 != Time1) // 袜 怦?觇? 耠篦嚅, 黩钺? 礤 猁腩 溴脲龛? 磬 0. level = (NewTime - Time1)*(Price2 - Price1) / (Time2-Time1) + Price1; else return(Price2); return(level); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double isUpFract(int i) { if(High[i+3] > High[i+2] && High[i+3] > High[i+4] && High[i+4] > High[i+5] && High[i+2] > High[i+1]) return(High[i+3]); else return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ double isDnFract(int i) { if(Low[i+3] < Low[i+2] && Low[i+3] < Low[i+4] && Low[i+4] < Low[i+5] && Low[i+2] < Low[i+1]) return(Low[i+3]); else return(0); } //+------------------------------------------------------------------+ //| Executer Trend Indicator | //+------------------------------------------------------------------+ int start() { int i, counted_bars = IndicatorCounted(); i = Bars - 1; double Fup, Fdn, positive, negative; while(i >= 0) { negative = 0; positive = 0; Fup = isUpFract(i); Fdn = isDnFract(i); if(Fup != 0) { if(FractUp1 == 0&&FractUp2 == 0) { FractUp1 = Fup; FTimeUp1 = Time[i+3]; } if(FractUp1 != 0 && FractUp2 == 0 && FTimeUp1 != Time[i+3]) { FractUp2 = Fup; FTimeUp2 = Time[i+3]; } if(FractUp1 != 0 && FractUp2 != 0 && FTimeUp2 != Time[i+3]) { FractUp1 = FractUp2; FTimeUp1 = FTimeUp2; FractUp2 = Fup; FTimeUp2 = Time[i+3]; } } if(Fdn != 0) { if(FractDn1 == 0 && FractDn2 == 0) { FractDn1 =Fdn; FTimeDn1 = Time[i+3]; } if(FractDn1 != 0 && FractDn2 == 0 && FTimeDn1 != Time[i+3]) { FractDn2 = Fdn; FTimeDn2 = Time[i+3]; } if(FractDn1 !=0 && FractDn2 != 0 && FTimeDn2 != Time[i+3]) { FractDn1 = FractDn2; FTimeDn1 = FTimeDn2; FractDn2 = Fdn; FTimeDn2 = Time[i+3]; } } if(FractUp1 != 0 && FractUp2 != 0) { double lvlup = LevelCalculate(FractUp1, FTimeUp1, FractUp2, FTimeUp2, Time); double lvlup_old = LevelCalculate(FractUp1, FTimeUp1, FractUp2, FTimeUp2, Time[i+1]); ObjectCreate("FractalLineUp", OBJ_TREND, 0, FTimeUp1, FractUp1, FTimeUp2, FractUp2); ObjectSet("FractalLineUp", OBJPROP_TIME1, FTimeUp1); ObjectSet("FractalLineUp", OBJPROP_PRICE1, FractUp1); ObjectSet("FractalLineUp", OBJPROP_TIME2, FTimeUp2); ObjectSet("FractalLineUp", OBJPROP_PRICE2, FractUp2); double y = (FTimeUp2 - FTimeUp1) / (240*60); double x = (FractUp2 - FractUp1)*(240); if(y == 0) y = 1; positive = MathArctan(x / y); if(Open[i+1] < lvlup_old && Close[i+1] > lvlup_old && Open > lvlup) FrBufferUp = positive; } if(FractDn1 != 0 && FractDn2 != 0) { double lvldn = LevelCalculate(FractDn1, FTimeDn1, FractDn2, FTimeDn2, Time); double lvldn_old = LevelCalculate(FractDn1, FTimeDn1, FractDn2, FTimeDn2, Time[i+1]); ObjectCreate("FractalLineDn", OBJ_TREND, 0, FTimeDn1, FractDn1, FTimeDn2, FractDn2); ObjectSet("FractalLineDn", OBJPROP_TIME1, FTimeDn1); ObjectSet("FractalLineDn", OBJPROP_PRICE1, FractDn1); ObjectSet("FractalLineDn", OBJPROP_TIME2, FTimeDn2); ObjectSet("FractalLineDn", OBJPROP_PRICE2, FractDn2); double a = (FTimeDn2 - FTimeDn1) / (240*60); double b = (FractDn2 - FractDn1)*(240); if(a == 0) a = 1; negative = MathArctan(b / a); if(Open[i+1] > lvldn_old && Close[i+1] < lvldn_old && Open < lvlup) FrBufferDn = negative; } TrBufferUp[i+3] = positive; TrBufferDn[i+3] = negative; i--; } //---- return(0); } //+------------------------------------------------------------------+ExTrendv2.jpgExTrendv2.jpg
TK29帖子1楼右侧xm竖版广告90-240
个性签名

阅尽天下指标
搬砖开始,始于2014

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
Pzxzx韬客社区韬客社区
注册时间2017-08-06
韬客社区
发表于:2017-08-10 00:45只看该作者
2楼
阅尽天下指标
版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]