2023-12-14|閱讀時間 ‧ 約 8 分鐘

使用TA_lib打造一個交易策略(TA_lib輕探4)[QuantTradingwithPython_8]

 

raw-image


使用TA_lib(pandas_TA) 打造一個交易策略實用工具(TA_lib輕探4之抽到機會卡退回上一步)


墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。沒想到這個隱藏的禍因。最終還是在最近结出了果來。至於發生了什麼事呢?就讓我接續的上期文章的進展。一步步的道來。

在上一期的文章,我們順利的解決了顯示吞噬的K線形態,並採用紅色與綠色來分別顯示多頭與空頭的形態。所以就想在此處先來做一個小的總結。把上次的程式碼做一個模組化。所以有了以下的模組化程式碼。

import yfinance as yf

import talib

import mplfinance as mpf

import pandas as pd

def plot_candlestick_with_pattern(symbol, pattern):

    # 下載股票資料

    data = yf.download(symbol, start="2023-01-01", end="2023-07-28")

    # 計算 K線形態。

    pattern_result = getattr(talib, pattern)(data['Open'], data['High'], data['Low'], data['Close'])

    # 將形態結果加入資料表

    data['Pattern'] = pattern_result

    # 找出符合形態的日期

    pattern_dates = data.index[pattern_result != 0]


    # 在符合形態的日期上標示箭頭

    data['UpArrow'] = pd.Series(index=data.index, dtype='float64')

    data['DownArrow'] = pd.Series(index=data.index, dtype='float64')


    for date in pattern_dates:

        if pattern_result[date] == 100:

            data.loc[date, 'UpArrow'] = data.loc[date, 'Low'] - 2

        elif pattern_result[date] == -100:

            data.loc[date, 'DownArrow'] = data.loc[date, 'High'] + 2

    # 繪製K線圖和成交量

    up_apd = mpf.make_addplot(data['UpArrow'], type='scatter', markersize=60, marker='^', panel=0, color='red')

    down_apd = mpf.make_addplot(data['DownArrow'], type='scatter', markersize=60, marker='v', panel=0, color='green')

    mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price', addplot=[up_apd, down_apd])

    # 輸出報表

    data.to_csv('report.csv')

如此這般之後。咱們的執行程序碼就可以縮減為以下幾行

symbol = "TSLA"

pattern = "CDLENGULFING"

plot_candlestick_with_pattern(symbol, pattern)

 


嗯、感覺就是一個熟悉的老配方,藥效不變。在總結的執行程序碼當中,我們加入了型態pattern的這一個變數。聰明如你的朋友們,應該在這裡就可以看出來我的企圖心。希望透過這個變數的活用變通性。一次就能掌握其他的K線形態;一統江湖、千秋萬載。而結果就是無情的被啪啪打臉!在這個點上,產生了這篇文章與上一篇文章之間的嚴重拖更。讓我們繼續說下去。

初步的想法;就是在吞噬獲得成功之後,接著把幾個自己認為獲胜率比較高的?K線形態一起給它掛上去。首先就想嘗試把晨星Morning Star先掛上去試試看;沒想到這一次就出事了。這個早晨之星,足足讓我從早上等到黃昏。然後一等就是整個星期甚至大有等來地老天荒的可能。最終在理智線與生命線斷開二擇一的考慮下,先跳開休息冷靜幾天,再看它如何。

在這思索問題解答的某一天。一處偶遇路旁一棵菩提樹。由於酷暑難耐。於是便到菩提樹蔭下休息。在休息經過七七四十九分鐘之後。為了湊得整數,以求功德圓滿。於是又呆坐了11分鐘湊足一個小時。沒想到這個堅定執行愚蠢行為的決心,最終還是感動了天地。這是繼上一次臥冰求鯉之後另一個成功的案例。此時心中忽然一片澄明。發現自己簡直就是一個超級宇宙大白癡。晨星的形態本來就是屬於多頭的。我要是能夠用綠色向下箭頭標出來才有鬼。沒想到這一周的時間,竟然就卡在這個幼稚的問題上面。真是讓人哭笑不得。

冷靜下來總結;發現到目前我們的進度,也並不是完全一無所得。除了晨星夜星這些一開始就選邊站的形態之外。還是有一些形態跟吞噬一樣,可以分多空以顏色來區分的。比如說我們熟悉的母子HARAMI形態。

# 使用範例

symbol = "NVDA"

pattern = "CDLHARAMI"

plot_candlestick_with_pattern(symbol, pattern)



看來它也不是完全一無是處的,對吧?所以這一個多星期的卡關,以及隨後好幾日的自閉;感覺就像玩大富翁抽機會卡,結果抽到了一張退回上一步的卡片。感覺就是一個難過到好像吞進了一隻蒼蠅。除了無奈又能如何?結論就是咱們的紅綠燈大概衹能先閃到一邊了。為了繼續完成我們的統治銀河系的野心,將大多數的K線形態搜索功能集中在一個工具裡面,被迫必須退回一個中性的區域。衹能使用標誌位置來滿足我們的需求。但是也相對的給了我們擴張形態範圍的能力。TaLib提供的所有k線形態變式。有興趣的朋友可以參考以下的網址

這裡是包含的所有TaLib所能夠辨識的K線形態,以及調用函數的範例。形態的中文翻譯部分,應該是對岸的某位有心網友,用心翻譯來的。請大家用力的給他鼓鼓掌。不然原先形態上面所使用的那些小日子過得不錯的使用文字。要努力的記起來,還不衹是一個吃力可以形容。

好吧。已經交代了這次拖更的原因。從下一篇文章開始。我們就要來開始拓展其他的K線形態辨識工作。當大家看到這篇文章的時候,應該已經邁入了8月份了。如果錯過了前幾篇文章的公告。在此容我再提醒一次。自8月份開始。我們的極限交易法小班制課程。將調整收費至每人5萬。這是一個完全人工機械化交易的方法的課程。跟程式化交易無關。所以完全不需要任何程式交易方面的經驗或知識。當然,如果你已經事先讀過我的背離交易方面的著作;會讓學習起來更有效率。這期文章就到此結束。祝您交易獲利。萬事順利。跟您道早安,午安晚安。我們下期見。







分享至
成為作者繼續創作的動力吧!
一個專為金融專業設計的專題。介紹量化交易的基本概念和使用Python進行量化交易策略開發的方法。專題涵蓋金融市場運作、技術分析,實例和代碼提供,幫助理解和應用不同的交易策略和指標。此外,介紹了回測工具的使用和風險管理技巧。本專題為對量化交易有興趣的讀者提供了全面的學習指南。
© 2024 vocus All rights reserved.