Ricevi avvisi sulle riduzioni di prezzo delle azioni

Livello di programmazione: principiante
Durata: 5 minuti
Tipo di progetto: automazione con un attivatore a tempo

Obiettivi

  • Scopri cosa fa la soluzione.
  • Scopri cosa fanno i servizi Apps Script all'interno di questa soluzione.
  • Configura lo script.
  • Esegui lo script.

Informazioni su questa soluzione

Se acquisti un'azione e il relativo valore cala, puoi venderla, acquistarne un'altra e richiedere una detrazione fiscale. Questo processo è noto come raccolta di perdite fiscali. Elenca le tue azioni in un foglio di lavoro di Fogli Google e ricevi avvisi via email se la quotazione di un'azione scende al di sotto del relativo 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 di Google Finanza in Fogli per ottenere i prezzi correnti delle azioni. Lo script confronta il prezzo di acquisto di ogni azione quotata con il suo prezzo corrente. Poi ti invia via email l'elenco delle azioni che sono scese al di sotto del prezzo di acquisto. Puoi configurare lo script in modo che venga eseguito tutte le volte che vuoi.

Servizi Apps Script

Questa soluzione utilizza i seguenti servizi:

  • Servizio fogli di lavoro: esegue il loop di ogni azione quotata e confronta il prezzo dell'azione con il prezzo di acquisto.
  • Servizio Gmail: crea e invia un'email delle azioni che sono scese al di sotto del loro prezzo di acquisto.

Prerequisiti

Per utilizzare questo esempio, devi disporre dei seguenti prerequisiti:

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

Configura lo script

  1. Fai clic sul pulsante seguente per creare una copia del foglio di lavoro di esempio per gli avvisi di perdita fiscale. 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 azionarie oppure 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 della funzione, seleziona checkLosses.
  3. Fai clic su Esegui.
  4. Quando richiesto, autorizza lo script. Se nella schermata per il consenso OAuth viene visualizzato l'avviso Questa app non è verificata, continua selezionando Avanzate > Vai a {Nome progetto} (non sicuro).

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

Crea un trigger basato sul tempo

  1. Torna al progetto di script.
  2. A sinistra, fai clic su Attivatori .
  3. Fai clic su Aggiungi attivatore in basso a destra.
  4. Per Scegli quale funzione eseguire, assicurati che checkLosses sia selezionato.
  5. Per Seleziona origine evento, scegli A tempo.
  6. Configura la frequenza di esecuzione dello script e fai clic su Salva.

Rivedi il codice

Per esaminare il codice Apps Script di 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 campione è stato creato da Jeremy Glassenberg, Product Management and Platform Strategy Consultant. Trova Jeremy su Twitter @jglassenberg.

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

Passaggi successivi