這是邢不行第 68 期量化小講堂的分享
作者 | 邢不行、助教-法瑪
之前有次直播的時候給大家演示過一個我們內部使用的工具 —— 擇時策略查看器。
擇時策略查看器
在查看器的界面上,不僅可以清楚地看到K線圖、均線等各類技術指標,還能顯示出擇時策略交易信號的買點、賣點。
在頁面右側可以看到每一筆買賣交易:
點擊“在圖中顯示”,K線頁面就會對焦到該筆交易,展現它的開倉點、平倉點、收益率等信息。
這個工具主要是讓大家更方便的閱讀擇時策略的逐筆交易,幫助開發、優化新的策略。一開始只是內部使用,後來開放給策略分享會的同學。
這件“神器”的主要部分是K線和相關指標的展示,看上去好復雜,會不會很難?
答案是:其實只需十幾行Python代碼,即便是毫無編程基礎的小白也可以畫出K線圖。
本文就按照以下四步,講解如何制作高大上的個性化行情分析神器:
01 繪制普通的K線圖
02 加入成交量
03 加入均線
04 添加交易信號
如果你看完後有任何問題,都可以掃描下方二維碼或加我微信xbx971,和我交流。
01
繪制普通的K線圖
這裡我默認大家已經裝好了Python以及相關環境,並且知道如何運行代碼。
如果不會的話,請參考我之前寫的這篇文章:
最最最最簡單、最最最最詳細的Python和Pandas安裝教程
首先我們打開Anaconda, 在裡面點擊Spyder。
這裡我已經為大家准備好三份數據,分別是比特幣日K線,比特幣4小時K線,以及sh000688科創50指數日K線:
K線數據文件
sh000688數據展示
除此之外,還有我們的4個程序文件:
如果你需要這些代碼和數據的話,可以掃描下方二維碼或加我微信xbx971,都是可以直接發給你的。
以比特幣4小時K線為例,打開“1_畫K線.py”這個程序:
1_畫K線.py
其中第1、2的代碼意思是導入我們事先安裝好的第三方庫,第5到第7行是導入本次作圖需要用到的數據。
選中前7行代碼,點擊鼠標右鍵,再點擊“Run Cell”,運行這幾行代碼:
選中代碼後,單擊鼠標右鍵
在界面右側的Variable中可以看到,數據已經導入到程序中了:
我們在此雙擊“df”變量,便可以看到已經被導入的K線數據:
接下來我們用導入的這份數據畫K線圖:
作圖部分代碼
作圖部分的代碼是設置K線的顏色和風格。
如果我們希望K線的顏色和國內A股市場一樣紅漲綠跌,那麼只需要把參數設置為:
up=’red’ down=’green’
第13行代碼中edge的意思是設置K線邊框的顏色,默認是黑色,edge=’inherit’的意思是保持K線邊框的顏色與K線實體顏色一致。
運行全部代碼,就可以畫出比特幣最近一段時間的K線圖:
想要修改圖中的縱坐標名稱,只需修改代碼第18行代碼裡的ylabel參數即可:
現在我們已經可以畫K線圖了,那應該如何在普通的K線圖中加入成交量呢?
如果你對上述的數據和代碼感興趣的話,可以掃描下方二維碼或加我微信xbx971,都是可以免費發給你的。
02
加入成交量
打開“2_加入成交量.py”這個新的程序:
2_加入成交量.py
這個程序前10行的代碼和“1_畫K線.py”程序完全一致,也是導入第三方庫和讀取數據。
不同之處在於:
首先,在第14行新增了一個volume參數,volume=’inherit’意思是將成交量柱狀圖的顏色設置為紅漲綠跌,與K線一致。
其次,第19行作圖代碼中新增兩個參數,volume=True的意思是將成交量添加到圖中。ylabel_lower=’volume’意思是將成交量圖的縱坐標命名為“volume”。
運行程序之後,可以看到添加了成交量的K線圖:
下方的柱狀圖表示成交量(紅漲綠跌)
想要修改成交量縱坐標的名稱,只需修改代碼第20行代碼裡的ylabel_lower參數即可:
接下來講解一下如何在K線圖中加入技術指標。
03
加入技術指標
我們以均線為例,演示在K線圖中添加技術指標。
我給大家提供的數據裡已經算好了均線,只需按照代碼將均線指標添加到畫圖函數即可。
均線數據字段
打開“3_加入均線.py”程序:
3_加入均線.py
該程序的前16行代碼和上面兩個程序是相同的。
不同之處在於:
第19行新增一個變量add_plot, 賦值為10日均線’ma_10’和50日均線’ma_50’,並且將add_plot變量添加到第21行的mpf.plot()方法中。
寫好之後,運行程序,就能得到K線圖:
可以看到,K線中新增了兩條移動平均線。藍色的是50日均線,橙色的是10日均線。
大家應該能感受到,過程其實很簡單,我們只要像搭積木一樣在畫圖函數裡添加相應的參數即可。
如果你對上述的數據和代碼感興趣的話,可以掃描下方二維碼或加我微信xbx971,都是可以免費發給你的。
最後再來看看,如何將交易策略的開倉平倉信號,添加到K線中。
04
添加交易信號
我給大家提供的數據已經包含了交易信號,只需按照代碼將交易信號添加到畫圖函數即可。
數據中的交易信號
打開“4_加入買賣點.py”程序:
4_加入買賣點.py
這個程序的前16行代碼和“3_加入均線.py”的程序是完全一樣的。
不同之處在於:
第19-22行代碼中,add_plot變量新增了我們的交易信號。交易信號分為三種:
1. signal_long: 做多的開倉信號
2. signal_short: 做空的開倉信號
3. signal_0: 平倉的信號
marker參數用來設定交易信號圖標的形狀,marker=’^’表示向上的箭頭, marker=’v’表示向下的箭頭, marker=’o’表示圓圈。
color參數可以用來控制顏色,color=’g’表示綠色(green), ‘y’表示黃色(yellow), ‘b’表示藍色(blue),可以根據自己的偏好設定不同的顏色。
運行程序,做出最終的行情分析器:
圖中紅色向上的箭頭表示開多倉的位置,綠色向下的箭頭表示開空倉的位置,黃色圓圈表示平倉的位置。
05
總結
現在我們已經成功繪制出比特幣4小時K線,加入了成交量,均線,並且還把我們自己的交易信號添加到K線中。
大家可以發現,編程其實也不難。就像搭積木一樣,一點一點往上加就行。並且第四步的程序一共只需20幾行Python代碼,其中大部分還是注釋和空格。
強烈建議感興趣的同學可以自己嘗試運行一下代碼,體會會更不一樣。掃描下方二維碼或加我微信xbx971,我可以把作圖需要的數據和代碼都發給你。
06
後記
文章的最後,和大家分享一點量化投資的心得。
很多人問我小白如何開始學習量化投資,有什麼可以書單推薦。
我的建議是千萬不要直接找本書來看。
你找本編程書看,那跟著敲完“Hello World”就結束了;你找本數學書看,那看到第七頁的公式就睡著了。
更好的學習方式是做實際的項目,在實踐中學習量化策略。
研報就是很好的量化實踐項目。
一篇研報就是一個策略,作者都是年薪百萬的高學歷券商分析師,你要做的就是讀懂策略研報,並用代碼實現。
在此期間什麼不會學什麼,哪裡不會點哪裡,抱著解決問題的心態去學習,事半功倍。
熟讀唐詩三百首,不會作詩也會吟。
那麼哪裡可以獲取研報呢?
你可以掃描下方二維碼或加我的微信xbx971,我這裡有分門別類幾萬份研報,還會實時更新。
我會區分難度,精選之後發給你。
加我微信xbx971後,也可以交流量化投資相關問題,我比較忙,回復的比較慢,但是看到的都會回復。
聊的開心,聊得有緣,很多量化的數據、資料都是可以送給你的。
也可以翻翻我朋友圈的內容,很多量化干貨。一些不會公開發的內容,都會在朋友圈說。
聯系作者