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

Kodlama düzeyi: Başlangıç
Süre: 5 dakika
Proje türü: Zamana dayalı tetikleyici ile otomasyon

Hedefler

  • Çözümün ne işe yaradığını anlayın.
  • Apps Komut Dosyası hizmetlerinin çözümdeki işlevlerini anlama.
  • Komut dosyasını ayarlayın.
  • Komut dosyasını çalıştırın.

Bu çözüm hakkında

Bir hisse senedi satın alıp değeri düştüğünde bu hisse senedini satabilir, başka bir hisse senedi satın alabilir ve vergi indirimi talep edebilirsiniz. Bu işleme vergi kaybı hasadı denir. Hisse senetlerinizi Google E-Tablolar'da listeleyin ve hisse senedi fiyatı satın alma fiyatının altına düşerse e-posta uyarıları alın.

Hisse senedi fiyatlarının ve Gmail e-posta uyarısının yer aldığı Google E-Tablolar ekran görüntüsü.

İşleyiş şekli

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

Apps Komut Dosyası hizmetleri

Bu çözümde aşağıdaki hizmetler kullanılır:

  • E-tablo hizmeti: Listelenen her hisseyi tek tek kontrol eder ve hisse fiyatını satın alma fiyatıyla karşılaştırır.
  • Gmail hizmeti: Satın alma fiyatının altına düşen hisselerle ilgili bir e-posta oluşturup gönderir.

Ön koşullar

Bu örneği kullanmak için aşağıdaki ön koşulları karşılamanız gerekir:

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

Komut dosyasını ayarlama

  1. Vergi kaybı hasadı uyarıları örnek e-tablosunun kopyasını oluşturmak için aşağıdaki düğmeyi tıklayın. Bu çözümün Apps Komut Dosyası projesi e-tabloya eklenir.
    Kopya oluştur
  2. Kopyaladığınız e-tabloda, sayfayı kendi stok 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 kullanıcı rızası ekranında Bu uygulama doğrulanmadı uyarısı gösteriliyorsa Gelişmiş > {Proje Adı} adlı projeye git (güvenli değil)'i seçerek devam edin.

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

Zamana dayalı tetikleyici oluşturma

  1. Komut dosyası projesine dönün.
  2. Sol tarafta Tetikleyiciler'i tıklayın.
  3. Sağ altta Tetikleyici ekle'yi tıklayın.
  4. Çalıştırılacak işlevi seçin bölümünde checkLosses'ın 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ıştırılacağını yapılandırın ve Kaydet'i tıklayın.

Kodu inceleme

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,

  });
}

Katkıda bulunanlar

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

Bu örnek, Google Geliştirici Uzmanları'nın yardımıyla Google tarafından yönetilir.

Sonraki adımlar