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

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

Hedefler

  • Çözümün ne yaptığını anlayın.
  • Apps Script hizmetlerinin çözümde ne yaptığını anlayın.
  • Komut dosyasını ayarlayın.
  • Komut dosyasını çalıştırın.

Bu çözüm hakkında

Satın aldığınız bir hissenin değeri düşerse bu hisseyi satabilir, başka bir hisse satın alabilir ve vergi indirimi talep edebilirsiniz. Bu işleme vergi kaybı hasadı denir. Hisse senetlerinizi bir Google E-Tablolar e-tablosunda listeleyin ve bir hisse senedinin fiyatı satın alma fiyatının altına düştüğünde e-posta uyarıları alın.

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

İşleyiş şekli

E-tablo, hisse senetlerinin mevcut fiyatlarını almak için E-Tablolar'daki Google Finans yerleşik işlevini kullanır. Komut dosyası, listelenen her 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 hisse senetlerinin listesini size e-postayla gönderir. Komut dosyasını istediğiniz sıklıkta çalışacak şekilde ayarlayabilirsiniz.

Apps Komut Dosyası hizmetleri

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

  • E-tablo hizmeti: Listelenen her hisseyi döngüden geçirir 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 hisse senetlerini içeren bir e-posta oluşturup gönderir.

Ön koşullar

Bu örneği kullanmak için aşağıdaki ön koş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ı ayarlama

  1. Vergi kaybı hasat 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. Kopyalanan e-tablonuzda sayfayı kendi stok bilgilerinizle güncelleyin veya sağlanan test verilerini kullanın.

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

  1. Kopyalanan e-tablonuzda Uzantılar > Apps Komut Dosyası'nı tıklayın.
  2. İşlev açılır menüsünde checkLosses'i 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ş > {Proje Adı}'na 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 stok fiyatlarından herhangi birinin satın alma fiyatından daha 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'in seçili olduğundan emin olun.
  5. Etkinlik kaynağını seçin bölümünde Zaman denetimli'yi seçin.
  6. Komut dosyasının ne sıklıkta çalıştırılmasını istediğinizi 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 kodunu 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 bulabilirsiniz.

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

Sonraki adımlar