[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]HL_Next_Activator.jpg
发表于:2014-04-23 08:02只看该作者
2楼
韬客社区www.talkfx.co
发表于:2018-07-07 06:51只看该作者
4楼
谢谢分享
韬客社区www.talkfx.co