2020年8月4日 星期二

交易人的基本功:驗證 (Validation) 與潛在威脅等級表



對我來說,要能達到正確自主學習、獨立思考的做交易與面對困難

經歷過 驗證(Validation)這一關是我認為最重要的

甚至比起你掌握什麼技術、掌握什麼建模能力都來得更重要

當然,掌握技術能幫助能在初期維持更長的自信、好奇心

了解更多知識、掌握更多術語,讓你感覺更有底氣知道各套理論的優缺點

但是真正要讓你更上一階,走在對的路上,驗證能力 才是最重要的

因為 validation 太重要了,我真的很習慣用英文,所以後續用英文代表



什麼是 validation 呢?就是掌握理想和實際的落差的能力

簡單來說,很多人都關注在 回測前測,或模型上線 之後的差異,有沒有一致

但對我來說,最重要的事情是,你的策略在上線之後 ,和你的前測的差別!



在早期許多 Prop shop(獨立交易的公司)一直有一個傳統

到現在在敝社也保持這個傳統,就是任何菜鳥和新人都是先從 validation 做起

就算他有技術工作,每周也要分 5 個小時學習在簡單的模型上做 validation

如果是文職,例如敝社的 sales,也要能看懂 validation 的基本報告



假設你用時間 1 - 100 天進行回測、調校,然後在 101 天上線使用

然後交易策略在 101 - 120 天進行了 20 天的交易

那麼,你在 101 - 120 天的交易,是否和你現在回測 100 - 120 天相同?

如果有差異,差異在哪裡?這個差異怎麼處理,就是 validation 的能力



假設交易策略都沒什麼問題,而差異若主要來自實際交易的話

通常可能來自於四個方面:


1. 重複發生的不穩定來源:交易成本的變化

2. 偶爾發生的不穩定來源:價格的跳多、跳空

3. 鮮少發生的不穩定來源:市場突然關閉、券商突然出問題、伺服器出狀況

4. 不該發生的不穩定來源:交易程式的問題、整體風控的問題



validation 就是找出真實和理想的差距,到底源自何處

我們應該要盡可能讓理想貼近現實,所以不該發生的都要解決

甚至要看出來,為什麼自己會有 (4) 這樣不該發生的情況

是不是自己有什麼偏見,硬要程式簡潔、硬要邏輯清晰

而 (1) 到 (3) 的部分,就是需要思考怎麼樣能巧妙地在可控範圍中盡量處理掉


通常 在 (1) 到 (4) 中,很大機率都是在和你的習慣做衝突

例如,要解決跳多、跳空,一種方法就是交易很多個標的

但是對於一般人來說,總覺得交易很多個標的很難控制、可能如何如何

這就是你要慢慢從你的習慣思維去找出癥結,到底是什麼原因阻礙你



尤其是對於那些很愛建模的人,沒事就要想盡辦法生出各種神奇交易策略

或是想盡辦法想解釋市場狀況,我覺得這些都可能會阻礙你養成良好的 validation 能力

因為 在這些人眼中,validation 要處理的,正是他們想要忽略掉的

忽略交易成本啦、忽略預測誤差啦、忽略偶爾的小 Bug (還吐舌頭,裝無辜)



然後 validation 要處理得好,通常也需要用很多權宜之計(workaround)

對於那些堅持要能解釋的,你讓他處理 validation 看看,他很可能處理不來

因為他找不到解釋,因為他已經習慣去學那些「有巨大貢獻的理論」

對他來說,沒有理論基礎他根本連嘗試都不敢


當你開始了解 validation 的成因,以及嘗試預測未來可能需要怎樣的 validation 的時候

你就能開始針對實際交易和理想結果的差異程度訂出 潛在威脅等級表

威脅等級意味著,你已經可以預測到未來有多大的 validation error 需要處理


我們公司是用代號,每個等級有一個代號,不容易在程式命名或流水號發生重複

