Indicators Used
Miscellaneous
0
Views
0
Downloads
0
Favorites
MA_RSI_BB
//æææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
// MA_RSI_BB.mq4 Èíäèêàòîð.
// Ïîñòðîåí íà îñíîâå ñòàíäàðíûõ èíäèêàòîðîâ RSI è ÂÂ îò MetaQuotes Software Corp.
// ÌÀ ñòðîèòñÿ ïî öåíàì çàêðûòèÿ. RSI ñòðîèòñÿ íà îñíîâå ÌÀ.
// Ëèíèè BB ñòðîÿòñÿ íà îñíîâå ìàññèâà RSI.
// Ñåðãåé Êîâàë¸â, Äíåïðîïåòðîâñê, sk@autograf.dp.ua, ICQ 64015987, http://autograf.dp.ua
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ 0 ææ
#property copyright "Copyright SK AutoGraf © 2008"
#property link "http://autograf.dp.ua/"
#property indicator_separate_window // Èíäèêàïòîð â îòäåëüíîì îêíå
#property indicator_minimum 0 // Óðîâåíü ìèíèìóì
#property indicator_maximum 100 // Óðîâåíü ìàêñèìóì
#property indicator_buffers 6 // Êîëè÷åñòâî áóôåðîâ 6
//================================================================================== 1 ==
#property indicator_color1 Gold // Öâåò äëÿ RSI
extern int MA_period= 2; // Ïåðèîä ÌÀ (ðàñ÷¸ò íå ïî Close,à ïî ÌÀ)
extern int RSIPeriod=14; // Ïåðèîä äëÿ ðàñ÷¸òà RSI
extern int Level_1 = 70; // Óðîâåíü 1
extern int Level_2 = 30; // Óðîâåíü 2
double RSIBuffer[]; // Áóôåð äëÿ ðàñ÷¸òà ëèíèè RSI
double PosBuffer[]; // Òåõíè÷åñêèé áóôåð
double NegBuffer[]; // Òåõíè÷åñêèé áóôåð
//---------------------------------------------------------------------------------- 2 --
#property indicator_color4 Aqua // Öâåò âåðõíåé ëèíèè ÂÂ
#property indicator_color5 Lime // Öâåò ñðåäíåé ëèíèè ÂÂ
#property indicator_color6 Aqua // Öâåò íèæíåé ëèíèè ÂÂ
extern int BandsPeriod=20; // Ïåðèîä äëÿ ðàñ÷¸òà ÂÂ
extern double K_Dev=1.5; // Êîýôôèöèåíò óâåëè÷. äëÿ âíåøíèõ ëèíèé
double Up_Buffer[]; // Áóôåð äëÿ ðàñ÷¸òà âåðõíåé ëèíèè ÂÂ
double MovingBuffer[]; // Áóôåð äëÿ ðàñ÷¸òà ñðåäíåé ëèíèè ÂÂ
double Dn_Buffer[]; // Áóôåð äëÿ ðàñ÷¸òà íèæíåé ëèíèè ÂÂ
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ 3 ææ
int init()
{
//================================================================================== 4 ==
string short_name="MA_RSI_BB("+MA_period+","+RSIPeriod+","+BandsPeriod+","+K_Dev+")";
IndicatorShortName(short_name); // Óñòàíîâêà êîðîòêîãî èìåíè
SetLevelValue(1, Level_1); // Óñòàíîâêà óðîâíÿ 1
SetLevelValue(2, Level_2); // Óñòàíîâêà óðîâíÿ 2
//---------------------------------------------------------------------------------- 5 --
SetIndexStyle(0,DRAW_LINE); // Ñòèëü ëèíèè
SetIndexBuffer(0,RSIBuffer); // Ñâÿçü íîìåðà áóôåðà ñ íàçâ. ìàññèâà
SetIndexDrawBegin(0,RSIPeriod); // Íà÷àëî îòðèñîâêè ëèíèè RSI
SetIndexBuffer(1,PosBuffer); // Ñâÿçü íîìåðà áóôåðà ñ íàçâ. ìàññèâà
SetIndexBuffer(2,NegBuffer); // Ñâÿçü íîìåðà áóôåðà ñ íàçâ. ìàññèâà
//---------------------------------------------------------------------------------- 6 --
SetIndexStyle(3,DRAW_LINE); // Ñòèëü ëèíèè
SetIndexBuffer(3,Up_Buffer); // Ñâÿçü íîìåðà áóôåðà ñ íàçâ. ìàññèâà
SetIndexDrawBegin(3,BandsPeriod); // Íà÷àëî îòðèñîâêè âåðõíåé ëèíèè BB
SetIndexStyle(4,DRAW_LINE); // Ñòèëü ëèíèè
SetIndexBuffer(4,MovingBuffer); // Ñâÿçü íîìåðà áóôåðà ñ íàçâ. ìàññèâà
SetIndexDrawBegin(4,BandsPeriod); // Íà÷àëî îòðèñîâêè ñðåäíåé ëèíèè BB
SetIndexStyle(5,DRAW_LINE); // Ñòèëü ëèíèè
SetIndexBuffer(5,Dn_Buffer); // Ñâÿçü íîìåðà áóôåðà ñ íàçâ. ìàññèâà
SetIndexDrawBegin(5,BandsPeriod); // Íà÷àëî îòðèñîâêè íèæíåé ëèíèè BB
//================================================================================== 7 ==
return;
}
//ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ 8 ææ
int start()
{
//================================================================================== 9 ==
if(Bars<=RSIPeriod || Bars<=MA_period || Bars<=BandsPeriod) // Åñëè íåäîñòàòî÷íî áàðîâ
return; // Óõîäèì
int counted_bars=IndicatorCounted(); // Êîëè÷åñòâî íåèçìåí¸ííûõ áàðîâ
int i=Bars-counted_bars-1; // Èíäåêñ ïîñëåäíåãî íåïîñ÷èòàííîãî áàðà
//--------------------------------------------------------------------------------- 10 --
while(i>=0) // Öèêë äëÿ âû÷èñëåíèÿ áóôåðîâ
{
double sumn=0.0,sump=0.0; // Òåõíè÷åñêèå ïåðåìåííûå
double MA_n = iMA(NULL, 0, MA_period, 0, MODE_SMMA, PRICE_CLOSE, i);// Òåêóùèé áàð
double MA_n1= iMA(NULL, 0, MA_period, 0, MODE_SMMA, PRICE_CLOSE, i+1);// Ïðåäûäóùèé
double rel = MA_n - MA_n1; // Ðàçíèöà ÌÀ
if(rel>0) sump=rel; // Äâèæåíèå ââåðõ
else sumn=-rel; // Äâèæåíèå âíèç
double positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;// Ìåòîä ðàñ÷¸òà íà
double negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;// îñíîâå ñòàíä. RSI
PosBuffer[i]=positive; // Òåõíè÷. áóôåð íå âûâîäèòñÿ â âèäå ëèíè
NegBuffer[i]=negative; // Òåõíè÷. áóôåð íå âûâîäèòñÿ â âèäå ëèíè
if(negative==0.0) RSIBuffer[i]=0.0; // Àíàëèç äåëåíèÿ íà 0 ïðè âû÷èñë. RSI
else RSIBuffer[i]=100.0-100.0/(1+positive/negative);// Âû÷èñëåíèå RSI
//--------------------------------------------------------------------------------- 11 --
MovingBuffer[i]= 50; // Ïðèíÿòûé âàðèàíò - ñðåäíÿÿ ãîðèçîíàëüí
// MovingBuffer[i]= RSIBuffer[i]; // 2é âàðèàíò - ñðåäíÿÿ = RSI
double sum=0.0; // Òåõí. ïåðåìåííàÿ
int k = i+BandsPeriod-1; // Èíäåêñ ïîñëåäíåãî áàðà äëÿ ðàñ÷¸òà
while(k>=i) // Öèêë äëÿ âû÷èñë. ñóììû êâàäðàòîâ îòêë.
{
double newres = RSIBuffer[k] - MovingBuffer[i]; // Îòêëîíåíèå
sum += newres*newres; // Ñóììà êâàäðàòîâ îòêëîíåíèé
k--;
}
double deviation=K_Dev*MathSqrt(sum/BandsPeriod); // Ñðåäíåå îòêëîíåíèå
Up_Buffer[i]= MovingBuffer[i] + deviation;// Âåðõíÿÿ ëèíèÿ
Dn_Buffer[i]= MovingBuffer[i] - deviation;// Íèæíÿÿ ëèíèÿ
i--;
}
//================================================================================= 12 ==
return;
}
//ææææææææææææææææææææææææææææææææææææ Êîíåö ìîäóëÿ æææææææææææææææææææææææææææææææ 13 ææ
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
---