Tuesday, June 09, 2026

How to Move Your Python Project to a New Computer

How to Move Your Python Project to a New Computer

Moving a Python project is not just about copying folders. If you copy the virtual environment folder directly, it will break because of different paths and Python versions. Here is the right way to do it.

Step 1: Save your current environment

On your old computer, go to your project folder and activate your virtual environment. Then, save all your installed packages into a file:

pip freeze > requirements.txt

Step 2: Copy your files

Move your requirements.txt and your Python code files to the new computer. Do not copy the virtual environment folder (e.g., twstockenv).

Step 3: Create a clean environment on the new computer

On your new computer, make sure you have the venv tool installed:

sudo apt install python3-venv

Then, create a new environment. Pro tip: Use an absolute path to avoid mistakes:

/usr/bin/python3.12 -m venv /home/yourname/twstockenv

Common Problem: Version Compatibility

Warning: You might see an "Error" if the Python version is too new or too old for your packages.

I recently faced this issue! Some packages (like crewai) only work with specific Python versions (e.g., 3.10 to 3.13). If your new computer has Python 3.14, it might block the installation.

The solution: Install the specific Python version you need (like 3.12) and use it to build your environment, as shown in Step 3.

Step 4: Install your packages

Finally, activate your new environment and install everything at once:

source /home/yourname/twstockenv/bin/activate
pip install -r requirements.txt

Now, your project is ready to run on your new machine!

Saturday, June 06, 2026

Trust the Algorithm: Engineering a Data-Driven Risk Framework to Escape the Crash

"Trust the algorithm, eliminate emotion: Yesterday's market close data already flashed a strict [WAIT] signal, successfully protecting my capital before this historic -3,006 point overnight crash."

(相信演算法,拋棄情緒:昨天的收盤數據就已經提前顯示了嚴格的 [WAIT] 警戒訊號,在這次歷史性的夜盤 -3,006 點大崩盤前,成功保護了我的資金。)






Friday, May 29, 2026

[技術分享] 完美解決 Linux (Ubuntu) 無線喚醒 (WoWLAN) 重開機失效與被 NetworkManager 覆蓋的終極大絕招!

最近我喜歡用 iPad 搭配 SSH Client APP(例如 Termius、Blink Shell)在區域網路內遠端操作 Linux 伺服器或筆電。但最讓人頭痛的,就是當遠端 Linux 筆電睡著或關機時,如何透過無線 Wi-Fi 把它叫醒?

一般我們知道實體網路線可以用傳統的 Wake-on-LAN (WoL),但在無線網路 (Wake-on-Wireless-LAN, WoWLAN) 的世界裡,Ubuntu底層的電源管理,常常在開機或重啟網路時,強行將我們設定好的無線喚醒功能蓋過去(Override)。

本篇文章將 Step by Step 帶你徹底收服 Linux 核心,利用 systemd 時間差突襲,實現永久生效的「無線區網喚醒」!


🛠️ 第一階段:Linux 端的實體硬體大點名

在動手之前,我們必須拿到這台 Linux 筆電最精準的無線網卡「實體身分證代號」。

Step 1:查詢無線網卡名稱與實體代號

請打開 Linux 終端機,輸入以下標準指令:

iw dev

或者是查詢特定網卡的詳細資訊(以本機常見的 Intel 網卡為例):

iw dev wlp0s20f3 info

💡 重點觀察輸出結果:
在噴出來的 Log 資訊中,請死死抄下這兩個關鍵密碼:

  • wiphy 0:這代表你的實體網卡晶片代號叫做 phy0
  • addr xx:xx:xx:xx:xx:xx:這串是你的 Wi-Fi MAC 位址(請先記下來,待會 iPad 發射封包需要它)。

🛠️ 第二階段:生死審判!檢查網卡是否支援無線喚醒

並不是每張網卡都能隔空接收神秘封包,我們必須對 phy0 進行硬體功能檢測。

Step 2:檢視目前 WoWLAN 的狀態

請輸入以下指令:

iw phy phy0 wowlan show
  • 情況 A :如果顯示 WoWLAN is disabled.,恭喜你!這張網卡硬體完全支援無線喚醒,只是目前沒開門。
  • 情況 B :如果噴出 Operation not supported,代表該驅動程式底層被閹割了,只能乖乖改插實體網路線。

