Author Archives: 發財橘子

彼得提爾的選股邏輯

 

彼得·提爾(Peter Andreas Thiel,1967年10月11日-)是著名的德裔美籍企業家、風險投資家、對沖基金經理人與政治評論家,被譽為矽谷最具影響力的「教父級」思想家。他以共同創辦 PayPal 及大數據分析巨頭 Palantir Technologies 聞名,且身為 Facebook(現 Meta)的首位外部投資人,其投資眼光精準。他所提倡的「從零到一」創新理念與對壟斷市場的獨到見解,深刻地重塑了當代科技創業與投資界的遊戲規則。

提爾的投資哲學核心在於「逆向投資」(Contrarianism)與「壟斷」。他認為競爭是給失敗者準備的,真正的商業價值來自於創造出獨一無二、能產生壟斷效益的公司(即「從零到一」的垂直進步,而非「從一到多」的水平複製)。

他偏好具有強大技術壁壘、顯著網路效應或獨特品牌優勢的企業。 

獨占性與定價權篩選 (Monopoly & Pricing Power)

  • 毛利率 (Gross Margin):>60>60。高毛利是軟體或科技壟斷的財務特徵,代表極強的定價權與邊際成本趨近於零的可擴展性。
  • 淨利率成長率:過去 3 年平均 >15>15。顯示隨著規模擴大,網路效應 (Network Effect) 正在轉化為實際獲利。
  • 市場佔有率優勢 ⚠️:該公司在細分領域必須是絕對領導者(量化代理指標:營收規模大於第二名競爭對手 2 倍以上,或相對強弱指標 RS rating > 90)。

工程與技術突破 (The 10x Improvement)

  • 研發投入比 (R&D/Sales):>20>20。持續的高研發投入是維持技術領先(比起競爭對手好 10 倍)的必要條件。
  • 營收成長率 (Revenue Growth):>30>30。必須處於高速擴張期,因為在 Thiel 的觀點中,低成長代表競爭激烈。

創辦人控制權與誘因 (Founder-Led & Skin in the Game)

  • 內部人持股比例:創辦人/管理層持股 >5~10%。Thiel 偏好創辦人親自掌舵的企業。

反向與被低估的成長 (Contrarian Truth)

  • 機構持股比例:初期可設定 <40 。Thiel 尋找的是大眾尚未發現的「秘密」,若機構持股過高,代表共識已形成,超額報酬降低。
  • PEG (本益成長比):雖然 Thiel 不重估值,但為了量化安全性,可設定 PEG<2.0 ,確保成長未被極度過度定價。

現金流持久性 (Durability)

  • 自由現金流 (FCF) 轉正預期:雖然目前可虧損,但經營現金流需呈現逐季改善趨勢,或符合「40法則」(Rule of 40: 營收成長率 + 利潤率 > 40%)。

 

根據上述的想法,我寫了一個腳本如下

// 腳本名稱:提爾「從零到一」壟斷獨角獸濾網
// 資料頻率:日 (結合季財報與月營收)

// --- 參數設定 ---
input: Margin_Threshold(40, "毛利率門檻(%) -> 尋找定價權與壟斷力");
input: RD_Ratio_Threshold(8, "研發費用率門檻(%) -> 尋找極致的技術壁壘");
input: Rev_Growth(20, "近三月營收年增率(%) -> 尋找網路效應與掠奪式成長");
input: RuleOf40_Limit(40, "4.Rule of 40 下限");
input: Insider_Limit(5, "5.董監持股下限(%)");
input: PEG_Limit(2.0, "7.PEG上限");

// --- 條件一:絕對的定價權 (高毛利) ---
value1 = GetField("營業毛利率", "Q"); 
condition1 = value1 >= Margin_Threshold;


// --- 條件二:深厚的技術壁壘 (高研發投入) ---
// 計算「研發費用率」:營業研發費用 / 營業收入淨額
value2 = GetField("研發費用", "Q");
value3 = GetField("營業收入淨額", "Q");
value4 = 0;

condition2 = false;
if value3 > 0 then begin
value4 = (value2 / value3) * 100;
// 研發投入佔比必須高於設定門檻
if value4 >= RD_Ratio_Threshold then condition2 = true;
end;


// --- 條件三:網路效應與規模化 (高速且持續的營收成長) ---
// 使用近三個月的平均營收年增率,過濾掉單月入帳的雜訊
value5 = Average(GetField("月營收年增率", "M"), 3);
condition3 = value5 >= Rev_Growth;


// --- 條件四:動能確認 (處於擴張期) ---
// 確保目前的月營收具備創新高的規模,而非正在衰退的過氣產業
condition4 = GetField("月營收", "M") = Highest(GetField("月營收", "M"), 12);

// 條件五: Rule of 40 與 PEG 估值保護
value8 = GetField("營業利益率", "Q");
value9 = GetField("本益比", "D");
value10 = GetField("稅後淨利成長率", "Q"); // 單季淨利成長率,用於計算PEG

// 計算 Rule of 40 (營收成長率 + 營業利益率)
value6= value5 + value8;

// 計算 PEG (本益成長比)
// 若本益比或淨利成長率為負,賦予極大值以排除
var:peg(0);
if value9 > 0 and value10 > 0 then 
peg = value9 / value10 
else 
peg = 999; 

condition5 = value6 >= RuleOf40_Limit; // SaaS/軟體股核心健康指標
condition6 = peg <= PEG_Limit; // 成長未被極度透支

// --- 綜合篩選與輸出 ---
if condition1 and condition2 and condition3 and condition4 
and condition5 and condition6 then begin
ret = 1;
outputField1(value1, "營業毛利率(%)");
outputField2(value4, "研發費用率(%)");
outputField3(value5, "近3月營收成長(%)");
end;

 

根據這樣的腳本去回測過去12年的台股, 持有天數90天,回測報告如下

總交易次數351次,勝率是56%,不算高,時間加權報酬率是3151%,遠遠勝於大盤的276% ,顯示尋找壟斷股票這樣的概念,在台灣也是可行的

 

 

趨勢強度指標

趨勢強度指標 (Trend Intensity Index, TII) 雖然不像 RSI 或 MACD 那樣家喻戶曉,但在專業量化交易員圈子中,它被視為測量市場「信念(Conviction)」最精準的工具之一。

