Please fix profitable sidus bago indicator

 

Hello everyone,

since awhile I have different versions from the sidus indicator on my chart. This indicator shows an arrow and gives sound alert and is based on ema crossing and RSI. The settings are: ema 18, ema 28, RSI 17

The problem now is that the signals are always coming to late or they never show up. Only after refreshing the chart (Ihave to close the chart on to open it again) the last signal is to see. But than it is too late to enter. This indicator gives great signals on the 1 hr chart with the above mentioned settings. On the 15 min chart I have settings: ema 100, ema 110, RSI 50.

Please can sombody have a look if this problem can be fixed? Maybe there is a simple way to refresh the chart every minute or every 5 minute automaticly to make sure the signals are coming on time. I hope a coder is able to fix the indicator. There are some so called fixed versions on the internet, but they all give the signal much later.

Thank you in advance.

Indicator attached

Files:
 
Please fix profitable sidus bago indicator
No slaves here, either learn to code or pay someone.
 
WHRoeder:
No slaves here, either learn to code or pay someone.


I have no prblem to pay!
 

hi there...

when you say the signals are late or not happening, are you talking about the alerts?

is the indicator calculating correctly, other than that?

are you seeing the comment "Comment("pipdiffCurrent = "+pipdiffCurrent+" ");" being printed out in the log?

sn

 
serpentsnoir:

hi there...

when you say the signals are late or not happening, are you talking about the alerts?

is the indicator calculating correctly, other than that?

are you seeing the comment "Comment("pipdiffCurrent = "+pipdiffCurrent+" ");" being printed out in the l

Hello,

here is the code:

//+------------------------------------------------------------------+
//| Sidus_Bago Entry Indicator.mq4 |
//| AHA |
//| Ideas by Sidus, Bagovino, OrangeRoshan, and many others |
//+------------------------------------------------------------------+
#property copyright "AHA"
#property link ""

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Red
#property indicator_color3 Yellow
#property indicator_color4 Red

#include <WinUser32.mqh>
//---- input parameters
extern int FastEMA=5;
extern int SlowEMA=12;
extern int RSIPeriod=21;
extern bool Alerts=true;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//double rsi_sig[];
//---- variables
int sigCurrent=0;
int sigPrevious=0;
double pipdiffCurrent=0;
double pipdiffPrevious=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,217);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,218);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
double rsi_sig=0;
bool entry=false;
double entry_point=0;

//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

//---- main loop
for(int i=0; i<limit; i++)
{
//---- ma_shift set to 0 because SetIndexShift called abowe
ExtMapBuffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i);
ExtMapBuffer2[i]=iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
rsi_sig = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i);

pipdiffCurrent=(ExtMapBuffer1[i]-ExtMapBuffer2[i]);

Comment("pipdiffCurrent = "+pipdiffCurrent+" ");
if (pipdiffCurrent>0 && rsi_sig>50)
{
sigCurrent = 1; //Up
}
else if (pipdiffCurrent<0 && rsi_sig<50)
{
sigCurrent = 2; //Down
}
/*
if (pipdiffCurrent>0)
{
sigCurrent = 1; //Up
}
else if (pipdiffCurrent<0)
{
sigCurrent = 2; //Down
}
*/

if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
else if (sigCurrent==2 && sigPrevious==1)
{
ExtMapBuffer3[i-1] = Low[i-1]-5*Point;
//ExtMapBuffer4[i] = Bid;
entry=true;
entry_point=Bid;
}


sigPrevious=sigCurrent;
pipdiffPrevious=pipdiffCurrent;
}

//----
if(Alerts && entry)
{
PlaySound("alert.wav");
if (sigPrevious==1)
{
MessageBox("Entry point: buy at "+entry_point+"!!", "Entry Point", MB_OK);
}
else if (sigPrevious==2)
{
MessageBox("Entry point: sell at "+entry_point+"!!", "Entry Point", MB_OK);
}

entry=false;
}

//----
return(0);
}
//+------------------------------------------------------------------+

 
 
HMTRADER:

Hello,

here is the code:

//+------------------------------------------------------------------+
//| Sidus_Bago Entry Indicator.mq4 |
//| AHA |
//| Ideas by Sidus, Bagovino, OrangeRoshan, and many others |
//+------------------------------------------------------------------+
#property copyright "AHA"
#property link ""

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 Red
#property indicator_color3 Yellow
#property indicator_color4 Red

#include <WinUser32.mqh>
//---- input parameters
extern int FastEMA=5;
extern int SlowEMA=12;
extern int RSIPeriod=21;
extern bool Alerts=true;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//double rsi_sig[];
//---- variables
int sigCurrent=0;
int sigPrevious=0;
double pipdiffCurrent=0;
double pipdiffPrevious=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
SetIndexStyle(2,DRAW_ARROW);
SetIndexArrow(2,217);
SetIndexBuffer(2,ExtMapBuffer3);
SetIndexEmptyValue(2,0.0);
SetIndexStyle(3,DRAW_ARROW);
SetIndexArrow(3,218);
SetIndexBuffer(3,ExtMapBuffer4);
SetIndexEmptyValue(3,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
double rsi_sig=0;
bool entry=false;
double entry_point=0;

//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;

//---- main loop
for(int i=0; i<limit; i++)
{
//---- ma_shift set to 0 because SetIndexShift called abowe
ExtMapBuffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i);
ExtMapBuffer2[i]=iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
rsi_sig = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, i);

pipdiffCurrent=(ExtMapBuffer1[i]-ExtMapBuffer2[i]);

Comment("pipdiffCurrent = "+pipdiffCurrent+" ");
if (pipdiffCurrent>0 && rsi_sig>50)
{
sigCurrent = 1; //Up
}
else if (pipdiffCurrent<0 && rsi_sig<50)
{
sigCurrent = 2; //Down
}
/*
if (pipdiffCurrent>0)
{
sigCurrent = 1; //Up
}
else if (pipdiffCurrent<0)
{
sigCurrent = 2; //Down
}
*/

if (sigCurrent==1 && sigPrevious==2)
{
ExtMapBuffer4[i-1] = High[i-1]-5*Point;
//ExtMapBuffer3[i] = Ask;
entry=true;
entry_point=Ask;
}
else if (sigCurrent==2 && sigPrevious==1)
{
ExtMapBuffer3[i-1] = Low[i-1]-5*Point;
//ExtMapBuffer4[i] = Bid;
entry=true;
entry_point=Bid;
}


sigPrevious=sigCurrent;
pipdiffPrevious=pipdiffCurrent;
}

//----
if(Alerts && entry)
{
PlaySound("alert.wav");
if (sigPrevious==1)
{
MessageBox("Entry point: buy at "+entry_point+"!!", "Entry Point", MB_OK);
}
else if (sigPrevious==2)
{
MessageBox("Entry point: sell at "+entry_point+"!!", "Entry Point", MB_OK);
}

entry=false;
}

//----
return(0);
}
//+------------------------------------------------------------------+


is this different code than you attached the first time?
 
WHRoeder:

 
serpentsnoir:

is this different code than you attached the first time?

same code
 

This indicator goes from the future to the past. The indicator checks the transition of long to short or vice versa. With this "in mind", the indicator waits for a Change of the RSI (transition <>50) in the past and sets the signal. Clearly, the indicator shows good signals :)

In fact, the indicator has repainting properties. Not suited for real trading. It might be a tool for ex-post analysis.

Reason: