小散量化炒股記|股價如波浪起伏,教你用量化識別波段的極值點

歡迎你們訂閱《Python數據分析實戰:構建股票量化交易系統》小冊子,學完小冊上的知識點後,必定要學以至用的方式來輔助咱們分析股票! ​算法

前言

​ 相信你們都據說了量化交易這個東西了吧!微信

量化交易是一種新興的系統化金融投資方法,它綜合多個學科的知識,用先進的數學模型代替人的主觀思惟制定交易策略,利用計算機強大的運算力從龐大的股票、債券、 期貨等歷史數據中回測交易策略的盈虧「機率」,經過管理盈虧的「機率」幫助投資者作出準確的決策。markdown

那麼,什麼纔是普通股民所適合的量化交易打開方式呢?oop

本文就用一個接地氣的股票分析場景 —— 用量化方法識別股價波段的極值點 來和你們分享一下,普通股民如何去使用量化交易!spa

識別波段極值點 

股票的走勢不是一條單一的直線,而是像海水的浪潮同樣有高有低。因而股價的高低起伏走勢會造成一個個波段。.net

不少經典的策略都是基於波段的分析。好比艾略特的波浪理論、低買高賣的波段操做、 尋找支撐位和壓力位等等。code

然而這些策略的共同基礎就是識別出波段,也就是股價的極值點。orm

一般咱們是用肉眼在行情軟件上去識別和標記的,那麼所謂的量化就是把極值點的特色概括成一種算法模型,用量化程序去識別。blog

第一步是識別金叉和死叉。(關於實現原理在往期的《小散量化炒股記》中已經介紹,此處不在贅述)get

此處咱們是先識別MACD的金叉和死叉。如圖所示,標記G爲金叉(GLOD縮寫),而標記D爲死叉(DEATH縮寫)。

第二步則是基於金叉和死叉去找到極值點。原理其實很簡單:一個金叉和死叉之間必然存在一個最大值,同理一個死叉和一個金叉之間也存在一個最小值。以下所示:

以尋找最大值爲例,關鍵代碼以下所示:

# 找出上一個的金叉 這個金叉和下一個死叉之間會出現股價最大值
df_temp_1 = df_stockload[(df_stockload.index <= df_stockload.index[i])]
df_temp_2 = df_temp_1[df_temp_1.cross_m > 0]


if df_temp_2.empty == False:
    df_temp_3 = df_temp_1[(df_temp_1.index >= df_temp_2.index[-1])]
    close_val = df_temp_3["High"].max() #
    df_temp_4 = df_temp_3[df_temp_3["High"].values == df_temp_3["High"].max()]
    time1 = df_temp_4.index.to_pydatetime()[0].strftime("%Y-%m-%d")
    posit = df_stockload.index.get_loc(time1)
    df_stockload.loc[df_temp_4.index, "Max"] = True
複製代碼

尋找以後再用Matplotlib庫的annotate方法標記,效果圖以下所示:

標記了波段的最大值和最小值以後,有什麼好處呢?

首先是獲得波段最大值對應的壓力位大小,以及波段最小值對應的支撐位大小,這個數值能夠參考該日對應的成交量。

以及能夠把一段時間內的壓力位所對應的成交量進行累加,做爲當前突破壓力位所受到的阻力值。

其次,咱們能夠把波段的最大值和最小值分別鏈接起來,做爲趨勢的判斷依據。以下圖所示:

好比,咱們識別到連續波段的高點和低點都在一個數值附近,那麼能夠判斷當前處於震盪走勢之中。當連續的波段高點和低點不斷擡高,那麼當前正處於上升趨勢之中,同理爲下跌趨勢的判斷亦然。這個正是大方向上的把握。

總結

經過這個簡單而又實用的股票量化場景,但願可以給廣大朋友對於量化交易有一個直觀的感覺。

而後,咱們應該升級本身的炒股方式了,把本身之前炒股的那套方法,抽象成策略模型,用量化的方法去全市場回測評估,而後讓程序幫助咱們監測行情的走勢。

這個纔是普通股民所適合的量化交易打開方式!

———————————————————————————————————————————————— 你們若是想對涉及到的知識點進行更全面、更體系的從0-1方式的介紹,這裏推薦給你們個人書籍《Python股票量化交易從入門到實踐》!天貓、京東、噹噹全面開售!

同時也歡迎你們關注個人微信公衆號【元宵大師帶你用Python量化交易】瞭解更多Python量化交易相關內容

例程中的代碼,上傳至《玩轉股票量化交易》知識星球(知識星球的目錄可點擊【閱讀】查看)。

相關文章
相關標籤/搜索