论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:603回复:1
草龙
注册时间2004-12-17
[MT4指标]ExCandles指标
楼主发表于:2014-03-19 17:11只看该作者倒序浏览
1楼 电梯直达
电梯直达
主图指标 mt4指标类型:趋势指标 是否能用在mt4手机版上:否 是否含有未来函数:无 //+------------------------------------------------------------------+ //| ExCandles2.mq4 | //| Copyright ? 2006, Alex Sidd (Executer) | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright ? 2006, Alex Sidd (Executer)" #property link "mailto:[email protected]" //---- #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Black //---- input parameters extern int ExPeriod = 24; extern bool TrendFilter = true; extern int how_bars = 0; //---- buffers double CCodeBuffer; //+------------------------------------------------------------------+ //| initialization function | //+------------------------------------------------------------------+ int init() { string short_name; IndicatorBuffers(1); SetIndexStyle(0, DRAW_NONE); SetIndexBuffer(0, CCodeBuffer); SetIndexDrawBegin(0, ExPeriod); short_name = "ExCandles"; IndicatorShortName(short_name); SetIndexLabel(0, short_name); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { ObjectsDeleteAll(0, OBJ_ARROW); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int Trend(int i) { double negative = 0; double positive = 0; if(i < Bars - ExPeriod - 1) { int k = i + ExPeriod; while(k > i) { if(Open[k] < Close[k]) positive += (Close[k] - Open[k]); if(Open[k] > Close[k]) negative += (Open[k] - Close[k]); k--; } } else return(0); if(positive - negative > 0) return(1); if(positive - negative < 0) return(-1); if(positive == negative) return(0); } //+------------------------------------------------------------------+ //| Executer Candles Indicator | //+------------------------------------------------------------------+ bool IsViselnik(int i1) { double buf = Open[i1]-Close[i1]; if(buf == 0) buf = 1; if((TrendFilter == true && Trend(i1) > 0 && ((High[i1] - Open[i1])*100 / buf < 20) && ((Close[i1] - Low[i1])*100 / buf > 180)) || (TrendFilter == false && ((High[i1] - Open[i1])*100 / buf < 20) && ((Close[i1] - Low[i1])*100 / buf > 180))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsHummer(int i1) { double buf = Close[i1]-Open[i1]; if(buf == 0) buf = 1; if((TrendFilter == true && Trend(i1) < 0 && ((High[i1] - Close[i1])*100 / buf > 180) && ((Open[i1] - Low[i1])*100 / buf < 20))|| (TrendFilter == false && ((High[i1] - Close[i1])*100 / buf > 180) && ((Open[i1] - Low[i1])*100 / buf < 20))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsBear(int i1, int i2) { if((TrendFilter == true && Trend(i1) >0 && (Open[i1] - Close[i1] > 0) && (Open[i1] > Close[i2]) && (Close[i1] < Open[i2]) && (Open[i2] - Close[i2] < 0)) || (TrendFilter == false > 0 && (Open[i1] - Close[i1] > 0) && (Open[i1] > Close[i2]) && (Close[i1] < Open[i2]) && (Open[i2] - Close[i2] < 0))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsBull(int i1, int i2) { if((TrendFilter == true&&Trend(i1) < 0 && (Open[i1] - Close[i1] < 0) && (Open[i2] - Close[i2] > 0) && (Close[i1] > Open[i2]) && (Open[i1] < Close[i2])) || (TrendFilter == false && (Open[i1] - Close[i1] < 0) && (Open[i2] - Close[i2] > 0) && (Close[i1] > Open[i2]) && (Open[i1] < Close[i2]))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool Zavesa_black(int i1, int i2) { double x = (High[i2] - Low[i2]); if(x == 0) x = 0.0001; if((TrendFilter == true && Trend(i1) > 0 && (Open[i1] - Close[i1] > 0) && (Open[i2] - Close[i2] < 0) && ((Close[i2] - Open[i2]) / x > 0.6) && (Open[i1] > High[i2]) && (Close[i1] < (Open[i2] + (Close[i2] - Open[i2]) / 2))) || (TrendFilter == false && (Open[i1] - Close[i1] >0) && (Open[i2] - Close[i2] < 0) && ((Close[i2] - Open[i2]) / x > 0.6) && (Open[i1] > High[i2]) && (Close[i1] < (Open[i2] + (Close[i2] - Open[i2]) / 2)))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool Prosvet(int i1, int i2) { double x = (High[i2] - Low[i2]); if(x == 0) x = 0.0001; if((TrendFilter == true && Trend(i1) < 0 && (Open[i1] - Close[i1] < 0) && (Open[i2] - Close[i2] > 0) && ((Open[i2] - Close[i2]) / x > 0.6) && (Open[i1] < Low[i2]) && (Close[i1] > (Close[i2] + (Open[i2] - Close[i2]) / 2))) || (TrendFilter == false && (Open[i1] - Close[i1] < 0) && (Open[i2] - Close[i2] > 0) && ((Open[i2] - Close[i2]) / x > 0.6) && (Open[i1] < Low[i2]) && (Close[i1] > (Close[i2] + (Open[i2] - Close[i2]) / 2)))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool morning_star(int i1, int i2, int i3) { if((TrendFilter == true && Trend(i1) < 0 && (Open[i3] - Close[i3] > 0) && (Open[i1] - Close[i1] < 0) && (Close[i2] < Open[i3]) && (Close[i2] < Open[i1]) && (Close[i2] < Close[i1]) && (Close[i2] < Close[i3]) && (Open[i2] < Open[i1]) && (Open[i2] < Open[i3]) && (Open[i2] < Close[i3]) && (Open[i2] < Close[i1])) || (TrendFilter == false&& (Open[i3] - Close[i3] > 0) && (Open[i1] - Close[i1] < 0) && (Close[i2] < Open[i3]) && (Close[i2] < Open[i1]) && (Close[i2] < Close[i1]) && (Close[i2] < Close[i3]) && (Open[i2] < Open[i1]) && (Open[i2] < Open[i3]) && (Open[i2] < Close[i3]) && (Open[i2] < Close[i1]))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool evening_star(int i1, int i2, int i3) { if((TrendFilter == true && Trend(i1) > 0 && (Open[i3] - Close[i3]<0) && (Open[i1] - Close[i1]>0) && (Close[i2] > Open[i3]) && (Close[i2] > Open[i1]) && (Close[i2] > Close[i1]) && (Close[i2] > Close[i3]) && (Open[i2] > Open[i1]) && (Open[i2] > Open[i3]) && (Open[i2] > Close[i3]) && (Open[i2] > Close[i1]))|| (TrendFilter == false&& (Open[i3] - Close[i3] < 0) && (Open[i1] - Close[i1] > 0) && (Close[i2] > Open[i3]) && (Close[i2] > Open[i1]) && (Close[i2] > Close[i1]) && (Close[i2] > Close[i3]) && (Open[i2] > Open[i1]) && (Open[i2] > Open[i3]) && (Open[i2] > Close[i3]) && (Open[i2] > Close[i1]))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsEveningDodgiStar(int i1, int i2, int i3) { if((TrendFilter == true && Trend(i1) > 0 && (Open[i2] == Close[i2]) && (Open[i3] - Close[i3]<0) && (Open[i1] - Close[i1]>0) && (Close[i2] > Open[i3]) && (Close[i2] > Open[i1]) && (Close[i2] > Close[i1]) && (Close[i2] > Close[i3]) && (Open[i2] > Open[i1]) && (Open[i2] > Open[i3]) && (Open[i2] > Close[i3]) && (Open[i2] > Close[i1])) || (TrendFilter == false && (Open[i2] == Close[i2]) && (Open[i3] - Close[i3]<0) && (Open[i1] - Close[i1]>0) && (Close[i2] > Open[i3]) && (Close[i2] > Open[i1]) && (Close[i2] > Close[i1]) && (Close[i2] > Close[i3]) && (Open[i2] > Open[i1]) && (Open[i2] > Open[i3]) && (Open[i2] > Close[i3]) && (Open[i2] > Close[i1]))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsMorningDodgiStar(int i1, int i2, int i3) { if((TrendFilter == true && Trend(i1) < 0 && (Open[i2] == Close[i2]) && (Open[i3] - Close[i3] > 0) && (Open[i1] - Close[i1] < 0) && (Close[i2] < Open[i3]) && (Close[i2] < Open[i1]) && (Close[i2] < Close[i1]) && (Close[i2] < Close[i3]) && (Open[i2] < Open[i1]) && (Open[i2] < Open[i3]) && (Open[i2] < Close[i3]) && (Open[i2] < Close[i1])) || (TrendFilter == false && (Open[i2] == Close[i2]) && (Open[i3] - Close[i3] > 0) && (Open[i1] - Close[i1] < 0) && (Close[i2] < Open[i3]) && (Close[i2] < Open[i1]) && (Close[i2] < Close[i1]) && (Close[i2] < Close[i3]) && (Open[i2] < Open[i1]) && (Open[i2] < Open[i3]) && (Open[i2] < Close[i3]) && (Open[i2] < Close[i1]))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsFallStar(int i1) { double buf = Open[i1] - Close[i1]; if(buf == 0) buf = 1; if((TrendFilter == true && Trend(i1) > 0 && ((High[i1] - Open[i1])*100 / buf > 180) && ((Close[i1] - Low[i1])*100 / buf < 20)) || (TrendFilter == false && ((High[i1] - Open[i1])*100 / buf > 180) && ((Close[i1] - Low[i1])*100 / buf < 20))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool IsTurnedHummer(int i1) { double buf = Close[i1] - Open[i1]; if(buf == 0) buf = 1; if((TrendFilter == true && Trend(i1) < 0 && ((High[i1] - Close[i1])*100 / buf < 20) && ((Open[i1] - Low[i1])*100 / buf > 180))|| (TrendFilter == false && ((High[i1] - Close[i1])*100 / buf < 20) && ((Open[i1] - Low[i1])*100 / buf > 180))) return(true); else return(false); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int i,counted_bars = IndicatorCounted(); double negative = 0, positive = 0; //---- if(Bars <= ExPeriod) return(0); if(counted_bars < 1) for(i = 1; i <= ExPeriod; i++) CCodeBuffer[Bars-i] = 0.0; //---- if(how_bars <= 0 || how_bars > Bars) how_bars = Bars; i = how_bars - ExPeriod - 1; if(counted_bars >= ExPeriod) i = how_bars - counted_bars - 1; while(i >= 0) { if(IsFallStar(i + 1) == true) { ObjectCreate("相溧 ?? 玮彗溧 " + i, OBJ_ARROW, 0, Time[i+1], High[i+1] + 20*Point); ObjectSet("相溧 ?? 玮彗溧 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN); ObjectSet("相溧 ?? 玮彗溧 " + i, OBJPROP_COLOR, Red); CCodeBuffer = 1; } if(IsTurnedHummer(i + 1) == true) { ObjectCreate("襄疱忮痦篁  填腩? " + i, OBJ_ARROW, 0, Time[i+1], Low[i+1] - 20*Point); ObjectSet("襄疱忮痦篁  填腩? " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP); ObjectSet("襄疱忮痦篁  填腩? " + i, OBJPROP_COLOR, Blue); CCodeBuffer = 2; } if(IsViselnik(i + 1) == true) { ObjectCreate("妈皴朦龛? " + i, OBJ_ARROW, 0, Time[i+1], High[i+1] + 20*Point); ObjectSet("妈皴朦龛? " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN); ObjectSet("妈皴朦龛? " + i, OBJPROP_COLOR, Red); CCodeBuffer = 3; } if(IsHummer(i + 1) == true) { ObjectCreate("填腩? " + i, OBJ_ARROW, 0, Time[i+1], Low[i+1] - 20*Point); ObjectSet("填腩? " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP); ObjectSet("填腩? " + i, OBJPROP_COLOR, Blue); CCodeBuffer = 4; } if(IsBear(i + 1, i + 2) == true) { ObjectCreate("体溻彐  镱汶铢屙桢 " + i, OBJ_ARROW, 0, Time[i+1], High[i+1] + 20*Point); ObjectSet("体溻彐  镱汶铢屙桢 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN); ObjectSet("体溻彐  镱汶铢屙桢 " + i, OBJPROP_COLOR, Maroon); CCodeBuffer = 5; } if(IsBull(i+1, i+2)==true) { ObjectCreate("聋鼽? 镱汶铢屙桢 " + i, OBJ_ARROW, 0, Time[i+1], Low[i+1] - 20*Point); ObjectSet("聋鼽? 镱汶铢屙桢 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP); ObjectSet("聋鼽? 镱汶铢屙桢 " + i, OBJPROP_COLOR, RoyalBlue); CCodeBuffer = 6; } if(Zavesa_black(i + 1, i + 2) == true) { ObjectCreate("青忮襦 桤 蝈祉  钺豚觐? " + i, OBJ_ARROW, 0, Time, High + 20*Point); ObjectSet("青忮襦 桤 蝈祉  钺豚觐? " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN); ObjectSet("青忮襦 桤 蝈祉  钺豚觐? " + i, OBJPROP_COLOR, OrangeRed); CCodeBuffer = 7; } if(Prosvet(i + 1, i + 2) == true) { ObjectCreate("橡铖忮? ? 钺豚赅? " + i, OBJ_ARROW, 0, Time, Low - 20*Point); ObjectSet("橡铖忮? ? 钺豚赅? " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP); ObjectSet("橡铖忮? ? 钺豚赅? " + i, OBJPROP_COLOR, SlateBlue); CCodeBuffer = 8; } if(evening_star(i + 1, i + 2, i + 3) == true) { ObjectCreate("洛麇痦?? 玮彗溧 " + i, OBJ_ARROW, 0, Time[i+2], High[i+2] + 20*Point); ObjectSet("洛麇痦?? 玮彗溧 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN); ObjectSet("洛麇痦?? 玮彗溧 " + i, OBJPROP_COLOR, Red); CCodeBuffer = 9; } if(morning_star(i + 1, i + 2, i + 3) == true) { ObjectCreate("域疱眄?? 玮彗溧 " + i, OBJ_ARROW, 0, Time[i+2], Low[i+2] - 20*Point); ObjectSet("域疱眄?? 玮彗溧 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP); ObjectSet("域疱眄?? 玮彗溧 " + i, OBJPROP_COLOR, DodgerBlue); CCodeBuffer = 10; } if(IsEveningDodgiStar(i + 1, i + 2, i + 3) == true) { ObjectCreate("洛麇痦?? 漕滏? 玮彗溧 " + i, OBJ_ARROW, 0, Time[i+2], High[i+2] + 20*Point); ObjectSet("洛麇痦?? 漕滏? 玮彗溧 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWDOWN); ObjectSet("洛麇痦?? 漕滏? 玮彗溧 " + i, OBJPROP_COLOR, DeepPink); CCodeBuffer = 11; } if(IsMorningDodgiStar(i + 1, i + 2, i + 3) == true) { ObjectCreate("域疱眄?? 漕滏? 玮彗溧 " + i, OBJ_ARROW, 0, Time[i+2], Low[i+2] - 20*Point); ObjectSet("域疱眄?? 漕滏? 玮彗溧 " + i, OBJPROP_ARROWCODE, SYMBOL_ARROWUP); ObjectSet("域疱眄?? 漕滏? 玮彗溧 " + i, OBJPROP_COLOR, Blue); CCodeBuffer = 12; } i--; } //---- return(0); } //+------------------------------------------------------------------+ExCandles2.jpgExCandles2.jpg
TK29帖子1楼右侧xm竖版广告90-240
个性签名

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

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
Pzxzx
注册时间2017-08-06
发表于:2017-08-10 00:54只看该作者
2楼
韬客交易社区-国内最大的外汇交易社区
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]