Dapatkan notifikasi diskon

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

Tujuan

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

Tentang solusi ini

Jika Anda membeli saham dan nilainya turun, Anda dapat menjual saham tersebut, membeli saham lain, dan mengklaim potongan pajak. Tindakan ini dikenal sebagai pengurangan kerugian pajak. Cantumkan saham Anda dalam spreadsheet Google Spreadsheet dan dapatkan pemberitahuan email jika harga saham turun di bawah harga belinya.

Screenshot Spreadsheet Google dengan harga saham dan pemberitahuan email Gmail.

Cara kerjanya

Spreadsheet menggunakan fungsi bawaan Google Finance di Spreadsheet untuk mendapatkan harga saham saat ini. Skrip ini membandingkan harga pembelian setiap saham yang tercantum dengan harga saat ini. Kemudian, fitur ini akan mengirimkan email berisi daftar saham yang telah turun di bawah harga belinya. Anda dapat menyetel skrip agar berjalan sesering yang Anda inginkan.

Layanan Apps Script

Solusi ini menggunakan layanan berikut:

  • Layanan spreadsheet–Melakukan loop melalui setiap saham yang tercantum dan membandingkan harga saham dengan harga beli.
  • Layanan Gmail–Membuat dan mengirim email tentang saham yang telah turun di bawah harga belinya.

Prasyarat

Untuk menggunakan contoh 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 pengoptimalan kerugian pajak. Project Apps Script untuk solusi ini dilampirkan ke spreadsheet.
    Buat salinan
  2. Di spreadsheet yang disalin, perbarui spreadsheet dengan informasi stok Anda sendiri, atau gunakan data pengujian yang disediakan.

Jalankan skrip:

  1. Di spreadsheet yang disalin, klik Ekstensi > Apps Script.
  2. Di dropdown fungsi, pilih checkLosses.
  3. Klik Run.
  4. Saat diminta, izinkan skrip. Jika layar izin OAuth menampilkan peringatan, Aplikasi ini tidak diverifikasi, lanjutkan dengan memilih Lanjutan > Buka {Project Name} (tidak aman).

  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 belinya.

Membuat pemicu berbasis waktu

  1. Kembali ke project skrip.
  2. Di sebelah kiri, klik Pemicu .
  3. Di kanan bawah, klik Tambahkan pemicu.
  4. Untuk Pilih fungsi yang akan dijalankan, pastikan checkLosses dipilih.
  5. Untuk Select event source, pilih Time-driven.
  6. Konfigurasikan seberapa sering Anda ingin skrip dijalankan, lalu klik Simpan.

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 @jglassenberg.

Contoh ini dikelola oleh Google dengan bantuan Pakar Developer Google.

Langkah berikutnya