Alerta de Preço de Ações no Google Sheets: Crie o Seu Grátis

Crie um alerta de preço de ações grátis no Google Sheets com GOOGLEFINANCE e Apps Script. Receba e-mail quando o ativo chegar ao seu preço médio ou alvo.
Imagem via IA

Durante um bom tempo, meu acompanhamento de ações foi manual: abrir o app da corretora, olhar a cotação, fechar. Fazia isso várias vezes por dia e, ainda assim, perdia o preço que eu queria — porque a hora em que o ativo chegava lá quase nunca era a hora em que eu estava olhando.

O problema nunca foi falta de informação. Era falta de aviso.

Foi aí que montei meu próprio alerta de preço dentro do Google Sheets, usando a função GOOGLEFINANCE junto com o Google Apps Script. Ele roda sozinho, chega no e-mail e funciona no celular e no computador. E você não precisa saber programar para configurar.

Neste guia, você vai montar esse sistema do zero: a planilha, o script, o teste e a automação.

O Que Você Vai Precisar

  • Uma conta Google.
  • Acesso ao Google Sheets.
  • Um e-mail para receber os alertas.
  • Cerca de 15 minutos de configuração.

Só o que a sua conta Google já oferece de graça — nenhuma API paga envolvida.

A Regra Que Faz o Alerta Funcionar

Antes de montar qualquer coisa, vale entender a lógica — é ela que evita que você preencha a planilha errado.

Existem duas situações completamente diferentes quando se acompanha o preço de uma ação, e cada uma pede uma referência própria:

  • Você Já Tem o Ativo na Carteira: A referência é o seu preço médio. O alerta avisa quando a cotação volta ao valor que você já pagou — momento de avaliar um novo aporte.
  • Você Ainda Não Tem o Ativo: A referência é o preço alvo. É o valor que você definiu como entrada para colocar aquela ação na carteira pela primeira vez.

Em Resumo: Preencha o Preço Médio para o que você já tem e o Preço Alvo para o que você ainda quer comprar. O script identifica sozinho qual usar — não é preciso configurar nada além disso.

Passo 1 — Monte a Planilha

Abra o Google Sheets e crie uma planilha nova. Renomeie a aba para alvos — o script procura exatamente por esse nome, e é o erro mais comum de quem monta pela primeira vez.

Monte as colunas nesta ordem:

AtivoPreço MédioPreço AlvoCotação AtualAlerta Enviado
BVMF:PSSA324,59Fórmula
BVMF:TOTS326,69Fórmula
BVMF:ITSA49,80Fórmula

Nas duas primeiras linhas, os ativos já estão na carteira — por isso só o Preço Médio está preenchido. Na terceira, o ativo ainda não foi comprado, então a referência é o Preço Alvo.

Agora entenda cada coluna:

  • Ativo: O código de negociação. Para ações da B3, use o prefixo BVMF: antes do ticker. Para americanas, NASDAQ: ou NYSE:.
  • Preço Médio: Quanto você pagou, em média, pelo ativo que já tem.
  • Preço Alvo: O preço de entrada que você quer para um ativo que ainda não comprou.
  • Cotação Atual: Preenchida por fórmula, automaticamente.
  • Alerta Enviado: Deixe em branco. O script escreve aqui depois de mandar o e-mail, para não repetir o mesmo aviso todo dia.

Na coluna D, a partir da linha 2, use a função GOOGLEFINANCE para buscar a cotação:

=GOOGLEFINANCE(A2;"price")

Repare que a fórmula aponta para a coluna A, que é onde está o código do ativo. Se a sua planilha estiver configurada com separador por vírgula, troque o ponto e vírgula: =GOOGLEFINANCE(A2,"price").

Atenção: Por ser um serviço gratuito, o GOOGLEFINANCE ocasionalmente devolve valores estranhos. Já aconteceu comigo com a cotação da WEG, que veio distorcida por alguns dias. Quando isso ocorrer, dá para substituir a fórmula por um valor digitado na mão até normalizar.

Passo 2 — Entenda o Que o Script Faz

Antes de colar o código, vale saber o que ele executa em cada rodada:

  • Lê cada linha preenchida da aba.
  • Verifica se existe preço médio. Se existir, é ele a referência; se não, usa o preço alvo.
  • Compara a cotação atual com essa referência.
  • Se a cotação estiver igual ou abaixo, envia um e-mail.
  • Escreve “Enviado” na coluna E para não mandar o mesmo aviso de novo.

Passo 3 — Crie o Script de Alerta

Com a planilha aberta, vá em Extensões → Apps Script. Uma aba nova abre com o editor de código. Apague todo o conteúdo padrão e cole o script abaixo:

