Artigo publicado Indicador NRTR e módulos de negociação baseados nele para o MQL5 Wizard:
Autor: Dmitrii Troshin
Não entendo como acessá-lo via iCustom ... por favor, explique
Deveria haver algo como
double iCustom (
stringsymbol, // nome do símbolo
int timeframe, // timeframe
stringname, // nome do indicador de pasta/usuário
... // lista de parâmetros de entrada do indicador
int mode, // fonte de dados
int shift// deslocamento
);
isso é especificamente em nosso caso
//+------------------------------------------------------------------+ //| NRTRvolatile| //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - sinal para cima //3 - sinal para baixo double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //período dinâmico double K=1, //fator de escala int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K,iBufferNumber,iShift); if(handle<0) { Print("Objeto NRTRvolatile não criado: Erro",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,0,iShift)); }
fornece apenas algumas bobagens, ou seja, os preços atuais se você consultar o buffer 2 ou 3
Não entendo como acessá-lo por meio do iCustom ... por favor, explique
Os buffers 2 e 3 contêm sinais que são atualizados somente no momento da mudança de tendência.
Suporte/Resistência estão nos buffers 0,1 - essas são as linhas que vemos como linhas
CopyBuffer() - tem três sobrecargas, mas nenhuma delas tem três parâmetros.
Uma variante do código para obter os valores dos buffers
void OnStart() { double arr[]; int handle =iCustom(Symbol(),0,"NRTRvolatile",12,1); CopyBuffer(handle,0,0,1,arr); Print("Canal inferior",arr[0]); CopyBuffer(handle,1,0,1,arr); Print("Canal superior",arr[0]); CopyBuffer(handle,2,0,1,arr); Print("Sinalizar".,arr[0]); CopyBuffer(handle,3,0,1,arr); Print("Sinal para baixo".,arr[0]); }
Este é o script
Os buffers 2 e 3 contêm sinais que são atualizados somente no momento da mudança de tendência.
Suporte/Resistência estão nos buffers 0,1 - essas são as linhas que vemos como linhas
CopyBuffer() - tem três sobrecargas, mas nenhuma delas tem três parâmetros.
Uma variante do código para obter os valores dos buffers
Este é um script
Sim, está mais claro agora.
Sobre CopyBuffer - é da biblioteca de compatibilidade mql4, mais precisamente de initmql4__1.mqh.
double CopyBufferMQL4(int handle,int index,int shift) { double buf[]; switch(index) { case 0: if(CopyBuffer(handle,0,shift,1,buf)>0) return(buf[0]); break; case 1: if(CopyBuffer(handle,1,shift,1,buf)>0) return(buf[0]); break; case 2: if(CopyBuffer(handle,2,shift,1,buf)>0) return(buf[0]); break; case 3: if(CopyBuffer(handle,3,shift,1,buf)>0) return(buf[0]); break; case 4: if(CopyBuffer(handle,4,shift,1,buf)>0) return(buf[0]); break; default: break; } return(EMPTY_VALUE); }
provavelmente sim
//+------------------------------------------------------------------+ //| NRTRvolatile| //+------------------------------------------------------------------+ //iBufferNumber //0 //1 //2 - sinal para cima //3 - sinal para baixo double indNRTRvolatile(string sSymbol=NULL, int tf=PERIOD_M5, int period=12, //período dinâmico double K=1, //fator de escala int iBufferNumber=0, int iShift=0) { ENUM_TIMEFRAMES timeframe=TFMigrate(tf); double handle=iCustom(sSymbol,timeframe,"NRTRvolatile",period,K); if(handle<0) { Print("Objeto NRTRvolatile não criado: Erro",GetLastError()); return(-1); } else return(CopyBufferMQL4(handle,iBufferNumber,iShift));}
É possível atualizar o NRTRvolatile para que uma caixa de mensagem seja exibida quando uma seta for adicionada?
É possível atualizar o NRTRvolatile para que uma caixa de mensagem seja exibida ao adicionar uma seta?
Talvez nas funções LongCondition e ShortCondition.
int SignalNRTR::LongCondition(void) { int idx =StartIndex(); if(UpSignal(idx)) { Alert"Text"; return 100; } else return 0; }
para adicionar algo como Alert"Text". Não sei se isso funcionará. O problema é que não tenho mais esse código em meu computador. Tudo o que eu tinha no ano passado foi guardado no passado:) Portanto, não posso tentar. E ainda tenho a véspera de Ano Novo tocando em minha cabeça :)
No próprio indicador, em algum lugar por aqui
// mudanças de tendência if(trend>0) Buff_Up[i]=value; if(trend<0) Buff_Dn[i]=value; if(trend_prev<0 && trend>0) { Alert("Text"); Sign_Up[i]=value; Buff_Up[i]=0.0; } if(trend_prev>0 && trend<0) { Alert("Text"); Sign_Dn[i]=value; Buff_Dn[i]=0.0; }
O caminho para os arquivos de inclusão deve ser corrigido para
#include <Expert\\ExpertSignal.mqh>
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Indicador NRTR e módulos de negociação baseados nele para o Assistente MQL5 foi publicado:
Este artigo descreve o indicador NRTR e módulos de negociação criados com sua ajuda. Para estes fins, é criado um módulo de sinais de negociação que permite criar estratégias baseadas nas combinações do NRTR e indicadores adicionais que confirmam a tendência.
Indicador NRTR (Nick Rypock Trailing Reverse) é um indicador pensado por Konstantin Kopyrkin. Um dado curioso: o nome Nick Rypock é derivado do sobrenome Kopyrkin escrito para trás.
Voltemos ao indicador. Ele é um canal de preço dinâmico. O autor ilustra sua ideia base com a seguinte figura:
Autor: Dmitrii Troshin