دریافت هشدار کاهش قیمت سهام

سطح کدنویسی : مبتدی
مدت زمان : ۵ دقیقه
نوع پروژه : اتوماسیون با محرک زمان

اهداف

  • بفهمید که راه حل چه کاری انجام می‌دهد.
  • درک کنید که سرویس‌های Apps Script در این راهکار چه کاری انجام می‌دهند.
  • اسکریپت را تنظیم کنید.
  • اسکریپت را اجرا کنید.

درباره این راهکار

اگر سهامی بخرید و ارزش آن کاهش یابد، می‌توانید آن سهام را بفروشید، سهام دیگری بخرید و کسر مالیات دریافت کنید. انجام این کار به عنوان برداشت ضرر مالیاتی شناخته می‌شود. سهام خود را در یک صفحه گسترده Google Sheets فهرست کنید و اگر قیمت سهام از قیمت خرید آن کمتر شود، هشدارهای ایمیلی دریافت کنید.

تصویر صفحه گوگل با قیمت سهام و هشدار ایمیل جیمیل.

چگونه کار می‌کند؟

این صفحه گسترده از تابع داخلی Google Finance در Sheets برای دریافت قیمت‌های فعلی سهام استفاده می‌کند. این اسکریپت قیمت خرید هر سهام فهرست شده را با قیمت فعلی آن مقایسه می‌کند. سپس، لیستی از سهام‌هایی که قیمتشان به زیر قیمت خریدشان کاهش یافته است را برای شما ایمیل می‌کند. می‌توانید اسکریپت را طوری تنظیم کنید که هر چند وقت یکبار که می‌خواهید اجرا شود.

سرویس‌های اسکریپت برنامه‌ها

این راهکار از سرویس‌های زیر استفاده می‌کند:

  • سرویس صفحه گسترده - هر سهم فهرست شده را بررسی می‌کند و قیمت سهام را با قیمت خرید مقایسه می‌کند.
  • سرویس جیمیل - ایمیلی از سهام‌هایی که به زیر قیمت خرید خود سقوط کرده‌اند، ایجاد و ارسال می‌کند.

پیش‌نیازها

برای استفاده از این نمونه، به پیش‌نیازهای زیر نیاز دارید:

  • یک حساب گوگل (حساب‌های کاربری گوگل ورک‌اسپیس ممکن است نیاز به تأیید مدیر داشته باشند).
  • یک مرورگر وب با دسترسی به اینترنت.

اسکریپت را تنظیم کنید

  1. برای تهیه یک کپی از نمونه صفحه گسترده هشدارهای برداشت ضرر مالیاتی ، روی دکمه زیر کلیک کنید. پروژه Apps Script برای این راهکار به صفحه گسترده پیوست شده است.
    یک کپی تهیه کنید
  2. در صفحه گسترده کپی شده خود، صفحه را با اطلاعات موجودی خود به‌روزرسانی کنید، یا از داده‌های آزمایشی ارائه شده استفاده کنید.

اسکریپت را اجرا کنید

  1. در صفحه‌گسترده کپی‌شده‌تان، روی افزونه‌ها > اسکریپت برنامه‌ها کلیک کنید.
  2. در منوی کشویی تابع، گزینه checkLosses را انتخاب کنید.
  3. روی اجرا کلیک کنید.
  4. وقتی از شما خواسته شد، اسکریپت را تأیید کنید. اگر صفحه رضایت OAuth هشدار « این برنامه تأیید نشده است» را نشان می‌دهد، با انتخاب Advanced > Go to {Project Name} (unsafe) ادامه دهید.

  5. ایمیل خود را برای مشاهده فهرستی از سهامی که به زیر قیمت خرید خود سقوط کرده‌اند، بررسی کنید. اگر ایمیلی دریافت نکردید، بررسی کنید که آیا قیمت سهام موجود در لیست شما پایین‌تر از قیمت خرید آنها است یا خیر.

یک محرک زمان‌محور ایجاد کنید

  1. برگردیم به پروژه فیلمنامه.
  2. در سمت چپ، روی «فعال کردن زنگ کلیک کنید.
  3. در پایین سمت راست، روی «افزودن ماشه» کلیک کنید.
  4. برای انتخاب تابعی که اجرا شود ، مطمئن شوید که checkLosses انتخاب شده است.
  5. برای انتخاب منبع رویداد ، گزینه Time-driven را انتخاب کنید.
  6. تعداد دفعاتی که می‌خواهید اسکریپت اجرا شود را تنظیم کنید و روی ذخیره کلیک کنید.

کد را مرور کنید

برای بررسی کد Apps Script برای این راهکار، روی مشاهده کد منبع در زیر کلیک کنید:

مشاهده کد منبع

کد.gs

راهکارها/اتوماسیون‌ها/هشدارهای-برداشت-ضرر-مالیات/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,

  });
}

مشارکت‌کنندگان

این نمونه توسط جرمی گلسنبرگ، مشاور مدیریت محصول و استراتژی پلتفرم، ایجاد شده است. جرمی را در توییتر با شناسه @jglassenberg پیدا کنید.

این نمونه توسط گوگل و با کمک متخصصان توسعه‌دهنده گوگل نگهداری می‌شود.

مراحل بعدی