HTS[4000] 實現 EMA 均線、均線扣抵、BIAS 乖離

每一天除了利用 "My Notes Keeper" 紀錄看盤心得與各大指數線圖 (Dow, Nasdaq, 臺股加權, 摩台)外,也會將台股加權指數,利用噴墨印表機印出一張 A4 的日線圖。 以俾三不五時可以看看線圖、培養大局觀。

印出來的日線圖儘量不要繁雜,最主要的資訊就是 均線 與 成交量。

均線我偏好使用 (EMA Exponential Moving Average) 指數平滑移除平均線。 另外我也希望透過 扣抵值 來觀看扣抵區間內的均線轉折情形。 可惜,對於 EMA 的扣抵計算,我根本不會,似乎相當地複雜。 所以在此我僅利用一般 MA 的扣抵計算方式,只是作個參考而已。

再來,我也想觀察指數收盤價與各條均線的差距,也就是一般所稱之為的乖離。 參考「趨勢生命力」一書,P.146 中指出: 「若股價與五日線的乖離率達 3% 以上,短線上就有拉回會反彈的可能;若以月線來看則是 8% 上下、季線則是 10% 上下。」

20090406_加權指數_日線圖

參考上圖的乖離,今日 (2009/04/06) 大盤的收盤指數 5556, 其月乖離 (20日, N3)達 7.42、季乖離 (60日, N4)更高達 13.95。 看來短線似乎過熱,近日應會有回檔修正。

在 HTS [4000] 系統交易內,實現這些指標相當簡單。 程式碼參考如下:


EMA 六條均線與扣抵值:

Parameters : Price(Close), Display(4), Len1(5), Len2(10), Len3(20), Len4(60), Len5(120), Len6(240), ViewCut(1)
 
Variables: EMA1(0),EMA2(0),EMA3(0),EMA4(0),EMA5(0),EMA6(0),
           str1(""),str2(""),str3(""),str4(""),str5(""),str6("")
 
EMA1 = MAFC( Price, Len1)
EMA2 = MAFC( Price, Len2)
EMA3 = MAFC( Price, Len3)
EMA4 = MAFC( Price, Len4)
EMA5 = MAFC( Price, Len5)
EMA6 = MAFC( Price, Len6)
 
If Round(Display,0) <= 1 Then
	Draw1( EMA1, "EMA 1")
ElseIf Round(Display,0) = 2 Then
	Draw1( EMA1, "EMA 1")
	Draw2( EMA2, "EMA 2")
ElseIf Round(Display,0) = 3 Then
	Draw1( EMA1, "EMA 1")
	Draw2( EMA2, "EMA 2")
	Draw3( EMA3, "EMA 3")
ElseIf Round(Display,0) = 4  Then
	Draw1( EMA1, "EMA 1")
	Draw2( EMA2, "EMA 2")
	Draw3( EMA3, "EMA 3")
	Draw4( EMA4, "EMA 4")
ElseIf Round(Display,0) = 5 Then
	Draw1( EMA1, "EMA 1")
	Draw2( EMA2, "EMA 2")
	Draw3( EMA3, "EMA 3")
	Draw4( EMA4, "EMA 4")
	Draw5( EMA5, "EMA 5")
Else
	Draw1( EMA1, "EMA 1")
	Draw2( EMA2, "EMA 2")
	Draw3( EMA3, "EMA 3")
	Draw4( EMA4, "EMA 4")
	Draw5( EMA5, "EMA 5")
	Draw6( EMA6, "EMA 6")
End If
 
// 均線扣抵標示
 
