Posts

Showing posts from November, 2025

5. Part: App Script Bot-1 Telegram Saham Turun

/**************************************************** * RESET STATUS TURUN & NAIK SETIAP PAGI (Sheet1) ****************************************************/ function resetStatus() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const lastRow = sheet.getLastRow(); // Kolom J & K → Status Turun & Status Naik sheet.getRange(2, 10, lastRow - 1, 2).clearContent(); Logger.log("Status Turun & Status Naik telah direset."); } /**************************************************** * PASANG SEMUA TRIGGER OTOMATIS SEKALI KLIK ****************************************************/ function createTriggers() { // Hapus semua trigger lama dulu biar bersih deleteAllTriggers(); // Update harga tiap 1 menit ScriptApp.newTrigger("updateHarga") .timeBased() .everyMinutes(1) .create(); // Cek alert tiap 1 menit ScriptApp.newTrigger("checkStockAlerts") .timeBased() .everyM...

3. App Script Bot-1 Telegram Saham Turun - oneoff di spreadsheet belum otomatis

/************************************************************ * FUNGSI 1 — UPDATE HARGA DARI GOOGLE FINANCE (SHEET: Data) ************************************************************/ function updateHarga() { const ss = SpreadsheetApp.getActive(); const sheet = ss.getSheetByName("Data"); const status = (sheet.getRange("A1").getValue() || "").toString().toUpperCase(); if (status !== "ON") { Logger.log("Update harga dimatikan oleh user (A1 != ON)"); return; } const tickers = sheet.getRange("B2:B1061").getValues(); tickers.forEach((row, i) => { const kode = row[0]; if (!kode) return; const formula = `=GOOGLEFINANCE("${kode}","price")`; sheet.getRange(i + 2, 3).setFormula(formula); // kolom C = harga }); Logger.log("Update harga selesai."); } /************************************************************ * Script otomatis menulis ON/OFF ke Sheet...

1. App Script Bot-1 Telegram Saham Turun

function checkStockAlerts() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); const data = sheet.getDataRange().getValues(); const TELEGRAM_TOKEN = "8050614158:AAGnHHBERuADp2bBFl3PHsaFSuctLol6yVM"; const TELEGRAM_CHAT_ID = "1243483408"; let alerts = []; for (let i = 1; i batasNaik && statusNaik !== "terkirim") { alerts.push(`🔺 ${kode} (${nama}) NAIK ke ${harga} (batas: ${batasNaik})`); sheet.getRange(i + 1, 7).setValue("terkirim"); // kolom H } } if (alerts.length > 0) { const message = "📢 ALERT SAHAM:\n" + alerts.join("\n"); const url = `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`; const payload = { method: "post", payload: { chat_id: TELEGRAM_CHAT_ID, text: message, }, }; const response = UrlFetchApp.fetch(url, payload); Logger.log("Telegram respon...