Miscellaneous
0
Views
0
Downloads
0
Favorites
SilverTrendMy
//+------------------------------------------------------------------+
//| SilverTrend_Signal.mq4
//+------------------------------------------------------------------+
#property copyright "SilverTrend rewritten by CrazyChart"
#property link "http://viac.ru/"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Violet
//êîëè÷åñòâî áàðîâ íà êîòîðûõ ïðîðèñîâûâàåòñÿ
extern int RisBars=10000;
//ïåðèîä èíäèêàòîðà
extern int Per=211;
//îòêëîíåíèå â ïðîöåíòàõ îò âåðõà è íèçà
extern int Otk=33;
//---- buffers
double val1[];
double val2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,233);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(1,234);
SetIndexBuffer(0,val1);
SetIndexBuffer(1,val2);
return(0);
}
//+------------------------------------------------------------------+
//| SilverTrend_Signal |
//+------------------------------------------------------------------+
int start()
{
if (RisBars>=Bars) {RisBars=Bars;}
SetIndexDrawBegin(0,Bars-RisBars+Per);
SetIndexDrawBegin(1,Bars-RisBars+Per);
int i,shift,counted_bars=IndicatorCounted();
int i1,i2;
double Range,AvgRange,smin,smax,SsMax,SsMin,price;
bool uptrend,old;
//åñëè áàðîâ ñëèøêîì ìàëî, çàâåðøàåì ðàáîòó
if(Bars<=Per+1) {return(0);}
//îáíóëåíèå
if(counted_bars<Per+1)
{
for(i=1;i<=Per;i++) {val1[RisBars-i]=0.0;}
for(i=1;i<=Per;i++) {val2[RisBars-i]=0.0;}
}
for (shift = RisBars-Per; shift>=0; shift--)
{
Range=0;
AvgRange=0;
for (i1=shift; i1<=shift+Per; i1++)
{
AvgRange=AvgRange+MathAbs(High[i1]-Low[i1]);
}
Range=AvgRange/(Per+1);
SsMax=High[shift];
SsMin=Low[shift];
for (i2=shift;i2<=shift+Per-1;i2++)
{
price=High[i2];
if(SsMax<price) {SsMax=price;}
price=Low[i2];
if(SsMin>=price) {SsMin=price;}
}
smin = SsMin+(SsMax-SsMin)*Otk/100;
smin = NormalizeDouble(smin,Digits);
smax = SsMax-(SsMax-SsMin)*Otk/100;
smax = NormalizeDouble(smax,Digits);
val1[shift]=0;
val2[shift]=0;
if (Close[shift]<smin && Close[shift]<Close[shift+1]) {uptrend = false;}
if (Close[shift]>smax && Close[shift]>Close[shift+1]) {uptrend = true;}
if (uptrend!=old && uptrend==true) {val1[shift]=Low[shift]-Range*0.5;}
if (uptrend!=old && uptrend==false) {val2[shift]=High[shift]+Range*0.5;}
old=uptrend;
}
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
---