Indicators Used
0
Views
0
Downloads
0
Favorites
DIGIRSI
//+------------------------------------------------------------------+
//| DIGIRSI.mq4 |
//| Copyright © 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
/*********************************************************************
* Author: Usen Iwinosa Osazeme
* Nick: FX Guru
*Cellfone No:07039377446
* Date: April 08, 2008
* Custom Indicator: Digirsi.mq4
* Version: 1.0.1
* Description: Multi TimeFrame Relative Strenght Index
*
* Version 1.0
* - Release Digirsi :)
**********************************************************************/
#property indicator_separate_window
extern int RSI_Period = 14;
extern color Buy_Color = Lime;
extern color Sell_Color = Red;
extern color Overbought_Color = Green;
extern color Oversold_Color = FireBrick;
extern bool Show_RSI_Value = true;
extern bool Show_Legend = true;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorShortName ("DIGIRSI");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll(0,OBJ_LABEL);
ObjectDelete("ObjLabelA1"); ObjectDelete("ObjLabelB1"); ObjectDelete("ObjLabelC1"); ObjectDelete("ObjLabelD1");
ObjectDelete("ObjLabelE1"); ObjectDelete("ObjLabelF1"); ObjectDelete("ObjLabelG1"); ObjectDelete("ObjLabelH1");
ObjectDelete("ObjLabelI1"); ObjectDelete("ObjLabelJ1"); ObjectDelete("ObjLabelK1"); ObjectDelete("ObjLabelL1");
ObjectDelete("ObjLabelIa1"); ObjectDelete("ObjLabelJa1"); ObjectDelete("ObjLabelKa1"); ObjectDelete("ObjLabelLa1");
ObjectDelete("ObjLabelM1"); ObjectDelete("ObjLabelN1"); ObjectDelete("ObjLabelO1"); ObjectDelete("ObjLabelP1");
ObjectDelete("ObjLabelMa1"); ObjectDelete("ObjLabelNa1"); ObjectDelete("ObjLabelOa1"); ObjectDelete("ObjLabelPa1");
ObjectDelete("SU1"); ObjectDelete("SV1"); ObjectDelete("SW1"); ObjectDelete("SX1"); ObjectDelete("SY1"); ObjectDelete("SZ1");
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//m1 data
double rsi_m1 = iRSI(NULL,PERIOD_M1,RSI_Period,PRICE_CLOSE,1);
//m5 data
double rsi_m5 = iRSI(NULL,PERIOD_M5,RSI_Period,PRICE_CLOSE,1);
//m15 data
double rsi_m15 = iRSI(NULL,PERIOD_M15,RSI_Period,PRICE_CLOSE,1);
//m30 data
double rsi_m30 = iRSI(NULL,PERIOD_M15,RSI_Period,PRICE_CLOSE,1);
//h1 data
double rsi_h1 = iRSI(NULL,PERIOD_H1,RSI_Period,PRICE_CLOSE,1);
//h4 data
double rsi_h4 = iRSI(NULL,PERIOD_H4,RSI_Period,PRICE_CLOSE,1);
//define color
color rsi_color_m1, rsi_color_m5, rsi_color_m15, rsi_color_m30, rsi_color_h1, rsi_color_h4;
//define string
string rsi_level_m1, rsi_level_m5, rsi_level_m15, rsi_level_m30, rsi_level_h1, rsi_level_h4,
rsi_arrow_m1, rsi_arrow_m5, rsi_arrow_m15, rsi_arrow_m30, rsi_arrow_h1, rsi_arrow_h4;
//---m1 data
//m1 buy
if ((rsi_m1 > 50) && (rsi_m1 <= 70)) {rsi_color_m1 = Buy_Color;}
//m1 sell
if ((rsi_m1 < 50) && (rsi_m1 >= 30)) {rsi_color_m1 = Sell_Color;}
//m1 overbought
if ((rsi_m1 > 70) && (rsi_m1 != 100)) {rsi_color_m1 = Overbought_Color;}
//m1 oversold
if ((rsi_m1 < 30) && (rsi_m1 != 0)) {rsi_color_m1 = Oversold_Color;}
//--m5 data
//m5 buy
if ((rsi_m5 > 50) && (rsi_m5 <= 70)) {rsi_color_m5 = Buy_Color;}
//m5 sell
if ((rsi_m5 < 50) && (rsi_m5 >= 30)) {rsi_color_m5 = Sell_Color;}
//m5 overbought
if ((rsi_m5 > 70) && (rsi_m5 != 100)) {rsi_color_m5 = Overbought_Color;}
//m5 oversold
if ((rsi_m5 < 30) && (rsi_m5 != 0 )) {rsi_color_m5 = Oversold_Color;}
//--m15 data
//m15 buy
if ((rsi_m15 > 50) && (rsi_m15 <= 70)) {rsi_color_m15 = Buy_Color;}
//m15 sell
if ((rsi_m15 < 50) && (rsi_m15 >= 30)) {rsi_color_m15 = Sell_Color;}
//m15 overbought
if ((rsi_m15 > 70) && (rsi_m15 != 100)) {rsi_color_m15 = Overbought_Color;}
//m15 oversold
if ((rsi_m15 < 30) && (rsi_m15 != 0)) {rsi_color_m15 = Oversold_Color;}
//--m30 data
//m30 buy
if ((rsi_m30 > 50) && (rsi_m30 <= 70)) {rsi_color_m30 = Buy_Color;}
//m30 sell
if ((rsi_m30 < 50) && (rsi_m30 >= 30)) {rsi_color_m30 = Sell_Color;}
//m30 overbought
if ((rsi_m30 > 70) && (rsi_m30 != 100)) {rsi_color_m30 = Overbought_Color;}
//m30 oversold
if ((rsi_m30 < 30) && (rsi_m30 != 0)) {rsi_color_m30 = Oversold_Color;}
//--h1 data
//h1 buy
if ((rsi_h1 > 50) && (rsi_h1 <= 70)) {rsi_color_h1 = Buy_Color;}
//h1 sell
if ((rsi_h1 < 50) && (rsi_h1 >= 30)) {rsi_color_h1 = Sell_Color;}
//h1 overbought
if ((rsi_h1 > 70) && (rsi_h1 != 100)) {rsi_color_h1 = Overbought_Color;}
//h1 oversold
if ((rsi_h1 < 30) && (rsi_h1 != 0)) {rsi_color_h1 = Oversold_Color;}
//--h4 data
//h4 buy
if ((rsi_h4 > 50) && (rsi_h4 <= 70)) {rsi_color_h4 = Buy_Color;}
//h4 sell
if ((rsi_h4 < 50) && (rsi_h4 >= 30)) {rsi_color_h4 = Sell_Color;}
//h4 overbought
if ((rsi_h1 > 70) && (rsi_h1 != 100)) {rsi_color_h4 = Overbought_Color;}
//h4 oversold
if ((rsi_h1 < 30) && (rsi_h1 != 0)) {rsi_color_h4 = Oversold_Color;}
//Signal Labels
ObjectCreate("ObjLabelA1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0); //LABEL
ObjectSetText("ObjLabelA1","SIGNAL",8, "Arial Bold", Silver);
ObjectSet("ObjLabelA1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelA1", OBJPROP_XDISTANCE, 105);
ObjectSet("ObjLabelA1", OBJPROP_YDISTANCE, 3);
ObjectCreate("SU1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);//M1 SIGNAL
ObjectSetText("SU1","M1",9, "Arial Bold", rsi_color_m1);
ObjectSet("SU1", OBJPROP_CORNER, 0);
ObjectSet("SU1", OBJPROP_XDISTANCE, 150);
ObjectSet("SU1", OBJPROP_YDISTANCE, 3);
ObjectCreate("SV1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);//M5 SIGNAL
ObjectSetText("SV1","M5",9, "Arial Bold", rsi_color_m5);
ObjectSet("SV1", OBJPROP_CORNER, 0);
ObjectSet("SV1", OBJPROP_XDISTANCE, 175);
ObjectSet("SV1", OBJPROP_YDISTANCE, 3);
ObjectCreate("SW1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);//M15 SIGNAL
ObjectSetText("SW1","M15",9, "Arial Bold", rsi_color_m15);
ObjectSet("SW1", OBJPROP_CORNER, 0);
ObjectSet("SW1", OBJPROP_XDISTANCE, 200);
ObjectSet("SW1", OBJPROP_YDISTANCE, 3);
ObjectCreate("SX1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);//M30 SIGNAL
ObjectSetText("SX1","M30",9, "Arial Bold", rsi_color_m30);
ObjectSet("SX1", OBJPROP_CORNER, 0);
ObjectSet("SX1", OBJPROP_XDISTANCE, 230);
ObjectSet("SX1", OBJPROP_YDISTANCE, 3);
ObjectCreate("SY1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);//H1 SIGNAL
ObjectSetText("SY1","H1",9, "Arial Bold", rsi_color_h1);
ObjectSet("SY1", OBJPROP_CORNER, 0);
ObjectSet("SY1", OBJPROP_XDISTANCE, 260);
ObjectSet("SY1", OBJPROP_YDISTANCE, 3);
ObjectCreate("SZ1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);//H4 SIGNAL
ObjectSetText("SZ1","H4",9, "Arial Bold", rsi_color_h4);
ObjectSet("SZ1", OBJPROP_CORNER, 0);
ObjectSet("SZ1", OBJPROP_XDISTANCE, 280);
ObjectSet("SZ1", OBJPROP_YDISTANCE, 3);
//Show Digital ADX Value
if (Show_RSI_Value == true)
{
//RSI value
string rsi_m1_val = rsi_m1;
string rsi_m5_val = rsi_m5;
string rsi_m15_val =rsi_m15;
string rsi_m30_val =rsi_m30;
string rsi_h1_val = rsi_h1;
string rsi_h4_val = rsi_h4;
if (rsi_m1 > 50 && rsi_m1 <= 70) { rsi_arrow_m1 = "Ù"; }
if (rsi_m1 < 50 && rsi_m1 >= 30) { rsi_arrow_m1 = "Ú"; }
if (rsi_m1 > 70 && rsi_m1 != 100){ rsi_arrow_m1 = "Ù"; }
if (rsi_m1 < 30 && rsi_m1 != 0) { rsi_arrow_m1 = "Ú"; }
if (rsi_m5 > 50 && rsi_m5 <= 70) { rsi_arrow_m5 = "Ù"; }
if (rsi_m5 < 50 && rsi_m5 >= 30) { rsi_arrow_m5 = "Ú"; }
if (rsi_m5 > 70 && rsi_m5 != 100){ rsi_arrow_m5 = "Ù"; }
if (rsi_m5 < 30 && rsi_m5 != 0) { rsi_arrow_m5 = "Ú"; }
if (rsi_m15 > 50 && rsi_m15 <= 70) { rsi_arrow_m15 = "Ù"; }
if (rsi_m15 < 50 && rsi_m15 >= 30) { rsi_arrow_m15 = "Ú"; }
if (rsi_m15 > 70 && rsi_m15 != 100){ rsi_arrow_m15 = "Ù"; }
if (rsi_m15 < 30 && rsi_m15 != 0) { rsi_arrow_m15 = "Ú"; }
if (rsi_m30 > 50 && rsi_m30 <= 70) { rsi_arrow_m30 = "Ù"; }
if (rsi_m30 < 50 && rsi_m30 >= 30) { rsi_arrow_m30 = "Ú"; }
if (rsi_m30 > 70 && rsi_m30!= 100) { rsi_arrow_m30 = "Ù"; }
if (rsi_m30 < 30 && rsi_m30 != 0) { rsi_arrow_m30 = "Ú"; }
if (rsi_h1 > 50 && rsi_h1 <= 70) { rsi_arrow_h1 = "Ù"; }
if (rsi_h1 < 50 && rsi_h1 >= 30) { rsi_arrow_h1 = "Ú"; }
if (rsi_h1 > 70 && rsi_h1 != 100){ rsi_arrow_h1 = "Ù"; }
if (rsi_m1 < 30 && rsi_h1 != 0) { rsi_arrow_h1 = "Ú"; }
if (rsi_h4 > 50 && rsi_h4 <= 70) { rsi_arrow_h4 = "Ù"; }
if (rsi_h4 < 50 && rsi_h4 >= 30) { rsi_arrow_h4 = "Ú"; }
if (rsi_h4 > 70 && rsi_h4 != 100){ rsi_arrow_h4 = "Ù"; }
if (rsi_h4 < 30 && rsi_h4 != 0) { rsi_arrow_h4 = "Ú"; }
//RSI value
ObjectCreate("ObjLabelO1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelO1","RSI",8, "Arial Bold", Silver);
ObjectSet("ObjLabelO1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelO1", OBJPROP_XDISTANCE, 310);
ObjectSet("ObjLabelO1", OBJPROP_YDISTANCE, 3);
//RSI m1 value
ObjectCreate("ObjLabelI1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelI1","M1 : "+StringSubstr(rsi_m1_val,0,5)+" ",8, "Arial Bold", rsi_color_m1);
ObjectSet("ObjLabelI1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelI1", OBJPROP_XDISTANCE, 380);
ObjectSet("ObjLabelI1", OBJPROP_YDISTANCE, 2);
//arrow m1
ObjectCreate("ObjLabelIa1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelIa1",rsi_arrow_m1,8, "Wingdings", rsi_color_m1);
ObjectSet("ObjLabelIa1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelIa1", OBJPROP_XDISTANCE, 435);
ObjectSet("ObjLabelIa1", OBJPROP_YDISTANCE, 3);
//RSI m30 value
ObjectCreate("ObjLabelJ1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelJ1","M30: "+StringSubstr(rsi_m30_val,0,5),8, "Arial Bold", rsi_color_m30);
ObjectSet("ObjLabelJ1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelJ1", OBJPROP_XDISTANCE, 380);
ObjectSet("ObjLabelJ1", OBJPROP_YDISTANCE, 12);
//arrow m30
ObjectCreate("ObjLabelJa1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelJa1",rsi_arrow_m30,8, "Wingdings", rsi_color_m30);
ObjectSet("ObjLabelJa1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelJa1", OBJPROP_XDISTANCE, 435);
ObjectSet("ObjLabelJa1", OBJPROP_YDISTANCE, 13);
//RSI m5 value
ObjectCreate("ObjLabelK1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelK1","M5: "+StringSubstr(rsi_m5_val,0,5),8, "Arial Bold", rsi_color_m5);
ObjectSet("ObjLabelK1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelK1", OBJPROP_XDISTANCE, 460);
ObjectSet("ObjLabelK1", OBJPROP_YDISTANCE, 2);
//arrow m5
ObjectCreate("ObjLabelKa1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelKa1",rsi_arrow_m5,8, "Wingdings", rsi_color_m5);
ObjectSet("ObjLabelKa1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelKa1", OBJPROP_XDISTANCE, 510);
ObjectSet("ObjLabelKa1", OBJPROP_YDISTANCE, 3);
//RSI h1 value
ObjectCreate("ObjLabelL1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelL1","H1 : "+StringSubstr(rsi_h1_val,0,5),8, "Arial Bold", rsi_color_h1);
ObjectSet("ObjLabelL1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelL1", OBJPROP_XDISTANCE, 460);
ObjectSet("ObjLabelL1", OBJPROP_YDISTANCE, 12);
//arrow h1
ObjectCreate("ObjLabelLa1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelLa1",rsi_arrow_h1,8, "Wingdings", rsi_color_h1);
ObjectSet("ObjLabelLa1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelLa1", OBJPROP_XDISTANCE, 510);
ObjectSet("ObjLabelLa1", OBJPROP_YDISTANCE, 13);
//RSI m15 value
ObjectCreate("ObjLabelM1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelM1","M15: "+StringSubstr(rsi_m15_val,0,5),8, "Arial Bold", rsi_color_m15);
ObjectSet("ObjLabelM1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelM1", OBJPROP_XDISTANCE, 535);
ObjectSet("ObjLabelM1", OBJPROP_YDISTANCE, 2);
//arrow m15
ObjectCreate("ObjLabelMa1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelMa1",rsi_arrow_m15,8, "Wingdings", rsi_color_m15);
ObjectSet("ObjLabelMa1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelMa1", OBJPROP_XDISTANCE, 590);
ObjectSet("ObjLabelMa1", OBJPROP_YDISTANCE, 3);
//RSI h4 value
ObjectCreate("ObjLabelN1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelN1","H4 : "+StringSubstr(rsi_h4_val,0,5),8, "Arial Bold", rsi_color_h4);
ObjectSet("ObjLabelN1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelN1", OBJPROP_XDISTANCE, 535);
ObjectSet("ObjLabelN1", OBJPROP_YDISTANCE, 12);
//arrow h4
ObjectCreate("ObjLabelNa1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelNa1",rsi_arrow_h4,8, "Wingdings", rsi_color_h4);
ObjectSet("ObjLabelNa1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelNa1", OBJPROP_XDISTANCE, 590);
ObjectSet("ObjLabelNa1", OBJPROP_YDISTANCE, 13);
}
//Show Legend
if (Show_Legend == true)
{
ObjectCreate("ObjLabelB1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelB1","LEGEND",8, "Arial Bold", Silver);
ObjectSet("ObjLabelB1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelB1", OBJPROP_XDISTANCE, 615);
ObjectSet("ObjLabelB1", OBJPROP_YDISTANCE, 3);
ObjectCreate("ObjLabelC1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelC1","* UPTREND",8, "Arial Bold",Buy_Color );
ObjectSet("ObjLabelC1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelC1", OBJPROP_XDISTANCE, 665);
ObjectSet("ObjLabelC1", OBJPROP_YDISTANCE, 2);
ObjectCreate("ObjLabelD1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelD1","* DNTREND",8, "Arial Bold",Sell_Color);
ObjectSet("ObjLabelD1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelD1", OBJPROP_XDISTANCE, 665);
ObjectSet("ObjLabelD1", OBJPROP_YDISTANCE, 14);
ObjectCreate("ObjLabelE1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelE1","* OVERBOUGHT",8, "Arial Bold",Overbought_Color );
ObjectSet("ObjLabelE1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelE1", OBJPROP_XDISTANCE, 825);
ObjectSet("ObjLabelE1", OBJPROP_YDISTANCE, 2);
ObjectCreate("ObjLabelF1", OBJ_LABEL, WindowFind("DIGIRSI"), 0, 0);
ObjectSetText("ObjLabelF1","* OVERSOLD",8, "Arial Bold", Oversold_Color);
ObjectSet("ObjLabelF1", OBJPROP_CORNER, 0);
ObjectSet("ObjLabelF1", OBJPROP_XDISTANCE, 825);
ObjectSet("ObjLabelF1", OBJPROP_YDISTANCE, 12);
}
int counted_bars=IndicatorCounted();
//----
//----
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
---