Aide au codage - page 709

 
tfi_markets:
Bonjour Pro-Coders,

J'aimerais utiliser l'indicateur NonLagMA_v7.7 comme déclencheur de signaux ou comme filtre de signaux commerciaux.
L'indicateur fournit des signaux soit 0 soit 1084.

Par exemple :
// Signal de hausse
// NonLag Up = 1084
// NonLag Dn = 0

// Signal Dn
// NonLag Up = 0
// NonLag Dn = 1084

Quelqu'un pourrait-il jeter un coup d'oeil à mon "pseudo" code ? Je pense qu'il peut fonctionner,
mais il peut probablement être optimisé pour le mieux. Merci d'avance !

extern string  NLMA_inputs      = "+--- NonLagMA Settings ---+";
extern int     Price            = 0;  //Apply to Price(0-Close;1-Open;2-High;3-Low;4-Median price;5-Typical price;6-Weighted Close)
extern int     MALength         = 9;  // Period of NonLagMA
extern int     Displace         = 0;  //DispLace or Shift
extern double  PctFilter        = 0;  //Dynamic filter in decimal
extern int     Color            = 1;  //Switch of Color mode (1-color)  
extern int     ColorBarBack     = 1;  //Bar back for color mode
extern double  Deviation        = 0;  //Up/down deviation        
extern int     AlertMode        = 1;  //Sound Alert switch (0-off,1-on)
extern int     WarningMode      = 0;  //Sound Warning switch(0-off,1-on)
extern int     WarningTicks     = 0;
extern bool    SendAlertEmail   = false;

extern double  BarShift                 = 1;

double nLagMA;
nLagMA=iCustom(Symbol(),0,"NonLagMA_v7.7", Price, Length, Displace, PctFilter, Color, ColorBarBack, Deviation, AlertMode, WarningMode, WarningTicks, SendAlertEmail);
  
double nLagMA1;
nLagMA1=iCustom(Symbol(),0,"NonLagMA_v7.7", Price, Length, Displace, PctFilter, Color, ColorBarBack, Deviation, AlertMode, WarningMode, WarningTicks, SendAlertEmail, BarShift);


// Signal Cross
   if (nLagMA == 0 && nLagMA1 > 1000) Order=SIGNAL_BUY;
   if (nLagMA1 == 0 && nLagMA > 1000) Order=SIGNAL_SELL;    

// Signal Filter
   if (nLagMA1 > 1000) Filter_BUY = True;    // Maybe used as SellExit Signal
   if (nLagMA == 0)    Filter_SELL = True;   // Maybe used as BuyExit Signal


Pouvez-vous poster l'indicateur lui-même afin qu'il puisse être vérifié?
 

Bonjour Mladen,

veuillez trouver l'indicateur joint à ce message.

Merci d'avance !

Dossiers :
 
tfi_markets:

Salut Mladen,

veuillez trouver l'indicateur joint à ce message.

Merci d'avance !

Le mieux est d'utiliser le tampon "trend" pour cela

Quelque chose comme ceci :

double trendNow   = iCustom(NULL,0,"NonLagMA_v7.7", Price, Length, Displace, PctFilter, Color, ColorBarBack, Deviation, AlertMode, WarningMode, WarningTicks, SendAlertEmail, 3, BarShift);
double trendPrev  = iCustom(NULL,0,"NonLagMA_v7.7", Price, Length, Displace, PctFilter, Color, ColorBarBack, Deviation, AlertMode, WarningMode, WarningTicks, SendAlertEmail, 3, BarShift+1);  
if (trendNow!=trendPrev)
{
   if (trendNow>0)
         Order=SIGNAL_BUY;
   else  Order=SIGNAL_SELL;
}
 
mladen:

Le mieux est d'utiliser le tampon "trend" pour cela

Quelque chose comme ceci :