IF LastBarOnChart AND (ViewCut=1)  THEN
 
  /* Len-1 */
  // 欲顯示內容
  str1 = "|r|n"+"↑"+ NumToStr(Month( Date[Len1-1] ),0) +"/"+NumToStr(DayOfMonth( Date[Len1-1] ),0)+"|r|n"+NumToStr(Len1,0)+"EMA"+"|r|n"+"扣 "+NumToStr(Close[Len1-1],0)
  // 顯示內容的位置
  value1 = TXT_New( Date[Len1-1] , Time[Len1-1], lowest(low,Len1-1), "" )
  // 顯示數值
  TXT_SetString( value1, str1)
 
  str2 = "|r|n"+"↑"+ NumToStr(Month( Date[Len2-1] ),0) +"/"+NumToStr(DayOfMonth( Date[Len2-1] ),0)+"|r|n"+NumToStr(Len2,0)+"EMA"+"|r|n"+"扣 "+NumToStr(Close[Len2-1],0)
  value2 = TXT_New( Date[Len2-1] , Time[Len2-1], lowest(low,Len2-1), "" )
  TXT_SetString( value2, str2)
 
  str3 = "|r|n"+"↑"+ NumToStr(Month( Date[Len3-1] ),0) +"/"+NumToStr(DayOfMonth( Date[Len3-1] ),0)+"|r|n"+NumToStr(Len3,0)+"EMA"+"|r|n"+"扣 "+NumToStr(Close[Len3-1],0)
  value3 = TXT_New( Date[Len3-1] , Time[Len3-1], lowest(low,Len3-1), "" )
  TXT_SetString( value3, str3)
 
  str4 = "|r|n"+"↑"+ NumToStr(Month( Date[Len4-1] ),0) +"/"+NumToStr(DayOfMonth( Date[Len4-1] ),0)+"|r|n"+NumToStr(Len4,0)+"EMA"+"|r|n"+"扣 "+NumToStr(Close[Len4-1],0)
  value4 = TXT_New( Date[Len4-1] , Time[Len4-1], lowest(low,Len4-1), "" )
  TXT_SetString( value4, str4)
 
  str5 = "|r|n"+"↑"+ NumToStr(Month( Date[Len5-1] ),0) +"/"+NumToStr(DayOfMonth( Date[Len5-1] ),0)+"|r|n"+NumToStr(Len5,0)+"EMA"+"|r|n"+"扣 "+NumToStr(Close[Len5-1],0)
  value5 = TXT_New( Date[Len5-1] , Time[Len5-1], lowest(low,Len5-1), "" )
  TXT_SetString( value5, str5)
 
end if

BIAS 乖離:
(我在 HTS 對於乖離的實做是認為只到季乖離 (60日) 就足夠了。 如果有人需要再加,只要在下述程式碼添加即可。)

// 計算短、中、長 乖離率
// writted by Kenming Wang
// date: 2005/11/07
// updated: 2009/04/06
 
//乖離是指當日指數與平均線之間的差距,將乖離再除以移動平均值即為乖離率。當指數離開平均線過遠時,短期內大多會呈現技術性的回檔或反彈,將股價與移動平均線的距離拉近。所以,如果能掌握市場的特性,統計出指數的乖離率變化,就能夠在行情乖離率過大時,儘早採取對應的操作策略。
//乖離率的計算公式如下:
//N日乖離率=(當日指數-N日移動平均數)÷N日平均指數
 
Parameters : Price(Close), Display(3), N1(5), N2(10), N3(20), N4(60)
 
Value1 = (Price - EMA( Price, N1)) / EMA(Price, N1) * 100
Value2 = (Price - EMA( Price, N2)) / EMA(Price, N2) * 100
Value3 = (Price - EMA( Price, N3)) / EMA(Price, N3) * 100
Value4 = (Price - EMA( Price, N4)) / EMA(Price, N4) * 100
 
//定出中線 0
Draw1( 0, "", RED)
 
If Display < 2 Then
	Draw2(Value1, "N1乖離")
ElseIf Display < 3 Then
	Draw2(Value1, "N1乖離")
	Draw3(Value2, "N2乖離")
ElseIf Display < 4 Then
	Draw2(Value1, "N1乖離")
	Draw3(Value2, "N2乖離")
	Draw4(Value3, "N3乖離")
Else
	Draw2(Value1, "N1乖離")
	Draw3(Value2, "N2乖離")
	Draw4(Value3, "N3乖離")
	Draw5(Value4, "N4乖離")
End If

文章導覽

   

共有 3 則迴響

  1. 不知道大大是否願意分享用 “My Notes Keeper” 紀錄看盤心得,大概用什麼方式來紀錄(紀錄格式),用這一個軟體紀錄,跟用word紀錄,差異在哪裡呢??

    • Hello CC:

      這個是屬於樹狀結構的筆記型軟體,它的格式就是 RTF 的 Word 全相容格式。

      因為每個人紀錄看盤的心得是不一樣的,這就如同寫日誌一般,算起來比較是偏私秘性的東西了,所以也不方便公開。 !^^

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *