//+------------------------------------------------------------------+ //| #JGsignal.mq4 | //| Copyright © 2009, masemus | //| masemus@yahoo.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, masemus" #property link "masemus@yahoo.com" #property indicator_chart_window //-------------------------------------------------------------------- extern string Stoch_RSI_ADX = "JGsignal © masemus"; extern string isi_TF = "1,5,15,30,60,240,1440,10080,43200"; extern string isi_top = "0,17,34,51,68,85,102,119,136"; //-------------------------------------------------------------------- extern color BGcTF_clr = Gainsboro; extern color BG_clr = WhiteSmoke; extern color TF_clr = Blue; extern int TF = 0; extern int top = 0; extern int left = 0; extern int window = 0; extern int corner = 1; int Stoch_OB = 80; int Stoch_Mid = 50; int Stoch_OS = 20; //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { //+------------------------------------------------------------------+ string MTF=""; double cTF=Period(); if (cTF==PERIOD_M1) { MTF="M1"; } if (cTF==PERIOD_M5) { MTF="M5"; } if (cTF==PERIOD_M15) { MTF="M15"; } if (cTF==PERIOD_M30) { MTF="M30"; } if (cTF==PERIOD_H1) { MTF="H1"; } if (cTF==PERIOD_H4) { MTF="H4"; } if (cTF==PERIOD_D1) { MTF="D1"; } if (cTF==PERIOD_W1) { MTF="W1"; } if (cTF==PERIOD_MN1) { MTF="MN1"; } else if (TF == 1) { MTF="M1"; } else if (TF == 5) { MTF="M5"; } else if (TF == 15) { MTF="M15"; } else if (TF == 30) { MTF="M30"; } else if (TF == 60) { MTF="H1"; } else if (TF == 240) { MTF="H4"; } else if (TF == 1440) { MTF="D1"; } else if (TF == 10080) { MTF="W1"; } else if (TF == 43200) { MTF="MN1"; } //+------------------------------------------------------------------+ int counted_bars=IndicatorCounted(); //---- //****************************************************************************************************************** //---- Current Signal double c_S1=iStochastic(NULL,TF,14,3,3,MODE_SMA,0,MODE_MAIN,0); double p_S1=iStochastic(NULL,TF,14,3,3,MODE_SMA,0,MODE_MAIN,1); double c_R1=iRSI(Symbol(),TF,14,PRICE_MEDIAN,0)-iRSI(Symbol(),TF,70,PRICE_MEDIAN,0); double p_R1=iRSI(Symbol(),TF,14,PRICE_MEDIAN,1)-iRSI(Symbol(),TF,70,PRICE_MEDIAN,1); double cadx=iADX(NULL,TF,14,PRICE_MEDIAN,MODE_PLUSDI,0)-iADX(NULL,TF,14,PRICE_MEDIAN,MODE_MINUSDI,0); double padx=iADX(NULL,TF,14,PRICE_MEDIAN,MODE_PLUSDI,1)-iADX(NULL,TF,14,PRICE_MEDIAN,MODE_MINUSDI,1); //***************************************************************************************************** string T_S1 = "", S_S1 = "", T_R1 = "", S_R1 = "", T_adx = "", S_adx = ""; color T_S1_clr, S_S1_clr, T_R1_clr, S_R1_clr, T_adx_clr, S_adx_clr; if ((c_S1 < Stoch_OS) && (c_S1 >= 0)) { T_S1 = "n"; T_S1_clr = DarkOrange; } if ((c_S1 < Stoch_Mid) && (c_S1 >= Stoch_OS)) { T_S1 = "n"; T_S1_clr = Gold; } if ((c_S1 > Stoch_Mid) && (c_S1 <= Stoch_OB)) { T_S1 = "n"; T_S1_clr = LimeGreen; } if ((c_S1 > Stoch_OB) && (c_S1 <= 100)) { T_S1 = "n"; T_S1_clr = SeaGreen; } if (c_S1 == Stoch_Mid) { T_S1 = "n"; T_S1_clr = Gray; } if (c_S1 > p_S1) { S_S1 = "5"; S_S1_clr = Lime; } if (c_S1 < p_S1) { S_S1 = "6"; S_S1_clr = Yellow; } if (c_S1 == p_S1) { S_S1 = "="; S_S1_clr = Gray; } if ((c_R1 < 0) && (c_R1 < -5)) { T_R1 = "n"; T_R1_clr = DarkOrange; } if ((c_R1 < 0) && (c_R1 >= -5)) { T_R1 = "n"; T_R1_clr = Gold; } if ((c_R1 > 0) && (c_R1 <= 5)) { T_R1 = "n"; T_R1_clr = LimeGreen; } if ((c_R1 > 0) && (c_R1 > 5)) { T_R1 = "n"; T_R1_clr = SeaGreen; } if (c_R1 == 0) { T_R1 = "n"; T_R1_clr = Gray; } if (c_R1 > p_R1) { S_R1 = "5"; S_R1_clr = Lime; } if (c_R1 < p_R1) { S_R1 = "6"; S_R1_clr = Yellow; } if (c_R1 == p_R1) { S_R1 = "="; S_R1_clr = Gray; } if ((cadx < 0) && (cadx < -5)) { T_adx = "n"; T_adx_clr = DarkOrange; } if ((cadx < 0) && (cadx >= -5)) { T_adx = "n"; T_adx_clr = Gold; } if ((cadx > 0) && (cadx <= 5)) { T_adx = "n"; T_adx_clr = LimeGreen; } if ((cadx > 0) && (cadx > 5)) { T_adx = "n"; T_adx_clr = SeaGreen; } if (cadx == 0) { T_adx = "n"; T_adx_clr = Gray; } if (cadx > padx) { S_adx = "5"; S_adx_clr = Lime; } if (cadx < padx) { S_adx = "6"; S_adx_clr = Yellow; } if (cadx == padx) { S_adx = "="; S_adx_clr = Gray; } color BGclr; if (TF == cTF) { BGclr = BGcTF_clr; } else if (TF == 0) { BGclr = BGcTF_clr; } else { BGclr = BG_clr; } //***************************************************************************************************** ObjectSetText("BGs01"+TF, "g", 15, "Webdings", BGclr); ObjectSetText("BGs02"+TF, "g", 15, "Webdings", BGclr); ObjectSetText("BGs03"+TF, "g", 15, "Webdings", BGclr); ObjectSetText("BGs04"+TF, "g", 15, "Webdings", BGclr); ObjectSetText("BGs05"+TF, "g", 15, "Webdings", BGclr); ObjectSetText("JGs1t"+TF, S_adx, 12, "Webdings", S_adx_clr); ObjectSetText("JGs1s"+TF, T_adx, 11, "Webdings", T_adx_clr); ObjectSetText("JGs2t"+TF, S_R1, 12, "Webdings", S_R1_clr); ObjectSetText("JGs2s"+TF, T_R1, 11, "Webdings", T_R1_clr); ObjectSetText("JGs3t"+TF, S_S1, 12, "Webdings", S_S1_clr); ObjectSetText("JGs3s"+TF, T_S1, 11, "Webdings", T_S1_clr); ObjectSetText("JGsTF"+TF, MTF, 8, "Trebucet", TF_clr); //***************************************************************************************************** //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int ObjectMakeLabel( string n, int xoff, int yoff ) { ObjectCreate( n, OBJ_LABEL, window, 0, 0 ); ObjectSet( n, OBJPROP_CORNER, corner ); ObjectSet( n, OBJPROP_XDISTANCE, xoff ); ObjectSet( n, OBJPROP_YDISTANCE, yoff ); ObjectSet( n, OBJPROP_BACK, false ); } //---- int init() { //---- indicators ObjectMakeLabel( "BGs01"+TF, left+2, top+3 ); ObjectMakeLabel( "BGs02"+TF, left+17, top+3 ); ObjectMakeLabel( "BGs03"+TF, left+32, top+3 ); ObjectMakeLabel( "BGs04"+TF, left+47, top+3 ); ObjectMakeLabel( "BGs05"+TF, left+61, top+3 ); ObjectMakeLabel( "JGs1t"+TF, left+4, top+5 ); ObjectMakeLabel( "JGs1s"+TF, left+5, top+5 ); ObjectMakeLabel( "JGs2t"+TF, left+21, top+5 ); ObjectMakeLabel( "JGs2s"+TF, left+22, top+5 ); ObjectMakeLabel( "JGs3t"+TF, left+38, top+5 ); ObjectMakeLabel( "JGs3s"+TF, left+39, top+5 ); ObjectMakeLabel( "JGsTF"+TF, left+56, top+9 ); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete("JGs1t"+TF); ObjectDelete("JGs1s"+TF); ObjectDelete("JGs2t"+TF); ObjectDelete("JGs2s"+TF); ObjectDelete("JGs3t"+TF); ObjectDelete("JGs3s"+TF); ObjectDelete("JGsTF"+TF); ObjectDelete("BGs01"+TF); ObjectDelete("BGs04"+TF); ObjectDelete("BGs02"+TF); ObjectDelete("BGs05"+TF); ObjectDelete("BGs03"+TF); //---- return(0); } //+------------------------------------------------------------------+