Aide au codage - page 331

 

Aide au codage

Bonjour à tous

Bonjour mladen

J'essaie de trouver ce code pour MT4 et je ne le trouve pas.

L'indicateur s'appelle Magarto.

J'ai le code pour une autre plateforme

  1. study("magarto indicator",overlay=false)
  2. ma=sma(close,30)

    maslope=ma-ma[2]

    maslopeB=iff(maslope0,1,0))

    candleOver=iff(ohlc4>ma,1,-1)

    xMA = ema(close,13)

    DayLow = iff(dayofmonth != dayofmonth[1], low, min(low, nz(DayLow[1])))

    bearpower = DayLow - xMA

    DayHigh = iff(dayofmonth != dayofmonth[1], high, max(high, nz(DayHigh[1])))

    bullpower = DayHigh - xMA

    bothElder=iff((bearpower>0 and bullpower>0),1,iff((bearpower<0 and bullpower<0),-1,0))

    all4=maslopeB+candleOver+bothElder

    plot(all4)

    hline(3)

    hline(-3)

    sell = all4 == -3 ? all4 : na

    buy = all4 == 3 ? all4 : na

    plot(sell, style=circles, linewidth=4, color=red)

    plot(buy, style=circles, linewidth=4, color=green)

Je pourrais vous aider à le trouver.

Je vois cet autre indicateur, il a quelque chose à voir avec le code Magarto.

https://www.mql5.com/en/forum/173112/page2

Merci beaucoup d'avance.

Une salutation.

Dossiers :
magarto.png  70 kb
 

Désolé de vous déranger à nouveau...

Hier, j'ai modifié plusieurs de mes indicateurs afin de limiter le calcul des barres pour économiser un peu de cpu puisque je fais tourner plusieurs mt4 en même temps.

Le code que j'ai utilisé à cet effet est le suivant :

int start()

