Ricevi avvisi sulle riduzioni di prezzo delle azioni

Livello di programmazione: principiante
Durata: 5 minuti
Tipo di progetto: automazione con un trigger basato sul tempo

Obiettivi

  • Comprendere il funzionamento della soluzione.
  • Comprendere il funzionamento dei servizi Apps Script all'interno della soluzione.
  • Configurare lo script.
  • Eseguire lo script.

Informazioni su questa soluzione

Se acquisti un titolo e il suo valore diminuisce, puoi venderlo, acquistarne un altro e richiedere una detrazione fiscale. Questa operazione è nota come "tax loss harvesting". Elenca i tuoi titoli in un foglio di lavoro di Fogli Google e ricevi avvisi via email se il prezzo di un titolo scende al di sotto del prezzo di acquisto.

Foglio Google con i prezzi delle azioni e un avviso via email di Gmail.

Come funziona

Il foglio di lavoro utilizza la funzione integrata di Google Finanza in Fogli per ottenere i prezzi attuali dei titoli. Lo script confronta il prezzo di acquisto di ogni titolo elencato con il suo prezzo attuale. Poi ti invia via email un elenco di titoli il cui prezzo è sceso al di sotto del prezzo di acquisto. Puoi impostare l'esecuzione dello script con la frequenza che preferisci.

Servizi Apps Script

Questa soluzione utilizza i seguenti servizi:

  • Servizio Fogli: scorre ogni titolo elencato e confronta il prezzo del titolo con il prezzo di acquisto.
  • Servizio Gmail: crea e invia un' email con i titoli il cui prezzo è sceso al di sotto del prezzo di acquisto.

Prerequisiti

Per utilizzare questo esempio, devi soddisfare i seguenti prerequisiti:

  • Un Account Google (gli account Google Workspace potrebbero richiedere l'approvazione dell'amministratore).
  • Un browser web con accesso a internet.

Configurare lo script

  1. Fai clic sul pulsante seguente per creare una copia del foglio di lavoro di esempio Avvisi di tax loss harvesting. Il progetto Apps Script per questa soluzione è allegato al foglio di lavoro.

    Crea una copia

  2. Nel foglio di lavoro copiato, aggiorna il foglio con le tue informazioni sui titoli o utilizza i dati di test forniti.

Eseguire lo script

  1. Nel foglio di lavoro copiato, seleziona Estensioni > Apps Script.
  2. Nel menu a discesa della funzione, seleziona checkLosses.
  3. Fai clic su Esegui.
  4. Quando ti viene richiesto, autorizza lo script. <<../_snippets/oauth.md>>
  5. Controlla la tua email per un elenco di titoli il cui prezzo è sceso al di sotto del prezzo di acquisto. Se non hai ricevuto un'email, controlla se uno dei prezzi dei titoli nell'elenco è inferiore al prezzo di acquisto.

Creare un trigger basato sul tempo

  1. Torna al progetto di script.
  2. A sinistra, fai clic su Trigger .
  3. In basso a destra, fai clic su Aggiungi trigger.
  4. Per Scegli la funzione da eseguire, assicurati che sia selezionata checkLosses.
  5. Per Seleziona origine evento, seleziona Basato sul tempo.
  6. Configura la frequenza di esecuzione dello script e fai clic su Salva.

Esaminare il codice

Per esaminare il codice Apps Script per questa soluzione, fai clic su Visualizza codice sorgente:

Visualizza codice sorgente

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
  const sheet =
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Calculations");
  const source = sheet.getRange("A:G");
  const 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 (const i in data) {
    //Skips the first row
    if (n++ === 0) continue;

    //Loads the current row
    const 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]}: ${(Number.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,
  });
}

Collaboratori

Questo esempio è stato creato da Jeremy Glassenberg, consulente di gestione dei prodotti e strategia della piattaforma. Trova Jeremy su Twitter @jglassenberg.

Questo esempio è gestito da Google con l'aiuto degli Esperti Google Developers.

Passaggi successivi