Dapatkan notifikasi diskon

Level coding: Pemula
Durasi: 5 menit
Jenis project: Otomatisasi dengan pemicu berbasis waktu

Tujuan

  • Pahami fungsi solusi tersebut.
  • Pahami fungsi layanan Apps Script dalam solusi tersebut.
  • Siapkan skrip.
  • Jalankan skrip.

Tentang solusi ini

Jika membeli saham dan nilainya turun, Anda dapat menjual saham tersebut, membeli saham lainnya, dan mengklaim potongan pajak. Tindakan ini dikenal sebagai hasil kerugian pajak. Cantumkan saham Anda di spreadsheet Google Spreadsheet dan dapatkan peringatan email jika harga saham turun di bawah harga pembeliannya.

Screenshot Spreadsheet Google dengan harga saham dan pemberitahuan email Gmail.

Cara kerjanya

Spreadsheet ini menggunakan fungsi bawaan Google Finance di Spreadsheet untuk mendapatkan harga saham saat ini. Skrip ini membandingkan harga pembelian setiap saham yang terdaftar dengan harga saat ini. Kemudian, ia mengirimkan email daftar saham yang turun di bawah harga beli mereka. Anda dapat mengatur skrip untuk dijalankan sesering yang Anda inginkan.

Layanan Apps Script

Solusi ini menggunakan layanan berikut:

  • Layanan spreadsheet–Mengulang setiap saham yang tercantum dan membandingkan harga saham dengan harga pembelian.
  • Layanan Gmail–Membuat dan mengirim email saham yang turun di bawah harga pembeliannya.

Prasyarat

Untuk menggunakan sampel ini, Anda memerlukan prasyarat berikut:

  • Akun Google (akun Google Workspace mungkin memerlukan persetujuan administrator).
  • Browser web dengan akses ke internet.

Menyiapkan skrip

  1. Klik tombol berikut untuk membuat salinan contoh spreadsheet Pemberitahuan panen kehilangan pajak. Project Apps Script untuk solusi ini dilampirkan pada spreadsheet.
    Buat salinan
  2. Di salinan spreadsheet, perbarui sheet dengan informasi stok Anda sendiri, atau gunakan data pengujian yang disediakan.

Jalankan skrip:

  1. Di spreadsheet yang Anda salin, klik Ekstensi > Apps Script.
  2. Di dropdown fungsi, pilih checkLosses.
  3. Klik Run.
  4. Jika diminta, izinkan skrip. Jika layar izin OAuth menampilkan peringatan, This app don't verified, lanjutkan dengan memilih Advanced > Buka {Project Name} (unsafe).

  5. Periksa email Anda untuk melihat daftar saham yang turun di bawah harga pembeliannya. Jika Anda tidak menerima email, periksa apakah ada harga saham dalam daftar Anda yang lebih rendah dari harga pembeliannya.

Membuat pemicu berbasis waktu

  1. Kembali ke project skrip.
  2. Di sebelah kiri, klik Pemicu .
  3. Di kanan bawah, klik Tambahkan pemicu.
  4. Untuk Choose which function to run, pastikan checkLosses dipilih.
  5. Untuk Select event source, pilih Time-driven.
  6. Konfigurasikan seberapa sering Anda ingin skrip dijalankan, lalu klik Save.

Meninjau kode

Untuk meninjau kode Apps Script untuk solusi ini, klik Lihat kode sumber di bawah:

Melihat kode sumber

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,

  });
}

Kontributor

Contoh ini dibuat oleh Jeremy Glassenberg, Konsultan Strategi Platform dan Pengelolaan Produk. Temukan Jeremy di Twitter @jkacaenberg.

Contoh ini dikelola oleh Google dengan bantuan Pakar Google Developers.

Langkah berikutnya