Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
XOAtr
#property copyright "© 2003-2006 AINUR, RickD"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 Red
//extern int MaxBars = 1000;
extern int ATRPeriod = 14;
double buf1[];
double buf2[];
double hi, lo, kr, no, kk, kn;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void init() {
SetIndexBuffer(0, buf1);
SetIndexBuffer(1, buf2);
SetIndexStyle(0, DRAW_HISTOGRAM);
SetIndexStyle(1, DRAW_HISTOGRAM);
//SetIndexDrawBegin(0, Bars-MaxBars);
//SetIndexDrawBegin(1, Bars-MaxBars);
hi = 0;
lo = 0;
kr = 0;
no = 0;
kk = 0;
kn = 0;
}
void start() {
int counted = IndicatorCounted();
if (counted < 0) return (-1);
if (counted > 0) counted--;
int limit = Bars-counted;
limit = MathMin(limit, Bars-ATRPeriod);
//limit = MathMin(limit, MaxBars);
double ATR, cur;
for (int i=limit; i >= 0; i--) {
ATR = iATR(NULL, 0, ATRPeriod, i);
cur = Open[i];
if (hi == 0) hi = Open[i];
if (lo == 0) lo = Open[i];
if (cur > (hi+ATR)) {
kk = MathCeil((cur-(hi+ATR))/ATR);
//if (kk <= 1) kk = 1;
hi = cur;
lo = cur-ATR;
kr = kr+kk;
no = 0;
}
if (cur < (lo-ATR)) {
kn = MathCeil(((lo-ATR)-cur)/ATR);
//if (kn <= 1) kn = 1;
lo = cur;
hi = cur+ATR;
no = no+kn;
kr = 0;
}
buf1[i] = kr;
buf2[i] = -no;
}
}
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
---