Ajuda na codificação - página 709

 
tfi_markets:
Olá Pro-Coders,

Gostaria de usar o Indicador NonLagMA_v7.7 como gatilho de sinal ou filtro de sinal comercial.
O indicador fornece sinais 0 ou 1084.

Por exemplo:
// Sinal para cima
// Sem atraso = 1084
// NonLag Dn = 0

// Sinal Dn
// Sem atraso = 0
// NonLag Dn = 1084

Alguém poderia por favor dar uma olhada no meu "pseudo" código? Acho que pode funcionar,
mas provavelmente pode ser otimizado para melhor. Obrigado de antemão!

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


Você pode afixar o próprio indicador para que ele possa ser verificado?
 

Olá, Mladen,

favor encontrar o indicador anexo a este lançamento.

Agradecemos antecipadamente!

Arquivos anexados:
 
tfi_markets:

Olá, Mladen,

favor encontrar o indicador anexo a este lançamento.

Agradecemos antecipadamente!

Melhor usar o buffer de "tendência" para isso

Algo parecido com isto :

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:

É melhor usar um amortecedor de "tendência" para isso

Algo parecido com isto :

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

Olá, Mladen,

muito obrigado por seu conselho!

Será que também funcionaria se eu colocasse mais paramaters de outros indicadores como este?

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

 
tfi_markets:

Olá, Mladen,

muito obrigado por seu conselho!

Será que também funcionaria se eu colocasse mais paramaters de outros indicadores como este?

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

Sim, você pode acrescentar tantas condições quantas desejar.

Mas no caso do código escrito dessa forma, a condição "primária" é se a ma não-lag ma mudou a tendência e então todas as demais condições seriam verificadas. Se for o que você quisesse, então você pode acrescentar naquele bloco de código tantas condições quanto desejar.

 
mladen:

Sim, você pode acrescentar tantas condições quantas desejar.

Mas no caso do código escrito dessa forma, a condição "primária" é se a ma não-lag ma mudou a tendência e então todas as demais condições seriam verificadas. Se for o que você quisesse, então você pode acrescentar naquele bloco de código tantas condições quanto desejar.

Legal, obrigado. Tenha uma boa noite.
 

Olá, Sr. mladen:

você poderia introduzir ou fazer um indicador para desenhar uma linha vertical MTF em qualquer histograma

consideração amável

 
bilbao:

Olá, Sr. mladen:

você poderia introduzir ou fazer um indicador para desenhar uma linha vertical MTF em qualquer histograma

consideração amável

Você quer dizer uma simples linha vertical traçada em determinado(s) momento(s)?
 
mladen:
Você quer dizer uma simples linha vertical traçada em determinado(s) momento(s)?

SIM, preciso de uma linha vertical simples para desenhar qualquer histograma para determinar a vela no histograma

semelhante a esta imagem, mas em gráfico ou sub gráfico separado {podem arrastá-la no histograma} para mostrar a linha vertical

 
bilbao:

SIM, preciso de uma linha vertical simples para desenhar qualquer histograma para determinar a vela no histograma

semelhante a esta imagem, mas em gráfico ou sub gráfico separado {podem arrastá-la no histograma} para mostrar a linha vertical

Aqui está. Basta arrastá-lo para a sub janela em que você deseja que ele seja exibido e escolher o período de tempo


Arquivos anexados:
Razão: