Nhận thông báo về việc giảm giá cổ phiếu

Cấp độ lập trình: Sơ cấp
Thời lượng: 5 phút
Loại dự án: Tự động hoá bằng trình kích hoạt dựa trên thời gian

Mục tiêu

  • Tìm hiểu chức năng của giải pháp.
  • Tìm hiểu chức năng của các dịch vụ Apps Script trong giải pháp.
  • Thiết lập tập lệnh.
  • Chạy tập lệnh.

Giới thiệu về giải pháp này

Nếu mua một cổ phiếu và giá trị của cổ phiếu đó giảm, bạn có thể bán cổ phiếu đó, mua một cổ phiếu khác và yêu cầu khấu trừ thuế. Việc này được gọi là thu hoạch khoản lỗ thuế. Liệt kê cổ phiếu của bạn trong bảng tính Google Trang tính và nhận email thông báo nếu giá cổ phiếu giảm xuống dưới giá mua.

Google Trang tính có giá cổ phiếu và cảnh báo qua email của Gmail.

Cách hoạt động

Bảng tính này sử dụng hàm tích hợp Google Finance trong Trang tính để lấy giá hiện tại của cổ phiếu. Tập lệnh này so sánh giá mua của từng cổ phiếu được niêm yết với giá hiện tại của cổ phiếu đó. Sau đó, hệ thống sẽ gửi email cho bạn danh sách các cổ phiếu có giá trị thấp hơn giá mua. Bạn có thể đặt tập lệnh chạy bao nhiêu lần tuỳ thích.

Các dịch vụ của Apps Script

Giải pháp này sử dụng các dịch vụ sau:

  • Dịch vụ bảng tính: Lặp lại từng cổ phiếu được niêm yết và so sánh giá cổ phiếu với giá mua.
  • Dịch vụ Gmail: Tạo và gửi email về những cổ phiếu có giá trị thấp hơn giá mua.

Điều kiện tiên quyết

Để sử dụng mẫu này, bạn cần đáp ứng các điều kiện tiên quyết sau:

  • Một Tài khoản Google (tài khoản Google Workspace có thể yêu cầu quản trị viên phê duyệt).
  • Một trình duyệt web có quyền truy cập vào Internet.

Thiết lập tập lệnh

  1. Nhấp vào nút sau đây để tạo bản sao của bảng tính mẫu Cảnh báo thu hoạch lỗ thuế. Dự án Apps Script cho giải pháp này được đính kèm vào bảng tính.

    Tạo bản sao

  2. Trong bảng tính bạn đã sao chép, hãy cập nhật trang tính bằng thông tin về kho hàng của riêng bạn hoặc sử dụng dữ liệu kiểm thử được cung cấp.

Chạy tập lệnh

  1. Trong bảng tính bạn đã sao chép, hãy chọn Tiện ích > Apps Script.
  2. Trong trình đơn thả xuống hàm, hãy chọn checkLosses.
  3. Nhấp vào Chạy.
  4. Khi được nhắc, hãy cho phép tập lệnh chạy. <<../_snippets/oauth.md>>
  5. Kiểm tra email của bạn để xem danh sách các cổ phiếu có giá thấp hơn giá mua. Nếu bạn không nhận được email, hãy kiểm tra xem có cổ phiếu nào trong danh sách của bạn có giá thấp hơn giá mua hay không.

Tạo điều kiện kích hoạt dựa trên thời gian

  1. Quay lại dự án kịch bản.
  2. Ở bên trái, hãy nhấp vào Điều kiện kích hoạt .
  3. Ở dưới cùng bên phải, hãy nhấp vào Thêm điều kiện kích hoạt.
  4. Đối với Choose which function to run (Chọn hàm cần chạy), hãy đảm bảo bạn đã chọn checkLosses.
  5. Đối với Chọn nguồn sự kiện, hãy chọn Dựa trên thời gian.
  6. Định cấu hình tần suất bạn muốn tập lệnh chạy rồi nhấp vào Lưu.

Xem lại mã

Để xem xét mã Apps Script cho giải pháp này, hãy nhấp vào Xem mã nguồn:

Xem mã nguồn

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
  const sheet =
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Calculations");
  const source = sheet.getRange("A:G");
  const 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 (const i in data) {
    //Skips the first row
    if (n++ === 0) continue;

    //Loads the current row
    const 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]}: ${(Number.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,
  });
}

Người đóng góp

Mẫu này do Jeremy Glassenberg, chuyên gia tư vấn về Chiến lược nền tảng và Quản lý sản phẩm tạo ra. Bạn có thể tìm thấy Jeremy trên Twitter tại @jglassenberg.

Mẫu này do Google duy trì với sự trợ giúp của các Google Developer Experts.

Các bước tiếp theo