function verificarAlertaDePreco() {
  const aba = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("alvos");
  if (!aba) {
    throw new Error('Aba "alvos" nao encontrada. Renomeie a aba da planilha para: alvos');
  }

  const ultimaLinha = aba.getLastRow();
  if (ultimaLinha < 2) return; // planilha so com o cabecalho

  const dados = aba.getRange(2, 1, ultimaLinha - 1, 5).getValues(); // A2:E
  const email = Session.getActiveUser().getEmail();

  for (let i = 0; i < dados.length; i++) {
    const ativo        = String(dados[i][0]).trim();   // A - Ativo
    const precoMedio   = parseFloat(dados[i][1]);      // B - Preco Medio
    const precoAlvo    = parseFloat(dados[i][2]);      // C - Preco Alvo
    const cotacaoAtual = parseFloat(dados[i][3]);      // D - Cotacao Atual
    const jaEnviado    = String(dados[i][4]).trim();   // E - Alerta Enviado

    if (!ativo || isNaN(cotacaoAtual) || jaEnviado) continue;

    // Se voce ja tem o ativo (preco medio preenchido), o gatilho e o preco medio.
    // Se ainda nao tem, o gatilho e o preco alvo de entrada.
    const temMedio = !isNaN(precoMedio) && precoMedio > 0;
    const referencia = temMedio ? precoMedio : precoAlvo;
    if (isNaN(referencia)) continue;

    if (cotacaoAtual <= referencia) {
      const brl = (v) => v.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });

      const assunto = temMedio
        ? `${ativo} voltou ao seu preco medio`
        : `${ativo} chegou ao seu preco de entrada`;

      let mensagem = `${ativo} esta cotado a ${brl(cotacaoAtual)}.\n`;

      if (temMedio) {
        const variacao = ((cotacaoAtual - precoMedio) / precoMedio) * 100;
        mensagem += `Seu preco medio e ${brl(precoMedio)} - a cotacao esta ${variacao.toFixed(1)}% em relacao a ele.\n`;
        mensagem += `Pode ser momento de avaliar um aporte.\n`;
      } else {
        mensagem += `Seu preco alvo de entrada era ${brl(precoAlvo)}.\n`;
        mensagem += `O ativo ainda nao esta na sua carteira.\n`;
      }

      MailApp.sendEmail(email, assunto, mensagem);
      aba.getRange(i + 2, 5).setValue("Enviado");
    }
  }
}

Clique em Salvar e dê um nome ao projeto, como AlertaAcoes.

Passo 4 — Teste o Script Manualmente

Antes de automatizar, force um envio para confirmar que está tudo certo:

  • Coloque temporariamente um preço médio bem acima da cotação atual, em uma das linhas.
  • No editor do Apps Script, selecione a função verificarAlertaDePreco e clique em Executar.
  • Na primeira execução, o Google pede autorização de acesso à planilha e ao envio de e-mail. Clique em Permitir.
  • Confira a caixa de entrada em alguns segundos.

Se o e-mail chegou, está funcionando. Devolva o preço médio ao valor real e apague o “Enviado” que o script escreveu na coluna E.

Passo 5 — Configure a Execução Automática

Rodar o script na mão todo dia derruba o propósito da automação. Ainda no editor do Apps Script, clique no ícone de relógio (Acionadores) no menu lateral e depois em Adicionar acionador.

Configure assim:

  • Função a Ser Executada: verificarAlertaDePreco.
  • Origem do Evento: Baseado em tempo.
  • Tipo de Acionador: Contador de horas ou contador de dias, conforme a frequência que você quer.
  • Notificações de Falha: Diariamente, para você saber se o script parou de rodar.

Sobre a frequência, vale pensar no seu perfil. Uma vez por dia, em um horário fixo dentro do pregão, é o suficiente para quem faz aportes planejados — é como eu uso. De hora em hora cobre o dia inteiro e captura oscilações intradiárias que um único disparo perderia, e ainda assim fica muito longe do limite de envios.

Salve. A partir daqui, o monitoramento roda sozinho.

Como Reativar o Alerta

Depois que o e-mail chega e você toma sua decisão, o alerta daquele ativo fica desligado até você reativá-lo. Para isso, apague o conteúdo da coluna E na linha correspondente.

Se você comprou o ativo, aproveite para atualizar o preço médio — e, no caso de uma primeira compra, transfira o valor da coluna Preço Alvo para a coluna Preço Médio. A partir daí, o gatilho daquela linha passa a ser o novo preço médio, automaticamente.

Alerta de preço de ações: gráfico de candlestick do mercado em notebook sobre mesa de madeira clara.
Imagem via IA

Limitações Que Você Precisa Conhecer

Nenhuma solução gratuita é perfeita, e conhecer os limites antes evita frustração depois.

A Cotação Tem Atraso

O GOOGLEFINANCE trabalha com um atraso de 15 a 20 minutos. Não é cotação em tempo real. Para operações de curtíssimo prazo, como day trade, essa solução não serve.

Para quem investe em prazos mais longos, o atraso é irrelevante. Eu invisto em buy and hold e faço compras pontuais — nesse tipo de estratégia, vinte minutos não mudam a decisão.

Existe Cota de Envio de E-mail

Contas Google gratuitas podem enviar até 100 e-mails por dia pelo Apps Script. Como cada ativo dispara no máximo um aviso até você limpar a coluna E, é praticamente impossível uma carteira pessoal esbarrar nesse teto.

O Alerta Não Decide por Você

Um preço atingido é só um preço atingido. A cotação pode ter caído por um motivo relevante sobre a empresa, e não por uma oscilação passageira. O script avisa que o número chegou onde você marcou — a análise continua sendo sua.

O Que Muda Quando o Monitoramento Não Depende de Você

Com pouco mais de trinta linhas de código e uma planilha simples, você tem um alerta de preço de ações rodando por conta própria.

A diferença prática é menos sobre tecnologia e mais sobre atenção. Você define o preço uma vez, e o sistema assume a vigilância. Em vez de checar cotações por impulso, você age quando existe um motivo concreto para agir.

Se quiser expandir a planilha, o caminho natural é acrescentar o câmbio ao acompanhamento — mostrei como fazer isso em Como Integrar a API do Dólar no Google Sheets com Python. E se a ideia for organizar as finanças antes de investir, a base está em Planilha de Orçamento Doméstico.

Aviso: Este conteúdo tem caráter exclusivamente informativo e educativo e não constitui recomendação de investimento, produto financeiro, serviço bancário ou consultoria individual. Sempre avalie seu perfil e, se necessário, procure um profissional especializado. Para mais detalhes, consulte nosso Aviso Legal.

COMPARTILHE