Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
ASCTrend1sig_v4
//+------------------------------------------------------------------+
//| ASCTrend1sig_noSound.mq4 |
//| Ramdass - Conversion only |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- input parameters
extern int RISK = 3;
extern int CountBars = 300;
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicator line
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_ARROW, 0, 1);
SetIndexArrow(0, 234);
SetIndexStyle(1, DRAW_ARROW, 0, 1);
SetIndexArrow(1, 233);
SetIndexBuffer(0, val1);
SetIndexBuffer(1, val2);
if(CountBars >= 1000)
CountBars=950;
SetIndexDrawBegin(0, Bars - CountBars + 11 + 1);
SetIndexDrawBegin(1, Bars - CountBars + 11 + 1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| ASCTrend1sig |
//+------------------------------------------------------------------+
int start()
{
int i, shift, counted_bars = IndicatorCounted();
int Counter, i1, value10, value11;
double value1, x1, x2;
double value2, value3;
double TrueCount, Range, AvgRange, MRO1, MRO2;
double Table_value2[1000];
//----
value10 = 3 + RISK*2;
x1 = 67 + RISK;
x2 = 33 - RISK;
value11 = value10;
//----
if(Bars <= 11 + 1)
return(0);
//---- initial zero
if(counted_bars < 11 + 1)
{
for(i = 1; i <= 0; i++)
val1[CountBars-i] = 0.0;
for(i = 1; i <= 0; i++)
val2[CountBars-i] = 0.0;
}
//----
shift = CountBars - 11 - 1;
while(shift >= 0)
{
Counter = shift;
Range = 0.0;
AvgRange = 0.0;
//----
for(Counter = shift; Counter <= shift + 9; Counter++)
AvgRange=AvgRange + MathAbs(High[Counter] - Low[Counter]);
//----
Range = AvgRange / 10;
Counter = shift;
TrueCount = 0;
//----
while(Counter < shift + 9 && TrueCount < 1)
{
if(MathAbs(Open[Counter] - Close[Counter+1]) >= Range*2.0)
TrueCount = TrueCount + 1;
Counter=Counter+1;
}
//----
if(TrueCount >= 1)
{
MRO1 = Counter;
}
else
{
MRO1 = -1;
}
//----
Counter = shift;
TrueCount = 0;
//----
while(Counter < shift + 6 && TrueCount < 1)
{
if (MathAbs(Close[Counter+3] - Close[Counter]) >= Range*4.6)
TrueCount = TrueCount + 1;
Counter = Counter + 1;
}
//----
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, shift)); // PercentR(value11=9)
Table_value2[shift] = value2;
val1[shift] = 0;
val2[shift] = 0;
value3 = 0;
//----
if(value2 < x2)
{
i1 = 1;
while(Table_value2[shift + i1] >= x2 && Table_value2[shift+i1] <= x1)
{
i1++;
}
//----
if(Table_value2[shift+i1] > x1)
{
value3 = High[shift] + Range*0.5;
val1[shift] = value3;
}
}
if(value2 > x1)
{
i1=1;
while(Table_value2[shift+i1] >= x2 && Table_value2[shift+i1] <= x1)
{
i1++;
}
if(Table_value2[shift+i1] < x2)
{
value3 = Low[shift] - Range*0.5;
val2[shift] = value3;
}
}
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
---