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

Cấp độ lập trình: Người mới bắt đầu
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 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 sử dụng hàm tích hợp sẵn của 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 mỗi cổ phiếu được liệt kê 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 đã giảm xuống dưới giá mua. Bạn có thể đặt tập lệnh chạy bao nhiêu lần tuỳ thích.

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 – Lặp lại 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ề các 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ó thể cần có sự phê duyệt của quản trị viên đối với tài khoản Google Workspace).
  • Một trình duyệt web có quyền truy cập 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 thu hoạch tổn thất 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 đã sao chép, hãy cập nhật bảng bằng thông tin kho hàng của riêng bạn hoặc sử dụng dữ liệu thử nghiệm đượ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 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 Nâng cao > Chuyển đến {Project Name} (không an toàn).

  5. Hãy kiểm tra email của bạn để xem danh sách các 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 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 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 phần Chọn hàm cần chạy, hãy đảm bảo bạn đã chọn checkLosses.
  5. Đối với mục Chọn nguồn sự kiện, hãy chọn Được điều khiển theo thời gian.
  6. Định cấu hình tần suất bạn muốn chạy tập lệnh 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 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, Nhà tư vấn chiến lược nền tảng và quản lý sản phẩm tạo. Tìm Jeremy trên Twitter@jglassenberg.

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

Các bước tiếp theo