الحصول على تنبيهات بشأن انخفاض أسعار الأسهم

مستوى الترميز: مبتدئ
المدة: 5 دقائق
نوع المشروع: تشغيل آلي باستخدام مشغّل مستند إلى الوقت

الأهداف

  • فهم ما يفعله الحلّ.
  • فهم ما تفعله خدمات برمجة التطبيقات ضمن الحلّ.
  • قم بإعداد النص البرمجي.
  • شغِّل النص البرمجي.

لمحة عن هذا الحلّ

إذا اشتريت سهمًا وانخفضت القيمة، يمكنك بيع ذلك السهم وشراء سهم آخر والمطالبة بحسم ضريبي. ويُعرف ذلك باسم حصاد خسارة الضرائب. أدرج أسهمك في جدول بيانات Google واحصل على تنبيهات عبر البريد الإلكتروني إذا انخفض سعر السهم عن سعر الشراء.

لقطة شاشة لجدول بيانات Google يعرض أسعار الأسهم وتنبيهًا عبر البريد الإلكتروني في Gmail.

آلية العمل

يستخدم جدول البيانات دالة Google Finance المضمنة في "جداول بيانات Google" للحصول على أسعار الأسهم الحالية. يقارن النص سعر الشراء لكل سهم مدرج بسعره الحالي. بعد ذلك، يرسل إليك رسالة إلكترونية قائمة بالأسهم التي انخفضت عن سعر الشراء. يمكنك ضبط النص ليتم تشغيله بقدر ما تريد.

خدمات "برمجة تطبيقات Google"

يستخدم هذا الحلّ الخدمات التالية:

  • خدمة جداول البيانات - تدور خلال كل سهم مدرج وتقارن سعر السهم بسعر الشراء.
  • خدمة Gmail - تنشئ رسالة إلكترونية وترسلها بالأسهم التي انخفضت عن سعر الشراء.

المتطلبات الأساسية

لاستخدام هذا النموذج، يجب استيفاء المتطلبات الأساسية التالية:

  • حساب على Google (قد تتطلب حسابات Google Workspace موافقة المشرف).
  • متصفح ويب يمكنه الوصول إلى الإنترنت.

إعداد النص البرمجي

  1. انقر على الزر التالي لإنشاء نسخة من نموذج تنبيهات الحصاد الضريبي. يتم إرفاق مشروع برمجة التطبيقات لهذا الحل بجدول البيانات.
    إنشاء نسخة
  2. في جدول البيانات المنسوخ، حدِّث الورقة بمعلومات المخزون الخاصة بك أو استخدم بيانات الاختبار المقدمة.

تشغيل النص البرمجي

  1. في جدول البيانات المنسوخ، انقر على الإضافات > برمجة التطبيقات.
  2. في القائمة المنسدلة للدالة، اختَر checkLosses.
  3. انقر على تشغيل.
  4. امنح الإذن للنص البرمجي عندما يُطلب منك ذلك. إذا كانت شاشة طلب موافقة OAuth تعرض التحذير، لم يتم التحقّق من هذا التطبيق، يمكنك المتابعة من خلال اختيار إعدادات متقدّمة > الانتقال إلى {Project Name} (اسم المشروع) (غير آمن).

  5. تحقَّق من بريدك الإلكتروني للاطّلاع على قائمة الأسهم التي انخفضت عن سعر الشراء. إذا لم تتلق رسالة بريد إلكتروني، تحقق لمعرفة ما إذا كان أي من أسعار الأسهم في قائمتك أقل من سعر الشراء الخاص به.

إنشاء عامل تشغيل يستند إلى الوقت

  1. عُد إلى مشروع النص البرمجي.
  2. على يمين الصفحة، انقر على العوامل المشغِّلة .
  3. في أسفل يسار الصفحة، انقر على إضافة مشغّل.
  4. بالنسبة إلى اختيار الدالة المطلوب تشغيلها، تأكَّد من اختيار checkLosses.
  5. بالنسبة إلى اختيار مصدر الحدث، اختَر الاستناد إلى الوقت.
  6. اضبط عدد مرات تشغيل النص البرمجي وانقر على حفظ.

مراجعة الرمز

لمراجعة رمز برمجة التطبيقات لهذا الحلّ، انقر على عرض رمز المصدر أدناه:

عرض رمز المصدر

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,

  });
}

المساهمون

تم إنشاء هذه العينة بواسطة جيريمي غلاسنبرغ، مستشار إدارة المنتجات والمنصات. يمكنك البحث عن جيريمي على Twitter @jangleenبرغ.

تحتفظ Google بهذا النموذج بمساعدة خبراء التطوير في Google.

الخطوات التالية