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

Cấp độ viết mã: 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 về 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 thông báo qua email nếu giá cổ phiếu giảm xuống dưới giá mua.

Ảnh chụp màn hình 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 sẵn Google Tài chính 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 đó, ứng dụng sẽ gửi 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 liệt kê 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 về việc bán lỗ để giảm 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 mà 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 mà bạn đã sao chép, hãy nhấp vào Tiện ích > Apps Script.
  2. Trong trình đơn thả xuống của 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. Nếu màn hình đồng ý OAuth hiển thị cảnh báo Ứng dụng này chưa được xác minh, hãy tiếp tục bằng cách chọn Tuỳ chọn nâng cao > Chuyển đến {Tên dự án} (không an toàn).

  5. Kiểm tra email của bạn để xem danh sách các cổ phiếu có giá trị 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 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 lại mã Apps Script cho giải pháp này, hãy nhấp vào Xem mã nguồn bên dưới:

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
  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,

  });
}

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 Chuyên gia Google về phát triển.

Các bước tiếp theo