Presentation is loading. Please wait.

Presentation is loading. Please wait.

【南區Fintech研習營】Python 程式設計基礎:

Similar presentations


Presentation on theme: "【南區Fintech研習營】Python 程式設計基礎:"— Presentation transcript:

1 【南區Fintech研習營】Python 程式設計基礎:
Google finance股價爬蟲應用 講者: 林萍珍

2 第九章 技術分析套件TA-Lib 9-1 下載安裝TA-Lib套件 9-2 安裝plotly與申請 api key 9-3 均線糾結策略回測
9-3 均線糾結策略回測 布林通道買賣訊號 9-5 作業-帶量突破均線

3 TA-Lib簡介 跨平台股市技術分析工具。 超過200個技術指標包含SMA, ADX, MACD, RSI, Bband等。
2016/10/24 TA-Lib簡介 跨平台股市技術分析工具。 超過200個技術指標包含SMA, ADX, MACD, RSI, Bband等。 開源API提供 C/C++, Java, Perl, Python引用。 底層是C/C++撰寫,提供Python套件呼叫引用的就是TA-Lib。 官網 函數清單

4 下載TA-Lib套件 C++程式 wheel程式 TA-Lib是Cpython撰寫的需要先安裝C++的程式
下載vcredist_x64.exe後安裝。 wheel程式 再到以下網站下wheel程式 TA_Lib cp36 cp36m win_amd64.whl

5 安裝TA-Lib套件 Windows 7, 64bits, 下載 將*.whl檔案複製到c:\...\Anaconda3資料夾下
TA_Lib cp36 cp36m win_amd64.whl 將*.whl檔案複製到c:\...\Anaconda3資料夾下 再到cmd視窗,切換到c:\...\Anaconda3資料夾下並輸入 pip install TA_Lib cp36 cp36m win_amd64.whl 安裝成功會出現 Successfully installed TA-Lib 輸入conda list確認是否有安裝成功

6 安裝plotly套件 pip install plotly 申請plotly api key https://plot.ly/api/
點選右上角sign up 可以選fb為輸入帳號密碼 點regenerate key產生api key 完成plotly帳號與api key申請

7 2016/10/24 TA-Lib引用 ※talib只接受矩陣資料,需使用numpy套件建構資料。

8 範例: 均線糾結策略回測 說明 結果 需要的套件
2016/10/24 範例: 均線糾結策略回測 說明 使用Python 套件TA-Lib超過200個技術指標中,引用其中的SMA (簡單移動平均)與WMA(加權移動平均)指標做買賣策略的參考。 結果 平均10年回測累計報酬率為131.53%,最高是南亞科(2408)為768.97%,最低(2515)是中工-37%。 需要的套件 Pandas(內建), numpy(內建), plotly, TA-Lib, html5lib。

9 交易規則 變化量 買進點 賣出點 最後出場 Change = WMA/SMA
2016/10/24 交易規則 變化量 Change = WMA/SMA 買進點 WMA(5) > SMA(5) 且Change > 1.02 即當5日的WMA大於 5日的SMA,且WMA超過SMA2%。 賣出點 WMA(5) < SMA(5) 且Change< 0.98 即當5日的WMA小於 5日的SMA,且WMA低於SMA2%。 最後出場 有買進,沒有賣出訊號,則在最後一個交易日賣出。

10 資源來源 資料來源: 上市櫃公司股票。 篩選飆股 資料期間 20日均線上升; 今日收盤>20日前收盤的1.055;
2016/10/24 資源來源 資料來源: 上市櫃公司股票。 篩選飆股 20日均線上升; 今日收盤>20日前收盤的1.055; 股價的斜率>0.15%。 共選出21檔股票見表1。 資料期間 2007,10,1至2017,9,30, 共10年.

11 回測績效指標 交易次數 累計報酬率 勝率 正報酬率/總報酬 獲利因子 獲利金額 / 損失金額 大於1為佳

12 回測結果 回測10年的累計交易次數與報酬率%見表1。 平均10年的交易次數約13.67次。
2016/10/24 回測結果 回測10年的累計交易次數與報酬率%見表1。 平均10年的交易次數約13.67次。 10年平均累計報酬率約131.53%, 年報酬率大約13.15%,最高累計報酬率是南亞科為768.97%,最低是中工-37%。 本次回測21家中,17家為正報酬,5家負報酬。