其發明者 M.H. Pee 的設計理念非常獨特,他認為傳統指標只看「價格變動的速度」,卻忽略了 「價格相對於長期均衡價值的累積位移」 。

以下為您詳細說明 TII 的設計理念、計算公式、實戰應用,並提供專為 XQ 系統優化的 XScript 腳本。

一、 TII 的設計理念:量化群眾的「信念」

在行為金融學中,有一個「從眾效應(Herding)」。當一個趨勢形成時,散戶通常是最後知後覺的,而法人機構則是有計劃地推升價格。

TII 的設計核心在於:如果市場真的處於強勢的多頭,群眾不僅會把價格推高,而且會「願意長時間、大幅度地在均線(長期價值共識)之上買進」。

  • 傳統 RSI 的缺點:如果股價連續 14 天微幅上漲 0.1%,RSI 會衝到接近 100,顯示極度超買,但實際上推升力道很弱。
  • TII 的優點:它不看單日的漲跌幅,而是計算過去一段時間 內,價格位於長期均線 「上方」的累積面積,與「下方」累積面積的比例。這測量的是一種趨勢的「動能持續性」與「群眾追價信念」

二、 TII 的詳細計算方式

TII 的計算分為四個步驟,本質上是一個「乖離率的累積佔比」運算:

步驟 1:建立長期價值基準線 (Baseline)

計算長天期的移動平均線 (MA)。 

 

步驟 2:計算每日價格與均線的「乖離 (Deviation)」

計算每日收盤價相對於 MA 的絕對位移。

D = Close – MA

步驟 3:分類並累加「正乖離」與「負乖離」

在過去 N 天 內:

  • 如果 D > 0 (收盤價在均線之上),將該數值計入 「多頭力量總和 (SumPosDev)」 。
  • 如果  D < 0 (收盤價在均線之下),將該數值的絕對值計入 「空頭力量總和 (SumNegDev)」 。

步驟 4:計算 TII 百分比

將多頭力量佔總力量(多頭 + 空頭)的百分比算出。數值範圍在  0  到100% 之間。

 

  • TII = 50%:多空力量完全平衡。
  • TII > 50%:多頭佔優勢,價格主要在均線之上運行。
  • TII < 50%:空頭佔優勢,價格主要在均線之下運行。

三、 實戰應用指南 

TII 適合用來作為 「趨勢確認(Filter)」「信念背離(Divergence)」 的研判工具。

1. 趨勢確認與過濾假突破 (Trend Confirmation)

這是 TII 最強大的功能。當股價突破前高時,散戶常衝進去追高,結果遇到假突破。

  • 應用邏輯:只有當 TII 突破 80% 門檻時,才確認這是一個具備強大群眾信念的多頭趨勢。
  • 戰略價值:這能幫用戶過濾掉超過 60% 的無效突破與盤整雜訊。 

2. 信念耗竭與頂部背離 (Conviction Exhaustion)

當股價還在創新高,但願意在均線之上追價的「累積力量」開始減少時,就是大逆轉的前兆。

  • 應用邏輯:股價創出新高,但 TII 雖然還在 50% 以上,卻無法回到 80% 門檻(或 TII 的高點一波比一波低)。
  • 行為學意義:這在行為心理學上稱為 「信念動搖」。雖然價格表面風光,但買盤的真實底氣已經虛化,隨時可能發生崩盤。這是一個極佳的波段停利訊號 。

3. 中軸交叉訊號 (零軸交叉變體)

當 TII 從下方向上穿越 50%,代表長期的籌碼生態正式由空翻多。這是一個較遲鈍但穩健的長線買點。

 

四、 XScript (XQ 語法) 指標腳本實作

這段腳本忠實還原了 M.H. Pee 的 TII 算法,並使用了 Average 來處理長期均線與乖離的累加。 

 

// 指標名稱:Trend Intensity Index (TII 趨勢強度指標)
// 理論基礎:M.H. Pee
// -----------------------------------------------------------
Input: 
Long_Period(22, "長期均線週期(基準線)"), 
Smooth_Period(10, "乖離累加週期(平滑線)");

Variable: 
ValueMA(0), Dev(0), 
TodayPosDev(0), TodayNegDev(0), // 新增:單純記錄當根 K 線的正/負乖離
SumPosDev(0), SumNegDev(0), 
TII(0);

// 1. 確保有足夠的 K 線數據
if CurrentBar < Long_Period then return;

// 2. 計算市場長期價值基準線 (SMA)
ValueMA = Average(Close, Long_Period);

// 3. 計算每日價格與均線的「乖離 (Deviation)」
Dev = Close - ValueMA;

// 4. 將當根 K 線的乖離,嚴格分流到正負變數中
// 不在此處進行加總,只做數值分離
if Dev > 0 then begin
TodayPosDev = Dev;
TodayNegDev = 0;
end else if Dev < 0 then begin
TodayPosDev = 0;
TodayNegDev = AbsValue(Dev);
end else begin
TodayPosDev = 0;
TodayNegDev = 0;
end;

// 5. 在條件式之外,無條件對過去 N 天的數列進行滾動加總
// 這樣 Summation 函數每天都會確實讀取到陣列的新值
SumPosDev = Summation(TodayPosDev, Smooth_Period);
SumNegDev = Summation(TodayNegDev, Smooth_Period);

// 6. 計算 TII 最終數值
if (SumPosDev + SumNegDev) <> 0 then
TII = (SumPosDev / (SumPosDev + SumNegDev)) * 100
else
TII = 50;

// 7. 繪圖輸出
Plot1(TII, "TII 強度指數");
Plot2(50, "多空分水嶺(中軸)");
Plot3(80, " 信念強勁");
Plot4(20, "信念崩塌");

 

底下是趨勢強度指標與K線的對照圖

Elder-Ray Index

艾爾德射線 (Elder-Ray Index),又常被稱為牛熊力量指標 (Bull & Bear Power),是由擁有精神科醫師背景的傳奇交易員亞歷山大·艾爾德博士 (Dr. Alexander Elder) 所發明。

這套指標的命名極具巧思:「Ray」代表 X 光射線。艾爾德博士認為,K 線圖只是市場的皮膚,而這套指標就是市場的 X 光機,能看穿皮膚底下「多頭(貪婪)」與「空頭(恐懼)」雙方力量的真實骨架。

