Otrzymuj alerty o obniżce ceny akcji

Poziom umiejętności programowania: początkujący
Czas trwania: 5 minut
Typ projektu: automatyzacja z regułą opartą na czasie

Cele

  • Dowiedz się, na czym polega działanie rozwiązania.
  • Dowiedz się, jak usługi Apps Script działają w ramach rozwiązania.
  • 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ę gromadzeniem strat podatkowych. Wyświetlaj swoje akcje w arkuszu programu Arkusze Google i otrzymuj e-maile z powiadomieniami, gdy cena akcji spadnie poniżej ceny zakupu.

Zrzut ekranu arkusza kalkulacyjnego Google z cenami akcji i alertem e-mailowym w Gmailu.

Jak to działa

Arkusz kalkulacyjny używa wbudowanej funkcji Google Finance w Arkuszach, aby uzyskać aktualne ceny akcji. Skrypt porównuje cenę zakupu każdego z wylistowanych papierów wartościowych z ich aktualną ceną. Następnie wysyła e-maila z listą akcji, których cena spadła poniżej ceny zakupu. Możesz ustawić skrypt tak, aby działał tak często, jak chcesz.

Usługi Apps Script

To rozwiązanie korzysta z tych usług:

  • Usługa arkusza kalkulacyjnego – przewija wszystkie wymienione akcje i porównuje ich cenę z ceną zakupu.
  • Usługa Gmail – tworzy i wysyła e-maila z informacjami o akcjach, które spadły poniżej ceny zakupu.

Wymagania wstępne

Aby skorzystać z tego szablonu, musisz spełnić te wymagania wstępne:

  • Konto Google (konta Google Workspace mogą wymagać zatwierdzenia przez administratora).
  • przeglądarka internetowa z dostępem do internetu;

Konfigurowanie skryptu

  1. Kliknij przycisk poniżej, aby utworzyć kopię przykładowego arkusza kalkulacyjnego Tax loss harvest alerts. Projekt Apps Script odpowiadający temu rozwiązaniu jest dołączony do arkusza kalkulacyjnego.
    Utwórz kopię
  2. W skopiowanym arkuszu kalkulacyjnym zaktualizuj arkusz własnymi informacjami o stanie magazynowym 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, kontynuuj, wybierając Zaawansowane > Przejdź do {Nazwa projektu} (niebezpieczne).

  5. Sprawdź pocztę e-mail, aby zobaczyć listę akcji, których cena spadła poniżej ceny zakupu. Jeśli nie otrzymasz e-maila, sprawdź, czy któryś z cen produktów na liście jest niższy niż cena zakupu.

Tworzenie reguły opartej 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 polu Wybierz źródło zdarzeń kliknij Użytkownik.
  6. Skonfiguruj, jak często ma się uruchamiany skrypt, i kliknij Zapisz.

Sprawdzanie kodu

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

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ł przygotowany przez Jeremy'a Glassenberga, konsultanta ds. strategii i zarządzania produktem. Znajdziesz go na Twitterze pod adresem @jglassenberg.

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

Dalsze kroki