🛠️ 第三階段:為什麼設定開機就失效?

一般技術文章會教你,直接下一行臨時啟用指令就收工:

sudo iw phy phy0 wowlan enable magic-packet

但是!只要重開機或網路斷開重連,這行設定就會立刻灰飛煙滅,重回預設的 disabled

🕵️ 幕後黑手是誰?

因為現代 Linux 系統中,有一個權限極高的上層大管家叫 NetworkManager。在系統開機或網路 Up 的瞬間,NetworkManager 為了極致省電,會非常粗暴地覆蓋(Override)所有底層硬體設定,把我們辛辛苦苦開啟的 magic-packet 再次無情關閉。


🛠️ 第四階段:終極解法 —— systemd 「時間差突襲法」

既然用常規的系統事件(如 udev 或 NetworkManager dispatcher)會跟開機程序產生順序競爭(Race Condition),那我們就改用最暴力、但也最絕對有效的終極大絕招:建立一個專屬開機服務,並讓它「延時執行」。

我們讓這個服務在系統完全開機、網路建立好之後,在背景默默倒數 5 秒。等 NetworkManager 載入完它的省電設定後,我們再做覆蓋的動作!

Step 3:建立專屬的 systemd 服務檔案

在系統服務目錄下建立一個名為 wowlan.service 的檔案:

sudo vi /etc/systemd/system/wowlan.service

Step 4:完整貼入以下終極外掛設定

將以下這段服務設定完整複製並貼進去:

[Unit] Description=Force Enable WoWLAN Magic Packet After=network.target network-online.target NetworkManager.service [Service] Type=oneshot # 【核心關鍵】開機到這步後,強行在背景默數 5 秒,完美避開 NetworkManager 開機與連線時的省電干擾! ExecStartPre=/usr/bin/sleep 5 ExecStart=/usr/sbin/iw phy phy0 wowlan enable magic-packet RemainAfterExit=yes [Install] WantedBy=multi-user.target

Step 5:註冊並永久啟用該開機服務

依序輸入以下三行指令,重新點名並實施開機自動化:

# 1. 重新載入系統服務設定 sudo systemctl daemon-reload # 2. 設定該服務為開機自動啟動 sudo systemctl enable wowlan.service # 3. 手動立即啟動它來進行測試 sudo systemctl start wowlan.service

🏁 第五階段:驗收與 iPad 實戰

Step 6:重開機最終驗收

請放心地重開整台 Linux 筆電:

sudo reboot

重新開機並用 SSH 連進去後,輸入指令:

iw phy phy0 wowlan show

當你看到畫面噴出以下這兩行輸出時:

WoWLAN is enabled: * wake up on magic packet

恭喜你!這條無線喚醒防線已經永久固化在你的系統裡了!


📱 iPad 端實戰:一鍵喚醒遠端 Linux

接下來輪到 iPad :

  1. 挑選 App:下載 App Store 的 Termius(推薦,自帶 WoL)或 iNet WOL
  2. 踩坑注意 (iOS 隱形大坑):第一次打開 App 時,系統跳出 "是否允許此 App 尋找並連線到區域網路上的裝置?"務必點選「允許」!如果不小心按到拒絕,請至 iPad「設定」➡️ 找到該 App ➡️ 手動將「區域網路」權限開啟。
  3. 填入參數
    • MAC 位址:填入 Step 1 查到的 xx:xx:xx:xx:xx:xx
    • IP 位址:填入這台 Linux 的內網區域 IP(例如 192.168.1.118)。
  4. 發射!:將 Linux 筆電蓋上螢幕進入休眠(Suspend),在 iPad App 上點擊 Wake

你會驚奇地發現,原本死沉沉的 Linux 筆電鍵盤燈瞬間亮起、螢幕重開,高科技的隔空無線喚醒正式大功告成!


💡 網管小嘮叨:

  1. Wi-Fi 分享器的「AP 隔離 (AP Isolation)」務必關閉:因為 iPad 與 Linux 皆走無線,若路由器開啟 AP 隔離,廣播封包會被沒收。
  2. BIOS 設定:部分筆電主機板(如 ThinkPad)在 BIOS 的 Power / Network 頁面中,有獨立的 Wake on WLAN 選項,記得同步調整為 Enabled 喔!


