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 cosa fa la soluzione.
  • Scopri cosa fanno i servizi Apps Script all'interno della soluzione.
  • Configura lo script.
  • Esegui lo script.

Informazioni su questa soluzione

Se acquisti un'azione e il suo valore diminuisce, puoi venderla, acquistarne un'altra e richiedere una detrazione fiscale. Questa operazione è nota come compensazione delle perdite fiscali. Elenca le tue azioni in un foglio di lavoro Fogli Google e ricevi avvisi via email se il prezzo di un'azione scende al di sotto del prezzo di acquisto.

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

Come funziona

Il foglio di lavoro utilizza la funzione integrata Google Finance in Fogli per ottenere i prezzi attuali delle azioni. Lo script confronta il prezzo di acquisto di ogni azione quotata con il suo prezzo attuale. Poi ti invia un'email con un elenco di azioni che sono scese al di sotto del prezzo di acquisto. Puoi impostare l'esecuzione dello script tutte le volte che vuoi.

Servizi Apps Script

Questa soluzione utilizza i seguenti servizi:

  • Servizio di fogli di lavoro: scorre ogni azione elencata e confronta il prezzo delle azioni con il prezzo di acquisto.
  • Servizio Gmail: crea e invia un'email con i titoli che sono scesi 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 compensazione delle perdite fiscali. 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 sulle scorte o utilizza i dati di test forniti.

Esegui lo script

  1. Nel foglio di lavoro copiato, fai clic su Estensioni > Apps Script.
  2. Nel menu a discesa delle funzioni, seleziona checkLosses.
  3. Fai clic su Esegui.
  4. Quando ti viene richiesto, autorizza lo script. Se nella schermata per il consenso OAuth viene visualizzato l'avviso Questa app non è verificata, continua selezionando Avanzate > Vai a {Project Name} (non sicuro).

  5. Controlla la tua email per un elenco di azioni che sono scese al di sotto del prezzo di acquisto. Se non hai ricevuto un'email, controlla se i prezzi delle azioni nel tuo elenco sono inferiori al prezzo di acquisto.

Creare un trigger basato sul tempo

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

Esamina il codice

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

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
  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,

  });
}

Collaboratori

Questo esempio è stato creato da Jeremy Glassenberg, consulente per la strategia di gestione dei prodotti e delle piattaforme. Trova Jeremy su Twitter @jglassenberg.

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

Passaggi successivi