以下為您深度拆解其設計理念、實戰應用,以及專為 XQ 系統優化的 XScript 腳本。

1. 設計理念:精神醫學視角下的「價值共識」

艾爾德射線的底層邏輯,建立在三個行為金融學的假設上:

  1. 價值共識 (Value Consensus):
    艾爾德認為,指數移動平均線 (通常使用 13 日 EMA) 代表了這段期間內,多空雙方妥協後的「合理價值共識」。
  2. 多頭的最大推升力 (Bull Power):
    當天的最高價 (High),代表多頭在盤中最極度貪婪、傾盡全力把價格往上推的極限位置。

    • 公式: Bull Power = High – 13日 EMA
    • 意義: 測量多頭能把股價拉離「價值共識」多遠。
  3. 空頭的最大下砸力 (Bear Power):
    當天的最低價 (Low),代表空頭在盤中製造最大恐慌、把價格往下砸的極限位置。

    • 公式: Bear Power = Low – 13日 EMA
    • 意義: 測量空頭能把股價壓離「價值共識」多深。

2. 實戰應用指南 (產品化視角)

這套指標在視覺呈現上極具特色,它通常包含一個趨勢指標 (EMA) 與兩個柱狀圖 (Bull Power & Bear Power)。 這套邏輯能完美解決散戶「順勢交易中找不到進場點」的痛點。

  • 最高勝率買點:多頭趨勢中的「空頭力竭」
    • 背景: 13 日 EMA 趨勢向上(大方向是多頭)。
    • 觸發: Bear Power 柱狀圖處於零軸之下(股價回檔,空頭發力),但柱狀體開始縮短、向上勾頭
    • 行為學意義: 大趨勢向上,但盤中空頭試圖把價格砸破價值共識(EMA)。當 Bear Power 向上勾,代表「空頭砸盤的力量已經耗盡」,這是順勢交易中極佳的拉回買點
  • 最高勝率空點:空頭趨勢中的「多頭力竭」
    • 背景: 13 日 EMA 趨勢向下。
    • 觸發: Bull Power 柱狀圖處於零軸之上,但柱狀體開始縮短、向下彎折
    • 行為學意義: 跌勢中的反彈,多頭傾盡全力也無法繼續將價格推離 EMA,多頭氣力放盡,是極佳的反彈空點
  • 終極反轉訊號:力量背離 (Power Divergence)
    • 股價創新高,但 Bull Power 柱狀圖卻比前一波低 $\rightarrow$ 多頭情緒耗竭,即將見頂
    • 股價創新低,但 Bear Power 的負值柱狀圖卻比前一波淺 $\rightarrow$ 空頭情緒耗竭,即將見底

3. XScript (XQ 語法) 完整指標腳本

為了在系統中創造最強烈的視覺對比,這段腳本將 Bull Power 與 Bear Power 繪製在同一個副圖中,並利用零軸上下的柱狀圖顏色漸層,讓「多空角力」的動態變化一目了然。

程式碼 

// 指標名稱:Elder-Ray Index (艾爾德射線 / 牛熊力量指標)
// 理論基礎:Dr. Alexander Elder
// -----------------------------------------------------------
Input: Length(13, "EMA 計算週期");
Variable: ValueEMA(0), BullPower(0), BearPower(0);

// 1. 計算市場價值共識 (13 日 EMA)
ValueEMA = XAverage(Close, Length);

// 2. 計算多頭力量與空頭力量
// Bull Power:最高價與 EMA 的距離
BullPower = High - ValueEMA;
// Bear Power:最低價與 EMA 的距離
BearPower = Low - ValueEMA;

// 3. 繪圖輸出 (建議在系統設定中,將 Plot1 與 Plot2 皆設為「柱狀圖」)
Plot1(BullPower, "多頭力量(Bull)");
Plot2(BearPower, "空頭力量(Bear)");
Plot3(0, "價值共識(零軸)");

 

在實務的看盤 上,散戶經常不知道該看哪一個指標來決定進出場。下面是這個指標的圖例

 

透過將艱澀的行為心理學量化,並轉換為極度直觀的視覺標籤,這能大幅降低一般投資者交易的門檻 。

 

SZO情緒指數

情緒區間震盪指標 (Sentiment Zone Oscillator, SZO) 是由 Walid Khalil 於 2012 年發表在《Technical Analysis of Stocks & Commodities》雜誌上的指標。這是一個「行為金融學(Behavioral Finance)」 的工具。傳統的 RSI 或 MACD 都是以「價格變動的幅度(Magnitude)」為計算基礎;但 SZO 徹底摒棄了幅度,它只在乎 「時間與群眾情緒的持續性(Persistence)」 。 因為人性只要漲就會更貪婪,只要跌就會更恐懼。

以下為您詳細拆解 SZO 的數學意義、實戰應用,以及無縫接軌系統的 XScript 腳本。


1. 核心數學意義與邏輯:純粹的群眾投票機

SZO 的底層邏輯非常簡單粗暴:今天只要收紅(上漲),就算多頭贏了一票(+1);只要收黑(下跌),就算空頭贏了一票(-1)。漲跌 1 塊錢跟漲跌 100 塊錢,在情緒的權重上是完全一樣的。

運算步驟拆解:

  1. 情緒定位 (Sentiment Position, SP):

  • 三重指數平滑 (TEMA):

    單純加總每日的 +1 與 -1 會產生太多鋸齒狀雜訊。SZO 採用了極度滑順且延遲極低的三重指數移動平均 (TEMA) 來處理這組數列。

  • 標準化 (Normalization):

    將平滑後的值乘以 100,使其波動範圍完美鎖定在 $+100$$-100$ 之間。

2. 實戰應用指南 (PM 產品視角)