double trendNow   = iCustom(NULL,0,"NonLagMA_v7.7", Price, Length, Displace, PctFilter, Color, ColorBarBack, Deviation, AlertMode, WarningMode, WarningTicks, SendAlertEmail, 3, BarShift);
double trendPrev  = iCustom(NULL,0,"NonLagMA_v7.7", Price, Length, Displace, PctFilter, Color, ColorBarBack, Deviation, AlertMode, WarningMode, WarningTicks, SendAlertEmail, 3, BarShift+1);  
if (trendNow!=trendPrev)
{
   if (trendNow>0)
         Order=SIGNAL_BUY;
   else  Order=SIGNAL_SELL;
}

Salut Mladen,

Merci beaucoup pour vos conseils !

Est-ce que cela fonctionnerait aussi si je mettais plus de paramètres d'autres indicateurs comme celui-ci ?

if (trendNow!=trendPrev)
{
  if(totalOrdersLong<MaxLongTrades  && trendNow>0 && (NLD1>NLD2) && RSIfilter>55) Order=SIGNAL_BUY;
  if(totalOrdersShort<MaxShortTrades && trendPrev>0 && (NLD1<NLD2) && RSIfilter<45) Order=SIGNAL_SELL;
}

\N- Thomas

 
tfi_markets:

Salut Mladen,

Merci beaucoup pour votre conseil !

Est-ce que ça marcherait aussi si je mettais d'autres paramètres d'autres indicateurs comme celui-ci ?

if (trendNow!=trendPrev)
{
  if(totalOrdersLong<MaxLongTrades  && trendNow>0 && (NLD1>NLD2) && RSIfilter>55) Order=SIGNAL_BUY;
  if(totalOrdersShort<MaxShortTrades && trendPrev>0 && (NLD1<NLD2) && RSIfilter<45) Order=SIGNAL_SELL;
}

\Thomas

Oui, vous pouvez ajouter autant de conditions que vous le souhaitez.

Mais dans le cas du code écrit de cette façon, la condition "primaire" est que les ma non-lag ont changé la tendance et ensuite toutes les autres conditions seraient vérifiées. Si c'est ce que vous voulez, alors vous pouvez inclure dans ce bloc de code autant de conditions que vous le souhaitez.

 
mladen:

Oui, vous pouvez ajouter autant de conditions que vous le souhaitez.

Mais dans le cas du code écrit de cette façon, la condition "primaire" est de savoir si le ma non-lag a changé la tendance et ensuite toutes les autres conditions seraient vérifiées. Si c'est ce que vous voulez, alors vous pouvez inclure dans ce bloc de code autant de conditions que vous le souhaitez.

Cool, merci. Passez une bonne soirée.
 

bonjour mr mladen :

Pourriez-vous introduire ou créer un indicateur permettant de tracer une ligne verticale MTF sur n'importe quel histogramme ?

Bien à vous

 
bilbao:

bonjour mr mladen :

Pourriez-vous introduire ou créer un indicateur permettant de tracer une ligne verticale MTF sur n'importe quel histogramme ?

Bien à vous

Vous voulez dire une simple ligne verticale tracée à certains moments ?
 
mladen:
Vous voulez dire une simple ligne verticale tracée à certains moments ?

OUI, j'ai besoin d'une simple ligne verticale à dessiner sur n'importe quel histogramme pour déterminer la bougie sur l'histogramme.

similaire à cette image mais sur un graphique ou un sous graphique séparé {on peut le faire glisser sur l'histogramme} pour afficher une ligne verticale.

 
bilbao:

OUI j'ai besoin d'une simple ligne verticale à dessiner sur un histogramme pour déterminer la bougie sur l'histogramme.

similaire à cette image mais sur un graphique ou sous graphique séparé {on peut le faire glisser sur l'histogramme} pour montrer la ligne verticale.

Voilà. Il suffit de la faire glisser vers la sous-fenêtre où vous souhaitez qu'elle soit affichée et de choisir l'intervalle de temps.


Dossiers :
Raison: