Neo traderBot

Neo traderBot

Você sabia?

Confira os nossos eBooks, Snippets e Fóruns produzidos para cada plataforma!

leaf leftleaf right
Notifications
Clear all

Otimização Detector Topos e Fundos

4 Posts
2 Usuários
0 Reactions
32 Visualizações
(@jl-valentini)
Novo membro
Registrou: 1 mês atrás
Posts: 2
Iniciador do tópico  

Boa noite, aproveitando que estou ingressando no mercado financeiro, na verdade mudando algumas estratégias, decidi voltar a estudar programação para facilitar minha vida. Essa é minha primeira imersão na linguagem NTSL, e não está muito agradável, na verdade faz anos que não programo nada. Estou tentando achar uma solução para "otimizar" o indicador de topos e fundos para minha estratégia, que seria marcar os topos e fundos após o cruzamento de uma média, deixando apenas a letra T e F sobre os extremos e para os três últimos, criar uma linha até a barra de preços indicando que é o Topo/Fundo do Candle X. Alguém já tentou desenvolver algo similar a isso?


   
Citar
 Mkw
(@mkw)
Membro eminente
Registrou: 1 ano atrás
Posts: 23
 

Tente seguir uma sequência logica de aprendizado.

Primeiro aprenda os conceitos básicos  da linguagem NTSL, pelo manual dessa linguagem. Leia o manual o máximo possivel.

Em seguida, crie scrypts simples como por exemplo usando uma media, obedecendo estruturas d NTSL

 

//Cruzamento_Medias

//Const

//pi = 3.1416;

//

Input

periodoCurto(9);

periodoLongo(21);

//

Var

src,maC,maL : float;

Compra,Venda : boolean;

//

Begin

//Indicadores

//src := (open+close)/2;  //medianPrice, typicalPrice, AvgPrice: use o que for mais efetivo

src := close;

maC =: mediaexp(periodoCurto, src);

maL := mediaexp(periodoLonga, src);

//

//Condições

compra := (maC > maL) and ( mac > maC[1]);

Venda := ((maC < maL) and ( mac < maC[1]);

//

//Coloracao

if compra then

//paintbar(clgreen)

paintbar(RGB(0,255,0))

//

if Venda then

//paintbar(clred)

paintbar(RGB(255,0,0))

//

else

//paintbar(clwhite)

paintbar(RGB(255,255,255));

//

Plotagem

//plot(maC);

//plot2(maL);

PlotN(1,maC);

plotN(2,MaL);

end;

//////////////////////////////////////////////

Assista vídeos/exemplos de códigos abertos.......

 

espero que tenha ajudado

 


   
ReplyCitar
(@jl-valentini)
Novo membro
Registrou: 1 mês atrás
Posts: 2
Iniciador do tópico  

Boa noite @mkw, muito agradecido pela atenção.  A detecção do cruzamento, e o consequente topo ou fundo anterior eu consegui fazer de boa, estou sofrendo é pra tentar descobrir uma maneira de plotar uma linha exatamente no topo, ou marcar T e F em cima do topo e não do cruzamento. o codigo esta assim até o momento

 

// Definir os parâmetros
Input
Periodo(52);
// Período da média móvel
var
EMA,UltimoTopoB,UltimoFundoB,MaiorValor,MenorValor : real;
CruzaAlta,CruzaBaixa : Boolean;
begin
// Cálculo da média móvel
EMA := Mediaexp(Periodo,Close);
// Detectar cruzamentos
CruzaAlta := (Close > EMA) and (Close[1] <= EMA);
CruzaBaixa := (Close < Ema) and (Close[1] >= EMA);
// Detectar o cruzamento de topo
If CruzaAlta then
begin
UltimoTopoB := CurrentBar;
// Armazenar a barra do cruzamento de topo
MaiorValor := Low;
// Inicializa o maior valor encontrado
paintbar(clgreen);
end;
If CruzaBaixa then
begin
UltimoFundoB := CurrentBar;
// Armazenar a barra do cruzamento de fundo
MenorValor := High;
// Inicializa o menor valor encontrado
paintbar(clred);
end;
// Encontrar o menor valor entre o cruzamento de topo e o cruzamento de fundo anterior
If ((CruzaAlta) and (UltimoFundoB > 0)) then
begin
// Buscar o menor valor entre o cruzamento de topo e o cruzamento de fundo anterior
MenorValor := Lowest(Low,CurrentBar - UltimoFundoB);
end;
// Encontrar o maior valor entre o cruzamento de fundo e o cruzamento de topo anterior
If ((CruzaBaixa) and (UltimoTopoB > 0)) then
begin
// Buscar o maior valor entre o cruzamento de fundo e o cruzamento de topo anterior
MaiorValor := Highest(High,CurrentBar - UltimoTopoB);
end;
end;

 


   
ReplyCitar
 Mkw
(@mkw)
Membro eminente
Registrou: 1 ano atrás
Posts: 23
 

Bom dia,

Para plotar letras

veja NTSL --> função PlotTest -- > ctrl+f --> digite funcao plottext

if  (Close[1] < EMA) and (Close >= EMA) then

plotText("T",clblack,0,9);

 

Para plotar linhas 

--> https://www.google.com/search?q=scapp+horizontalline&oq=scapp+horizontalline&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQIRgKGKABMgkIAhAhGAoYoAHSAQoxODQ5OWowajE1qAIIsAIB&sourceid=chrome&ie=UTF-8#fpstate=ive&vld=cid:d10bbf43,vid:7jumg97A2Ns,st:0  

mais a frente use o site: https://www.prorealcode.com/library/  

 

espero que ajude

 


   
ReplyCitar