Indicators Used
1
Views
0
Downloads
0
Favorites
!_v0.10
//+------------------------------------------------------------------+
//| Fabularasa.mq4 |
//| Fabularasa |
//| |
//| |
//| 19.jul.2009 - add some extern variabile |
//| (Rafaell - okfar) - fixed calculation |
//| - fixed object .... |
//+------------------------------------------------------------------+
#property copyright "Fabularasa"
#property copyright "X"
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_level1 30
#property indicator_level2 70
#property indicator_maximum 100
#property indicator_minimum 0
#property indicator_levelcolor DarkSlateGray
#property indicator_color1 Blue
#property indicator_color2 Gold
extern int RSIPeriod = 14;
extern int MARSIPeriod =8;
extern int ModeMA = MODE_EMA;
extern int fontsize = 10;
extern int Side = 1;
extern int Y = 5;
extern int X = 5;
extern color BarLabel_color = DarkGreen;
extern int barsPerTimeFrame =1000;
double rsi[], ema[],rsiTF1[],
emaTF1,
rsiTF5[],
emaTF5,
rsiTF15[],
emaTF15,
rsiTF30[],
emaTF30,
rsiTF1H[],
emaTF1H,
rsiTF4H[],
emaTF4H;
string ind;
int init()
{
if ( barsPerTimeFrame > 3000 ) barsPerTimeFrame = 3000;
IndicatorBuffers(8);
SetIndexStyle (0, DRAW_LINE,Blue);
SetIndexStyle (1, DRAW_LINE,Green);
SetIndexBuffer(0, rsi);
SetIndexBuffer(1, ema);
SetIndexBuffer(2,rsiTF1);
SetIndexBuffer(3,rsiTF5);
SetIndexBuffer(4,rsiTF15);
SetIndexBuffer(5,rsiTF30);
SetIndexBuffer(6,rsiTF1H);
SetIndexBuffer(7,rsiTF4H);
ind = StringConcatenate("!(",RSIPeriod,",",MARSIPeriod,")");
IndicatorShortName(ind);
return(0);
}
int deinit()
{
ObjectDelete("NumberRsi");
ObjectDelete("RSI1");
ObjectDelete("RSI5");
ObjectDelete("RSI15");
ObjectDelete("RSI30");
ObjectDelete("RSI1H");
ObjectDelete("RSI4H");
return(0);
}
int start()
{
int limit = Bars;
ArraySetAsSeries(rsi, true);
ArraySetAsSeries(rsiTF1, true);
ArraySetAsSeries(rsiTF5, true);
ArraySetAsSeries(rsiTF15, true);
ArraySetAsSeries(rsiTF30, true);
ArraySetAsSeries(rsiTF1H, true);
ArraySetAsSeries(rsiTF4H, true);
for(int b=0; b<limit-RSIPeriod; b++)
rsi[b] = iRSI(Symbol(),0,RSIPeriod,PRICE_CLOSE,b);
for(int c=0; c<limit-MARSIPeriod-RSIPeriod; c++)
ema[c] = iMAOnArray(rsi,0,MARSIPeriod,0,ModeMA,c);
for(int a1=0; a1<barsPerTimeFrame; a1++)
{
rsiTF1[a1] = iRSI(Symbol(),1,RSIPeriod,PRICE_CLOSE,a1);
rsiTF5[a1] = iRSI(Symbol(),5,RSIPeriod,PRICE_CLOSE,a1);
rsiTF15[a1] = iRSI(Symbol(),15,RSIPeriod,PRICE_CLOSE,a1);
rsiTF30[a1] = iRSI(Symbol(),30,RSIPeriod,PRICE_CLOSE,a1);
rsiTF1H[a1] = iRSI(Symbol(),60,RSIPeriod,PRICE_CLOSE,a1);
rsiTF4H[a1] = iRSI(Symbol(),240,RSIPeriod,PRICE_CLOSE,a1);
//rsi[a1] = iRSI(Symbol(),0,14,PRICE_CLOSE,a1);
}
emaTF1 = iMAOnArray(rsiTF1,0,MARSIPeriod,0,ModeMA,0);
emaTF5 = iMAOnArray(rsiTF5,0,MARSIPeriod,0,ModeMA,0);
emaTF15= iMAOnArray(rsiTF15,0,MARSIPeriod,0,ModeMA,0);
emaTF30= iMAOnArray(rsiTF30,0,MARSIPeriod,0,ModeMA,0);
emaTF1H= iMAOnArray(rsiTF1H,0,MARSIPeriod,0,ModeMA,0);
emaTF4H= iMAOnArray(rsiTF4H,0,MARSIPeriod,0,ModeMA,0);
/*
string EMA1 = emaTF1;
string EMA5 = emaTF5;
string EMA15 = emaTF15;
string EMA30 = emaTF30;
string EMA1H = emaTF1H;
string EMA4H = emaTF4H;
*/
string EMA1 = DoubleToStr(emaTF1,2);
string EMA5 = DoubleToStr(emaTF5,2);
string EMA15 = DoubleToStr(emaTF15,2);
string EMA30 = DoubleToStr(emaTF30,2);
string EMA1H = DoubleToStr(emaTF1H,2);
string EMA4H = DoubleToStr(emaTF4H,2);
/*
if(ObjectFind("RSI1")) {
ObjectDelete("RSI1");
ObjectDelete("RSI5");
ObjectDelete("RSI15");
ObjectDelete("RSI30");
ObjectDelete("RSI1H");
ObjectDelete("RSI4H");
ObjectDelete("RSI11");
ObjectDelete("RSI51");
ObjectDelete("RSI151");
ObjectDelete("RSI301");
ObjectDelete("RSI1H1");
ObjectDelete("RSI4H1");
}
*/
if (Side == 1 || Side == 3)
Write("NumberRsi", Side, X+(12*fontsize/8), Y, "H4 H1 M30 M15 M5 M1", (fontsize+2), "Tahoma", BarLabel_color);
else
Write("NumberRsi", Side, X+(12*fontsize/8), Y, "M1 M5 M15 M30 H1 H4", fontsize+2, "Tahoma", BarLabel_color);
//Write("NumberRsi", Side, X+12, Y, "M1 M5 M15 M30 H1 H4", 6, "Tahoma Narrow", BarLabel_color);
Write("RSI1", Side, X+(5*fontsize/6) , Y+(10*fontsize/6), EMA1, fontsize, "Tahoma", White);
Write("RSI5", Side, X+(29*fontsize/6), Y+(10*fontsize/6), EMA5, fontsize, "Tahoma", White);
Write("RSI15", Side, X+(51*fontsize/6), Y+(10*fontsize/6), EMA15, fontsize, "Tahoma", White);
Write("RSI30", Side, X+(74*fontsize/6), Y+(10*fontsize/6), EMA30, fontsize, "Tahoma", White);
Write("RSI1H", Side, X+(97*fontsize/6), Y+(10*fontsize/6), EMA1H, fontsize, "Tahoma", White);
Write("RSI4H", Side, X+(120*fontsize/6), Y+(10*fontsize/6), EMA4H, fontsize, "Tahoma", White);
return(0);
}
//+------------------------------------------------------------------+
void Write(string LBL, double Side, int X, int Y, string text, int fontsize, string fontname, color Tcolor)
{
ObjectCreate(LBL, OBJ_LABEL, WindowFind(ind), 0 , 0);
ObjectSetText(LBL,text, fontsize, fontname, Tcolor);
ObjectSet(LBL, OBJPROP_CORNER, Side);
ObjectSet(LBL, OBJPROP_XDISTANCE, X);
ObjectSet(LBL, OBJPROP_YDISTANCE, Y);
}
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
---