程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

干貨!寫最少的Python代碼,畫最騷的K線!

編輯:Python

這是邢不行第  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後,也可以交流量化投資相關問題,我比較忙,回復的比較慢,但是看到的都會回復。

聊的開心,聊得有緣,很多量化的數據、資料都是可以送給你的。

也可以翻翻我朋友圈的內容,很多量化干貨。一些不會公開發的內容,都會在朋友圈說。

聯系作者


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved