Neo traderBot

Neo traderBot

Você sabia?

Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)

leaf leftleaf right
Notifications
Clear all

Indicador de AGRESSÃO ACUMULADA

1 Posts
1 Usuários
0 Reactions
441 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