Aide au codage - page 515

 
mladen:
Si tout le reste (MetQuotesID et le reste) est configuré correctement, il suffit de SendNotificaton() et cela devrait fonctionner.

Actes, mais pour chaque nouvelle bougie .... signal "push smartfon" pour être seulement indicateur de signal. Erreur de code - mais où ?

 
popej30:
Actes, mais pour chaque nouvelle bougie .... signal "push smartfon" pour être le seul indicateur de signal. Erreur de code - mais où ?

Trouver un SendEmail() et le placer juste après cette ligne.

 
mladen:
Trouvez un SendEmail() et placez-le juste après cette ligne

Super, ça marche ... merci

 

Où améliorer le code pour changer la flèche des éléments ?

int deinit()

{

//----------------------------------------------------------------------+

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));

//----------------------------------------------------------------------------------------+

Dossiers :
vvv.jpg  95 kb
 
popej30:
Où améliorer le code pour changer la flèche des éléments ?
int deinit()

{

//----------------------------------------------------------------------+

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));

//----------------------------------------------------------------------------------------+

Puisque vous ne postez jamais le code complet, je vais supposer (et d'après les paramètres des fonctions, c'est évident) que c'est un code de forex tsd qui est modifié.

Dans ce cas, la fonction

arrows_wind(i,"Up",Arr_otstup,242,Red,Arr_width,false) ;

doit être remplacé par

arrows_wind(i,"Up",Arr_otstup,242,Red,Arr_width,true) ;

et

arrows_wind(i,"Dn",Arr_otstup,241,Aqua,Arr_width,true) ;

avec

arrows_wind(i,"Dn",Arr_otstup,241,Aqua,Arr_width,false) ;

 

Salut Guy.

Je ne suis pas sûr que ce soit possible, mais si quelqu'un peut le faire, c'est bien toi.

Pourriez-vous coder l'indicateur ci-joint pour qu'il s'affiche sous forme d'histogrammes en bas du graphique ?

Je suis un homme d'histogrammes né et élevé !

Passez un bon week-end

Dossiers :
 
Jeeves:
Salut Guy.

Je ne suis pas sûr que ce soit possible, mais si quelqu'un peut le faire, ce sera vous.

Pourriez-vous coder l'indicateur ci-joint pour qu'il s'affiche sous forme d'histogrammes en bas du graphique ?

Je suis un homme d'histogrammes né et élevé !

Passe un bon week-end

Jeeves

Je ne suis pas sûr que cela puisse être fait de cette façon. Je vais vérifier

 

Merci beaucoup mon ami, j'apprécie.

 

Si cela n'est pas possible, peut-être que les pièces jointes ci-dessous le seraient. Je pense qu'ils afficheraient alors le même résultat. Mais d'une manière différente.

Je devrais placer trois instances de l'indicateur MA cross sur le graphique.... mais rien n'est parfait !

Dossiers :
 
Jeeves:
Si ce n'est pas possible, peut-être que les pièces jointes ci-dessous le seraient. Je pense qu'ils afficheraient alors le même résultat. Je devrais placer trois instances de l'indicateur MA cross sur le graphique.... mais rien n'est parfait !

Jeeves

D'après ce que je vois, cette version fonctionne bien. Est-ce que j'ai raison ?