Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
PerkyAsctrend1
//+------------------------------------------------------------------+
//| PerkyAsctrend1.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Magenta
//----
extern int RISK = 4;
extern int AllBars = 250;
//----
double val1buffer[];
double val2buffer[];
int up = 0, dn = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0, DRAW_ARROW, EMPTY);
SetIndexArrow(0, 108);
SetIndexBuffer(0, val1buffer);
//----
SetIndexStyle(1, DRAW_ARROW, EMPTY);
SetIndexArrow(1, 108);
SetIndexBuffer(1, val2buffer);
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
double value2;
double value3;
double value10 = 10;
double value11;
double x1 = 70;
double x2 = 30;
int TrueCount;
int counter;
int MRO1;
int MRO2;
int i1;
double Range;
double AvgRange;
double val1;
double val2;
double Table_value2[500][2];
int counted_bars = IndicatorCounted();
value10 = 3 + RISK*2;
x1 = 67 + RISK;
x2 = 33 - RISK;
value11 = value10;
//----
if(counted_bars < 0)
return (-1);
//----
if(counted_bars > 0)
counted_bars--; //last bar recounted
int i;
int shift = Bars - counted_bars - 1;
if(shift > AllBars)
shift = AllBars;
for(i = shift; i > 0; i--)
{
counter = i;
Range = 0;
AvgRange = 0;
//----
for(counter = i; counter <= i + 9; counter++)
AvgRange = AvgRange + MathAbs(High[counter] - Low[counter]);
Range = AvgRange / 10;
counter = i;
TrueCount = 0;
//----
while(counter < i + 9 && TrueCount < 1)
{
if(MathAbs(Open[counter] - Close[counter+1]) >= Range*2.0)
TrueCount++;
counter++;
}
//----
if(TrueCount >= 1)
MRO1 = counter ;
else
MRO1 = -1;
counter = i;
TrueCount = 0;
//----
while(counter < i + 6 && TrueCount < 1)
{
if(MathAbs(Close[counter+3] - Close[counter]) >= Range*4.6)
{
TrueCount++;
}
counter++;
}
//----
if(TrueCount >= 1)
MRO2 = counter;
else
MRO2 = -1;
//----
if(MRO1 > -1)
value11 = 3;
else
value11 = value10;
//----
if(MRO2 > -1)
value11 = 4;
else
value11 = value10;
value2 = 100 - MathAbs(iWPR(NULL, 0, value11, i));
Table_value2[i][0] = i;
Table_value2[i][1] = value2;
val1 = 0;
val2 = 0;
value3 = 0;
//----
if(value2 < x2 ) // x2 = 30
{
i1 = 1;
//----
while(Table_value2[i+i1][1] >= x2 && Table_value2[i+i1][1] <= x1)
i1++;
//----
if(Table_value2[i+i1][1] > x1)
{
value3 = High[i] + Range*0.5;
val1 = value3;
}
}
//----
if(value2>x1) // x1 = 70
{
i1 = 1;
//----
while(Table_value2[i+i1][1] >= x2 && Table_value2[i+i1][1] <= x1)
{
i1++;
}
//----
if(Table_value2[i+i1][1] < x2)
{
value3 = Low[i]-Range*0.5;
val2 = value3;
}
}
//----
if(val2 != 0 && up == 0)
{
val1buffer[i] = val2 - 1*Point;
up = 1;
dn = 0;
//----
if(shift <= 2)
Alert(Symbol(), " ", Period(), "M Asctrend BUY ");
}
//----
if(val1 !=0 && dn == 0)
{
val2buffer[i] = val1 + 1*Point;
dn = 1;
up = 0;
//----
if(shift <= 2)
Alert(Symbol(), " ", Period(), "M Asctrend SELL ");
}
}
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
---