Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
RK_MindHero mail
//+------------------------------------------------------------------+
//| Mindhero.mq4 |
//| www.mindrends.com |
//| superhero |
//+------------------------------------------------------------------+
#property copyright "Mindherostar Inc."
#property link "www.mindrends.com"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int NumBars=500;
//added by rosdikasim@gmail.com
extern bool Play_Sound = true;
extern int Maximum_Alert = 5;
extern string Sound_WAV = "expert.wav";
extern bool Send_Email = false;
extern bool Display_Comment = true;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double spread;
int noOfAlert;
bool emailAlreadySent = false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() {
SetIndexStyle(0,DRAW_ARROW);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexArrow(1,234);
noOfAlert = Maximum_Alert;
return(0);
}
int deinit() {
return(0);
}
int start() {
int counted_bars = IndicatorCounted();
int artp = 7;
int numOfBars = 0;
int Shift = 0;
int glava = 0;
int J = 0;
int Curr = 0;
int plotted = -1; //1 = plotted long, 2 = plotted short, -1 = not plotted
bool river = True;
double Emaxtra=0;
double widcha=0;
double trueRange=0;
double Values[100];
double averageTrueRange=0;
double Weight=0;
double dartp=7.0;
double cecf=0.7;
double Range1=0;
double val1=0;
double val2=0;
double r1=0;
double s=2;
spread = MarketInfo(Symbol(),MODE_SPREAD) * Point;
if(Bars < NumBars) {
numOfBars = Bars;
}else{
numOfBars = NumBars;
}
if(Close[numOfBars - 2] > Close[numOfBars - 1]) {
river = True;
}else{
river = False;
}
Emaxtra = Close[numOfBars - 2];
Shift = numOfBars - 3;
while(Shift >= 0) {
trueRange = spread + High[Shift] - Low[Shift];
if(MathAbs(spread + High[Shift] - Close[Shift + 1]) > trueRange){
trueRange = MathAbs(spread + High[Shift] - Close[Shift + 1]);
}
if(MathAbs(Low[Shift] - Close[Shift + 1]) > trueRange) {
trueRange = MathAbs(Low[Shift] - Close[Shift + 1]);
}
if (Shift == numOfBars - 3) {
for(J=0; Shift <= artp-1; J++) {
Values[J] = trueRange;
}
}
Values[glava] = trueRange;
averageTrueRange = 0;
Weight = artp;
Curr = glava;
for(J=0; J<=artp - 1; J++) {
averageTrueRange += Values[Curr] * Weight;
Weight -= 1.0;
Curr--;
if (Curr == -1) { Curr = artp - 1; }
}
averageTrueRange = 2.0 * averageTrueRange /(dartp * (dartp + 1.0));
glava++;
if (glava == artp) { glava = 0; }
widcha = cecf * averageTrueRange;
if (river && Low[Shift] < Emaxtra - widcha) {
river = False;
Emaxtra = spread + High[Shift];
}
if (!river && spread+ High[Shift] > Emaxtra + widcha) {
river = True;
Emaxtra = Low[Shift];
}
if (river && Low[Shift] > Emaxtra) {
Emaxtra=Low[Shift];
}
if (!river && spread+ High[Shift] < Emaxtra) {
Emaxtra=spread+ High[Shift];
}
Range1 = iATR(NULL,0,10,Shift);
val1=0;
val2=0;
if (river) {
if (plotted != 1) {
r1 = Low[Shift] - Range1 * s/3.0;
} else if (plotted == 1) {
r1 = -1.0;
}
if (r1 > 0) {
val1 = r1;
val2 = 0;
if(Shift == 0) {
if(Play_Sound && noOfAlert > 0) {
PlaySound(Sound_WAV);
noOfAlert -= 1;
}
if(Send_Email && !emailAlreadySent) {
SendMail("RK MindHero: " + Symbol(), "Go long on " + Symbol() + " now!");
emailAlreadySent = true;
}
if(Display_Comment) { Comment("Mind Hero > Go Long!"); }
}
} else {
val1 = 0;
val2 = 0;
if(Shift == 0) {
noOfAlert = Maximum_Alert;
emailAlreadySent = false;
}
}
ExtMapBuffer1[Shift] = val1;
plotted = 1;
} else {
if (plotted!=2) {
r1 = spread + High[Shift] + Range1 * s/3.0;
} else if (plotted == 2) {
r1 = -1.0;
}
if (r1 > 0) {
val1 = 0;
val2 = r1;
if(Shift == 0) {
if(Play_Sound && noOfAlert > 0) {
PlaySound(Sound_WAV);
noOfAlert -= 1;
}
if(Send_Email && !emailAlreadySent) {
SendMail("RK MindHero: " + Symbol(), "Go short on " + Symbol() + " now!");
emailAlreadySent = true;
}
if(Display_Comment) { Comment("Mind Hero > Go Short!"); }
}
} else {
val1 = 0;
val2 = 0;
if(Shift == 0) {
noOfAlert = Maximum_Alert;
emailAlreadySent = false;
}
}
ExtMapBuffer2[Shift]=val2;
plotted = 2;
}
Shift--;
}
return(0);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---