韬客社区 收藏
草龙 14-04-23 13:01
1楼
[MT4指标] HL Next Activator.红蓝止损指标
主图指标 mt4指标类型:趋势指标 是否能用在mt4手机版上:否 是否含有未来函数:无 HL Next Activator.红蓝止损指标 //+------------------------------------------------------------------+ //| HL Next Activator.mq4 | //| Rosh | //| http://fx.winm.ru/book.htm | //+------------------------------------------------------------------+ #property copyright "Rosh" #property link "http://fx.winm.ru/book.htm" //---- #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red //---- input parameters extern int ActivatorPeriod=3; extern int useFullPeriods=1; //---- buffers double SellActivator; double BuyActivator; int first,counterPeriod; int DelimeterArray[30]; //+------------------------------------------------------------------+ //| 项塍麒? 耠邃簋 ? 镥痂钿 | //+------------------------------------------------------------------+ string GetNextPeriod(int _Period) { string nextPeriod=""; //---- switch(_Period) { case 5: nextPeriod="H1"; break; case 15: nextPeriod="H1"; break; case 30: nextPeriod="H4"; break; case 60: nextPeriod="H4"; break; case 240: nextPeriod="D1"; break; case 1440: nextPeriod="W1"; break; case 10080: nextPeriod="M"; break; default: Print("湾漕矬耱桁  镥痂钿!!!"); } //---- return(nextPeriod); } //+------------------------------------------------------------------+ //| 橡钼屦桁 - 疣玟咫栩咫? 滂囡噻铐? 桦? 礤? | //+------------------------------------------------------------------+ bool isDelimeter(int _Period, int _shift) { bool result=false; //---- switch(_Period) { case 5:result=(TimeMinute(Time[_shift])==0); break; case 15:result=(TimeMinute(Time[_shift])==0); break; case 30:result=(TimeMinute(Time[_shift])==0)&& MathMod(TimeHour(Time[_shift]),4.0)==0.0; break; case 60:result=(TimeMinute(Time[_shift])==0)&& MathMod(TimeHour(Time[_shift]),4.0)==0.0;break; case 240:result=(TimeMinute(Time[_shift])==0)&&(TimeHour(Time[_shift])==0); break; case 1440:result=(TimeDayOfWeek(Time[_shift])==1)&&(TimeHour(Time[_shift])==0); break; case 10080:result=(TimeDay(Time[_shift])==1)||((TimeDay(Time[_shift])==2 && TimeDay(Time[_shift+1])!=1))||((TimeDay(Time[_shift])==3 && TimeDay(Time[_shift+1])!=2)); break; default: Print("湾漕矬耱桁  镥痂钿!!!"); } //---- return(result); } //+------------------------------------------------------------------+ //| 蔓麒耠栩? 耩邃龛? High 玎 ActivatorPeriod 镥痂钿钼 | //+------------------------------------------------------------------+ double AverageHigh(int _shift) { double AveragePeriodHigh=0.0,tempHigh; int cnt=_shift; first=0; //---- counterPeriod=0; while(counterPeriod0;cnt--) { tempHigh=High[Highest(NULL,0,MODE_HIGH,DelimeterArray[cnt]-DelimeterArray[cnt-1],DelimeterArray[cnt-1]+1)]; AveragePeriodHigh=AveragePeriodHigh+tempHigh; } if (useFullPeriods==1) { tempHigh=High[Highest(NULL,0,MODE_HIGH,DelimeterArray[ActivatorPeriod]-DelimeterArray[ActivatorPeriod-1],DelimeterArray[ActivatorPeriod-1]+1)]; AveragePeriodHigh=AveragePeriodHigh+tempHigh; AveragePeriodHigh=AveragePeriodHigh/NormalizeDouble(ActivatorPeriod,0); } else { tempHigh=High[Highest(NULL,0,MODE_HIGH,DelimeterArray[0]-_shift,_shift)]; AveragePeriodHigh=AveragePeriodHigh+tempHigh; AveragePeriodHigh=AveragePeriodHigh/NormalizeDouble(ActivatorPeriod,0); } //---- return(AveragePeriodHigh); } //+------------------------------------------------------------------+ //| 蔓麒耠栩? 耩邃龛? Low 玎 ActivatorPeriod 镥痂钿钼 | //+------------------------------------------------------------------+ double AverageLow(int _shift) { double AveragePeriodLow=0.0,tempLow; int cnt=_shift; first=0; //---- counterPeriod=0; while(counterPeriod0;cnt--) { tempLow=Low[Lowest(NULL,0,MODE_LOW,DelimeterArray[cnt]-DelimeterArray[cnt-1],DelimeterArray[cnt-1]+1)]; AveragePeriodLow=AveragePeriodLow+tempLow; } if (useFullPeriods==1) { tempLow=Low[Lowest(NULL,0,MODE_LOW,DelimeterArray[ActivatorPeriod]-DelimeterArray[ActivatorPeriod-1],DelimeterArray[ActivatorPeriod-1]+1)]; AveragePeriodLow=AveragePeriodLow+tempLow; AveragePeriodLow=AveragePeriodLow/NormalizeDouble(ActivatorPeriod,0); } else { tempLow=Low[Lowest(NULL,0,MODE_LOW,DelimeterArray[0]-_shift,_shift)]; AveragePeriodLow=AveragePeriodLow+tempLow; AveragePeriodLow=AveragePeriodLow/NormalizeDouble(ActivatorPeriod,0); } //---- return(AveragePeriodLow); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexBuffer(0,SellActivator); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,159); SetIndexBuffer(1,BuyActivator); SetIndexEmptyValue(1,0.0); if (useFullPeriods!=0) useFullPeriods=1; //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int cnt,limit; if (Period()==10080) return; if (counted_bars<0) return(-1); if (counted_bars>0) limit=Bars-counted_bars; if (counted_bars==0) { // 磬轵? 镥疴  ? 怛铕铋 疣玟咫栩咫? ? 篑蜞眍忤螯 limit cnt=Bars-1; while(!isDelimeter(Period(),cnt)) cnt--; first=cnt; cnt--; counterPeriod=0; while(counterPeriod=0;shift--) { if (Close[shift]>AverageHigh(shift)) { SellActivator[shift]=AverageLow(shift); BuyActivator[shift]=0.0; continue; } if (Close[shift]
kanhost
2楼
14-04-23 16:02 回复
emoji-image
Pzxzx
3楼
17-08-10 07:45 回复
韬客交易社区-国内最大的外汇交易社区
lsiyu
4楼
18-07-07 14:51 回复
谢谢分享