對於您的平台用戶而言,SZO 是一支非常純粹的**「情緒溫度計」**。它的曲線平滑,極度適合用來過濾假訊號與捕捉情緒的極端反轉。

  • 尋找極端情緒 (Euphoria vs. Despair):

    • SZO 通常以 +50-50 作為極端警戒線(這等同於過去 14 天內,有超過 75% 的天數是上漲或下跌的)。

    • 極度貪婪 (+50 以上): 市場處於非理性的狂熱,散戶瘋狂追高(FOMO)。此時隨時可能發生多殺多的踩踏,是右側波段停利的極佳時機。

    • 極度恐懼 (-50 以下): 市場連續多日陰跌,散戶絕望停損。這是賣壓即將枯竭的訊號,適合左側尋找買點

  • 情緒背離 (Sentiment Divergence): 這是 SZO 最具威力的用法。當股價創出新高,但 SZO 卻未能突破前高,這代表**「雖然價格還在漲,但願意每天用真金白銀投下 +1 票的人變少了」**。這種情緒退潮往往領先於價格的崩盤。


3. XScript (XQ 語法) 完整指標腳本

// 指標名稱:Sentiment Zone Oscillator (SZO 情緒區間震盪指標)
// 理論基礎:Walid Khalil (行為金融學)
// -----------------------------------------------------------
Input: Length(14, "計算週期");
Variable: SP(0), EMA1(0), EMA2(0), EMA3(0), SZO(0);

// 1. 計算每日情緒定位 (Sentiment Position)
if Close > Close[1] then
SP = 1
else if Close < Close[1] then
SP = -1
else
SP = 0;

// 2. 計算三重指數移動平均 (VALUE1) 進行極致平滑
// XQ 的 XAverage 函數即為 EMA (Exponential Moving Average)
EMA1 = XAverage(SP, Length);
EMA2 = XAverage(EMA1, Length);
EMA3 = XAverage(EMA2, Length);

// VALUE1 核心公式:3 * EMA1 - 3 * EMA2 + EMA3
VALUE1 = (3 * EMA1) - (3 * EMA2) + EMA3;

// 3. 計算 SZO 最終數值 (標準化至 -100 ~ +100)
SZO = 100 * VALUE1;

// 4. 繪圖輸出
Plot1(SZO, "SZO 情緒指數");
Plot2(0, "零軸 (多空分水嶺)");

// 繪製極端情緒警戒線
Plot3(50, "極度貪婪區 (+50)");
Plot4(-50, "極度恐懼區 (-50)");

畫出來的參考圖

WVIXF

個股合成恐慌指數 (Williams VIX Fix, WVIXF) 是由交易大師 Larry Williams 發明的傑作。傳統的 VIX 指數只能依賴大盤選擇權的隱含波動率來計算,這導致我們無法測量「單一個股」的恐慌程度。WVIXF 的誕生,就是為了讓任何一檔股票、ETF 甚至加密貨幣,都能擁有自己的專屬恐慌指數。

近幾年,TradingView 社群將這個老指標進行了「現代化改良(疊加布林通道)」,使其成為目前抓取個股「極度恐懼(底部)」最精準的工具之一。

1. 核心數學意義與現代化改良

WVIXF 的底層邏輯非常直觀:當前股價距離近期的最高點跌得越深,市場就越恐慌。

原始公式計算

  • 意義: 計算當前低點相較於近期最高收盤價的「最大回撤百分比」。指標數值越高,代表跌幅越深、恐慌越劇烈。

 

現代改良版:疊加動態布林通道 (Bollinger Bands)

原始的 WVIXF 有一個缺陷:每檔股票的股性不同,牛皮股跌 10% 已經是極度恐慌,但妖股跌 10% 只是日常波動。因此,現代量化分析不再使用固定的絕對數值,而是在 WVIXF 曲線之上,疊加一組布林通道的「上軌」

  • 計算方式: 針對 WVIXF 數值,計算其 20 日移動平均線(MA),並加上 2 倍的標準差(Standard Deviation)。
  • 改良意義: 這條布林上軌成為了「動態的極端恐慌閾值」。只有當今天的恐慌程度,超越了該檔股票近期的常態波動範圍,才被認定為真實的「散戶怕到想要賣股票」。

2. 實戰應用指南

這個指標的視覺呈現通常是柱狀圖(Histogram)。它的判讀邏輯與一般指標完全相反:指標衝得越高,代表底部越近。

  • 左側抄底(抓取極端轉折):
    當 WVIXF 的柱狀體向上突破布林上軌時,代表市場出現了極端的拋售高潮(Selling Climax)。這通常伴隨著散戶的停損斷頭賣壓。當柱狀體隨後跌回布林上軌之下的那一刻,代表恐慌情緒開始降溫,這正是極高勝率的左側買點。
  • 過濾正常回檔:
    在多頭趨勢中,股價難免回檔。如果股價下跌,但 WVIXF 的柱狀體離布林上軌還很遠,代表這只是主力正常的洗盤,市場並未陷入恐慌,這時候輕易摸底容易接刀。
  • 大盤與個股的共振:
    若標普500的真實 VIX 飆高,同時個股的 WVIXF 也突破上軌,這種「總體與個體的雙重恐慌」,代表個股的下跌跟外部整體氣氛息息相關,而不是個股的基本面有什麼變化,這往往是長線佈局的機會。

3. XScript的對應腳本

// 指標名稱:個股恐慌指數 (Williams VIX Fix - 現代改良版)
// -----------------------------------------------------------
Input: 
Period(22, "尋找最高價週期"), 
BBLength(20, "布林通道週期"), 
BBMult(2.0, "標準差倍數");

Variable: 
HighestClose(0), WVIXF(0), 
Wvixf_MA(0), Wvixf_Std(0), Wvixf_Upper(0);

// 1. 找出過去 N 天的最高收盤價
HighestClose = Highest(Close, Period);

// 2. 計算 VIX Fix 核心公式 (當下低點距離最高收盤價的回撤百分比)
if HighestClose > 0 then
WVIXF = ((HighestClose - Low) / HighestClose) * 100
else
WVIXF = 0;

// 3. 建立動態極端閾值 (計算 WVIXF 的布林上軌)
Wvixf_MA = Average(WVIXF, BBLength);
Wvixf_Std = StandardDev(WVIXF, BBLength, 1);
Wvixf_Upper = Wvixf_MA + (BBMult * Wvixf_Std);

// 4. 繪圖輸出
// 建議在 XQ 系統中,將 Plot1 樣式設定為「柱狀圖」
Plot1(WVIXF, "WVIXF 恐慌指數");
Plot2(Wvixf_Upper, "極度恐慌閾值(上軌)");

 

畫出來的指標如下

 

 

 