Thursday, May 28, 2026

全在地端 AI Python + Ollama 打造台股策略特工

身為一個投資人,我們每天都在看大盤本益比、融資籌碼、外資期現貨留倉等關鍵數據。很多人現在會把這些數據直接丟給 ChatGPT 或雲端 Gemini 幫忙分析。

為了不外流隱私,同時又要享有 AI 洞悉全局的犀利眼光,我決定用 Python 爬蟲 + Ollama 本地端架構 + 開源輕量模型 Qwen2.5:1.5b,在我的 Intel 顯卡與 CPU 環境下,打造出了一隻說話一針見血、完全不用連網的「台股地端 AI 策略特工」!


一、 核心技術棧:低配備硬體的高效能玩法

原本我嘗試在本地端跑大參數的 Gemma2:9b 模型,但因為我的硬體是 Intel 顯卡,Ollama 預設會將運算全數倒給 CPU 核心就算我有20個threads也頂不住,導致 ollama ps 顯示 100% CPU,速度慢到像當機,模型甚至因為注意力崩潰而開始鬼打牆。

為了兼顧執行速度智商,我只好用輕量級的model:

  1. Python 自動化爬蟲:每日盤後自動抓取證交所融資金額、大盤本益比(PER)、股價淨值比(PBR)、外資期貨未平倉、外資現貨買賣超,並利用 yfinance 計算 43MA 生命線乖離率。

  2. Ollama 驅動 Qwen2.5:1.5b:改用專為輕量硬體與 CPU 優化的 Qwen 1.5B。

  3. 極致字數閹割 Prompt:1.5B 小模型最怕 Prompt 太長,強迫 AI 每一項點評「絕對不能超過 15 個字」,用格式鎖死它,徹底根除小模型邏輯打架的毛病。

二、 實戰成果:

./twstock_ai_agent.py 

💰 成交金額: 16594.43 億 │ 📦 PBR: 4.32 倍 │ 📈 PER: 32.79 倍


📅 報告日期:20260527

╒══════════╤═══════════╤═══════════╤════════════╤════════════╤════════════╕

│     項目 │      買進 │      賣出 │   前日餘額 │   今日餘額 │   今日增減 │

╞══════════╪═══════════╪═══════════╪════════════╪════════════╪════════════╡

│ 融資金額 │ 601.31 億 │ 581.10 億 │ 5345.93 億 │ 5362.69 億 │   16.76 億 │

╘══════════╧═══════════╧═══════════╧════════════╧════════════╧════════════╛


💡 籌碼分析:今日融資餘額 📈 資增 16.76 億


--- 台股加權指數 43MA 乖離監控 (2026-05-28 18:23) ---

📈 當前指數: 43636.44

📏 生命線 (43MA): 38546.59

🎨 43MA 乖離率: 13.20%

------------------------------

診斷狀態: 🚨 【極度過熱】

操作建議: 正乖離 > 8%,處於噴發末段。歷史經驗顯示隨時有百點以上回檔,禁追高!

╒════════════╤══════════════╤══════════╤══════════╤══════════╤═══════╤═══════╤══════════════╕

│    日期    │     標的     │     收盤 │   漲跌點 │  漲跌幅  │  K值  │  D值  │     建議     │

╞════════════╪══════════════╪══════════╪══════════╪══════════╪═══════╪═══════╪══════════════╡

│ 2026-05-28 │ 台灣加權指數 │ 43636.4  │  -620.36 │  -1.40%  │   -   │   -   │      -       │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │    台積電    │  2295    │    -5    │  -0.21%  │ 62.61 │ 53.38 │ 🔍 觀望中性  │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  統一FANG+   │   130.55 │    -1.05 │  -0.79%  │ 76.97 │ 71.20 │ 🔍 觀望中性  │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │   0050 ETF   │   100.5  │    -2.05 │  -1.99%  │ 73.59 │ 65.32 │ 🔍 觀望中性  │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  006208 ETF  │   233.15 │    -4.45 │  -1.87%  │ 74.84 │ 65.48 │ 🔍 觀望中性  │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00692 ETF   │    87.25 │    -1.8  │  -2.02%  │ 74.19 │ 65.31 │ 🔍 觀望中性  │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00929 ETF   │    29.4  │    -0.64 │  -2.13%  │ 85.85 │ 81.35 │ ⚠️  高檔保守 │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │   0056 ETF   │    48.83 │    -0.81 │  -1.63%  │ 83.60 │ 75.36 │ ⚠️  高檔保守 │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00878 ETF   │    30    │    -0.55 │  -1.80%  │ 80.43 │ 70.40 │ ⚠️  高檔保守 │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00713 ETF   │    55.75 │    -0.3  │  -0.53%  │ 69.77 │ 71.20 │ 🔍 觀望中性  │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00919 ETF   │    28.41 │    -0.44 │  -1.52%  │ 88.48 │ 84.92 │ ⚠️  高檔保守 │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00915 ETF   │    28.67 │    -0.33 │  -1.13%  │ 85.31 │ 82.46 │ ⚠️  高檔保守 │

