跳至主要內容

里程碑

打造我的 LINE AI 股票E化教室:n8n × AI Agent × Google Sheets 股票交易紀錄與損益自動化

cc @scccs發布於

一、背景與動機
這次我想做的不只是一般的 LINE 聊天機器人,而是一個能透過自然語言與我互動的 AI 股票小精靈。
希望平常只要打開 LINE,就能查詢股票價格、記錄自己的買賣交易,最近開學期間,有時候覺得點開程式有點麻煩,而且加上最近股市的大震盪......,內心更是不敢點開,而且如果我只有時間看指數的話又會覺得我沒辦法知道為甚麼會發生這樣的狀況。
因此,我選擇使用 n8n 作為自動化流程核心,串接 LINE Messaging API、AI Agent 與 Google Sheets,想要架構一套屬於自己的股票管理助理,(雖然功能很陽春,但是我第一次架構自己的自動化回復管理系統,各位大老不要嫌棄)。

二、系統核心功能與設計
• LINE × AI 智慧對話: 使用 LINE 作為操作介面,透過 Webhook 接收使用者訊息,再交由 n8n 處理,讓使用者可以直接用聊天的方式與機器人互動。
• Switch 意圖分流: 利用 Switch 節點,將不同類型的訊息導向不同流程,例如一般對話、股票價格查詢,以及買進、賣出等交易紀錄,避免所有需求都擠在同一條流程裡。
• 股票交易紀錄自動化: 將買賣日期、使用者 ID、交易類型、股票代號、股數、成交單價、手續費與交易稅等資料寫入 Google Sheets,讓 LINE 不只是聊天工具,也能成為交易紀錄的入口。
• Google Sheets × 平均成本法: 規劃利用試算表公式計算交易後持股數、持股成本、賣出前平均成本與已實現損益,希望不必另外使用 Code 節點,也能完成基本的交易計算。
• LINE 股價查詢與訊息回覆: 透過 HTTP Request 串接 LINE Reply API,並處理 JSON 格式、Expression 與換行問題,讓查詢結果能以清楚、易讀的文字回傳 LINE。

三、開發過程中的核心卡點與除錯

  1. n8n Expression 與 JSON 格式衝突

• 遇到的問題: 在 HTTP Request 節點中,混用 JSON、JavaScript Expression 與 n8n 變數時,很容易因為引號、括號或表達式模式設定錯誤,出現 JSON 格式錯誤。
• 解決方式: 重新理解固定 JSON 與整個欄位使用 Expression 的差異,讓 LINE 的 replyToken、訊息文字與節點輸出能以正確的資料結構傳遞。

  1. LINE 訊息換行與 AI 輸出格式

• 遇到的問題: AI 回覆的內容即使有標點符號,也不一定會自動分段;如果沒有正確處理換行,股價、漲跌幅與交易資訊就容易全部擠在一起。
• 解決方式: 在 n8n 的訊息組裝階段使用 \n 控制換行,並理解 JSON 字串的跳脫規則,讓回覆格式更清楚。

  1. Switch 分流與 Google Sheets 資料流

• 遇到的問題: 當不同指令要走不同路徑時,必須確認 Switch 的判斷條件、節點連線,以及前後節點實際輸出的資料結構。如果欄位名稱或節點引用不一致,就可能導致資料讀不到。
• 解決方式: 先用明確的文字指令測試分流,再逐步串接 Google Sheets 的讀取與寫入節點,確認交易資料確實進入指定工作表。

  1. 平均成本法與已實現損益計算

• 遇到的問題: 同一檔股票可能分多次買進,也可能分批賣出。如果只計算單筆成交金額,或只把買進成本與賣出收入相減,就無法正確反映平均成本法下的已實現損益。
• 目前的做法: 將交易資料集中記錄,再利用 Google Sheets 公式追蹤交易後持股數、持股成本與賣出前平均成本,並逐筆測試買進、賣出與再次買進的情境。
這部分也讓我體會到,公式能夠正常執行,不代表計算邏輯一定正確。必須透過已知答案的測試資料,逐一驗證每個欄位。

四、目前成果
目前已完成 LINE 與 n8n 的基本串接、訊息回覆、股價查詢流程,以及 Google Sheets 交易紀錄的整合,並持續完善平均成本法與已實現損益的計算邏輯。

接下來希望完成以下功能:
• 依使用者 ID 與股票代號篩選交易,避免混入其他使用者的資料。
• 顯示各股票的已實現損益、剩餘持股數與持股成本。
• 持續完善買賣紀錄的自然語言辨識,減少輸入固定指令的限制。

五、技術總結與心得
這次專案讓我真正感受到,使用 n8n 建立自動化系統,最重要的不只是把 Webhook、AI Agent、Switch、Google Sheets 與 HTTP Request 串起來,而是理解每個節點的責任,以及資料在整個流程中如何傳遞。我也學到,不一定所有事情都要靠 Code 節點解決。只要理解各個工具的能力與限制,善用 n8n 的原生節點搭配 Google Sheets 公式,也能逐步建立自己需要的功能。

2 個愛心3 則留言

登入並驗證手機後就能留言。登入

留言

  1. Celia @hsnxpyt._

    好實用喔!但想知道會不會有不準確的問題
    畢竟還是用ai做統合(?
    如果資料都能對上的話 不知道能不能直接用來查詢實時價格🧐

  2. cc @scccs

    謝謝團長,開始看了一些課程,感覺好像可以讓我的機器人排版更漂亮了,應該可以算是也能加快閱讀的速度!!

  3. 上哲 @nuva.ceo

    @… 去看這堂強化你的 Line 訊息排版吧!!