斯坦利·德魯肯米勒 (Stanley F. Druckenmiller)的投資哲學

Fomo研究院昨天寫了一篇文章如連結,這文章是摩根士丹利對傳奇投資人 Stan Druckenmiller 進行了一場深度訪談的內容。我請Gemini把這位大神的投資哲學寫成Xscript的選股腳本,今天我們就來聊一聊這位大神,以及我們要如何透過AI的協助,複製這位大神的投資哲學到台股的投資中。

Druckenmiller是個猛人,他原本在密西根大學唸經濟學博士,唸一唸發現學術界的經濟學模型過於僵化、不具備市場實戰價值而決定退學,直接投入金融業。

1977年他以去Pittsburgh National Bank當實習生,僅花一年時間,便因展現出卓越的商業直覺與分析能力,25 歲就被拔擢為股票研究部主管。

他在這個職務做了四年,1981年創辦了屬於自己的避險基金Duquesne Capital Management

這個基金以 100 萬美元創立 ,最高管理資產規模達 120 億美元。 30 年期間,締造了平均年化報酬率約 30% 的驚人紀錄,且從未有過任何虧損的年度(包含 2000年網路泡沬及2008 年金融海嘯期間仍維持正報酬)。

他最知名的戰役是,他曾從1988到2000年兼任過索羅斯量子基金的操盤手,在1992年重倉放空英鎊,為量子基金一天就賺了10億美金。

2010年之後,他就把錢都退完給客戶,目前專注於管理自有資金,持續活躍於全球市場,近年在 AI 浪潮(如 Nvidia)與生技醫療等領域亦有精準的佈局。

這樣一位如神一般存在的投資人,他的投資邏輯必有值得我們學習的地方

Fomo研究院這一篇寫的很好,內容請大家點連結進去看,基於版權我不好多寫

不過我可以在這篇文章提的這五點之外,另外分享幾點

一,永遠聚焦 18 到 24 個月後的未來

Druckenmiller 從不根據今天的財報或明天的新聞來交易,他認為現在的數據早就被市場定價了。 他的工作是想像「18 到 24 個月後,這家公司或這個世界的經濟樣貌會是什麼?」然後在現在尋找能夠引發那種改變的催化劑。他買的不是公司現在的價值,而是買它兩年後的變化率。

他的這個觀點我超級認同

二,將技術分析作為「測溫計」與「計時器」

他不迷信簡單的圖表型態,但他極度依賴技術分析來驗證基本面觀點。 如果他的基本面研究顯示某檔股票極佳,但圖表卻呈現不斷破底的空頭走勢,他會選擇觀望,認為「市場一定看到了我沒看到的東西」。他利用技術分析來感受市場的情緒、尋找絕佳的進場時機(Timing),並設定嚴格的停損點。

看完了他的投資哲學之後,我想要跟大家分享我如何用AI+XQ來複製他的投資哲學

第一步:  我把Fomo研究院的這篇文章貼到 gemini上,然後gemini就幫我整理出這篇文章的重點,然後gemini問我要不要進一步探討如何利用程式(例如 XScript 或 Python)將這些哲學轉化為具體的選股濾網嗎?例如,我們可以試著構思一段邏輯,專門篩選出「本益比處於歷史低位,但近兩季研發費用卻異常暴增」的潛在轉型股。

我說  yes,gemini就幫我生成了一份xscript的選股腳本

第二步,我把這腳本貼到XQ的 Xscript編輯器去編譯

然後就出現下面的錯誤訊息

第三步: 修正腳本

我看了一下,發現他的腳本中用了GetField(“營業研發費用”, “Q”); 但Xscript的研發費用欄位,並沒有營業兩個字,所以我就直接把這兩個字去掉,重新編譯,就成功了

成功後的腳本如下

// 腳本名稱:轉型迷霧淘金 (低本益比 + 研發爆增)
// 資料頻率:日

// 參數設定
input: PE_Length(750, "本益比歷史區間(天,預設約3年)");
input: PE_Threshold(1.2, "歷史低位容忍倍數(1.2=距最低點20%內)");
input: RD_Growth(30, "近兩季研發費用年增率門檻(%)");

// --- 條件一:本益比處於歷史低位 ---
value1 = GetField("本益比", "D");
value2 = Lowest(value1[1], PE_Length); // 過去N天的最低本益比

// 確保本益比為正值(排除虧損),且目前本益比接近歷史最低點
condition1 = value1 > 0 and value1 <= (value2 * PE_Threshold);


// --- 條件二:近兩季研發費用異常暴增 ---
// 取得研發費用 (以季為頻率)
value3 = GetField("研發費用", "Q"); // 最近一季
value4 = GetField("研發費用", "Q")[1]; // 前一季
value5 = GetField("研發費用", "Q")[4]; // 去年同期 (最近一季)
value6 = GetField("研發費用", "Q")[5]; // 去年同期 (前一季)

condition2 = false;
// 確保去年同期的研發費用大於0,避免分母為零的運算錯誤
if (value5 + value6) > 0 then begin
// 計算近兩季研發費用總和的年成長率
value7 = ((value3 + value4) - (value5 + value6)) / (value5 + value6) * 100;

// 若成長率突破門檻,則觸發條件
if value7 >= RD_Growth then condition2 = true;
end;


// --- 綜合篩選與輸出 ---
if condition1 and condition2 then begin
ret = 1;
outputField1(value1, "目前本益比");
outputField2(value7, "近兩季研發年增率(%)");
outputField3(value3 + value4, "近兩季研發總額(百萬)");
end;

我把它拿來回測了一下,持有天數直接設為120天,我用的是普通股扣除KY,金融股及營建股

回測報告如下

我把這個選股加到每日自動執行的清單中,就可以知道有那一檔台股符合Druckenmiller的選股標準,接下來我就把這檔股票放到自選股,用其他技術分析指標來研判是否出現進場訊號

 

以上是我用AI+XQ的協作過程,先前介紹的技術指標,蠻多也是先請AI幫我寫腳本,寫完再放到Xscript編輯器裡去編譯,然後再根據錯誤訊息去修改,以我目前的心得,大部份的錯誤都是getfield的欄位名稱跟XS有小小落差,或是畫圖的語法,XS是直接用UI來設,不支援直接用語法寫,但AI對於寫程式的邏輯倒是很少有出過錯,甚至比我們人寫還精準