├────────────┼──────────────┼──────────┼──────────┼──────────┼───────┼───────┼──────────────┤

│ 2026-05-28 │  00922 ETF   │    38.33 │    -0.94 │  -2.39%  │ 77.49 │ 69.64 │ 🔍 觀望中性  │

╘════════════╧══════════════╧══════════╧══════════╧══════════╧═══════╧═══════╧══════════════╛

======================================================================

觀察ETF折溢價

ETF代號            預估淨值        折溢價

----------------------------------------------------------------------

2330          未找到或不支援           

00757              131.48         -0.71%

0050             101.1200         -0.61%

006208             234.78         -0.69%

00692               88.02         -0.87%

00929               29.52         -0.41%

0056              48.9200         -0.18%

00878               30.18         -0.60%

00713             55.9400         -0.34%

00919               28.58         -0.59%

00915               28.89         -0.76%

00922               38.58         -0.65%

======================================================================

外資期貨多單口數:16,585

外資期貨空單口數:74,781

外資多空淨額口數:-58,196

⚠️  外資期貨淨空單超過40,000口,外資將做空!

======================================================================

20260528 外資、自營商、投信買賣超(單位:億元)

+----------------------------+-------------+-------------+------------+

|           身份別           |    買進     |    賣出     |   買賣超   |

+----------------------------+-------------+-------------+------------+

|      自營商(自行買賣)      |  94.57 億   |  141.90 億  | -47.33 億  |

|        自營商(避險)        |  550.16 億  |  653.21 億  | -103.05 億 |

|            投信            |  370.59 億  |  438.19 億  | -67.59 億  |

| 外資及陸資(不含外資自營商) | 5,683.54 億 | 6,070.37 億 | -386.83 億 |

|            合計            | 6,698.86 億 | 7,303.67 億 | -604.81 億 |

+----------------------------+-------------+-------------+------------+

======================================================================

📈 美國 10 年期公債殖利率:4.495%

📈 美國 20 年期公債殖利率:5.022%

📈 美國 30 年期公債殖利率:5.019%

======================================================================

外資前10大買超

 1. 00403A.TW / 主動統一升級50 / 買超 88668 張

 2. 6770.TW / 力積電 / 買超 74225 張

 3. 00919.TW / 群益台灣精選高息 / 買超 53578 張

 4. 00878.TW / 國泰永續高股息 / 買超 51308 張

 5. 2881.TW / 富邦金 / 買超 45956 張

 6. 1303.TW / 南亞 / 買超 45685 張

 7. 00992A.TW / 主動群益科技創新 / 買超 37530 張

 8. 3481.TW / 群創 / 買超 31655 張

 9. 00981A.TW / 主動統一台股增長 / 買超 24300 張

10. 2882.TW / 國泰金 / 買超 23092 張

======================================================================

外資前10大賣超

 1. 2409.TW / 友達 / 賣超 -88322 張

 2. 2887.TW / 台新新光金 / 賣超 -81920 張

 3. 1402.TW / 遠東新 / 賣超 -78085 張

 4. 2337.TW / 旺宏 / 賣超 -45691 張

 5. 00991A.TW / 主動復華未來50 / 賣超 -44623 張

 6. 2618.TW / 長榮航 / 賣超 -35372 張

 7. 2880.TW / 華南金 / 賣超 -32439 張

 8. 2002.TW / 中鋼 / 賣超 -26456 張

 9. 2312.TW / 金寶 / 賣超 -23537 張

