Benachrichtigungen zu Aktienkursvergünstigungen erhalten

Codierungslevel: Anfänger
Dauer: 5 Minuten
Projekttyp: Automatisierung mit einem zeitgesteuerten Trigger

Zielsetzungen

  • Informieren Sie sich über die Funktionsweise der Lösung.
  • Informationen zu den Aufgaben der Apps Script-Dienste in der Lösung
  • Richten Sie das Script ein.
  • Führen Sie das Skript aus.

Informationen zu dieser Lösung

Wenn Sie eine Aktie kaufen und der Wert sinkt, können Sie diese Aktie verkaufen, eine andere kaufen und einen Steuerabzug geltend machen. Dies wird als Steuerverlust bezeichnet. Sie können Ihre Aktien in einer Google Tabellen-Tabelle auflisten und E-Mail-Benachrichtigungen erhalten, wenn der Aktienkurs unter den Kaufpreis fällt.

Screenshot einer Google-Tabelle mit Aktienkursen und einer Gmail-E-Mail-Benachrichtigung

Funktionsweise

In der Tabelle werden die aktuellen Aktienkurse mithilfe der vordefinierten Google Finanzen-Funktion in Google Tabellen abgerufen. Das Script vergleicht den Kaufpreis jeder aufgeführten Aktie mit ihrem aktuellen Preis. Sie erhalten dann eine E-Mail mit einer Liste der Aktien, die unter den Kaufpreis gefallen sind. Sie können das Script so einstellen, dass es beliebig oft ausgeführt wird.

Apps Script-Dienste

Für diese Lösung werden die folgenden Dienste verwendet:

  • Tabellendienst: Durchläuft alle aufgeführten Aktien und vergleicht den Aktienkurs mit dem Kaufpreis.
  • Gmail-Dienst: Es wird eine E-Mail mit den Aktien erstellt und gesendet, die unter den Kaufpreis gefallen sind.

Vorbereitung

Für die Verwendung dieses Beispiels sind die folgenden Voraussetzungen erforderlich:

  • Ein Google-Konto (für Google Workspace-Konten ist möglicherweise die Administratorzustimmung erforderlich).
  • Einen Webbrowser mit Internetzugriff.

Script einrichten

  1. Klicken Sie auf die folgende Schaltfläche, um eine Kopie der Beispieltabelle Benachrichtigungen zur Steuerminderung zu erstellen. Das Apps Script-Projekt für diese Lösung ist an die Tabelle angehängt.
    Kopie erstellen
  2. Aktualisieren Sie die Tabelle in der kopierten Tabelle mit Ihren eigenen Lagerbeständen oder verwenden Sie die bereitgestellten Testdaten.

Skript ausführen

  1. Klicken Sie in der kopierten Tabelle auf Erweiterungen > Apps Script.
  2. Wählen Sie im Drop-down-Menü „Funktion“ die Option checkLosses aus.
  3. Klicken Sie auf Ausführen.
  4. Autorisieren Sie das Script, wenn Sie dazu aufgefordert werden. Wenn auf dem OAuth-Zustimmungsbildschirm die Warnung Diese App ist nicht bestätigt angezeigt wird, wählen Sie Erweitert > Zu {Project Name} (unsicher) aus.

  5. In Ihrer E-Mail finden Sie eine Liste der Aktien, die unter den Kaufpreis gefallen sind. Wenn Sie keine E-Mail erhalten haben, prüfen Sie, ob einer der Aktienkurse in Ihrer Liste unter dem Kaufpreis liegt.

Zeitbasierten Trigger erstellen

  1. Kehren Sie zum Script-Projekt zurück.
  2. Klicken Sie links auf Trigger .
  3. Klicken Sie rechts unten auf Trigger hinzufügen.
  4. Achten Sie darauf, dass unter Auszuführende Funktion auswählen die Option checkLosses ausgewählt ist.
  5. Wählen Sie unter Ereignisquelle auswählen die Option Zeitgesteuert aus.
  6. Legen Sie fest, wie oft das Script ausgeführt werden soll, und klicken Sie auf Speichern.

Code ansehen

Wenn Sie den Apps Script-Code für diese Lösung ansehen möchten, klicken Sie unten auf Quellcode ansehen:

Quellcode ansehen

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,

  });
}

Beitragende

Dieses Muster wurde von Jeremy Glassenberg, Berater für Produktmanagement und Plattformstrategie, erstellt. Jeremy findest du auf Twitter unter @jglassenberg.

Dieses Beispiel wird von Google mithilfe von Google Developer Experts verwaltet.

Nächste Schritte