Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
MTF Waddah_Attar_Explosion
//+------------------------------------------------------------------+
//| MTF Waddah_Attar_Explosion .mq4 |
//| Copyright © 2006, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//+------------------------------------------------------------------+
//| Waddah_Attar_Explosion.mq4 |
//| Copyright © 2006, Eng. Waddah Attar |
//| waddahattar@hotmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Eng. Waddah Attar"
#property link "waddahattar@hotmail.com"
//----
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Gold
#property indicator_color4 DodgerBlue
#property indicator_minimum 0.0
#property indicator_width1 3
#property indicator_width2 3
#property indicator_width3 1
//----
extern int Minutes = 0;
extern int Sensetive = 150;
extern int DeadZonePip = 15;
extern int ExplosionPower = 15;
extern int TrendPower = 15;
extern bool AlertWindow = false;
extern int AlertCount = 2;
extern bool AlertLong = false;
extern bool AlertShort = false;
extern bool AlertExitLong = false;
extern bool AlertExitShort = false;
//----
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
double ind_buffer4[];
//----
int LastTime1 = 1;
int LastTime2 = 1;
int LastTime3 = 1;
int LastTime4 = 1;
int Status = 0, PrevStatus = -1;
double bask, bbid;
string TimeFrameStr;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID);
SetIndexStyle(2, DRAW_LINE, STYLE_SOLID);
SetIndexStyle(3, DRAW_LINE, STYLE_SOLID);
//----
SetIndexBuffer(0, ind_buffer1);
SetIndexBuffer(1, ind_buffer2);
SetIndexBuffer(2, ind_buffer3);
SetIndexBuffer(3, ind_buffer4);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
switch(Minutes)
{
case 1 : TimeFrameStr=" Period M1 "; break;
case 5 : TimeFrameStr=" Period M5 "; break;
case 15 : TimeFrameStr=" Period M15 "; break;
case 30 : TimeFrameStr=" Period M30 "; break;
case 60 : TimeFrameStr=" Period H1 "; break;
case 240 : TimeFrameStr=" Period H4 "; break;
case 1440 : TimeFrameStr=" Period D1 "; break;
case 10080 : TimeFrameStr=" Period W1 "; break;
case 43200 : TimeFrameStr=" Period MN1 "; break;
default : TimeFrameStr=" Current TimeFrame "; Minutes=0;
}
//----
IndicatorShortName("Wad Att Exp: ("+TimeFrameStr+")[S-" + Sensetive +"][DZ-"+ DeadZonePip +"][EP-"+ ExplosionPower +"][TP-"+ TrendPower +"])");
Comment("copyright waddahwttar@hotmail.com");
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double Trend1, Trend2, Explo1, Explo2, Dead;
double pwrt, pwre;
int limit, i, counted_bars = IndicatorCounted();
//----
if(counted_bars < 0)
return(-1);
//----
if(counted_bars > 0)
counted_bars--;
//limit = Bars - counted_bars;
limit=Bars-counted_bars+Minutes/Period();
//----
for(i = limit - 1; i >= 0; i--)
{
Trend1 = (iMACD(NULL, Minutes, 20, 40, 9, PRICE_CLOSE, MODE_MAIN, i) -
iMACD(NULL, Minutes, 20, 40, 9, PRICE_CLOSE, MODE_MAIN, i + 1))*Sensetive;
Trend2 = (iMACD(NULL, Minutes, 20, 40, 9, PRICE_CLOSE, MODE_MAIN, i + 2) -
iMACD(NULL, Minutes, 20, 40, 9, PRICE_CLOSE, MODE_MAIN, i + 3))*Sensetive;
Explo1 = (iBands(NULL, Minutes, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, i) -
iBands(NULL, Minutes, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, i));
Explo2 = (iBands(NULL, Minutes, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, i + 1) -
iBands(NULL, Minutes, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, i + 1));
Dead = Point * DeadZonePip;
ind_buffer1[i] = 0;
ind_buffer2[i] = 0;
ind_buffer3[i] = 0;
ind_buffer4[i] = 0;
if(Trend1 >= 0)
ind_buffer1[i] = Trend1;
if(Trend1 < 0)
ind_buffer2[i] = (-1*Trend1);
ind_buffer3[i] = Explo1;
ind_buffer4[i] = Dead;
if(i == 0)
{
if(Trend1 > 0 && Trend1 > Explo1 && Trend1 > Dead &&
Explo1 > Dead && Explo1 > Explo2 && Trend1 > Trend2 &&
LastTime1 < AlertCount && AlertLong == true && Ask != bask)
{
pwrt = 100*(Trend1 - Trend2) / Trend1;
pwre = 100*(Explo1 - Explo2) / Explo1;
bask = Ask;
if(pwre >= ExplosionPower && pwrt >= TrendPower)
{
if(AlertWindow == true)
{
Alert(LastTime1, "- ", Symbol(), " - BUY ", " (",
DoubleToStr(bask, Digits) , ") Trend PWR " ,
DoubleToStr(pwrt,0), " - Exp PWR ", DoubleToStr(pwre, 0));
}
else
{
Print(LastTime1, "- ", Symbol(), " - BUY ", " (",
DoubleToStr(bask, Digits), ") Trend PWR ",
DoubleToStr(pwrt, 0), " - Exp PWR ", DoubleToStr(pwre, 0));
}
LastTime1++;
}
Status = 1;
}
if(Trend1 < 0 && MathAbs(Trend1) > Explo1 && MathAbs(Trend1) > Dead &&
Explo1 > Dead && Explo1 > Explo2 && MathAbs(Trend1) > MathAbs(Trend2) &&
LastTime2 < AlertCount && AlertShort == true && Bid != bbid)
{
pwrt = 100*(MathAbs(Trend1) - MathAbs(Trend2)) / MathAbs(Trend1);
pwre = 100*(Explo1 - Explo2) / Explo1;
bbid = Bid;
if(pwre >= ExplosionPower && pwrt >= TrendPower)
{
if(AlertWindow == true)
{
Alert(LastTime2, "- ", Symbol(), " - SELL ", " (",
DoubleToStr(bbid, Digits), ") Trend PWR ",
DoubleToStr(pwrt,0), " - Exp PWR ", DoubleToStr(pwre, 0));
}
else
{
Print(LastTime2, "- ", Symbol(), " - SELL ", " (",
DoubleToStr(bbid, Digits), ") Trend PWR " ,
DoubleToStr(pwrt, 0), " - Exp PWR ", DoubleToStr(pwre, 0));
}
LastTime2++;
}
Status = 2;
}
if(Trend1 > 0 && Trend1 < Explo1 && Trend1 < Trend2 && Trend2 > Explo2 &&
Trend1 > Dead && Explo1 > Dead && LastTime3 <= AlertCount &&
AlertExitLong == true && Bid != bbid)
{
bbid = Bid;
if(AlertWindow == true)
{
Alert(LastTime3, "- ", Symbol(), " - Exit BUY ", " ",
DoubleToStr(bbid, Digits));
}
else
{
Print(LastTime3, "- ", Symbol(), " - Exit BUY ", " ",
DoubleToStr(bbid, Digits));
}
Status = 3;
LastTime3++;
}
if(Trend1 < 0 && MathAbs(Trend1) < Explo1 &&
MathAbs(Trend1) < MathAbs(Trend2) && MathAbs(Trend2) > Explo2 &&
Trend1 > Dead && Explo1 > Dead && LastTime4 <= AlertCount &&
AlertExitShort == true && Ask != bask)
{
bask = Ask;
if(AlertWindow == true)
{
Alert(LastTime4, "- ", Symbol(), " - Exit SELL ", " ",
DoubleToStr(bask, Digits));
}
else
{
Print(LastTime4, "- ", Symbol(), " - Exit SELL ", " ",
DoubleToStr(bask, Digits));
}
Status = 4;
LastTime4++;
}
PrevStatus = Status;
}
if(Status != PrevStatus)
{
LastTime1 = 1;
LastTime2 = 1;
LastTime3 = 1;
LastTime4 = 1;
}
}
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
---