{

int i,limit,counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

limit=Nbars-counted_bars;

mais je constate que maintenant, avec les marchés ouverts, tous les indicateurs modifiés ne se mettent pas à jour lorsque de nouvelles barres sont tracées à l'écran.

Est-il possible pour vous, codeurs expérimentés, de trouver le problème juste dans ces quelques lignes ? Ou mieux, y a-t-il un moyen ou une formule qui peut être utilisé dans tous les indicateurs afin de limiter le calcul des barres ?

 
thefxpros:
Désolé de vous déranger à nouveau...

Hier, j'ai modifié plusieurs de mes indicateurs afin de limiter le calcul des barres pour économiser un peu de cpu puisque je fais tourner plusieurs mt4 en même temps.

Le code que j'ai utilisé à cet effet est le suivant :

int start()

{

int i,limit,counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

limit=Nbars-counted_bars;

mais je remarque juste que maintenant, avec les marchés ouverts, tous les indicateurs modifiés ne se mettent pas à jour lorsque de nouvelles barres sont tracées à l'écran.

Est-il possible pour vous, codeurs expérimentés, de trouver le problème juste dans ces quelques lignes ? Ou mieux, y a-t-il un moyen ou une formule qui peut être utilisé dans tous les indicateurs afin de limiter le calcul des barres ?

Remplacez cette dernière ligne par la suivante et tous les cas devraient être "couverts" :

if (Nbars<=0) Nbars = Bars-1 ;

limit=MathMin(MathMin(Bars-counted_bars,Bars-1),Nbars) ;

 
mladen:
Remplacez cette dernière ligne par la suivante et tous les cas devraient être "couverts" :

si (Nbars<=0) Nbars = Bars-1 ;

limit=MathMin(MathMin(Bars-counted_bars,Bars-1),Nbars) ;

vous m'avez sauvé.

Merci, tout fonctionne bien.

 

Bonjour mladen, pouvez-vous m'aider à traduire ce code pour mt4 ? Merci.

_SECTION_BEGIN("TD Pressure Ratio");

SetChartBkColor(16);

Periods = Param("Periods",13,1,50,1);

function TDPressure (Periods)

{

for( i = 2; i < BarCount; i++ )

{

if((O - C) / C > 0.15) // gapup

{

BP = (H - C + C - L) * V;

}

else if((C-O) / O > 0.15)// gapdown

{

SP = (C - L + H - C) * V;

}

else

{

BP = IIf(C > O, C - O,0) * V;

SP = IIf(C < O, C - O,0) * V;

}

}

Result = 100 *Sum(BP,Periods)/ (Sum(BP,Periods) -

Sum(SP,Periods));

Result = IIf(Result < 0,0,Result);

Result = IIf(Result > 100,100,Result);

return Result;

}

TDP = TDPressure(Periods);

Plot(TDP ,"TD Pressure",colorLightBlue,1);

Plot( 25 , "", colorGreen,styleDashed);

Plot( 50 , "", colorLightGrey,styleDashed);

Plot( 75 , "", colorRed,styleDashed);

_SECTION_END();

 

Bonjour à tous,

Si ce n'est pas le bon fil de discussion pour ce problème, veuillez me diriger vers le bon endroit.

C'est mon indicateur préféré et les alertes sont excellentes, mais il alerte pendant la bougie actuelle chaque fois que le signal change. Il en résulte beaucoup de faux signaux car seule l'ombre de la bougie passe au-dessus/en dessous de la bande et la direction n'est pas officiellement changée.

Est-il possible de modifier le code pour qu'il n'envoie l'alerte qu'une fois que la direction a changé ET que la barre est fermée ?

Merci !

Dossiers :
 
sundown858:
Bonjour à tous,

Si ce n'est pas le bon fil de discussion, veuillez me diriger vers le bon endroit.

C'est mon indicateur préféré et les alertes sont excellentes, mais il alerte pendant la bougie actuelle chaque fois que le signal change. Il en résulte beaucoup de faux signaux car seule l'ombre de la bougie passe au-dessus/en dessous de la bande et la direction n'est pas officiellement changée.

Est-il possible de modifier le code pour qu'il n'envoie l'alerte qu'une fois que la direction a changé ET que la barre est fermée ?

Merci !

sundown858

Définissez le paramètre alertsOnCurrent à false et cela devrait fonctionner.

 

Avez-vous essayé de commuter "false" cette option ?

extern bool alertsOnCurrent = true ;

 
Hermo:
Bonjour à tous

Bonjour mladen

J'essaie de trouver ce code pour MT4 et je ne le trouve pas.

L'indicateur s'appelle Magarto.

J'ai le code pour une autre plateforme

  1. study("magarto indicator",overlay=false)
  2. ma=sma(close,30)

    maslope=ma-ma[2]

    maslopeB=iff(maslope0,1,0))

    candleOver=iff(ohlc4>ma,1,-1)

    xMA = ema(close,13)

    DayLow = iff(dayofmonth != dayofmonth[1], low, min(low, nz(DayLow[1])))

    bearpower = DayLow - xMA

    DayHigh = iff(dayofmonth != dayofmonth[1], high, max(high, nz(DayHigh[1])))

    bullpower = DayHigh - xMA

    bothElder=iff((bearpower>0 and bullpower>0),1,iff((bearpower<0 and bullpower<0),-1,0))

    all4=maslopeB+candleOver+bothElder

    plot(all4)

    hline(3)

    hline(-3)

    sell = all4 == -3 ? all4 : na

    buy = all4 == 3 ? all4 : na

    plot(sell, style=circles, linewidth=4, color=red)

    plot(buy, style=circles, linewidth=4, color=green)

Je pourrais vous aider à le trouver.

Je vois cet autre indicateur, il a quelque chose à voir avec le code Magarto.

https://www.mql5.com/en/forum/173112/page2

Merci beaucoup d'avance.

Une salutation.

De quel langage de codage de plateforme de trading s'agit-il ?

 

Mon Dieu ! Je me demandais ce que faisait cette entrée. Cela a résolu le problème. Merci mladen et assassin !