Receber alertas de redução no preço de ações

Nível de programação: iniciante
Duração: 5 minutos
Tipo de projeto: automação com um acionador baseado em tempo

Objetivos

  • Entenda o que a solução faz.
  • Entenda o que os serviços do Apps Script fazem na solução.
  • Configure o script.
  • Execute o script.

Sobre esta solução

Se você comprar uma ação e o valor diminuir, será possível vender essa ação, comprar outra e reivindicar uma dedução fiscal. Isso é conhecido como uma colheita da perda de impostos. Liste suas ações em uma planilha do Planilhas Google e receba alertas por e-mail se o preço de uma ação ficar abaixo do preço de compra.

Captura de tela de uma planilha Google com preços de ações e um alerta por e-mail do Gmail.

Como funciona

A planilha usa a função integrada do Google Finanças no app Planilhas para conferir os preços atuais das ações. O script compara o preço de compra de cada ação listada com o preço atual. Em seguida, ele envia por e-mail uma lista de ações que caíram abaixo do preço de compra. É possível configurar o script para ser executado com a frequência que você quiser.

Serviços do Apps Script

Essa solução usa os seguintes serviços:

  • Serviço de planilha: repete cada ação listada e compara o preço da ação com o preço de compra.
  • Serviço do Gmail: cria e envia um e-mail com as ações que caíram abaixo do preço de compra.

Pré-requisitos

Para usar essa amostra, você precisa dos seguintes pré-requisitos:

  • Uma Conta do Google (contas do Google Workspace podem exigir a aprovação do administrador).
  • Um navegador da Web com acesso à Internet.

Configurar o script

  1. Clique no botão a seguir para fazer uma cópia da planilha de exemplo Alertas de coleta de perda fiscal. O projeto do Apps Script para esta solução é anexado à planilha.
    Fazer uma cópia
  2. Na planilha copiada, atualize-a com suas próprias informações sobre ações ou use os dados de teste fornecidos.

Executar o script

  1. Na planilha copiada, clique em Extensões > Apps Script.
  2. No menu suspenso da função, selecione checkLosses.
  3. Clique em Executar.
  4. Quando solicitado, autorize o script. Se a tela de permissão OAuth mostrar o aviso Este app não foi verificado, continue selecionando Avançado > Acessar {Nome do projeto} (não seguro).

  5. Verifique seu e-mail para ver uma lista de ações que caíram abaixo do preço de compra. Se você não recebeu um e-mail, verifique se algum dos preços das ações na sua lista está abaixo do preço de compra.

Criar um gatilho orientado por tempo

  1. Volte ao projeto do script.
  2. À esquerda, clique em Gatilhos .
  3. No canto inferior direito, clique em Adicionar acionador.
  4. Em Escolher qual função executar, verifique se checkLosses está selecionado.
  5. Em Selecionar origem do evento, escolha Baseado em tempo.
  6. Configure a frequência de execução do script e clique em Salvar.

Revisar o código

Para analisar o código do Apps Script para esta solução, clique em Ver código-fonte abaixo:

Ver o código-fonte

Code.gs

solutions/automations/tax-loss-harvest-alerts/Code.js
// To learn how to use this script, refer to the documentation:
// https://developers.google.com/apps-script/samples/automations/tax-loss-harvest-alerts

/*
Copyright 2022 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

/** 
* Checks for losses in the sheet.
*/
function checkLosses() {
  // Pulls data from the spreadsheet
  let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(
    "Calculations"
  );
  let source = sheet.getRange("A:G");
  let data = source.getValues();

  //Prepares the email alert content
  let message = "Stocks: <br><br>";

  let send_message = false;

  console.log("starting loop");

  //Loops through the cells in the spreadsheet to find cells where the stock fell below purchase price
  let n = 0;
  for (let i in data) {
    //Skips the first row
    if (n++ == 0) continue;

    //Loads the current row
    let row = data[i];

    console.log(row[1]);
    console.log(row[6]);

    //Once at the end of the list, exits the loop
    if (row[1] == "") break;

    //If value is below purchase price, adds stock ticker and difference to list of tax loss opportunities
    if (row[6] < 0) {
      message +=
        row[1] +
        ": " +
        (parseFloat(row[6].toString()) * 100).toFixed(2).toString() +
        "%<br>";
      send_message = true;
    }
  }
  if (!send_message) return;

  MailApp.sendEmail({
    to: SpreadsheetApp.getActiveSpreadsheet().getOwner().getEmail(),
    subject: "Tax-loss harvest",
    htmlBody: message,

  });
}

Colaboradores

Esta amostra foi criada por Jeremy Glassenberg, consultor de estratégia da plataforma e gerenciamento de produtos. Encontre Jeremy no Twitter @jwindowenberg (em inglês).

Esta amostra é mantida pelo Google com a ajuda de especialistas do Google Developers.

Próximas etapas