Otrzymuj alerty o obniżce ceny akcji

Poziom kodowania: początkujący
Czas trwania: 5 minut
Typ projektu: automatyzacja z wyzwalaczem opartym na czasie

Cele

  • Dowiedz się, co robi rozwiązanie.
  • Dowiedz się, jakie funkcje pełnią usługi Apps Script w rozwiązaniu.
  • Skonfiguruj skrypt.
  • Uruchom skrypt.

Informacje o rozwiązaniu

Jeśli kupisz akcje, a ich wartość spadnie, możesz je sprzedać, kupić inne i skorzystać z odliczenia podatkowego. Takie działanie nazywa się optymalizacją podatkową. Umieść swoje akcje w arkuszu kalkulacyjnym Arkuszy Google i otrzymuj e-maile z powiadomieniami, jeśli cena akcji spadnie poniżej ceny zakupu.

Zrzut ekranu Arkusza Google z cenami akcji i alertem e-mail w Gmailu.

Jak to działa

Arkusze korzystają z wbudowanej funkcji Finansów Google, aby pobierać aktualne ceny akcji. Skrypt porównuje cenę zakupu każdej akcji z jej obecną ceną. Następnie wysyła e-maila z listą akcji, których cena spadła poniżej ceny zakupu. Skrypt możesz uruchamiać tak często, jak chcesz.

Usługi Apps Script

To rozwiązanie korzysta z tych usług:

  • Usługa arkusza kalkulacyjnego – sprawdza każdą wymienioną akcję i porównuje jej cenę z ceną zakupu.
  • Usługa Gmail – tworzy i wysyła e-maila z informacją o akcjach, których cena spadła poniżej ceny zakupu.

Wymagania wstępne

Aby użyć tego przykładu, musisz spełnić te wymagania wstępne:

  • Konto Google (w przypadku kont Google Workspace może być wymagana zgoda administratora).
  • przeglądarkę internetową z dostępem do internetu,

Konfigurowanie skryptu

  1. Kliknij poniższy przycisk, aby utworzyć kopię przykładowego arkusza kalkulacyjnego Alerty dotyczące optymalizacji podatkowej. Projekt Apps Script dla tego rozwiązania jest dołączony do arkusza kalkulacyjnego.
    Utwórz kopię
  2. W skopiowanym arkuszu kalkulacyjnym zaktualizuj arkusz o własne informacje o asortymencie lub użyj podanych danych testowych.

Uruchamianie skryptu

  1. W skopiowanym arkuszu kalkulacyjnym kliknij Rozszerzenia > Apps Script.
  2. W menu funkcji wybierz checkLosses.
  3. Kliknij Wykonaj.
  4. Gdy pojawi się odpowiedni komunikat, autoryzuj skrypt. Jeśli na ekranie zgody OAuth wyświetla się ostrzeżenie Ta aplikacja nie została zweryfikowana, kliknij kolejno Zaawansowane > Otwórz {Project Name} (niebezpieczne).

  5. Sprawdź w e-mailu listę akcji, których cena spadła poniżej ceny zakupu. Jeśli nie otrzymasz e-maila, sprawdź, czy któraś z cen akcji na liście jest niższa niż cena zakupu.

Tworzenie aktywatora opartego na czasie

  1. Wróć do projektu skryptu.
  2. Po lewej stronie kliknij Reguły .
  3. W prawym dolnym rogu kliknij Dodaj wyzwalacz.
  4. W sekcji Wybierz funkcję do uruchomienia sprawdź, czy wybrana jest opcja checkLosses.
  5. W sekcji Wybierz źródło zdarzeń kliknij Oparte na czasie.
  6. Skonfiguruj, jak często ma być uruchamiany skrypt, i kliknij Zapisz.

Sprawdź kod

Aby sprawdzić kod Apps Script tego rozwiązania, kliknij poniżej Wyświetl kod źródłowy:

Pokaż kod źródłowy

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,

  });
}

Współtwórcy

Ten przykład został utworzony przez Jeremy'ego Glassenberga, konsultanta ds. zarządzania produktem i strategii platformy. Znajdź Jeremiego na Twitterze: @jglassenberg.

Ten przykład jest obsługiwany przez Google przy pomocy ekspertów Google ds. programowania.

Dalsze kroki