0% found this document useful (0 votes)
471 views3 pages

Heiken Ashi Smoothed Alert Bar1.Mq4

Uploaded by

romano7187
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
471 views3 pages

Heiken Ashi Smoothed Alert Bar1.Mq4

Uploaded by

romano7187
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

//+------------------------------------------------------------------+

//|
Heiken Ashi Smoothed.mq4 |
//+------------------------------------------------------------------+
//|
mod by Raff |
//+------------------------------------------------------------------+
#property copyright "Copyright 2006, Forex-TSD.com "
#property link
"http://www.forex-tsd.com/"
#property link
"Alerts added by cja"
#property
#property
#property
#property
#property
#property
#property
#property
#property
#property
//---extern
extern
extern
extern

indicator_chart_window
indicator_buffers 4
indicator_color1 Red
indicator_color2 RoyalBlue
indicator_color3 Red
indicator_color4 RoyalBlue
indicator_width1 1
indicator_width2 1
indicator_width3 3
indicator_width4 3

parameters
int MaMetod = 2;
int MaPeriod = 6;
int MaMetod2 = 3;
int MaPeriod2 = 2;

extern bool POP_UP_Box_Alert = false;


extern bool Sound_Alert = false;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//---int ExtCountedBars=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function
|
//|------------------------------------------------------------------|
int init()
{
//---- indicators
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_HISTOGRAM, 0);
SetIndexBuffer(0, ExtMapBuffer1);
SetIndexStyle(1,DRAW_HISTOGRAM, 0);
SetIndexBuffer(1, ExtMapBuffer2);
SetIndexStyle(2,DRAW_HISTOGRAM, 0);
SetIndexBuffer(2, ExtMapBuffer3);
SetIndexStyle(3,DRAW_HISTOGRAM, 0);
SetIndexBuffer(3, ExtMapBuffer4);
//---SetIndexDrawBegin(0,5);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexBuffer(1,ExtMapBuffer2);

SetIndexBuffer(2,ExtMapBuffer3);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexBuffer(4,ExtMapBuffer5);
SetIndexBuffer(5,ExtMapBuffer6);
SetIndexBuffer(6,ExtMapBuffer7);
SetIndexBuffer(7,ExtMapBuffer8);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function
|
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
return(0);
}
bool Crossed (double haOpen , double haClose )
{
static string last_direction = "";
string current_direction = "";
if(haOpen<=haClose) current_direction = "LONG";
if(haOpen>haClose) current_direction = "SHORT";

if(current_direction != last_direction)
{
if(POP_UP_Box_Alert==true)Alert ("H/Ashi Direction change "+current_direct
ion+" " ,Symbol()," ",Period()," @ ",Bid);
if(Sound_Alert==true) PlaySound("alert2.wav");
last_direction = current_direction;
return (true);
}
else
{
return (false);
}
//---return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function
|
//+------------------------------------------------------------------+
int start()
{
double maOpen, maClose, maLow, maHigh;
double haOpen, haHigh, haLow, haClose;
if(Bars<=10) return(0);
ExtCountedBars=IndicatorCounted();
//---- check for possible errors
if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
if (ExtCountedBars>0) ExtCountedBars--;
int pos=Bars-ExtCountedBars-1;

while(pos>0)
{
maOpen=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_OPEN,pos);
maClose=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_CLOSE,pos);
maLow=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_LOW,pos);
maHigh=iMA(NULL,0,MaPeriod,0,MaMetod,MODE_HIGH,pos);
haOpen=(ExtMapBuffer5[pos+1]+ExtMapBuffer6[pos+1])/2;
haClose=(maOpen+maHigh+maLow+maClose)/4;
haHigh=MathMax(maHigh, MathMax(haOpen, haClose));
haLow=MathMin(maLow, MathMin(haOpen, haClose));
if (haOpen<haClose)
{
ExtMapBuffer7[pos]=haLow;
ExtMapBuffer8[pos]=haHigh;
}
else
{
ExtMapBuffer7[pos]=haHigh;
ExtMapBuffer8[pos]=haLow;
}
ExtMapBuffer5[pos]=haOpen;
ExtMapBuffer6[pos]=haClose;
pos--;
}
int i;
for(i=0; i<Bars;
2,0,MaMetod2,i);
for(i=0; i<Bars;
2,0,MaMetod2,i);
for(i=0; i<Bars;
2,0,MaMetod2,i);
for(i=0; i<Bars;
2,0,MaMetod2,i);

i++) ExtMapBuffer1[i]=iMAOnArray(ExtMapBuffer7,Bars,MaPeriod
i++) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer8,Bars,MaPeriod
i++) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer5,Bars,MaPeriod
i++) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer6,Bars,MaPeriod

Print(Crossed (ExtMapBuffer1[0],ExtMapBuffer2[0]));
//---return(0);
}
//+------------------------------------------------------------------+

You might also like