Jeeves: If that isn't possible, maybe the attached below would be. I believe they would then display the same result. Just in a different way.
I would have to place three instances of the MA cross indicator on the chart....but nothings perfect!
Jeeves
As far as I see this version is working OK. Am I right?
Allow the use of cookies to log in to the MQL5.com website.
Please enable the necessary setting in your browser, otherwise you will not be able to log in.
You are signed in. Two-factor authentication has been disabled. Set it up again and scan a new QR code, or continue with two-factor authentication disabled.
If all the rest (MetQuotesID and the rest) is set up OK, all that is needed is SendNotificaton() and it should work
Acts, but for each new candle .... signal "push smartfon" to be only signal indicator. Off code error - but where ?
Acts, but for each new candle .... signal "push smartfon" to be only signal indicator. Off code error - but where ?
Find an SendEmail() and place it right after that line
Find an SendEmail() and place it right after that line
Super, working ... thank you
Where improve code to change items arrow ?
{
//----------------------------------------------------------------------+
for (int i = ObjectsTotal()-1; i >= 0; i--)
if (StringSubstr(ObjectName(i), 0, StringLen(PREFIX)) == PREFIX)
ObjectDelete(ObjectName(i));
return(0);
//----------------------------------------------------------------------+
}
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,SmthBulls);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,SmthBears);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,SigBulls);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,SigBears);
SetIndexBuffer(4,Bulls);
SetIndexBuffer(5,Bears);
SetIndexBuffer(6,AvgBulls);
SetIndexBuffer(7,AvgBears);
string short_name="Bolero Ravel("+Mode+","+Length+","+Smooth+","+Signal+",,"+ModeMA+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"Bulls");
SetIndexLabel(1,"Bears");
SetIndexLabel(2,"SignalBulls");
SetIndexLabel(3,"SignalBears");
//------------------------------------------------------------------------------------------+
SetIndexDrawBegin(0,Length+Smooth+Signal);
SetIndexDrawBegin(1,Length+Smooth+Signal);
SetIndexDrawBegin(2,Length+Smooth+Signal);
SetIndexDrawBegin(3,Length+Smooth+Signal);
//------------------------------------------------------------------------------------------+
return(0);
}
int start()
{
int i, shift, limit, counted_bars=IndicatorCounted();
double Price1, Price2, smax, smin;
if ( counted_bars < 0 ) return(-1);
if ( counted_bars ==0 ) limit=Bars-Length+Smooth+Signal-1;
if ( counted_bars < 1 )
for(i=1;i<Length+Smooth+Signal;i++)
{
//-----------------------------------------------------------------------+
Bulls=0;
Bears=0;
AvgBulls=0;
AvgBears=0;
SmthBulls=0;
SmthBears=0;
SigBulls=0;
SigBears=0;
}
if(counted_bars>0) limit=Bars-counted_bars;
limit--;
for( shift=limit; shift>=0; shift--)
//-----------------------------------------------------------------------+
{
Price1 = iMA(NULL,0,1,0,0,Price,shift);
Price2 = iMA(NULL,0,1,0,0,Price,shift+1);
//-----------------------------------------------------------------------+
if (Mode==0)
{
Bulls[shift] = 0.5*(MathAbs(Price1-Price2)+(Price1-Price2));
Bears[shift] = 0.5*(MathAbs(Price1-Price2)-(Price1-Price2));
}
if (Mode==1)
{
smax=High;
smin=Low[Lowest(NULL,0,MODE_LOW,Length,shift)];
Bulls[shift] = Price1 - smin;
Bears[shift] = smax - Price1;
}
if (Mode==2)
{
Bulls[shift] = 0.5*(MathAbs(High[shift]-High[shift-2])+(High[shift]-High[shift-2]));
Bears[shift] = 0.5*(MathAbs(Low[shift-1]-Low[shift])+(Low[shift-1]-Low[shift]));
}
//------------------------------------------------------------------------+
}
for( shift=limit; shift>=0; shift--)
{
AvgBulls[shift]=iMAOnArray(Bulls,0,Length,0,ModeMA,shift);
AvgBears[shift]=iMAOnArray(Bears,0,Length,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
SmthBulls[shift]=iMAOnArray(AvgBulls,0,Smooth,0,ModeMA,shift);
SmthBears[shift]=iMAOnArray(AvgBears,0,Smooth,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
if (OverBought > 0 && OverSold > 0 )
{
SigBulls[shift]=OverBought/100*(SmthBulls[shift]+SmthBears[shift]);
SigBears[shift]=OverSold/100*(SmthBulls[shift]+SmthBears[shift]);
}
else
{
SigBulls[shift]=iMAOnArray(SmthBulls,0,Signal,0,ModeMA,shift);
SigBears[shift]=iMAOnArray(SmthBears,0,Signal,0,ModeMA,shift);
}
}
//----------------------------------------------------------------------------------------+
for (i = limit; i >= 0; i--)
{
if(SmthBullsSmthBears)
arrows_wind(i,"Up",Arr_otstup ,242,Red,Arr_width,false); //! ! ! !
else ObjectDelete(PREFIX+"Up"+TimeToStr(Time,TIME_DATE|TIME_SECONDS));
if(SmthBulls>SmthBears && SmthBulls<SmthBears)
arrows_wind(i,"Dn",Arr_otstup ,241,Aqua,Arr_width,true); //! ! ! !
else ObjectDelete(PREFIX + "Dn" +TimeToStr(Time,TIME_DATE|TIME_SECONDS));
//----------------------------------------------------------------------------------------+
Where improve code to change items arrow ?
{
//----------------------------------------------------------------------+
for (int i = ObjectsTotal()-1; i >= 0; i--)
if (StringSubstr(ObjectName(i), 0, StringLen(PREFIX)) == PREFIX)
ObjectDelete(ObjectName(i));
return(0);
//----------------------------------------------------------------------+
}
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,SmthBulls);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,SmthBears);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,SigBulls);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,SigBears);
SetIndexBuffer(4,Bulls);
SetIndexBuffer(5,Bears);
SetIndexBuffer(6,AvgBulls);
SetIndexBuffer(7,AvgBears);
string short_name="Bolero Ravel("+Mode+","+Length+","+Smooth+","+Signal+",,"+ModeMA+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"Bulls");
SetIndexLabel(1,"Bears");
SetIndexLabel(2,"SignalBulls");
SetIndexLabel(3,"SignalBears");
//------------------------------------------------------------------------------------------+
SetIndexDrawBegin(0,Length+Smooth+Signal);
SetIndexDrawBegin(1,Length+Smooth+Signal);
SetIndexDrawBegin(2,Length+Smooth+Signal);
SetIndexDrawBegin(3,Length+Smooth+Signal);
//------------------------------------------------------------------------------------------+
return(0);
}
int start()
{
int i, shift, limit, counted_bars=IndicatorCounted();
double Price1, Price2, smax, smin;
if ( counted_bars < 0 ) return(-1);
if ( counted_bars ==0 ) limit=Bars-Length+Smooth+Signal-1;
if ( counted_bars < 1 )
for(i=1;i<Length+Smooth+Signal;i++)
{
//-----------------------------------------------------------------------+
Bulls=0;
Bears=0;
AvgBulls=0;
AvgBears=0;
SmthBulls=0;
SmthBears=0;
SigBulls=0;
SigBears=0;
}
if(counted_bars>0) limit=Bars-counted_bars;
limit--;
for( shift=limit; shift>=0; shift--)
//-----------------------------------------------------------------------+
{
Price1 = iMA(NULL,0,1,0,0,Price,shift);
Price2 = iMA(NULL,0,1,0,0,Price,shift+1);
//-----------------------------------------------------------------------+
if (Mode==0)
{
Bulls[shift] = 0.5*(MathAbs(Price1-Price2)+(Price1-Price2));
Bears[shift] = 0.5*(MathAbs(Price1-Price2)-(Price1-Price2));
}
if (Mode==1)
{
smax=High;
smin=Low[Lowest(NULL,0,MODE_LOW,Length,shift)];
Bulls[shift] = Price1 - smin;
Bears[shift] = smax - Price1;
}
if (Mode==2)
{
Bulls[shift] = 0.5*(MathAbs(High[shift]-High[shift-2])+(High[shift]-High[shift-2]));
Bears[shift] = 0.5*(MathAbs(Low[shift-1]-Low[shift])+(Low[shift-1]-Low[shift]));
}
//------------------------------------------------------------------------+
}
for( shift=limit; shift>=0; shift--)
{
AvgBulls[shift]=iMAOnArray(Bulls,0,Length,0,ModeMA,shift);
AvgBears[shift]=iMAOnArray(Bears,0,Length,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
SmthBulls[shift]=iMAOnArray(AvgBulls,0,Smooth,0,ModeMA,shift);
SmthBears[shift]=iMAOnArray(AvgBears,0,Smooth,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
if (OverBought > 0 && OverSold > 0 )
{
SigBulls[shift]=OverBought/100*(SmthBulls[shift]+SmthBears[shift]);
SigBears[shift]=OverSold/100*(SmthBulls[shift]+SmthBears[shift]);
}
else
{
SigBulls[shift]=iMAOnArray(SmthBulls,0,Signal,0,ModeMA,shift);
SigBears[shift]=iMAOnArray(SmthBears,0,Signal,0,ModeMA,shift);
}
}
//----------------------------------------------------------------------------------------+
for (i = limit; i >= 0; i--)
{
if(SmthBullsSmthBears)
arrows_wind(i,"Up",Arr_otstup ,242,Red,Arr_width,false); //! ! ! !
else ObjectDelete(PREFIX+"Up"+TimeToStr(Time,TIME_DATE|TIME_SECONDS));
if(SmthBulls>SmthBears && SmthBulls<SmthBears)
arrows_wind(i,"Dn",Arr_otstup ,241,Aqua,Arr_width,true); //! ! ! !
else ObjectDelete(PREFIX + "Dn" +TimeToStr(Time,TIME_DATE|TIME_SECONDS));
//----------------------------------------------------------------------------------------+
Since you never post the whole code I will assume (and from the functions parameters it is obvious) that it is a code from forex tsd that is altered.
In that case the
arrows_wind(i,"Up",Arr_otstup,242,Red,Arr_width,false);
has to be replaced with
arrows_wind(i,"Up",Arr_otstup,242,Red,Arr_width,true);
and
arrows_wind(i,"Dn",Arr_otstup,241,Aqua,Arr_width,true);
with
arrows_wind(i,"Dn",Arr_otstup,241,Aqua,Arr_width,false);
Hi Guy.
I'm not sure if this is possible, but if anyone can do it, it will be you.
Could you code the attached indicator so that it displays as histograms along the bottom of the chart?
I'm a born & breed Histogram man!
Have a great week-end
Hi Guy.
I'm not sure if this is possible, but if anyone can do it, it will be you.
Could you code the attached indicator so that it displays as histograms along the bottom of the chart?
I'm a born & breed Histogram man!
Have a great week-endJeeves
I am not sure it can be done that way. Will check
Many thanks my friend, appreciate it.
If that isn't possible, maybe the attached below would be. I believe they would then display the same result. Just in a different way.
I would have to place three instances of the MA cross indicator on the chart....but nothings perfect!
If that isn't possible, maybe the attached below would be. I believe they would then display the same result. Just in a different way. I would have to place three instances of the MA cross indicator on the chart....but nothings perfect!
Jeeves
As far as I see this version is working OK. Am I right?