Hisse senedi fiyatı düşüşü uyarılarını alın

Kodlama seviyesi: Başlangıç
Süre: 5 dakika
Proje türü: Zamana dayalı tetikleyici olan otomasyon

Hedefler

  • Çözümün ne işe yaradığını anlayın.
  • Apps Komut Dosyası hizmetlerinin çözüm kapsamında neler yaptığını anlayın.
  • Komut dosyasını ayarlayın.
  • Komut dosyasını çalıştırın.

Bu çözüm hakkında

Bir hisse senedi satın alırsanız ve değeri düşerse bu hisseyi satabilir, başka bir hisse satın alabilir ve vergi indiriminden yararlanabilirsiniz. Bu işlem, vergi kayıpları toplamak olarak bilinir. Hisse senetlerinizi bir Google E-Tablolar e-tablosunda listeleyin ve hisse senedi fiyatı, satış fiyatının altına düşerse e-posta uyarısı alın.

Hisse senedi fiyatlarını ve Gmail e-posta uyarısını içeren Google E-Tablosu ekran görüntüsü.

İşleyiş şekli

E-tabloda, hisse senetlerinin güncel fiyatlarını almak için E-Tablolar'daki Google Finans yerleşik işlevi kullanılır. Komut dosyası, listelenen her hisse senedinin satın alma fiyatını mevcut fiyatıyla karşılaştırır. Ardından, satış fiyatının altına düşen hisse senetlerinin listesini size e-postayla gönderir. Komut dosyasını istediğiniz sıklıkta çalışmak üzere ayarlayabilirsiniz.

Apps Komut Dosyası hizmetleri

Bu çözüm aşağıdaki hizmetleri kullanır:

  • E-tablo hizmeti: Listelenen her hisse senedini döngüye alır ve hisse senedi fiyatını satın alma fiyatıyla karşılaştırır.
  • Gmail hizmeti: Satın alma fiyatının altına düşen hisse senetleri için e-posta oluşturur ve gönderir.

Ön koşullar

Bu örneği kullanmak için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Google Hesabı (Google Workspace hesapları için yönetici onayı gerekebilir).
  • İnternete erişimi olan bir web tarayıcısı.

Komut dosyasını kurma

  1. Vergi kaybı hasat uyarıları örnek e-tablosunun bir kopyasını oluşturmak için aşağıdaki düğmeyi tıklayın. Bu çözüm için Apps Komut Dosyası projesi e-tabloya eklenmiştir.
    Kopya oluştur
  2. Kopyaladığınız e-tabloda, e-tabloyu kendi hisse senedi bilgilerinizle güncelleyin veya sağlanan test verilerini kullanın.

Komut dosyasını çalıştırma

  1. Kopyaladığınız e-tabloda Uzantılar > Apps Komut Dosyası'nı tıklayın.
  2. İşlev açılır listesinde, checkLosses'ı seçin.
  3. Çalıştır'ı tıklayın.
  4. İstendiğinde komut dosyasını yetkilendirin. OAuth izin ekranında Bu uygulama doğrulanmadı uyarısı gösteriliyorsa Gelişmiş > {Project Name} (güvenli değil) uygulamasına git'i seçerek devam edin.

  5. Satın alma fiyatının altında kalan hisse senetlerinin listesi için e-postanızı kontrol edin. E-posta almadıysanız listenizdeki hisse senedi fiyatlarından herhangi birinin satış fiyatından daha düşük olup olmadığını kontrol edin.

Zamana dayalı tetikleyici oluşturma

  1. Komut dosyası projesine dönün.
  2. Solda Tetikleyiciler'i tıklayın.
  3. Sağ altta, Tetikleyici ekle'yi tıklayın.
  4. Hangi işlevin çalıştırılacağını seçin için checkLosses öğesinin seçili olduğundan emin olun.
  5. Etkinlik kaynağı seçin bölümünde Zamana dayalı'yı seçin.
  6. Komut dosyasının ne sıklıkta çalışmasını istediğinizi yapılandırıp Kaydet'i tıklayın.

Kodu inceleyin

Bu çözümün Apps Komut Dosyası kodunu incelemek için aşağıdaki Kaynak kodu görüntüle'yi tıklayın:

Kaynak kodu göster

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,

  });
}

Katılımcılar

Bu örnek ürün, Ürün Yönetimi ve Platform Stratejisi Danışmanı Jeremy Glassenberg tarafından oluşturulmuştur. Jeremy'yi Twitter'da (@jglassenberg) bulun.

Bu örnek, Google Geliştirici Uzmanlarının yardımıyla Google tarafından sağlanmaktadır.

Sonraki adımlar