Neo traderBot

Neo traderBot

Você sabia?

Abordamos o tema de automatização de estratégias em NTSL, MQL5 e NinjaScript!

leaf leftleaf right
Notifications
Clear all

[Solucionado] Correlação positiva

4 Posts
4 Usuários
0 Reactions
147 Visualizações
(@silviobaiajr)
Novo membro
Registrou: 2 anos atrás
Posts: 1
Iniciador do tópico  

Quero criar um indicador que plote 2 linhas de ativos diferentes (Petr4 e Petr3) no gráfico do ativo atual. Uma linha é a variação do preço atual (Petr4) em relação ao fechamento do dia anterior (Petr4). A outra linha é a mesma lógica só que com a Petr3, ou seja, variação do preço atual (Petr3) em relação ao fechamento do dia anterior (Petr3). Encontrei o indicador 2MV Correlação, mas ele calcula a variação do preço atual com o fechamento da vela anterior. Preciso que calcule com o fechamento do dia anterior.


   
Citar
Marcadores do tópico
(@mfpublicos)
Membro ativo
Registrou: 2 anos atrás
Posts: 7
 

Silvio, use a nova função Asset para acessar multiplos ativos em um mesmo gráfico.

No seu caso poderia determinar algo assim:

const

  aACAO01 = Asset("PETR4", feedBovespa);
  aACAO02 = Asset("PETR3", feedBovespa);

 

Desta forma terá acesso a abertura, fechamento, máxima e mínimas destes ativos mesmo estando em um gráfico de outro ativo.

 

Abs

 

 

 

This post was modified 2 anos atrás 2 times by MFPublicos

   
ReplyCitar
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Oi @silviobaiajr!

           O caminho é esse mesmo que o @mfpublicos indicou!

           Só complementando a resposta dele...a formação de candles vai seguir o ativo do gráfico e as funções NTSL não estão parametrizadas por ativo. Por exemplo, há a função CloseD(1) que iria retornar o fechamento do ativo no dia anterior. Caso esta função tive como parâmetro o ticker do ativo, seria bem direta a resposta a sua pergunta. Infelizmente não tem.

           Daí para obter o fechamento desses ativos no dia anterior teríamos que fazer na mão (conforme código abaixo). O problema é como ressaltei: a formação dos candles vai seguir o ativo principal. Assim não temos como ser precisos da forma como a NTSL funciona hoje...pois pode ocorrer a seguinte situação:

  • Você poderia estar em um tempo gráfico de 1 minuto;
  • Seu ativo principal (gráfico da estratégia) é PETR4 e o outro ativo que você utiliza é VALE3;
  • Você deseja obter o preço de fechamento do dia anterior de VALE3;
  • O leilão de abertura de PETR4 encerra e o primeiro candle do dia inicia às 10:08;
  • Mas para o ativo VALE3 o primeiro candle após o leilão ocorreu só 10:03;
  • Para VALE3, o código vai retornar (incorretamente) o valor de fechamento do candle de 10:07. Pois é o candle anterior à identificação de mudança de dia no ativo PETR4.

 

          Não vejo maneira de contornar este problema na forma como a NTSL funciona hoje. Teria que refatorar muita coisa na linguagem e na engine. Por esse motivo, talvez o indicador que você esteja utilizando não faça essa operação que você deseja.

 

Espero que tenha ficado claro!

Grande abs!

 

 

const
  aACAO01 = Asset("PETR4", feedBovespa);
  aACAO02 = Asset("PETR3", feedBovespa);
var
  hoje: integer;
  fFechAnteriorACAO01, fFechAnteriorACAO02: float;
begin
  if Date <> hoje then
  begin
    hoje := Date;
    fFechAnteriorACAO01 := aACAO01.Close[1];
    fFechAnteriorACAO02 := aACAO02.Close[1];
  end;


  Plot(aACAO01.Close/fFechAnteriorACAO01);
  Plot2(aACAO02.Close/fFechAnteriorACAO02);
end;

   
ReplyCitar
(@bmgsoares)
Novo membro
Registrou: 3 meses atrás
Posts: 1
 

Eu conseguiria outras informações deste outro ativo? Por exemplo Position e realizar ordens de compra e venda.


   
ReplyCitar