實驗
支撐與壓力只是確認偏誤嗎?
下面每一張圖都是模擬的。沒有任何價位是它的輸入,圖裡沒有東西記得價格,線的高度來自一個隨機數。按幾次按鈕,數數看有幾條像是守住了。
如果一條不可能有意義的線,守住的頻率和真實圖表上的線差不多,那麼一條線守住就說明不了這個價位重要。圖下方的程式碼會印出種子和每條線背後的抽樣值,所以「線是盲畫的」這個說法是可以查證的。
模擬價格
按「新圖表」開始。
In [1]:
// 一個整數決定了整張圖。
const seed = …;
// 走勢的形狀:二到五個階段,每個階段有自己的漂移、波動率與自相關,
// 全部由種子抽出。
const specRng = makeRng(seed ^ 0xa5a5a5a5);
const spec = randomSpec(specRng, regime);
// 走勢本身。每一筆成交讓價格上下移動一個跳動點,步伐服從兩狀態馬可夫鏈。
// 任何價位都不曾是輸入。
const sim = pricesim(spec, { relative: 0.1, step_budget: 300000 }, seed);Out[1]:
In [2]:
// 一條線被允許看到的只有兩個數字:這張圖自己的最低價與最高價。
let lo = Infinity, hi = -Infinity;
for (const b of sim.bars) { if (b.l < lo) lo = b.l; if (b.h > hi) hi = b.h; }
// 一次均勻抽樣,整個價位就是這樣來的。沒有任何東西讀取走勢、K 線、
// 最高價、最低價,或上一條線落在哪裡。
const u = lineRng.random(); // 0 <= u < 1
const level = lo + (hi - lo) * u;Out[2]:
lineRng 在頁面載入時由時鐘初始化,而不是由圖表的種子初始化。上面印出的抽樣值就是此刻螢幕上的那些。每多畫一條線只會重抽 u,K 線的最高價與最低價不動。
為什麼會這樣
隨機漫步會回到每一個地方
在成交區間內隨便放一條水平線,價格都會一再回到它,因為那正是遊走路徑的行為。每一次回到都算一次測試,而每一次測試都會往某一邊收場。光靠算術就能產生被觸及二十次、其中十二次把價格推開的線,而那恰恰就是一個被稱為「有效」的價位會有的紀錄。
為什麼有說服力
線是事後才畫的
在真實圖表上,價位是在反彈已經看得見之後才挑的,所以那些會失敗的線從來沒被畫出來,也就從來沒被計入。這裡的順序反過來:價位在任何人看到結果之前就固定了,而每一條畫下的線無論有沒有用都留在圖上。兩種做法的差別只在這個順序,而一張發表出來的圖很少說明自己是哪一種。
為什麼數字會變
規則決定結果
把觸及區間放寬,每條線就收集到更多測試,其中多半是淺淺地碰一下、從哪邊來就往哪邊收的;把它收窄,留在計數裡的就只剩決定性的接近。因此守住率跟著「觸及」的定義走,這也讓任何不附上產生它的規則的守住率幾乎沒有意義。拉動滑桿會改變那個定義,顯示的比率也跟著改變。
什麼才會改變結論
真正的價位必須超越什麼
擲硬幣不是對的基準,因為值得做的比較是對上這一頁的比率:裡面完全沒有任何價位的走勢,在同一套觸及規則下量出來的比率。真正的價位必須在結果揭曉之前就選定的圖表上贏過那個比率。少了這個比較,一條線守住並不構成證據。

