📚 方法論與資料應用說明(完整透明・供協作檢討)
本面板每一個數字怎麼算、怎麼用,全部列在下面。不靠黑箱、不藏公式,方便多人交互檢討。
① 資料來源與更新
- 來源:Yahoo Finance v8 chart API 即時抓取。線上版(Cloudflare Pages)走同源後端
/api/yahoo(穩定、不靠第三方);本機/未部署時退回免費 CORS 代理(proxy.cors.sh、allorigins)繞過瀏覽器跨域限制。
- 最新收盤修正:Yahoo 常把剛收盤的最後一根
close 留空,本面板用 regularMarketPrice 補上,避免顯示停在前一交易日。
- 抓取期間:日線 5 年、週線 10 年、月線全部歷史、60分K 約 2 年(樣本不足時改用,bar 數變多倍);圖固定顯示最近 120 根(回測則用全段)。台股純數字代號自動補
.TW。
② 技術指標(公式 → 用途)
- 均線 MA5/12/24/60=最近 N 根收盤的簡單平均。名稱只在「日線」給中文名:5=週線、24=月線、60=季線;12 不對應整齊日曆單位、一律叫 12T。切到週/月/60分時全部改用代號
5T/12T/24T/60T(例:週線的 MA24=24 週、不是月線,所以顯示 24T 才不誤導)。用途:判多空排列、當動態支撐。
- MACD:快線
DIF=EMA12−EMA26、慢線 =DIF 的 EMA9、紅綠柱 =DIF−慢線。用途:看動能強弱、高檔/低檔背離。
- RSI(Wilder) 5/10:用 Wilder 平滑法算的相對強弱(0–100),>70 超買、<30 超賣。採 Wilder 法是為了數字對齊一般看盤軟體(簡單平均會差很多)。
- 成交量 VOL5/10=量能均線,看價量配合。
- ATR(14, Wilder)=真實波幅均值,回測停損距離用它(波動度自適應)。
③ 型態與結構分析
- ZigZag 波段線(門檻:日線約 7%):自動抓波段高低轉折,連成霓虹紅線;標 起漲(全段最低)、天價(最高)、前高/回檔。
- 型態判斷:用最近 4 個轉折分類 — 高低點都墊高=多頭趨勢、都下移=空頭、兩個低點相近=W底、兩個高點相近=M頭、其餘=盤整。
- 頸線:取近期最高的「前高」轉折價。現價在其上=突破(轉支撐)、在其下=壓力。
④ 黃金分割與漲跌算價
- 黃金分割:以畫面內波段(最高→最低)算
價=高−區間×比例,比例 0.236/0.382/0.5/0.618/0.786,當潛在回檔支撐。
- 等幅測量:主升段漲幅=前高−起漲低;並標回檔幅度%(越淺越強)。
- 頸線算價:突破目標=
頸線+(頸線−型態低);跌破目標=頸線−(頸線−型態低)。
- 缺口:今日最低>昨日最高(跳空上漲)或今日最高<昨日最低(下跌),且>0.8% 才算;之後價格有沒有回到缺口區間→標 未補/已補(未補缺口常是回補目標與支撐壓力)。
④補 黃金切割(費波那契回撤)詳解
- 是什麼:源自費波那契數列(1,1,2,3,5,8,13…),相鄰數字比值趨近 0.618(黃金比例),也與艾略特波浪相關。它是「前瞻性」工具(先畫出未來可能的支撐壓力位),不像多數指標是落後的。
- 怎麼畫:連接一個波段的「重要最高點 ↔ 最低點」(選近期重要的峰位與底位當基準),自動切出幾條水平線。本面板用畫面內波段自動算。
- 各比例意義:
- 0.382:第一道支撐/壓力最常出現處;反彈常到 0.382 就遇壓。
- 0.5:中線,重要心理參考位。
- 0.618(黃金比例):最關鍵;首次遇阻機率最高,一旦站上/突破 0.618 通常釋放更大動能、轉為支撐。
- 0.236 / 0.786:淺回檔 / 深回檔(部分流派用 0.191 / 0.809)。
- 怎麼用:回檔找買點
回檔價 = 最高 − 跌幅×比例,看價格在哪條線止跌;反彈找賣壓 反彈價 = 最低 + 漲幅×比例(反彈多先到 0.382 遇壓,有利多才到 0.5);亦用來設停利/停損位。
- 注意/限制:① 不是碰到線就一定反轉,要等 K 棒/量能確認再動作;② 修正幅度太小(< 約 23.6%)時用它沒意義;③ 是「機率高的參考位」非精準預言,務必搭配均線/頸線/量能一起看,別單獨用。
- 參考:OANDA 費波那契教學、wantgoo 黃金切割率。
⑤ 回測方法學(最關鍵・每個指標怎麼讀)
- 訊號定義:突破前高(收盤創 60 根新高)、均線多頭(收盤>MA5>MA24>MA60 的第一根)、MACD金叉(DIF 上穿訊號線)、W底(雙底突破頸線)、強勢長紅縮量(帶量長紅K突破關鍵位→隔根量縮且不破該K低→確認進場)。
- 樣本不足時提升 n:日線樣本太少 → 改抓 60 分K(
backtest.py --interval 60m),bar 數變多倍。實測「強勢長紅縮量」日線 n=69 看似賺賠比高(1.88),但拉到 60 分K n=160 後 edge 縮到 +0.11%、edge_t 0.28 → 原本的優勢是小樣本運氣,樣本一多就消失(勝率 46%,並非比較高)。
- 進場(防前視偏誤):訊號當根「收盤確認」,次根「開盤價」才成交——不准用還沒發生的當根收盤偷跑。
- 出場:持有 20 根 K 棒後收盤出場(出場策略比較見 backtest.py)。
- 交易成本:每筆扣來回成本 — 台股約 0.6%(手續費+證交稅+滑點)、美股約 0.1%。短窗策略扣成本後常由正轉負。
- 基準(隨便進場):任意時點同樣持有 20 根、同扣成本的平均報酬,代表「不挑時機、只是參與市場」。
- 超額 edge=
訊號平均報酬 − 基準平均報酬。這才是訊號真正多賺的部分;裸報酬會被多頭行情灌水,看 edge 才不會自欺。
- edge t 值:兩樣本檢定
(m1−m2)/√(s1²/n1+s2²/n2),採 Harvey-Liu-Zhu 標準 |t|>3 才標 ✓(資料探勘氾濫下舊門檻 2 已不夠)。標準差用樣本 /(n−1)。
- 訊號去重:同訊號間隔<持有期就略過,避免「重疊樣本」自相關把勝率灌水。
- 樣本內外(70/30):依時間切,後 30% 當樣本外(OOS)只看不調,驗證外推力。
- 賺賠比=平均獲利/平均虧損;Sharpe=每筆報酬 mean/std(每單位波動換多少報酬);最大回檔=持有期間最深的跌幅。
- 樣本門檻:<10 筆不顯示勝率、<30 筆標「偏少」(小樣本誤差大,不據此下結論)。
⑥ 突破前期偵測 & 相似歷史比對
- 突破前期偵測:看 距前高%、量能是否放大、MACD 是否翻揚 → 給 0–3 分「準備度」,並附歷史「突破前高」的勝率/edge 當參考基準率。
- 相似歷史比對:把最近 20 根線型正規化,在全段歷史用滑窗找「最像現在」的 3 段,看它們之後 10 日怎麼走——回答「歷史上最像現在的時候,後來漲還是跌」。
⑦ 誠實聲明與已知限制
- 目標價、勝率都是歷史統計與型態推算,不是預測保證;任何「準確預測突破」的說法都不可信。
- 單一個股回測天生樣本少、且只含「現存標的」(倖存者偏誤);要更可信請用多檔合併版
backtest.py。
- 已採用:t>3 顯著門檻(Harvey-Liu-Zhu)。多檔池化引擎 backtest.py 另含 Monte Carlo Permutation 檢定(比「無動量隨機序列」)、訊號相關矩陣、與大盤(^TWII)200日線 regime 風控開關(只在大盤多頭才進場,實測把基準 Sharpe 0.15→0.30);DSR(去膨脹夏普)為下一步。
- 刻意未做(對單一個股零售不適用、避免假精密):倖存者偏誤校正、HAC 標準誤、機構級 PBO/CSCV。
- 已知技術限制:W底訊號用的 ZigZag 會用到整段資料(非因果),其樣本外結果含些微未來資訊、且 W底樣本通常偏少,故 W底數字參考性最低;末根若為盤中暫定價,量能為估計值。
- 本面板非投資建議,務必配合停損與資金控管。
⑦補 v3.8 新增:大盤紅綠燈/波動定倉/60分K
- 波動定倉(該買多少):用 ATR 當波動尺、停損距離設 2×ATR、假設每筆最多虧本金 1% →
部位金額 = 本金×1% ÷ 停損距離%。波動越大→停損越遠→能買越少。以每 10 萬(台股)/1 萬美元(美股)本金估算,只示範資金控管邏輯、非投資建議;波動極小導致停損太近時會封頂為滿倉並提醒別重押。
- 60分K:切上排「60分」即抓 60 分 K(約 2 年、樣本數比日線多 ~7 倍)。用途:看短線進出,或用來「把樣本撐大」——回測「強勢長紅縮量」正是靠 60分K 把樣本從日線 69 根拉到 160 根,讓勝率結論站得住嚴格檢驗。
- ATR 平均真實區間(v3.9 顯示):ATR(14) 現值秀在上方數據列(含占股價 %),主圖底部新增一格 ATR 副圖看波動趨勢。ATR 越高=這檔越晃,也是「波動定倉」算該買多少的基礎。均線名稱(v3.9):只在日線叫週/月/季線,切週/月/60分一律 5T/12T/24T/60T,避免「切了週期還叫月線」的誤導。
⑧ 參數一覽(所有用到的數字)
| 項目 | 數值 | 用在哪 |
| 抓取期間 | 日線5年 / 週線10年 / 月線全部 | 回測樣本長度 |
| 圖顯示根數 | 最近 120 根 | 主圖與副圖 |
| 均線 MA | 5 / 12 / 24 / 60 | 排列、支撐、訊號 |
| MACD | 快12・慢26・訊號9 | 動能/金叉 |
| RSI(Wilder) | 5 / 10;超買70・超賣30 | 強弱/超買賣 |
| ATR(Wilder) | 14 | 停損距離 |
| ZigZag 門檻 | 圖 7%;回測W底 5% | 波段轉折/型態 |
| 黃金分割比例 | 0.236 / 0.382 / 0.5 / 0.618 / 0.786 | 回檔支撐 |
| 突破窗(rolling high) | 60 根 | 突破前高訊號 |
| 持有期 | 20 根 | 回測進出 |
| 交易成本(來回) | 台股 0.6% / 美股 0.1% | 每筆淨報酬扣除 |
| 缺口門檻 | 0.8% | 跳空認定 |
| 訊號去重間隔 | = 持有期(20) | 防重疊自相關 |
| 樣本內外 | 70% / 30% | OOS 外推驗證 |
| 相似歷史 | 窗長20・前向10・取最像3段 | 歷史線型比對 |
| 樣本門檻 | <10 不顯示・<30 標偏少 | 避免小樣本下結論 |
| 出場比較(backtest.py) | ATR停損2x/3x・移動停損2x・2R停利 | 出場策略 |
| Monte Carlo | 3000 次 bootstrap | edge 分布 |
⑨ 關鍵計算寫法(直接看公式怎麼寫的)
最大回撤 MDD(每筆交易,表格「平均最大回檔」= 全部交易取平均):
entry = open[i+1] # 次根開盤進場(防前視)
mdd = 0
for k in 進場根..出場根:
mdd = min(mdd, (low[k]-entry)/entry*100) # 期間最深跌幅%
平均最大回檔 = mean(每筆 mdd)
淨報酬 與 超額 edge:
淨報酬% = (出場收盤 - 進場開盤)/進場開盤*100 - 交易成本
edge = 訊號平均淨報酬 - 基準(隨便進場)平均淨報酬
edge 顯著性(兩樣本 t,|t|>2 才標 ✓)/Sharpe/期望值/賺賠比:
edge_t = (m1 - m2) / sqrt(s1²/n1 + s2²/n2) # 訊號 vs 基準
Sharpe = mean(每筆報酬) / std(每筆報酬)
期望值 = 勝率×平均獲利 + 敗率×平均虧損 (= 平均報酬)
賺賠比 = 平均獲利 / |平均虧損|
RSI(Wilder 平滑,對齊看盤軟體)/ATR:
RSI: 首值 avgGain/avgLoss = 前n根漲/跌幅平均
之後 avgGain = (avgGain*(n-1) + 本根漲幅)/n (avgLoss 同理)
RS = avgGain/avgLoss ; RSI = 100 - 100/(1+RS)
ATR: TR = max(高-低, |高-昨收|, |低-昨收|)
首值=前14根TR平均; 之後 ATR=(ATR*13 + 本根TR)/14
停損價 = 進場 - 倍數×ATR (2x / 3x)
訊號偵測(皆用「當根收盤確認」,次根才成交):
突破前高 : 收盤 > 前60根最高 且 前一根尚未創新高
均線多頭 : 收盤 > MA5 > MA20 > MA60 的第一根
MACD金叉 : DIF 上穿 訊號線 (DIF>sig 且 前一根 DIF<=sig)
W底 : ZigZag 出現 低-高-低 且兩低相近(<4%),收盤突破中間高(頸線)
方法學來源:經「向外研究權威(Investopedia/QuantStart/SSRN 等) → 向內檢核本系統 → 對抗驗證」流程確立。實作細節一律以程式碼為準。