13 表1回測結果 2016/10/24 代號 股票名稱 交易次數 報酬率% 2408 南亞科 31 768.97 3406 王晶光 32
473.87 6165 捷泰 21 380.33 1475 本盟 221.01 2421 建準 5 216.07 3008 大立光 13 178.75 2313 華通 9 132.59 2344 華邦電 12 102.3 2337 旺宏 14 74.4 6153 嘉聯益 16 70.85 2475 華映 70.8 3661 世芯-KY 7 65.81 2330 台積電 3 54.55 2454 聯發科 8 49.26 2340 光磊 10 18.15 1455 集盛 14.38 1409 新纖 -13.77 6456 GIS-KY 4 -21.42 2317 鴻海 -23.68 2481 強茂 15 -34.14 2515 中工 -37.01 平均 13.67 131.53 最大 32 768.97 最小

14 2016/10/24 執行結果

15 2016/10/24 SMAWMA部份程式碼

16 SMAWMA程式功能(I) 參數設定並呼叫主程式 輸入股票代號、起迄日期, 第177-179 計算執行時間第176, 181-182列
執行主程式第180列

17 SMAWMA程式功能(II) 主程式(第149列) 呼叫GetGoogleFinance類別產生物件實體(gf)(第151列)
計算均線糾結策略,並回傳資料df, 交易次數、累計報酬率、勝率、獲利因子。 呼叫showMAplot函數 畫圖

18 SMAWMA程式功能(III) SMAWMA(第75列) 呼叫talib套件,計算5日SMA與WMA(第77-78)
進迴圈回測10日資料(第96列) 變化量(change): WMA(5) / SMA(5) (第97列) 買進: 判斷空手且WMA(5) > SMA(5) 且Change > (第98列) 賣出: 判斷有買入且WMA(5) < SMA(5) 且Change < =0.98 (第107列) 有賣出即完成一次交易,可以計算累計報酬、勝率、與獲利與損失金額(第 列)。 最後出場: 有買進,在最後前一天出場(第120列) 計算獲利因子: winvar = win / loss (第129列)

19 SMAWMA程式功能(IV) showMAplot(第29列) 呼叫talib套件,計算5日SMA與WMA(第77-78)
進迴圈回測10日資料(第96列) 變化量(change): WMA(5) / SMA(5) (第97列) 買進: 判斷空手且WMA(5) > SMA(5) 且Change > (第98列) 賣出: 判斷有買入且WMA(5) < SMA(5) 且Change < =0.98 (第107列) 有賣出即完成一次交易,可以計算累計報酬、勝率、與獲利與損失金額(第 列)。 最後出場: 有買進,在最後前一天出場(第120列) 計算獲利因子: winvar = win / loss (第129列)

20 2016/10/24 範例:布林通道買賣訊號 說明 使用Python 套件TA-Lib超過200個技術指標中,引用其中的BBand (布林通道)指標做買賣策略的參考。 結果 平均10年回測累計報酬率為170.3%,最高是南亞科(2408)為651%,最低(2454)是聯發科-89%,整體投資績效略優於均線糾結。

21 2016/10/24 交易規則 今日最高大於上布林線時,是最高價大於2倍標準差,指行情正強勢中,雖短線會拉回,但強勢趨勢不變,故趁勢追價。高於上布林線常為漲勢,故作多。 買進 今日最高價>上布林線 且成交量是20日均線的2倍 賣出 今日最低價<下布林線 且成交量是20日均線的2倍

22 回測結果 回測10年的均線糾結策略之投資績效見表1;布林通道買賣訊號策略之投資績效見表2。
2016/10/24 回測結果 回測10年的均線糾結策略之投資績效見表1;布林通道買賣訊號策略之投資績效見表2。 從表2回測結果中發現,平均10年的交易次數約35.3;均線糾結13.67次。 布林通道累計報酬率約170.3%高於均線糾結131.53%, 年報酬率大約13.15%;最高累計報酬率是南亞科為651%,最低是聯發科-89%; 布林通道策略的回測樣本中,19家為正報酬,3家負報酬。

23 實證結果

24 Bband程式功能(I) 呼叫主程式(第234列) 讀取result_SMA.xlsx與result_Bband.xlsx(第237列)
進迴圈依股票代號每一檔都要進行回測 呼叫主程式(第245列) 將dfSMA寫入FinalResult.xlsx的SMA活頁簿(第250頁)。

25 Bband程式功能(II) 本支程式除呼叫SMAWMA(第208列) 之外,外加BBandMA(第219列)兩個策略。
不執行畫圖程式,因為有21檔迴圈要執行,省略畫圖。

26 作業練習 帶量突破均線 買進 今天收盤價>10日均線且昨天的收盤價<小10均線且成交量>10日均量的兩倍 賣出
今天收盤價<10日均線且昨天的收盤價>10均線且成交量>10日均量的兩倍

27 OK 本章講解完畢 現場同學們如有不懂的地方,請提出問題。


Download ppt "【南區Fintech研習營】Python 程式設計基礎:"

Similar presentations


Ads by Google