Um dos indicadores mais comuns da história da análise financeira é a média móvel. Ela é calculada com base na média dos valores fornecidos no período desejado. É comum visualizá-la em gráficos para a análise da variação do preço. Mas também é útil na análise da variação de outro indicador.
Por exemplo: Imagine que queiramos fazer com que os candles de nosso gráfico sejam verdes quando o indicador de MACD estiver acima da Média Exponencial dos últimos 9 valores dele mesmo, e de vermelho quando estiver abaixo.
Podemos fazer escrever essa estratégia com o aninhamento de funções. Este é um termo utilizado em programação quando uma função chama, dentro de um de seus próprios parâmetros, por outra função. Um exemplo prático, no caso do MACD apresentado acima, seria o código:
var valorMacd, mediaMacd : Float;
begin
//Para esse código, iremos comparar o valor do MACD(26,12,9)|0|,
//com a média móvel Exponencial de 9 períodos do próprio MACD.
//Para isso, será necessário "chamar" a função
//"MACD(MediaLonga, MediaCurta, Sinal)|Tipo|", dentro
//do parâmetro de "Dados", da função "mediaExp(Período, Dados)".
//Esse comportamento é chamado de "aninhamento", e pode ser
//visualizado no trecho a seguir: mediaExp(9, MACD(26,12,9)|0|)
//O trecho acima explicita que a função mediaExp terá parâmetro de
//período igual à 9, e que seu parâmetro de "Dados" deve ser o valor
//retornado pela função 9, MACD(26,12,9)|0|. Iremos usar essa mesma
//lógica ao longo da estratégia, para realização destas comparações.
//A única diferença será que estaremos armazenando o valor
//em uma variável, para evitar chamar as funções múltiplas vezes
mediaMacd := mediaExp(9, MACD(26,12,9)|0|);
valorMacd := MACD(26,12,9)|0|;
if(valorMacd > mediaMacd) then
paintBar(clGreen)
else if (valorMacd < mediaMacd) then
paintBar(clRed)
else
paintBar(clWhite);
//Linhas abaixo são ilustrativas
//para desenho do indicador e MME
plot(valorMacd);
plot2(mediaMacd);
setPlotWidth(1, 3);
end;
Com a estratégia exemplificada acima, o gráfico terá uma aparência parecida com essa:
Como podemos ver, quando o MACD (linha com espessura 3) está acima da Média Móvel Exponencial de 9 períodos (linha com espessura 1), a coloração é verde. Quando está abaixo, a coloração é vermelha. Caso estivessem exatamente no mesmo valor, a coloração seria branca.
Esta é apenas uma maneira de utilizar o aninhamento de funções. Existem diversas outras ideias que podem ser postas em prática, utilizando como base essa técnica.
Para mais detalhes sobre as funções utilizadas em nossa postagem, sugerimos a leitura do artigo referente à Documentação do Módulo de Estratégias.
Achou útil este conteúdo?
Não esqueça de nos avaliar abaixo.
Desejamos bons trades!
Comentários
0 comentário
Artigo fechado para comentários.