昨天有網友在問我寫的這些指標是怎麼做出來的,謹以此篇作例子,也請大家可以自己試看看。

 

 

VSA (Volume Spread Analysis, 量價分析) 中的 「無供應 (No Supply)」

VSA 是理查·奈(Richard Ney)與湯姆·威廉斯(Tom Williams)將威科夫理論現代化後的最強分支。它將威科夫的「努力與結果(Effort vs. Result)」法則直接寫成 K 線的辨識邏輯。

無供應 (No Supply) / 測試 (Test): 發生在下跌區間。K 線收跌,但波幅縮小,成交量極度萎縮。這代表市場上的浮動籌碼已經洗乾淨,賣壓枯竭,是威科夫理論中極佳的買點。

深入探討 VSA (Volume Spread Analysis, 量價分析) 中的 「無供應 (No Supply)」,是將威科夫理論從「抽象哲學」落地為「具體交易訊號」的關鍵一步。

在傳統技術分析中,散戶常常看見下跌就恐慌,或是迷信「放量才是買點」。然而,VSA 的核心理念是:主力的建倉往往是悄無聲息的;當市場上真正沒有人願意倒貨時,只要一點點買盤,股價就能輕鬆推升。

以下為您詳細拆解「無供應」的底層意義、嚴謹的定義方式,以及如何將其轉化為高勝率的實戰策略。

1. 核心意義:看透賣壓的枯竭

「無供應 (No Supply)」K 線的出現,代表市場上的浮動籌碼 (Floating Supply) 已經被清洗乾淨

  • 心理學視角: 想像一檔股票經歷了回檔洗盤,散戶該停損的都停損了,套牢的也已經麻木不再看盤。這時,主力會進行「測試 (Test)」,他們刻意不掛買單,任由價格自然滑落。
  • 主力行為特徵: 如果價格滑落時,成交量極度萎縮,且價格跌不下去(實體與波幅很小),這就給了主力一個明確的綠燈——「市場上已經沒有潛在的拋售壓力(無供應)了,現在拉抬股價阻力最小,成本最低。」

2. 計算方式與嚴謹定義 (XScript 邏輯拆解)

VSA 不是一個有著絕對數學公式的指標(如 RSI 的 0 到 100 ),它是一套 「條件特徵比對」 的邏輯。要精準定義一根「無供應」K 線,必須同時滿足以下三個嚴格條件:

  1. 條件 A:價格收跌 (Down Bar)
    • 定義: 當根 K 線的收盤價,必須低於前一根 K 線的收盤價(Close < Close[1])。
    • 意義: 這是一次向下的測試,用來逼迫潛在的賣壓出籠。
  2. 條件 B:波幅狹窄 (Narrow Spread)
    • 定義: 當根 K 線的最高價減最低價(High – Low),必須明顯小於過去一段時間(例如 20 天)的平均波幅。
    • 意義: 如果賣壓很重,價格會被輕易摜破,波幅會放大。波幅狹窄代表「跌不下去」,下方有隱形的限價買盤托底。
  3. 條件 C:成交量極度萎縮 (Ultra-Low Volume)
    • 定義: 當根 K 線的成交量,必須低於前兩根 K 線的成交量(Volume < Volume[1] And Volume < Volume[2]),甚至低於近期的平均成交量。
    • 意義: 這是最重要的靈魂。下跌卻沒有成交量,代表主力與散戶都沒有意願在這個價位拋售。

根據這樣的想法,寫出來的腳本如下

// 指標/選股名稱:VSA 威科夫無供應 (No Supply) 偵測
// 邏輯:尋找賣壓枯竭的 K 線
// -----------------------------------------------------------
Variable: Spread(0), AvgSpread(0);
Variable: IsDownBar(False), IsNarrow(False), IsLowVol(False);
Variable: IsNoSupply(False);

// 1. 定義波幅 (Spread)
Spread = High - Low;
AvgSpread = Average(Spread, 20); // 過去 20 天的平均波幅

// 2. 條件 A:這是一根下跌的 K 線 (或收在相對低點)
IsDownBar = Close < Close[1];

// 3. 條件 B:波幅必須小於近期平均 (窄幅震盪,代表沒有強烈拋售動能)
if Spread > 0 then
IsNarrow = Spread < (AvgSpread * 0.8)
else
IsNarrow = False;

// 4. 條件 C:成交量必須「顯著萎縮」(通常定義為低於前兩根 K 線)
IsLowVol = Volume < Volume[1] and Volume < Volume[2];

// 5. 綜合判斷:觸發威科夫「無供應」訊號
IsNoSupply = IsDownBar and IsNarrow and IsLowVol;

// 6. 繪圖與視覺化提示
if IsNoSupply then begin
// 在 K 線下方畫一個向上的綠色箭頭或標記
Plot1(Low * 0.97, "No Supply");

end;

3. 實戰用法與操作紀律

單獨看一根「無供應」K 線是危險的,「背景脈絡 (Context)」決定了這根 K 線的含金量。

實戰場景一:多頭趨勢中的回檔 (最強買點)

  • 背景: 股票處於明確的上升趨勢(例如在 20MA 或 60MA 之上)。
  • 觸發: 股價漲多拉回,在均線或前波支撐區附近,連續出現「無供應」K 線。
  • 行動: 這代表主力的洗盤結束,隨時準備發動下一波主升段。
  • 確認機制 (極重要): VSA 的鐵律是 「無供應需要被確認」。出現無供應訊號後,必須等待下一根 K 線收漲 (Up Bar) ,才能正式進場做多。
  • 停損設定: 設在無供應 K 線的最低點下方一點。因為如果這真的是無供應,主力絕不允許價格再跌破這個測試低點。

實戰場景二:底部盤整區的「彈簧效應 (Spring)」前兆

  • 背景: 經歷長期下跌後,進入長達數個月的橫盤區間(威科夫的 Phase B)。
  • 觸發: 股價慢慢向下滑落,逼近區間底部的支撐線,此時成交量極度萎縮,波幅變小(無供應)。
  • 行動: 這是主力在底部「最後測試」籌碼穩定度的跡象。這時進場,買在起漲點的機率極高。

