Ricevi avvisi sulle riduzioni di prezzo delle azioni

Livello di codifica: principiante
Durata: 5 minuti
Tipo di progetto: automazione con un attivatore basato sul tempo

Obiettivi

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

Informazioni su questa soluzione

Se acquisti un'azione e il valore cala, puoi venderla, acquistarne un'altra e richiedere una detrazione fiscale. Questa pratica è nota come tassazione delle perdite. Elenca le tue azioni in un foglio di lavoro di 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 di Google Finanza in Fogli per ottenere i prezzi correnti delle azioni. Lo script confronta il prezzo di acquisto di ogni azione elencata con il suo prezzo corrente. Poi ti invia un'email con un elenco di titoli che sono scesi al di sotto del prezzo di acquisto. Puoi impostare lo script in modo che venga eseguito tutte le volte che vuoi.

Servizi Apps Script

Questa soluzione utilizza i seguenti servizi:

  • Servizio di foglio di lavoro: esegue un ciclo per ogni azione elencata e confronta il prezzo dell'azione con il prezzo di acquisto.
  • Servizio Gmail: crea e invia un'email con le azioni che sono scese al di sotto del prezzo di acquisto.

Prerequisiti

Per utilizzare questo esempio, sono necessari 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 seguente pulsante per creare una copia del foglio di lavoro di esempio Avvisi di recupero 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 di magazzino 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 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. Riceverai un'email con un elenco di azioni che sono scese al di sotto del prezzo di acquisto. Se non hai ricevuto un'email, controlla se i prezzi di magazzino nel tuo elenco sono inferiori al prezzo di acquisto.

Creare un trigger basato sul tempo

  1. Torna al progetto di 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 checkLosses.
  5. In Seleziona l'origine evento, seleziona In base al tempo.
  6. Configura la frequenza di esecuzione dello script e fai clic su Salva.

Esamina il codice

Per esaminare il codice di 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. Puoi trovare Jeremy su Twitter @jglassenberg.

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

Passaggi successivi