Neo traderBot

Neo traderBot

Você sabia?

A NeoTraderBot é a primeira comunidade aberta no Brasil com foco em compartilhar informações sobre automatização de estratégias

leaf leftleaf right
Notifications
Clear all

Indicador de AGRESSÃO ACUMULADA

1 Posts
1 Usuários
0 Reactions
424 Visualizações
(@admin)
Membro Admin
Registrou: 3 anos atrás
Posts: 216
Iniciador do tópico  

Objetivo do código: Indicar com clareza a direção de acumulação de agressões na negociação de um ativo, ou seja, o interesse do mercado e de Big Players

Motivação: Indicador para compor um conjunto de ferramentas base para que traders possam elaborar estratégias e robôs

Observações importantes: O Indicador está disponível GRATUITAMENTE COM CÓDIGO FONTE ABERTO no Profit Char. Este ambiente destina-se a coletar sugestões e aperfeiçoarmos o indicador de maneira colaborativa.

Link Youtube com explicação do indicador

 

Versão 1.0

// #######################################################################
// #######################################################################
// #######################################################################
// ######                            O                             #######
// ######                        ____|____                         #######
// ######                      _|         |_                       #######
// ######                     (_|  O   O  |_)                      #######
// ######                       |_________|                        #######
// ######                                                          #######
// ###### ____        __        ____________           ________    #######
// ###### | | \       | |       | |_________|         /  ____  \   #######
// ###### | |\ \      | |       | |                  /  /    \  \  #######
// ###### | | \ \     | |       | |____             |  |      |  | #######
// ###### | |  \ \    | |       | |____|            |  |      |  | #######
// ###### | |   \ \   | |       | |____|            |  |      |  | #######
// ###### | |    \ \  | |       | |                 |  |      |  | #######
// ###### | |     \ \ | |       | |_________         \  \____/  /  #######
// ###### |_|      \_\|_|       |_|_________|         \________/   #######
// ######                                                          #######
// ###### _______  __          __   ____  __   ___    __  _______  #######
// ######    |    |  \   /\   |  \ |     |  \ |   \  /  \    |     #######
// ######    |    |__/  /__\  |   ||__   |__/ |___/ |    |   |     #######
// ######    |    |\   /    \ |   ||     |\   |   \ |    |   |     #######
// ######    |    | \ /      \|__/ |____ | \  |___/  \__/    |     #######
// ######                                                          #######
// ######  Comunidade aberta de automatização de estratégias para  #######
// ######                    negociação de ativos                  #######
// ######                                                          #######
// ######                    www.NeoTraderBot.com                  #######
// #######################################################################
// #######################################################################
// #######################################################################
//
// -----------------------------------------------------------------------
// ---------------------- DADOS DA ESTRATÉGIA ----------------------------
// -----------------------------------------------------------------------
//
// NOME DA ESTRATÉGIA: _NTB_IND_AgressaoAcumulada
//   DESENVOLVIDA POR: Johnathas Carvalho
//    DATA DE CRIAÇÃO: 19/09/2022
//             VERSÃO: 1.0
//      ATUALIZADA EM: 19/09/2022
// TIPO DE ESTRATÉGIA: (X) Indicador  ( ) Coloração ( ) Execução
//                     ( ) Screening  ( ) Texto     ( ) Alarme
//
// DESCRIÇÃO DA ESTRATÉGIA:
//     Esse indicador visa apresentar ao trader a acumulacao do saldo de 
// agressão quando a agressão permanece na mesma direção. Por exemplo, se
// houver uma pressão compradora, o indicador vai acumular a agressão comprado
// ra enquanto não houver uma força vendedora suficiente para reverter o saldo
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
//
// ######################### FIM DO CABEÇALHO ############################
//
//
// -----------------------------------------------------------------------
// -------------------------- Constantes ---------------------------------
// OBS: São declaradas duas constantes relacionadas aos contratos cheios
// futuros de Dolar e Indice 
// -----------------------------------------------------------------------
//const

  // ---------------------------------------------------------------------
  // -------------------------- Parâmetros -------------------------------
  // OBS: Segue abaixo a descriação de cada parâmetro
  // 1) pNumPeriodosAcumulacao -> número de períodos para acumulacao do 
  // saldo de agressão
  // ---------------------------------------------------------------------
input
  pNumPeriodosAcumulacao(0);
  // ---------------------------------------------------------------------
  // ---------------------- Variáveis globais ----------------------------
  // OBS:
  // ---------------------------------------------------------------------
var
bStarted, bPlotIndicador: boolean;


bSentidoAgressao : boolean; // True -> agressão de compra, False -> agressão de venda
fSaldoVolumeAgressao: float;
fSaldoAcumuladoAgressao: float;
iUltimaReversaoSaldo: integer;
begin
  // ---------------------------------------------------------------------
  // -------------- Lógica de inicialização da estratégia ----------------
  // OBS: Esta parte do código é executada apenas na primeira execução da
  // estratégia
  // ---------------------------------------------------------------------
  if Not bStarted then
  begin
    //Colocar aqui como deseja inicializar suas variáveis
    iUltimaReversaoSaldo := CurrentBar;
    fSaldoVolumeAgressao := AgressionVolBalance;
    if fSaldoVolumeAgressao >= 0 then
      bSentidoAgressao := true
    else
      bSentidoAgressao := false;

    bStarted := True;
  end;

  // ---------------------------------------------------------------------
  // --------------------- Cálculo do indicador  -------------------------
  // OBS: Inserir lógica de cálculo do indicador e caso ele possa ser plo_
  // tado, atribuir em algum momento True para variável bPlotIndicador 
  // ---------------------------------------------------------------------
  bPlotIndicador := True;
  fSaldoVolumeAgressao := AgressionVolBalance;

  if (pNumPeriodosAcumulacao = 0) then
  begin
    if (fSaldoVolumeAgressao > 0) then bSentidoAgressao := true
    else if (fSaldoVolumeAgressao < 0) then bSentidoAgressao := false;
  
    if bSentidoAgressao <> bSentidoAgressao[1] then iUltimaReversaoSaldo := CurrentBar; 
    fSaldoAcumuladoAgressao := Summation(fSaldoVolumeAgressao, CurrentBar - iUltimaReversaoSaldo + 1);  
  end
  else fSaldoAcumuladoAgressao := Summation(fSaldoVolumeAgressao, pNumPeriodosAcumulacao);   
           
                    
  //
  // ---------------------------------------------------------------------
  // ------------------ Plota valores do indicador -----------------------
  // OBS: Atribuir na sessão anterior o valor para variavel bPlotIndicador
  // quando for possível plotar um valor para o indicador no instante atual
  // ---------------------------------------------------------------------
  
  if bPlotIndicador then
    begin
      if (pNumPeriodosAcumulacao = 0) then
      begin 
        if bSentidoAgressao then SetPlotColor(1,clGreen)
          else SetPlotColor(1,clRed);
      end
      else
      begin
        if fSaldoAcumuladoAgressao >= 0 then SetPlotColor(1,clGreen)
          else SetPlotColor(1,clRed);
      end;
  
      Plot(fSaldoAcumuladoAgressao); 
    end;
    
    
      
end;








 


   
Citar