Miscellaneous
0
Views
0
Downloads
0
Favorites
2pbIdealMA_nk
// 22.01.2009 Ðåäàêòèðîâàë Íèêîëàé Êîñèöèí
//+X================================================================X+
//| Moving Average 2p-IdealMA.mq4 |
//| Copyright © 2009, Neutron | |
//+X================================================================X+
//---- îòðèñîâêà èíäèêàòîðà â îñíîâíîì îêíå
#property indicator_chart_window
//---- êîëè÷åñòâî èíäèêàòîðíûõ áóôåðîâ
#property indicator_buffers 1
//---- öâåò ëèíèèè èíäèêàòîðîâ
#property indicator_color1 Blue
//---- âõîäíûå ïàðàìåòðû ýêñïåðòà
extern double w1 =0.1;
extern double w2 = 0.1;
//---- èíäèêàòîðíûå áóôåðû
double MA[];
//----
int StartBar;
//+X================================================================X+
//| 2p-IdealMA function |
//+X================================================================X+
double GetIdealMASmooth(double W1_, double W2_,
double Series1, double Series0, double Resalt1)
{
//---+
double Resalt0, dSeries, dSeries2;
dSeries = Series0 - Series1;
dSeries2 = dSeries * dSeries -1.0;
Resalt0 = (W1_ * (Series0 - Resalt1) +
Resalt1 + W2_ * Resalt1 * dSeries2)
/ (1.0 + W2_ * dSeries2);
return(Resalt0);
//---+
}
//+X================================================================X+
//| initialization function |
//+X================================================================X+
int init()
{
//---+
//---- ñòèëü èçîáðàæåíèÿ èíäèêàòîðà
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 3);
//---- áóôåð äëÿ ïåðâîé ëèíèè èíäèêàòîðà
SetIndexBuffer(0, MA);
//---- ìèíèìàëüíîå êîëè÷åñòâî áàðîâ äëÿ ðàñ÷¸òà
StartBar = 2;
//----
return(0);
//---+
}
//+X================================================================X+
//| start function |
//+X================================================================X+
int start()
{
//---+
//---- ïðîâåðêà êîëè÷åñòâà áàðîâ
//íà äîñòàòî÷íîñòü äëÿ äàëüíåéøåãî ðàñ÷¸òà
if (Bars - 1 < StartBar)
return(-1);
//---- Ââåäåíèå öåëûõ ïåðåìåííûõ è ïîëó÷åíèå óæå ïîñ÷èòàííûõ áàðîâ
int MaxBar, limit, bar, counted_bars = IndicatorCounted();
//---- ïðîâåðêà íà âîçìîæíûå îøèáêè
if (counted_bars < 0)
return(-1);
//---- ïîñëåäíèé ïîñ÷èòàííûé áàð äîëæåí áûòü ïåðåñ÷èòàí
if (counted_bars > 0)
counted_bars--;
//---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà,
//íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïåðåñ÷¸ò âñåõ áàðîâ
MaxBar = Bars - 2;
//---- îïðåäåëåíèå íîìåðà ñàìîãî ñòàðîãî áàðà,
//íà÷èíàÿ ñ êîòîðîãî áóäåò ïðîèçåä¸í ïåðåñ÷¸ò íîâûõ áàðîâ
limit = Bars - counted_bars - 1;
//---- èíèöèàëèçàöèÿ íóëÿ
if (limit >= MaxBar)
{
limit = MaxBar;
MA[MaxBar] = Close[MaxBar];
MA[MaxBar + 1] = Close[MaxBar + 1];
}
//---- ÂÛ×ÈÑËÅÍÈÅ ÈÍÄÈÊÀÒÎÐÀ
for( bar = limit; bar >= 0; bar--)
MA[bar] = GetIdealMASmooth(w1, w2,
Close[bar + 1], Close[bar], MA[bar + 1]);
//----
return(0);
//---+
}
//+X----------------------------------------------------------------X+
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
---