Benachrichtigungen zu Aktienkursvergünstigungen erhalten

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

Lernziele

  • Verstehen, was die Lösung bewirkt.
  • Informationen zur Funktionsweise der Apps Script-Dienste in der Lösung.
  • Richten Sie das Skript ein.
  • Führen Sie das Skript aus.

Informationen zu dieser Lösung

Wenn Sie eine Aktie kaufen und ihr Wert sinkt, können Sie diese Aktie verkaufen, eine andere kaufen und eine Steuererklärung einreichen. Dies wird als Steuerverlustrealisierung bezeichnet. Sie können Ihre Aktien in einer Google-Tabellen-Kalkulation 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 wird die integrierte Google Finance-Funktion in Google Sheets verwendet, um die aktuellen Aktienkurse abzurufen. Im Script wird der Kaufpreis jeder aufgeführten Aktie mit ihrem aktuellen Preis verglichen. Anschließend erhalten Sie eine E-Mail mit einer Liste der Aktien, deren Kurs unter den Kaufpreis gefallen ist. Sie können festlegen, wie oft das Skript ausgeführt werden soll.

Apps Script-Dienste

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

  • Tabellendienst: Durchläuft jede aufgeführte Aktie und vergleicht den Aktienkurs mit dem Kaufpreis.
  • Gmail-Dienst: Erstellt und sendet eine E-Mail mit den Aktien, deren Kurs unter den Kaufpreis gefallen ist.

Vorbereitung

Für dieses Beispiel müssen die folgenden Voraussetzungen erfüllt sein:

  • Ein Google-Konto (für Google Workspace-Konten ist möglicherweise die Genehmigung durch den Administrator erforderlich).
  • Ein Webbrowser mit Internetzugriff.

Skript einrichten

  1. Klicken Sie auf die folgende Schaltfläche, um eine Kopie der Beispieltabellenkalkulation Benachrichtigungen zur Verlustrealisierung 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 Tabellenkalkulation mit Ihren eigenen Lagerinformationen 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ü für Funktionen checkLosses aus.
  3. Klicken Sie auf Ausführen.
  4. Autorisieren Sie das Skript, wenn Sie dazu aufgefordert werden. Wenn auf dem OAuth-Zustimmungsbildschirm die Warnung Diese App ist nicht verifiziert angezeigt wird, wählen Sie Erweitert > Zu {Projektname} (unsicher) aus.

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

Zeitgesteuerte Trigger erstellen

  1. Kehren Sie zum Skriptprojekt 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. Konfigurieren Sie, 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 Beispiel wurde von Jeremy Glassenberg, Product Management and Platform Strategy Consultant, erstellt. Du findest Jeremy auf Twitter unter @jglassenberg.

Dieses Beispiel wird von Google mit Unterstützung von Google Developer Experts verwaltet.

Nächste Schritte