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

Cấp độ lập trình: Cơ bản
Thời lượng: 5 phút
Loại dự án: Tự động hoá bằng điều kiện kích hoạt theo thời gian

Mục tiêu

  • Tìm hiểu vai trò của giải pháp.
  • 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 bạn mua một cổ phiếu và giá trị 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ế. Cách làm như vậy được gọi là thu hoạch bị mất 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à thông báo qua email trong Gmail.

Cách hoạt động

Bảng tính sử dụng hàm tích hợp sẵn Google Finance trong Trang tính để xem giá hiện tại của cổ phiếu. Tập lệnh so sánh giá mua của từng cổ phiếu niêm yết với giá hiện tại. Sau đó, công cụ này sẽ gửi cho bạn danh sách các cổ phiếu giảm xuống dưới giá mua qua email. Bạn có thể thiết lập để tập lệnh chạy thường xuyên như bạn muốn.

Dịch vụ Apps Script

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

  • Dịch vụ bảng tính – Tua qua 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 đã giảm xuống dưới giá mua.

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

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

  • Tài khoản Google (các 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 để tạo bản sao của bảng tính mẫu Cảnh báo mất thuế liên quan đến vụ thu hoạch. 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 đã sao chép, hãy cập nhật trang tính bằng thông tin về cổ phiếu 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 đã 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. Nếu màn hình xin phép bằ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 Nâng cao > Chuyển đến {Tên dự án} (không an toàn).

  5. Hãy kiểm tra email của bạn để xem danh sách cổ phiếu giảm xuống dưới giá mua. Nếu bạn không nhận được email, hãy kiểm tra xem có giá cổ phiếu nào trong danh sách của bạn thấp hơn giá mua hay không.

Tạo điều kiện kích hoạt theo thời gian

  1. Quay lại dự án tập lệnh.
  2. Ở bên trái, hãy nhấp vào biểu tượng Đ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 tuỳ chọn Chọn hàm cần chạy, hãy nhớ chọn checkLo bós.
  5. Đối với mục Chọn nguồn sự kiện, hãy chọn Theo 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 đoạn mã

Để xem lại mã Apps Script cho giải pháp này, hãy nhấp vào phần 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 chiến lược nền tảng và quản lý sản phẩm tạo ra. Hãy tìm Jeremy trên Twitter @j Glassenberg.

Mẫu này được Google duy trì với sự trợ giúp của các chuyên gia nhà phát triển của Google.

Các bước tiếp theo