10. 2382.TW / 廣達 / 賣超 -21414 張

======================================================================

🧠 本地 AI 策略特工正對【八大指標】與【各核心 ETF 】進行逐項撕殺點評...


📋 [AI 特工大盤戰術指標分項總評]

1. 大盤估值:本益比32倍泡沫吹大,純屬瘋狂投機。

2. 融資籌碼:散戶韭菜嫌命長,瘋狂進場接刀。

3. 技術乖離:乖離13%極度超買,隨時崩盤雪崩。

4. 期貨主力:空單5.8萬口,外資布好斷頭台。

5. 現貨籌碼:外資瘋狂提款,把台股當無痛提款機。

6. 雙核心:拉積盤掩護出貨,中小股集體失血。

7. 總體資金:美債殖利率抽血,全球資金大撤退。

======================================================================


Friday, May 15, 2026

台股最近真的太瘋了

 如題,真的太瘋狂了,進場指標已經很久沒有顯示可以加碼了。








  • 投資指標:自寫的Python主要針對基本面,技術面與情緒面分析。(左線交易為主,右線為輔以防接刀)
  • 即時看盤: Waydroid+三竹股市

Friday, February 06, 2026

從單機到雲端:台股大盤監控系統自動化實錄

📌 背景與動機

身為一名曾經擔任 QA Engineer目前專注投資的散戶(笑),穩定性與精確度是我的職業本能。原本運行在單機環境的台股監控腳本(twstock.py),雖然能產出精準的台股診斷,但為了實現每日自動化交付(CI/CD)且不佔用本機資源,我決定將其遷移至 GitHub Actions

🛠 技術棧與工具

  • 語言:Python 3.12

  • 數據源:yfinance (行情)、證交所 API (融資/法人)、財報狗 (大盤估值)

  • 自動化:GitHub Actions (CI/CD)

  • 通知:Discord Webhook


📝 核心優化工作回顧

1. 視覺排版與 UI 還原

在雲端環境中,Discord 的訊息格式與單機終端機有所不同。

  • 多行診斷邏輯:還原了精美的 43MA 監控面板,包含「當前指數」、「生命線」與「乖離率」的階層式呈現。

  • 診斷狀態自動化:根據乖離率區間自動判定 🟢【趨勢延續】、🚨【極度過熱】或 🔥【超跌區】,並提供對應的操作建議。

2. 多源數據整合(Refactoring)

遷移過程中,為了確保數據的穩定性與正確性,進行了多次重構:

  • 估值修復:捨棄了不穩定的證交所原始 JSON API,改為整合**財報狗(StatementDog)**的爬蟲邏輯,精確抓取「成交金額」、「PBR」與「PER」。

  • Bug 排除(Unit Testing 思維):修正了數據整合時產生的「單位重複(倍倍)」問題,確保輸出資訊的 Clean Code。

3. 雲端環境適配與運維

  • Secrets 隔離:將敏感的 Discord Webhook URL 透過 GitHub Actions Secrets 加密保護,符合資安標準。

  • 時區處理:解決了 GitHub Ubuntu Runner 預設 UTC 時間與台北時間(UTC+8)的差異問題。

  • 長訊息切割邏輯:針對 Discord 單則訊息 2000 字的限制,實作了自動切割發送功能,確保報表內容不因字數溢位而遺失。

4. GitHub Actions 性能觀察

  • Schedule 延遲分析:觀察到 GitHub Free Tier 的 Cron Job 存在排隊(Delay)現象(如 21:05 設定可能延至深夜執行),後續將考慮透過「避峰策略」優化觸發時間。


📊 最終成品展示

系統現在每晚會自動將以下資訊彙整為一則精美報表發送至 Discord:

  1. 融資餘額與增減趨勢

  2. 大盤估值組合 (成交量、PBR、PER)

  3. 43MA 乖離監控診斷

  4. 11 項核心標的 KD 掃描 (含 K 值買賣觀望建議)

  5. ETF 折溢價與期貨淨額監控

  6. 美債殖利率與外資買賣超排行



💡 結語

重點來了,這兩天跟Gemini一起vibe coding搬遷python到雲端,連最後的工作日誌也幫我寫好了~ 這個時代真的是要懂AI怎樣用才可以大大增加生產力呀!