實戰場景三:空頭趨勢中的無供應 (無效訊號 / 誘多)

  • 背景: 股票處於明確的下跌趨勢,均線蓋頭。
  • 觸發: 出現無供應 K 線。
  • 意義:不代表主力要買進!這只代表「暫時沒人賣」,但因為上方套牢賣壓太重,缺乏主動買盤的推升,股價很快會因為一點點賣單而繼續破底。(此處絕對不可做多)

 可以參考下面這張圖

 

將 VSA 邏輯指標化,對於消除 「主觀恐懼」具有極大價值。 

 

WaveTrend Oscillator

波浪趨勢震盪指標 (WaveTrend Oscillator, WT) 是近年在 TradingView 等新世代社群中被奉為「抓轉折神器」的指標,最初由開發者 LazyBear 發表後迅速爆紅。

WT 完美解決了傳統 KD(隨機指標)與 RSI 最讓散戶痛苦的問題:鋸齒狀的劇烈跳動與頻繁的假交叉。

以下為您深度拆解 WT 的數學意義、實戰應用,以及 XScript 腳本。

1. 核心數學意義與邏輯:極致平滑的 CCI 變體

WT 的底層邏輯其實是源自於商品通道指數 (Commodity Channel Index, CCI),但它加上了非常精巧的雙重指數平滑 (Double EMA Smoothing) 機制,硬生生將原本暴躁的數據,馴化成如海浪般起伏的平滑曲線。

運算步驟拆解:

  1. 典型價格 (Typical Price): 不單看收盤價,而是取 (最高價 + 最低價 + 收盤價) / 3,這能更真實地反映當日多空交戰的平均成本。
  2. 計算絕對偏差的 EMA: 先算出典型價格的指數移動平均 (EMA),再計算價格偏離這條均線的「絕對距離」,並對這個距離再做一次 EMA。這等於量化了「波動的厚度」。
  3. 常態化 (Normalization): 將價格的偏離程度除以「波動厚度 x 0.015」(這是源自 CCI 的經典常數,能將 70% 到 80% 的數值收斂在 +100 到 -100 之間)。
  4. 終極平滑: 對上述算出的數值再做一次長週期的 EMA 得到主線 WT1,接著對 WT1 做 4 週期的簡單均線得到訊號線 WT2

 

// 指標名稱:WaveTrend Oscillator (WT 波浪趨勢指標)
// 理論基礎:LazyBear
// -----------------------------------------------------------
Input:
ChannelLen(10, "通道計算週期(n1)"),
AverageLen(21, "平滑計算週期(n2)");

Variable:
ap(0), esa(0), d(0), ci(0),
wt1(0), wt2(0);

// 1. 計算典型價格 (Typical Price)
ap = (High + Low + Close) / 3;

// 2. 計算典型價格的指數移動平均 (EMA)
esa = XAverage(ap, ChannelLen);

// 3. 計算絕對偏差的 EMA (量化波動厚度)
d = XAverage(AbsValue(ap - esa), ChannelLen);

// 4. 計算通道指數 (常規化處理)
// 乘以 0.015 是為了將絕大多數數值壓縮到 -100 ~ +100 之間
if d > 0 then
ci = (ap - esa) / (0.015 * d)
else
ci = 0;

// 5. 計算 WT1 (主線) 與 WT2 (訊號線)
wt1 = XAverage(ci, AverageLen);
wt2 = Average(wt1, 4); // 訊號線通常固定取 4 週期 SMA

// 6. 繪圖輸出
Plot1(wt1, "WT1 (主線)");
Plot2(wt2, "WT2 (訊號線)");

// 繪製極值參考線
Plot3(60, "超買線");
Plot4(53, "警戒天花板"); // 輔助觀察線
Plot5(-60, "超賣線");
Plot6(-53, "警戒地板"); // 輔助觀察線
Plot7(0, "多空分水嶺");

 

 

2. 實戰應用指南 (PM 產品視角)

WT 的曲線異常圓滑,這在產品設計與使用者體驗(UX)上有著極大的優勢。用戶不會再因為盤中的小波動而感到焦慮。

  • 精準的深水區交叉 (極值反轉):
    WT 的超買超賣線通常設定在 +60-60(更極端為 +80/-80)。

    • 買進: 當 WT1 與 WT2 雙雙跌破 -60,隨後 WT1 在深水區由下往上穿過 WT2(黃金交叉),這通常是極佳的波段起漲點。
    • 賣出: 當兩線進入 +60 以上的高空區,並發生死亡交叉,代表波段推升力道耗盡。
  • 視覺化頂底背離 (Divergence):
    這是 WT 最強大的功能。因為曲線沒有雜訊,用戶可以非常輕易地用肉眼看出:股價創了新低,但 WT 的交叉點卻比上一次的交叉點還要高(底背離)。

 

 

QQE

定量定性估計指標 (Quantitative Qualitative Estimation, QQE) 是近年在 TradingView 與量化社群中被譽為「趨勢跟隨與過濾雜訊神作」的現代指標。

它完美解決了我們前面討論過的痛點:傳統震盪指標(如 RSI、KD)在強趨勢中會「鈍化」,導致投資人過早逆勢進場而受傷。

以下為您深度拆解 QQE 的意義、實戰應用,以及如何在 XQ 中用 XScript 實作。

1. 核心數學意義與邏輯:動態的超買超賣線

傳統 RSI 的致命傷在於使用「固定的天花板與地板」(例如 70 與 30)。但在極強的牛市中,RSI 可以連續幾個月維持在 80 以上。

QQE 的核心創舉是:為 RSI 裝上了一個基於「波動率」的動態追蹤停損線 (Trailing Line)。

它的計算邏輯分為三個層次:

  1. 平滑化 RSI: 先計算標準 RSI,再對其取指數移動平均 (EMA),這過濾了單日暴漲暴跌的毛刺。
  2. 計算 RSI 的真實波幅 (ATR of RSI): 這是 QQE 最天才的地方。它不計算「股價」的 ATR,而是計算「RSI 數值本身」的變動絕對值,並對其進行兩次 EMA 平滑。這量化了**「動能的波動率」**。
  3. 乘數與動態追蹤線: 將上述算出的動能波動率乘以一個費波南希常數(通常是 4.236),加減到平滑 RSI 上,形成一條動態的快慢追蹤線。

2.對應指標腳本

