Miscellaneous
0
Views
0
Downloads
0
Favorites
NRTR_Pilot911_v1
/*-----------------------------+
| |
| Shared by www.Aptrafx.com |
| |
+------------------------------*/
//+------------------------------------------------------------------+
//| NRTR.mq4 |
//| Copyright © 2005, VG many thanks to Konkop and dupidu |
//| 4vg@mail.ru |
//+------------------------------------------------------------------+
#property copyright "VG many thanks to Konkop and dupidu"
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_color3 Magenta
#property indicator_color4 Yellow
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
double ind_buffer4[];
extern double AveragePeriod = 40;
extern bool OCnotAverage = true;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,1);
SetIndexDrawBegin(0,AveragePeriod);
SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,1);
SetIndexDrawBegin(1,AveragePeriod);
SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,3);
SetIndexDrawBegin(2,AveragePeriod);
SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,3);
SetIndexDrawBegin(3,AveragePeriod);
//---- indicator buffers mapping
if(!SetIndexBuffer(0,ind_buffer1) && !SetIndexBuffer(1,ind_buffer2)
&& !SetIndexBuffer(2,ind_buffer3)&& !SetIndexBuffer(3,ind_buffer4))
Print("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("NRTR");
SetIndexLabel(0,"Sell");
SetIndexLabel(1,"Buy");
SetIndexLabel(2,"Sell S/L");
SetIndexLabel(3,"Buy S/L");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int bar;
double value = 0;
double price = 0;
double trend, dK, AvgRange, HLTrend;
int SetLoopCount = 0;
//---- TODO: add your code here
for (int shift=Bars-2; shift>=0; shift--)
{
ind_buffer1[shift]=0;
ind_buffer2[shift]=0;
ind_buffer3[shift]=0;
ind_buffer4[shift]=0;
}
AvgRange=0;
for (int i=1; i<=AveragePeriod; i++) AvgRange+= MathAbs(High[i]-Low[i]);
dK = AvgRange/AveragePeriod/Point/10000;
if (OCnotAverage)
{
if (Close[Bars-1] > Open[Bars-1])
{
value = Close[Bars - 1] * (1 - dK);
trend = 1;
ind_buffer2[Bars - 1] = value;
}
if (Close[Bars-1] < Open[Bars-1])
{
value = Close[Bars - 1] * (1 + dK);
trend = -1;
ind_buffer1[Bars - 1] = value;
}
for (bar = Bars - 2; bar >= 0; bar--)
{
if (trend >= 0)
{
if (Low[bar] > price) price = Close[bar];
value = price * (1 - dK);
if (Close[bar] < value)
{
price = Close[bar];
value = price * (1 + dK);
trend = -1;
}
}
else
if (trend <= 0)
{
if (High[bar] < price) price = Close[bar];
value = price * (1 + dK);
if (Close[bar] > value)
{
price = Close[bar];
value = price * (1 - dK);
trend = 1;
}
}
if (trend == -1) ind_buffer1[bar] = value;
if (trend == 1) ind_buffer2[bar] = value;
}
}
else
{
if ((High[Bars-1] + Low[Bars-1])/2 > (High[Bars-2] + Low[Bars-2])/2)
{
value = (High[Bars-1] + Low[Bars-1])/2 * (1 - dK);
HLTrend = 1;
ind_buffer4[Bars - 1] = value;
}
else
{
value = (High[Bars-1] + Low[Bars-1])/2 * (1 + dK);
HLTrend = -1;
ind_buffer3[Bars - 1] = value;
}
for (bar = Bars - 2; bar >= 0; bar--)
{
if (HLTrend >= 0)
{
if (Low[bar] > price) price = (High[bar] + Low[bar])/2;
value = price * (1 - dK);
if ((High[bar] + Low[bar])/2 < value)
{
price = (High[bar] + Low[bar])/2;
value = price * (1 + dK);
HLTrend = -1;
}
}
else
if (HLTrend <= 0)
{
if (High[bar] < price) price = (High[bar] + Low[bar])/2;
value = price * (1 + dK);
if ((High[bar] + Low[bar])/2 > value)
{
price = (High[bar] + Low[bar])/2;
value = price * (1 - dK);
HLTrend = 1;
}
}
if (HLTrend == -1) ind_buffer3[bar] = value;
if (HLTrend == 1) ind_buffer4[bar] = value;
}
}
//----
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
---