一條鞭法程式化教學
法意宣稱我不熟悉程式交易,只好寫這篇自娛娛人一下 在開始這個話題之前,我們要先了解甚麼是時間序列,以及如何對時間序列作分析。所謂時間序列(Time Series),就是指以時間先後順序出現的觀測值集合,像是氣象預報研究中,某一地區的每天氣溫與氣壓的數據;或者醫學領域中,病人在不同時刻的心跳與體溫變化;以台股來說,證交所每天收盤後提供的 發行量加權股價指數歷史資料 ,就是一種典型的時間序列資料。 有了歷史資料之後,我們就可以對這些數字做進一步的分析,發掘蘊藏在這些資料之中的模式(Pattern)。為了方便觀察和理解,我們可以把這些數據圖像化,像是下圖就是某位女性每日的體溫變化圖,可以發現排卵前體溫較低,排卵後體溫較高,因此有些人會藉由體溫推估排卵時間,並在前後幾天禁止行房以達到避孕的效果 (至於準不準就是另外一回事了)。 同樣的方式運用到台股上就是我們熟知的線圖: 從上圖我們可以大致知道從2006到2013年的台灣股市漲跌,以及成交量的變化。假設在看了這幾年的歷史走勢之後,希望未來如果出現像2008和2009的大漲大跌走勢時,自己可以賺到錢的話,應該怎麼做呢?我之前提供過一個很簡單的方法: 一條鞭法 ,即指數站上60日平均線(Moving average, MA)做多,跌破就空手或放空,加上MA之後的線圖會長這樣: 有了方法之後,我們要如何評估成效呢?最直觀的方法就是目視計算,假設在操作時,只要指數收盤價跌破60MA,就在隔日開盤時放空,那麼回到2008年5月的話,會發生甚麼事呢? 5/26的收盤價8707.83,跌破了當時的60MA,即8740.79(綠色向下箭頭處),因此要在隔日5/27的開盤價放空,即8779.34(綠色向右箭頭)。 但5/27的收盤價8778.39,又超過了60MA(8723.72,紅色向上箭頭),所以在5/28的開盤價8826.94做多(紅色向右箭頭)。 不幸的是5/28的收盤價8665.73又再度跌破60MA(8753.60,第二個綠色向下箭頭),故在5/29的開盤價放空(8773.81,第二個綠色向下箭頭)。 接下來就出運了,2008年指數再也沒碰過季線,空單可以沿路抱到2009年的1/5收盤價4698.31,突破60MA(4596.76,右側紅色向上箭頭)...