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 VOLUME RELEVANTE

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

Objetivo do código: Indicar momentos de negociação no qual o volume de papéis negociados atinge patamares relevantes em relação à média histórica recente.

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: Volume relevante
//   DESENVOLVIDA POR: NeoTraderBOt
//    DATA DE CRIAÇÃO: 19/12/2022
//             VERSÃO: 1.0
//      ATUALIZADA EM: 19/12/2022
// TIPO DE ESTRATÉGIA: (X) Indicador  ( ) Coloração ( ) Execução
//                     ( ) Screening  ( ) Texto     ( ) Alarme
//
// DESCRIÇÃO DA ESTRATÉGIA:
//    Ferramenta que visa indicador momentos em que o volume de negociação 
// alcança patamares relevantes
//
//
//
//
//
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
//
// ######################### FIM DO CABEÇALHO ############################
//
//
// -----------------------------------------------------------------------
// -------------------------- Constantes ---------------------------------
// OBS:
// -----------------------------------------------------------------------
//const
  //cCONSTANTE = 1;
  //
  // ---------------------------------------------------------------------
  // -------------------------- Parâmetros -------------------------------
  // OBS: Segue abaixo a descriação de cada parâmetro
  // 1) pQtdePeriodosMedia -> Define a quantidade de periodos para calcular
  // a média aritmética do volume negociado. Recomenda-se pensar em termos
  // temporais. Exemplo, se sua estratégia opera em gráfico de 5 min, e você
  // deseja utilizar 2 dias de média de volume, a conta seria
  // 2 dias * 9 horas/dia * 12 candles/hora = 216 candles
  // 2) pQtdeDesvioVolume -> Qtde de desvio padrão em relação ao volume que
  // caracterizam o volume negociado como relevante 
  // ---------------------------------------------------------------------
input
  pQtdePeriodosMedia(200);
  pQtdeDesvioVolume(2.0);
  // ---------------------------------------------------------------------
  // ---------------------- Variáveis globais ----------------------------
  // OBS:
  // ---------------------------------------------------------------------
var
	bPlotIndicador: boolean;
fMedia, fStdDev: float;
fRelevanciaVolume: float;

begin
  // ---------------------------------------------------------------------
  // ------------ Atribuição de variáveis por processamento --------------
  // ---------------------------------------------------------------------
  fMedia := Media(pQtdePeriodosMedia, Volume);
  fStdDev := StdDevs(Volume, pQtdePeriodosMedia);
  if (fMedia + pQtdeDesvioVolume*fStdDev) <> 0  then
    fRelevanciaVolume := Volume/(fMedia + pQtdeDesvioVolume*fStdDev);

  // ---------------------------------------------------------------------
  // --------------------- 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;

  // ---------------------------------------------------------------------
  // ------------------ 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
      PlotN(1,fRelevanciaVolume);
      PlotN(2, Volume);
      PlotN(3, fMedia);
      PlotN(4, fMedia + pQtdeDesvioVolume*fStdDev);

      setPlotColor(2, clGray);
      setPlotColor(3, clRed);
      setPlotColor(4, clWhite);
      SetPlotWidth(3,2);
      SetPlotWidth(4,2);
      SetPlotStyle(4,psDash);

      SetPlotType(2,igHistogram);
      SetPlotType(3,igLine);
      SetPlotType(4,igLine);

      // Cria coloração para o indicador
      if (Volume >= fMedia + pQtdeDesvioVolume*fStdDev) 
      then SetPlotColor(2,clYellow)
      else if (Volume < fMedia + pQtdeDesvioVolume*fStdDev) 
              and (Volume >= fMedia) 
           then SetPlotColor(2,clWhite)
           else SetPlotColor(2,clGray);

    end;

end;

   
Arildo Braga reacted
Citar