2023-11-08|閱讀時間 ‧ 約 5 分鐘

三個臭皮匠勝過一個諸葛亮

觀察進場訊號

觀察進場訊號

醜媳婦總是要見公婆-績效報表 的最佳化報表可知,無論我們將連續創高或創低的K棒數如何改變,均不可能讓淨利變正,代表我們不可能靠單一個指標值來獲利,此時改善方式只能再回到觀察圖表,由圖表中的訊號觀察是否有什麼改善方式。

由圖表中可發現當標示的紅點或綠點離均線越遠,則進場的時機點越好,如果可以增加一個乖離率的濾網(一個濾網代表著一個條件判斷),應該可以改善策略的績效。

話不多說,立刻新增一個「_Bias」的函式及指標來觀察這現象(新增函式及指標的作法請參閱MultiCharts初體驗-函式撰寫MultiCharts初體驗-指標撰寫),由於乖離率並非MC內建的函式,我們需要自行撰寫,首先說明一下乖離率的定義:

乖離率(Bias Ratio, BIAS)是股票技術分析中的一個指標。它衡量了股價與移動平均線之間的偏離程度,即當前股價與移動平均線的差值(移動平均線是指一定時間內的股價平均值)。乖離率用來評估當前股價相對於移動平均線的偏離程度,主要用於分析短期內股票是否處於超買或超賣狀態的技術指標。

其公式如下:

乖離率 = (收盤價 - 移動平均) / 移動平均 * 100 (以百分比表示)

以下是函式及指標的程式碼:

函式(_Bias)的程式碼:

Inputs:Len(NumericSimple), ComparePrice(NumericSeries);
Variable:AvgValue(0);

AvgValue = Average(Close, Len);

_Bias = (CompareValue - AvgValue) / AvgValue * 100;

_Bias函式

指標(_Bias)的程式碼:

Inputs: Len(5), CompareValue(Close);
Variables: Bias(0);

Bias = _Bias(Len, CompareValue);

Plot1(Bias);

_Bias指標

在設計乖離率的函式時,筆者多加了一個彈性,在其定義是評估收盤價的偏離程度,而筆者寫的函式預留了一個CompareValue的參數,可傳入High、Low、Close⋯⋯等不同的欄位(在MC中定義成數值序列),來計算不同欄位與收盤價移動平均的偏離程度,這種設計方式,可在訊號撰寫時,放空時,可選擇高點的乖離率,做多時,可選擇低點的乖離率,來與均用收盤價的乖離率進行比較,看何者的績效比較好。

加上乖離率

由乖離率對照,當偏離程度較大時再進場,的確可改善進場的時機,我們就將乖離率的判斷加進訊號中,先以簡單的收盤價乖離率判斷。

Inputs: BarCount(5), BiasLen(20), BiasThreadhold(1);
Variables: BiasValue(0);

BiasValue = _Bias(BiasLen, Close);

If _ContinueBreakOut(BarCoun, 1) And (BiasValue > BiasThreadhold) Then
Begin
SellShort ("SE_BreakOut") Next Bar Open;
End;

If _ContinueBreakOut(BarCoun, -1) And (BiasValue < -BiasThreadhold) Then
Begin
Buy ("LE_BreakOut") Next Bar Open;
End;

加入乖離率判斷

訊號中,加入二個輸入參數,說明如下:

  1. BiasLen:
    Bias移動平均線的長度。
  2. BiasThreadhold:
    進場的臨界點,當正乖離大於這個值(或負乖離小於這個值)才會進場。

訊號的邏輯也還很簡單

  • 空單進場:
    當K棒連續創高點且乖離率大於臨界點時,就進場。
  • 多單進場:
    當K棒連續創低點且乖離率小於負臨界點時進場,在此使用負值是往下的乖離率會為負值。

增加乖離率判斷後的績效報表

由績效報表可發現只是加個簡單的條件判斷,淨利就馬上有顯著的提升(此報表以訊號的參數預設值),依筆者的經驗,會賺錢的訊號通常不會有太複雜的條件,簡單直接往往可以得到最好的結果,太複雜的條件判斷,常會削足適履,在樣本內的績效很好,但加入了樣本外區間後,績效往往不如預期。








分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.