例如 validation 完發現 P1 問題,就要立刻處理,模型與關連策略全部下線

P1 通常主要是 (4) 不該發生,同時發現潛在威脅

(能猜出未來可能送出大單、瘋狂開倉 ... 之類的)

P2 通常是 (3) 鮮少發生,通常能有預備措施,但是預備措施可能勾起程式問題

P3 通常是 (1)-(2) ,例如交易成本逐漸偏高(模型可能過於分散、潛在投資組合風險太高)

是不是計算時間太長 (600 ms 突然變成 1500 ms)

Memory 開始越來越多,過了日光節約時間 Memory 就每天保持異常成長

是不是有東西沒清乾淨、算乾淨?

是不是有 information leakage(在理想情況中因為處理不當,而用到未來的訊息)

不要笑,我有參與過一個台大專門接金融機構 IT 案子的師生團隊

滿滿的 info leak .... 你說,這樣子的系統怎麼用?再會發論文又有何用?



這些的處理,通常都需要大量的 workaround 或雜事(例如值班要 on call .. 等

從 validation ,你才能看到自己在應用你的交易策略理論和邏輯的時候

是不是有什麼先天的理論上的偏見和傾向,這些透過 validation 才能處理

2020年5月26日 星期二

金融市場模擬 (1) 從菜市場到撮合:兩種交易人

在〈隨機波動理論的由來 (4/4) 模擬驗證法 & 到底為什麼有隨機波動?〉裡面曾經提到,造成隨機波動問題本身是來自於金融市場的運作機制,尤其是撮合機制,這是什麼意思呢。

基本面交易人 vs. 價格面交易人

首先我們來思考兩個普通的菜市場,如果今天有人在 A 地賣蘋果,賣 50 元;而有另外一戶人家採用最新的技術、特別的種植技巧,在 B 地可以賣更便宜的 30 元。

如果這時候有人要買 100 顆蘋果,如果他不知道 B 地,可能還是會在 A 地買,所以會有商人發現這個機會,知道蘋果真正的「基本價值」是多少,賺取中間的利潤。


在一般市場中,這就是商人,沒什麼特別。

如果我們從金融市場考量,使用這種方式做交易的人,可以看做是「基本面交易人(Fundamentalist)」,這不一定是我們熟知的那種基本面分析然後做交易,而是指交易是建立在一個認定的基本價值上面,傳統的基本面分析只是其中一種。

在普通的菜市場中,如果你能提供出更好的品質的蘋果、或是相同品質但更便宜的蘋果,基本上你就能賺到錢。假設賣 50 元蘋果的人有無限想賣 50 元的蘋果,也不會阻礙你用 30 元的成本賺到錢。


但是,金融市場和一般市場的差異,是在交易一個標準化的金融商品,所以本身不存在標的上的創新,例如如果今天你賣一張鴻海股票就送一個夏普洗衣機,也不會為你手上的鴻海股票增加多少的價值,你還是要到交易所才能買賣股票。

所以在金融市場的基本面交易人,只可能是因為對於標地的訊息掌握,所以對標的的基本價值認知不同而買賣。在賣蘋果的例子中,你可以掌握訊息,並且用低於 50 元並高於 30 元的條件賣出,你的訊息兌現能力並不會受到市場價格有太直接的影響。

然而,金融市場不太一樣,由於 (1) 集中交易(2) 撮合機制,如果現在的牌價是 50 元,且能提供 50 元蘋果的商人有無限顆,大家也很樂意都用 50 元買得話,你基本上完全沒有獲利機會,因為市場總是會優先撮合願意用 50 元買賣的人,你想賣 50 元蘋果然後等到市場下跌到 30 元也沒有機會。

所以,在撮合機制底下,基本面交易人雖然依賴自己特有的訊息,認知到標的應該屬於多少價值而進行買賣,但是他仍然要很留意市場的價格與數量的變化,因為他的損益直接與這些相關,而他對標的的基本價值的判斷可能只佔一小部分,例如股利分紅。





所以在這種損益特徵之下,基本面交易人中的一小部分,可能會逐漸改變心態變成「價格面交易人(Noise Trader)」純粹以現在的牌價變化,進行交易,而不去考慮標的的基本價值,因為在金融市場中你可以立即兌現你的損益。

我們當然也知道,每個交易人不一定就是 100% 基本面或 100% 價格面,而是一個比例的基本面考量,和另一個比例的價格面考量,在不同的市場狀況下會扮演不同角色。 

所以這種金融市場特有的交易行為,而從基本面交易人延伸出來的另一種交易心態,就是模擬金融市場的基礎。

就是因為這兩種心態、這兩種交易行為之間的偏好轉換,造成市場會有隨機波動的特性,我們會在下一篇來談。

2020年5月25日 星期一

模擬交易週記W26 (2020.5.18 - 5.22)

此寫的週記有幾個主要目的,是為了彌補 MyFxBook 上面的不足

所以主要是告知大家,MyFxBook 上面可能不容易觀察到的資訊

最主要就是:

(1) MyFxBook vs. Terminal 的線圖,驗證交易邏輯無誤 (本周:無誤)

(2) 確切的 Equity Drawdwon (本周:無更新)


(3) 交易列表中無法解釋的事情 (USDCHF一組被關了)


2020年5月20日 星期三

資金管理的參數如何決定?使用加權常數(The weighting constant)

我很少談到的部分是,如果你有一些超出 MAE/MFE 分析的額外資金管理的考量,那應該如何處理呢?

這些額外的考量,可能來自於你設定好的一份投資規劃,能穩定的出入金,通常這樣的投資計劃會有兩個部分,分別是出金(partial withdrawal)和入金(top-up)的規劃。

這樣的投資要求會對你的交易產生一個常數的要求,什麼意思呢?例如如果你希望每個月都能出金 15 萬元台幣,你不可能等到這個月結束,突然大賺 15 萬而出金,你一定希望,如果大約 3 天能做 5 個交易,那在 22 天的工作日中,你至少希望能完成 30 筆的交易,總共的獲利平均下來,應該每一筆交易大約能帶來 5000 元台幣的報酬。

所以投資計劃對於你的交易的限制,通常是一個全面性、常數的規範,這會讓我們依賴波動的資金管理,遇到一點難題。

既然我們希望獲利或損失能比較固定,這會使得我們希望資金管理的參數能盡量是常數,但是又因為策略不可能 100% 處理好波動,所以我們必須適當的考慮波動進來,但波動是一個變數,它會讓交易策略或是資金管理公式能隨時間比較彈性。


所以,怎麼辦呢?這邊可以考慮的簡單的常數加權法:

Money Mgnt. ATR = r × N × ATR  +  ( 1 -  r ) × Const

r 是你的比例,N ATR 則是你考慮了多少個 ATR 在資金管理參數中,Const 則是一個常數,希望讓資金管理能比較穩定一點。

 也就是說,原本你的 Stop Loss、Take Profit、Delayed Entry 、移動停損的 Trigger Price 這些,都很好的考慮了 ATR,但是你真正在使用、甚至最佳化的時候,可以考慮採用一個常數做加權。

例如,你原先設定 SL 大約是 Daily ATR 的 1.2 倍,TP 是 Daily ATR 的 1.8 倍,但是市場的波動變來變去,你的 SL 與 TP 也不斷在改變,如果你無法很有效的調整你的進場大小,就會被迫 SL/TP 的幅度變來變去。

解決這個辦法,就是把 SL 考慮成一個常數搭配 ATR,例如,你最後可能得到的 SL 是 0.4 倍的 ATR 加上 30 pips,TP 是 0.9 倍的 ATR 加上 60 pips,雖然可能無法像原本的參數如此「抗波動」,但至少他能給予比較穩定的報酬,對於初學者只能進場小單位,例如 1 單位或 0.01 單位的人尤其適合。

你可以在策略調校差不多之後,在最終將 SL, TP, Trailing Stop 的 Trigger Price 等,做這種常數加權的最終優化,看能否得到不用賺大錢、但可以更穩定、更恆長的報酬曲線。

這就是從交易面,由下而上去滿足你的投資規劃的技巧。

2020年5月19日 星期二

MAE/MFE 基本五步驟流程

許多人想要快速掌握一整套 MAE/MFE 流程,先有一點體驗的話,這邊是我給予的一個簡單的分析流程,可以讓你快速體會到駕馭 MAE/MFE 分析的感覺。

這個分析基本上分成五個步驟:

A. 觀察策略在整個區間中波動是否穩定

B. 判斷能否重新選擇時機與價位

C. 判斷應該放多少的停損與停利

D. 判斷追蹤停損、損益兩平停損的合適位置

E. 判斷有利方向/不利方向加與減碼的合適位置

請記得,這些法則並非唯一,不同的策略可能有不同的 MAE/MFE 分布的特性,所以可能會存在例外,你的目標就是在不斷調整的過程中,找到自己的法則,而非始終依賴這些通用法則,共勉之!

關於這五個步驟的詳細流程,分解描述如下: 

A 判讀你的策略與波動之間的關係

由於我們已經知道市場存在隨機波動的特徵,所以你的策略可能會受到潛在波動變化的打擾,我們首先要觀察你的策略和市場波動之間的關係,可能是間歇性的影響、也可能是特定時間段的影響,這樣在做後續 MAE/MFE 分析的時候應該分成不同類,因為他們有不同的統計性質。
 
A1. 觀察 MAE, MFE, MFE before MAE 的時序圖

A2. 先觀察 MAE 是否穩定,若穩定,MFE 不穩定沒關係

A3. 若 MAE 與 MFE 同時放大、縮小的時間十分接近,則考慮把觀察區間分段分析
  i. 以 MAE 與 MFE 的震盪低點位置來判斷

A4. 觀察 MFE 與 MFE before MAE 的關係,是否重疊性高?
  i. 重疊性越低,越需要執行步驟 D
  ii. 重疊性越高,越需要考慮步驟 C

A5. 觀察 MAE 與 MFE 隨時間過去,大致上的比例關係
  i. 若 MFE 都較高,可忽略 MAE 分析,專注把握潛在獲利
  ii. 若 MAE 都較高,可忽略 MFE 分析,專注降低潛在風險

B. 判讀你是否需要重新選擇合適的進場時機

我認為一個交易訊號的產生,是給予我們一個可以進場的提醒,而非要求我們一定要在那個時間、那個價格進場,市場有本來就有的上下波動,或許我們可以找到更有利的位置進場。


B1. 觀察 MAE/MFE 分布圖,兩軸比例尺應一致

B2. 先抓分布圖的右上角位置,觀察比例關係
  i. 右上角至少要在比 MAE 與 MFE 的 Q3 更大的位置
  ii.右上角的 MFE 越高,MAE 越低,則越不用延遲進場
  ii. 右上角的 MAE 越高,MFE 越低,越需要延遲進場

B3. 若需要延遲進場,可考慮小於 MAE Q1 的固定大小,或 MAE Q1 及 (Q1+Q2)/2 的位置做嘗試

B4. 若發生 (B2 ii) 的情況,可以進一步觀察是否 MAE/MFE 呈現反比分布 (如 L 型),越是反比分布,越需要考慮移動停損 (D)

B5. 延遲進場除了價格面,也可以是時間面的延遲進場


C. 判斷應該放多少的停損與停利

C1. 執行完延遲進場之後,應該要得到 MAE/MFE 呈現集群分布,或至少偏向 Y 軸,若還是 MAE 過大可考慮不利方向加碼 (E1)

C2. 若 MFE大多數發生在 MAE 之前(例如波段交易),應優先考慮 MAE 對 MFE before MAE 圖,並透過集群的四個端點,來嘗試不同的 SL/TP 

C3. 若 MFE 大多數發生在 MAE 之後(例如趨勢交易),應優先考慮 MAE 對 MFE 圖,此時通常只能考慮集群的右上角位置作為 SL/TP 

C4. 若右上角位置 MFE 較 MAE 大 2-5 倍,可收緊 TP 提早獲利;若右上角位置 MAE 較 MFE 大 2-5 倍,可收緊 SL 減少損失,觀察對整個策略的損益影響。

C5. 雖然不可過度深入到 SL/TP 分布中,但可適當的向內切一個範圍,觀察對整個策略的損益影響。

C6. 通常這個階段的 SL/TP 的調整,會消耗策略的勝率,所以勝率高是收緊 SL/TP 的關鍵之一。

D. 判斷追蹤停損、損益兩平停損的合適位置

D1. 可以不用收緊 SL/TP 就開始測試移動停損,但若沒有足夠的 MAE 與 MFE 的反比關係,通常很難有好的移動停損。

D2. 觀察 lose trade MFE,可以在 lose trade MFE 的 (Q1+Q2)/2 或 Q2 作為損益兩平停損的觸發價位(trigger price)

D3. 觀察 MHL,以 MHL 作為追蹤停損的幅度參考

E. 判斷有利方向/不利方向加與減碼的合適位置

E1. 若勝率高,但輸一次都輸很多,可考慮不利方向的加碼,在 Win Trade MAE 的 Q1~Q2 之間加碼並依賴 Exit Signal,在 Win Trade MAE 的 Q2~Q3 之間減碼減回來。

E2. 若 MFE 都較高,可在 Win Trade MFE 的 Q2 到 Q3 位置加碼,或是在 Win Trade MFE, 與 Lose Trade MFE 兩個累計圖的分布交叉處加碼。

E3. 通常來說,可以在加碼的位置與 TP 位置的 1/2 到 1/3 處減碼提前獲利,當使用了加碼後,減碼方面可以不參照 MAE/MFE 分析沒關係,只是單純對損益做最後修飾。

請記得,這些法則並非唯一,不同的策略可能有不同的 MAE/MFE 分布的特性,所以可能會存在例外,你的目標就是在不斷調整的過程中,找到自己的法則,而非始終依賴這些通用法則,共勉之!

2020年5月18日 星期一

模擬交易週記W25 (2020.5.11 - 5.15)

在此寫的週記有幾個主要目的,是為了彌補 MyFxBook 上面的不足

所以主要是告知大家,MyFxBook 上面可能不容易觀察到的資訊

最主要就是:

(1) MyFxBook vs. Terminal 的線圖,驗證交易邏輯無誤 (本周:無誤)

(2) 確切的 Equity Drawdwon (本周:無更新)


(3) 交易列表中無法解釋的事情 (USDCHF一組被關了)



2020年5月14日 星期四

西方自然科學的起源 (7) 準文藝復興:百科全書的起源

可先閱讀:
西方自然科學的起源 (5) 感官轉向:身體的神聖性

現在時間軸:



在前一篇文章中,我們似乎看到了自然科學起源的一絲曙光,知識分子們轉向感官的綜合經驗,開始面對經驗世界,我們談到連神學家自己都出版了一冊《闡述百科》來關聯式、機械式的說明世間萬物,似乎「自然科學」就要出現了。

然而,在 12 世紀仍然有兩個很重要的先天偏見,造成了這股關注世間萬物的浪潮有了回退,這兩個偏見是:

1. 技術的不發達,轉向感官的探索與發現很有限

2. 相信人類曾經擁有整個自然界完整的知識

第一點不難理解,這是一種「雞生蛋、蛋生雞」的問題,沒有科學基礎就不容易有技術發展,沒有技術發展就不便於用感官觀察世界,永遠只能停留在人的尺度,學者專家認為這樣所得到的知識終究沒有太多幫助。 

第二點就比較奇妙了,為什麼西方中世紀的人,會相信人類曾經擁有整個自然界完整的知識呢?這一切都在是因為基督教。




成也耶穌、敗也耶穌

聖經中曾經紀載,人類原本是完美無缺的,但是因為墮落而變得越來越敗壞,所以學者專家內心都會偷偷有一種偏見:古代久遠的人應該有更完整的自然界知識

所以原本因為「耶穌復活成為人」這個特殊條件,讓整個西方世界轉向人們身上具備的感官經驗,但也因為「人的墮落與更加敗壞」造成學者專家相信古代人有更好的自然理解。

所以,從這邊你已經可以嗅到了一點文藝復興的味道了。

這時候攤在 12 世紀的專家眼前的兩條路:

1. 更加冒險大膽的探索世間萬物(x)

2. 回頭考究古代人對自然界的觀察(o)

毫無疑問,對於當時的人們,採取第二條路是更加穩當,也更加低成本、高報酬的行為,因為從古人對自然的觀察中著手,也更能說服人、更能服務於宗教與統治。這股 12 世紀的準文藝復興,直到 13 世紀的大阿爾伯特出版的《礦物之書》達到巔峰。

 

大阿爾伯特:給「古希臘」按個讚!



大阿爾伯特是一個神父,他負擔一個波蘭北部到立陶宛、拉脫維亞、愛沙尼亞這一東歐範圍的地方行政事務,當時他所屬的教會分支有一個特殊規定,只允許「步行」作為交通方式。

所以大阿爾伯特,相對於其他學者專家來說,他有更多的機會能直接觀察大自然,然而正如我前面提到的,當時的人就算有新發現,他也傾向於是往古人的文獻中找對應,並給予適當的作補充。


 那大阿爾伯特能補充到誰的文獻中呢?難點來了。

基督教的經典讀物,相較於古希臘、古羅馬流傳下來的典籍,對於自然著墨較少,所以多數那個時代的學者專家,會把從世界上觀察到的自然發現,更多的是去找古希臘的文獻對照。

例如,亞里式多德曾經撰寫過一本寶石書,因此大阿爾伯特就在他的寶石書上擴充、評註,最後出版了一套他自己的《礦物之書》。

除此之外,大阿爾伯特還補充了亞里斯多德的《論動物》,對於其中裡面奇怪的捕鯨方式,大阿爾伯特自行補充了世界上第一個被記錄的捕鯨方式:用投石機捕鯨魚,並且註解說我們應該忽略古人,採用當代人的實際智慧。



由於亞里斯多德的對自然界的著作廣泛,所以大家建立在亞里斯多德上面的系統發現與補充也廣泛,所以大阿爾伯特與許多當時的英國人,就共同合撰了一本接近當代百科全書編排的書。

延伸思考

從這邊我們要發現,文藝復興比起我們理解到的「貴古賤今」更重要的面向,是在於對自然、對社會的更多描述,比起基督教的經典,古希臘羅馬時期的著作更能做為參考、基礎和立足點。

另外我們也要從這個故事中知道,當探索與嘗試是服務於宗教、服務於統治的時候,是服務於「能說服人、講起來有道理」的時候,就很難面對真正的實際需要冒險對待的課題。

我們不難在現代社會中觀察到這件事情,一堆人筆戰、一堆人作沒什麼貢獻的學術研究,這其實就和 13 世紀的人們面對到的抉擇一樣,如果你選擇 C/P 值更高的,順著世界潮流而走,就是做一堆垃圾然後把自己的社經地位頂上去,一生過爽爽,就只是拖慢世界前進而已...

或許最後一段我激進而武斷了一些,但請大家能明白我的真正含意。