// 指標名稱:QQE (Quantitative Qualitative Estimation)
// -----------------------------------------------------------
Input: 
RSILen(14, "RSI週期"), 
SF(5, "RSI平滑週期(EMA)"), 
QQE_Factor(4.236, "波動率乘數(通常為4.236)");

Variable: vRSI(0), SmoothRSI(0), AbsDelta(0);
Variable: AtrRSI(0), SmoothAtrRSI(0), Darvas(0);
Variable: TrLevel(0); // 動態追蹤線

// 1. 計算 RSI 並進行平滑處理
vRSI = RSI(Close, RSILen);
SmoothRSI = XAverage(vRSI, SF);

// 2. 計算 RSI 的變動絕對值 (量化動能的波動)
if CurrentBar > 1 then
AbsDelta = AbsValue(SmoothRSI - SmoothRSI[1])
else
AbsDelta = 0;

// 3. 對波動率進行雙重平滑 (標準設定為 27 期 EMA)
AtrRSI = XAverage(AbsDelta, 27);
SmoothAtrRSI = XAverage(AtrRSI, 27);

// 4. 計算動態區間 (Darvas Box 原理)
Darvas = SmoothAtrRSI * QQE_Factor;

// 5. 計算動態追蹤停損線 (Trailing Level)
// 邏輯:根據 RSI 與前一期追蹤線的相對位置,決定追蹤線是要收斂還是翻轉
if CurrentBar = 1 then begin
TrLevel = SmoothRSI;
end else begin
if SmoothRSI < TrLevel[1] and SmoothRSI[1] < TrLevel[1] then
// 空頭延續:追蹤線只能向下壓,不能往上退
TrLevel = MinList(TrLevel[1], SmoothRSI + Darvas)
else if SmoothRSI > TrLevel[1] and SmoothRSI[1] > TrLevel[1] then
// 多頭延續:追蹤線只能向上墊,不能往下退 (保護獲利)
TrLevel = MaxList(TrLevel[1], SmoothRSI - Darvas)
else if SmoothRSI > TrLevel[1] then
// 剛由空翻多:重新設定下緣支撐
TrLevel = SmoothRSI - Darvas
else
// 剛由多翻空:重新設定上緣壓力
TrLevel = SmoothRSI + Darvas;
end;

// 6. 繪圖輸出
Plot1(SmoothRSI, "平滑 RSI");
Plot2(TrLevel, "動態追蹤線");
Plot3(50, "多空強弱分界");

 

3. 實戰應用指南 

 QQE 是一個非常適合做成 「波段自動交易策略」或是「趨勢確診儀表板」 的核心元件,因為它的訊號非常客觀,完全沒有模糊空間。

  • 過濾假突破 (趨勢確認):
    當股價突破新高,但 QQE 的「平滑 RSI 線」未能向上突破「動態追蹤線」,甚至發生背離,這就是強烈的假突破警告。系統可以自動發出警示:「動能未獲波動率確認,慎防誘多」。
  • 黃金交叉與死亡交叉 (精準買賣點):
    • 買進訊號: 平滑 RSI 線由下往上穿過動態追蹤線(且最好發生在 50 中軸附近或之上),代表多頭動能正式超越了近期的雜訊波動。
    • 賣出/停損訊號: 平滑 RSI 線由上往下穿過動態追蹤線。因為追蹤線是動態計算的,在強勢上漲中,它會自動向上收斂,成為非常完美的「移動停利點」。

逆費雪轉換 RSI

逆費雪轉換 RSI (Inverse Fisher Transform on RSI, IFT-RSI) 是技術分析大師 John Ehlers 針對傳統震盪指標「鈍化」與「假訊號」痛點,所提出的一項工程級別的解決方案。

傳統的 RSI 在盤整時經常於 40 到 60 之間無意義地跳動,而在強勢趨勢中又會長時間卡在 80 以上,導致投資人提早逆勢操作而受傷。IFT-RSI 完美解決了這個問題,它將模糊的指標轉化為 「非黑即白」的數位訊號 。

1. 核心數學意義與邏輯

IFT-RSI 的底層邏輯是將機率統計學中的特徵轉換應用於金融時間序列:

  1. 數值平移與壓縮: 首先將傳統 RSI(範圍 0 到 100)減去 50,使其圍繞「零軸」波動,並乘以 0.1,將其數值壓縮到 -5 到 +5 之間。
  2. 平滑過濾: 對壓縮後的數值進行加權移動平均(WMA),過濾掉極短線的微小波動。

逆費雪轉換: 將平滑後的數值  代入逆費雪公式:

2.對應的XQ腳本

// 指標名稱:IFT-RSI (Inverse Fisher Transform on RSI)
// 理論基礎:John Ehlers
// -----------------------------------------------------------
Input: RSILen(5, "RSI 計算週期"), WMA_Len(9, "WMA 平滑週期");
Variable: vRSI(0), ScaledRSI(0), SmoothRSI(0), vxt(0), IFT(0);

// 1. 計算基礎 RSI
vRSI = RSI(Close, RSILen);

// 2. 數值平移與壓縮
// 將 0~100 的 RSI 平移至零軸,並壓縮至大約 -5 到 +5 的區間
ScaledRSI = 0.1 * (vRSI - 50);

// 3. 雜訊平滑處理
// Ehlers 建議使用加權移動平均 (WMA) 來保留近期的權重同時過濾雜訊
SmoothRSI = WMA(ScaledRSI, WMA_Len);

// 4. 逆費雪轉換核心公式
// 公式: (e^(2x) - 1) / (e^(2x) + 1)
vxt = ExpValue(2 * SmoothRSI);

if (vxt + 1) <> 0 then
IFT = (vxt - 1) / (vxt + 1)
else
IFT = 0;

// 5. 繪圖輸出
Plot1(IFT, "IFT-RSI");

// 繪製極端參考線
Plot2(0.5, "超買反轉線");
Plot3(-0.5, "超賣反轉線");
Plot4(0, "零軸");

 

 

可以將 IFT-RSI 設計成一個 「極端反轉警示 (Reversal Alert)」 模組。因為它的訊號非常明確 ,演算法在做全市場掃描時,不會像傳統 RSI 一樣產生大量模糊的假警報,這能大幅降低程式推播垃圾訊號給用戶的機率。