從樸實無華的再出發之二[QuantTradingwithPython_10]

更新於 發佈於 閱讀時間約 12 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。

 

raw-image


這一期繼續給我們的工具添磚加瓦;關於K線形態辨識的部分寫了好幾期,咱們總在吞噬的圖形裡面打轉,相信很多人吞著吞著都快給吞出個厭食症來了。心中不禁嘀咕;書本上幾十種形態,幹嘛老是端這道菜上來?於是咱們今天就來先打通這個任督二脈,換個菜色。順便多上幾道菜,澎湃一下餐桌的顏色。不過一次把所有的K線形態通通納入進來,這也有點不切實際。在這篇文章中。就先找幾個具有代表性的形態,先集合在一起試作。最終目標就是讓大家之後能夠非常隨意的去增刪一些新的形態。會在這裡提昇這點;是因為這裡有許多的困難點,必須要去突破。這些傷腦筋的地方,在文章中我都會說到。不過也早就知道,這條路不是那麼平坦就能走得過的。都說到這份上了,再也不點個贊,今天晚上能夠睡得安穩嗎?

在第一個階段。除了原先的吞噬形態之外;計畫加入母子以及晨星的形態。這幾個形態都是大家耳熟能詳的,並且在勝率上也蠻值得信賴的。所以在第一次嘗試上我們的三種形態來分析名單。

現在談談這裡會有什麼貓膩呢?其實不衹是有;還是叫人崩潰的那一種。在過程中才體會到自己是多麼的僥倖,也才知道上天是如何的一路照顧著我們。走到了現在,鬼使神差的讓我們選擇了吞噬形態揭開了序幕。這是一個非常容易產生的形態,幾乎在任何的一個股票資料當中都能夠被搜索辨識出來;而且數量都還蠻多的。所以在修改程式加入三種形態的過程中,平心而論;還是進行得非常順利的。但是在測試的時候,這車走著走著就給它翻過去了。不同於吞噬以及母子這兩種形態,這晨星的形態發現困難度直接給上了一個不同的高度。而它搜索不到的結果就是直接讓程序罷工,然後也順利的引發了我的大腦的罷工。

在百思不得其解困惑的時間裡,在一次看著白雪公主電影的時候,正為著賢慧端莊的皇后不能將白雪公主順利毒死而感到扼腕的時候;突然靈光乍現,一拍大腿叫道,好一顆毒蘋果!

於是決定在原先的三種形態之外,又增加了一個選項。就是顯示原始K線。增加的這項發現有兩種好處;第一是我們也常常需要顯示沒有箭頭標識的原始K線,方便比較。第二個好處就是,在程序執行的過程當中,如果無法順利的過濾出形態,就將程式導向顯示原始K線。如此也就可以順利的規避掉程式罷工的問題;真可謂是魚與熊掌兼得了。想到這裡;不禁抬起頭來跟皇后遠遠的相視一笑。沒用多久,我們的嶄新工具就進化完成了。

 

import yfinance as yf

import talib

import mplfinance as mpf

import pandas as pd

import datetime

import ipywidgets as widgets

from IPython.display import display

 # 創建資料開始結束日期、股票代碼和K線形態的小部件

start_date_widget = widgets.DatePicker(description='開始日期')

end_date_widget = widgets.DatePicker(description='結束日期')

symbol_widget = widgets.Text(description='股票代碼')

pattern_widget = widgets.Dropdown(description='選擇K線形態', options=['吞噬', '母子', '晨星', '原始K線'], value='吞噬')

button = widgets.Button(description='開始繪圖')

 # 定義按鈕點擊事件處理函數

def plot_stock_data(button):

    # 獲取所選的開始日期、結束日期、股票代碼和K線形態

    start_date = start_date_widget.value

    end_date = end_date_widget.value

    symbol = symbol_widget.value

    pattern = pattern_widget.value

    # 下載股票資料

    data = yf.download(symbol, start=start_date, end=end_date)

   # 計算所選K線形態

    if pattern == '吞噬':

        pattern_function = talib.CDLENGULFING

    elif pattern == '母子':

        pattern_function = talib.CDLHARAMI

    elif pattern == '晨星':

        pattern_function = talib.CDLMORNINGSTAR

    elif pattern == '原始K線':

        pattern_function = None

   # 判斷是否顯示原始K線

    if pattern_function is None:

        mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price')

    else:

        pattern_result = pattern_function(data['Open'], data['High'], data['Low'], data['Close'])

 # 判斷是否顯示形態K線

        if pattern_result.sum() == 0:

            mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price')

        else:

# 找出K線形態的日期

            pattern_dates = data.index[pattern_result != 0]

  # 在K線形態的日期上標記三角箭頭

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

            data.loc[pattern_dates, 'Arrow'] = data.loc[pattern_dates, 'Low'] - 2

            apd = mpf.make_addplot(data['Arrow'], type='scatter', markersize=60, marker='^', panel=0)

 # 繪製K線圖和成交量

            mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price', addplot=apd)

 

# 將主要的小部件和按鈕顯示

display(start_date_widget)

display(end_date_widget)

display(symbol_widget)

display(pattern_widget)

display(button)

 # 將按鈕的點擊事件與繪圖函數綁定

button.on_click(plot_stock_data)

 照慣例也來個三連拍吧。

 

raw-image


raw-image


raw-image


接下來我們就稍微的對程式碼來進行一個解說。

# 創建日期、股票代碼和K線形態的小部件

start_date_widget = widgets.DatePicker(description='開始日期')

end_date_widget = widgets.DatePicker(description='結束日期')

symbol_widget = widgets.Text(description='股票代碼')

pattern_widget = widgets.Dropdown(description='選擇K線形態', options=['吞噬', '母子', '晨星', '原始K線'], value='吞噬')

button = widgets.Button(description='開始繪圖')

 

這一段我們將工具裡面所用到的所有widget的小部件,全部做一個初設。特別是最後一個dropdown的widget裡面。設定進去的本次程式所需要的三種K線形態以及顯示原始K線的變數。這些本著維護中華文化的初心使用的中文字,沒想到結果讓是自己先把毒蘋果咬了一口;差一點就跟白雪公主殉情,一起被送走。這個就容後再敘吧。

 

# 計算所選K線形態

    if pattern == '吞噬':

        pattern_function = talib.CDLENGULFING

    elif pattern == '母子':

        pattern_function = talib.CDLHARAMI

    elif pattern == '晨星':

        pattern_function = talib.CDLMORNINGSTAR

    elif pattern == '原始K線':

        pattern_function = None

 

上面這一段就是乖乖的,還是要把形態改回來英文。不然就會知道為什麼當時拿破崙一直高喊著“前進”,但所有的士兵通通不理他了。不要問為什麼。問了就是把這個網絡笑話變成你自己的笑話。

看到這裡不知道大家是否看出了,發現有些東西有搞頭了。如果咱們想在這個工具上面多增加幾種形態,或者改變原先設定的形態。除了所有的中文形態名詞要改變以外,重要的就是也要去改變,上面的一些talib的形態。這些專用形態的名詞,我想還是用另外一篇文章專門來貼這些名詞,以方便大家使用時候可以查閱;接著往下看。

 

# 判斷是否顯示形態K線

        if pattern_result.sum() == 0:

            mpf.plot(data, type='candle', volume=True, title=symbol, ylabel='Price')

 

這一行就是我們毒蘋果的重點;在talib裡面。當形態順利的被搜尋出現時,會在當日的欄位裡面記錄100或者是-100,不然的話就會記錄為0。而如果這個形態在資料當中從頭到尾都沒有被尋獲,那麼整個數列都會變成是零的形態。所以這裡使用一個加總的判斷式,來釐清是否形態完全沒有被搜索到。而當這個判斷成立的時候。緊接著便不採取任何的動作直接去繪圖出來。而這個結果就等同我們去選擇顯示原始K線一樣。如此這般,我們的工作便可以在此先暫時的畫下一個完美的句點。這一期的文章我們就先談到這裡。下次繼續努力的來美化它。預計再來個一兩次來回。就會迎來我們這一個階段的圓滿收官。為這個K線形態的過濾工具,迎來一個完美的結束點。今天就先談到這裡了。祝大家早安,午安晚安。



raw-image


avatar-img
7會員
19內容數
一個專為金融專業設計的專題。介紹量化交易的基本概念和使用Python進行量化交易策略開發的方法。專題涵蓋金融市場運作、技術分析,實例和代碼提供,幫助理解和應用不同的交易策略和指標。此外,介紹了回測工具的使用和風險管理技巧。本專題為對量化交易有興趣的讀者提供了全面的學習指南。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Parkson Dow的沙龍 的其他內容
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
本來模組化這件事;打算在我們完成股票池工作之後再來談的。沒想到這幾天,已經有一些朋友反應;大概因為端午節的關係,提前磕了太多粽子,導致有點消化不良。所以左思右想之後,決定提前先上一下模組化的部分。目的在於簡化工作。我們討論系列文章的目的,或許跟大家介紹許多一般比較少用的Python套件、、
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
本來模組化這件事;打算在我們完成股票池工作之後再來談的。沒想到這幾天,已經有一些朋友反應;大概因為端午節的關係,提前磕了太多粽子,導致有點消化不良。所以左思右想之後,決定提前先上一下模組化的部分。目的在於簡化工作。我們討論系列文章的目的,或許跟大家介紹許多一般比較少用的Python套件、、
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章探討了股票技術分析的基本概念,包括K線圖和移動平均線的定義和用途,以及型態學的應用。此外,文章也介紹了葛蘭碧八大法則的相關內容,並討論了其歷史和潛在侷限性。最後,文章提醒投資者要理解技術分析工具的原理,不依賴單一指標做出投資決策。
Thumbnail
HI 大家好 我是宥爸 今天要分享的是 永遠別輕忽風險 我想大多數人一進入股市 就是想著要靠股票賺大錢 今天買進100元 下周就會漲到200元 但是事情往往是相反的 經過十幾年的投資經驗 宥爸覺得股市是一個吃人怪獸 如果你跟風亂買 不瞭解公司的營運業務 亂開槓桿 小心吃人怪獸正惡狠
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
本文章介紹了K線圖的14種型態,包括大陽線、上、下影線陽線、上影線陽線、下影線陽線等,還介紹了看漲和看跌K線圖的形態及使用方式。文章提供了K線圖型態分析的相關資訊。
Thumbnail
十銓大補丸稍稍補血 重視籌碼分析 基本面跟技術面需要去研究線圖指標或財報等財務資訊 但籌碼只要花點時間研究或許就能看出端倪 過往刻意選了本身股性比較活潑的個股股票 經過思考之後 從今開始會改變一下分享的個股 會開始帶一些用分點進出判斷多空 即便如此 停損停利
Thumbnail
學習K線圖的好處是能夠在這項技能當中研判各國股市、匯率或個股的趨勢脈動,因K棒的形成是真金白銀打出來的型態,就是最真實的市場的反映,若將K棒及成交量結合,就能掌握大部分市場的走向,未來您可以做波段或是當沖交易都適用,就不需要再聽任何消息能夠自己做判斷。
Thumbnail
[Python基礎]淺談類別 先前淺談了類別的用法,這次要在來研究一下類別繼承的概念。 延續蛋糕的案例的概念,同樣為食物,所以可以由食物當作父類別來延伸,蛋糕則是食物的子類別,若同樣為食物一定有相同的方法(函式)是固定的跟名字(屬性),可以讓子類別(蛋糕)來繼承沿用,然後也有其他子類別也可以繼承
Thumbnail
前言 呢喃貓投資短線盤勢分析,將搭配分析近期基本面相關訊息,希望透由此方式提供除價格資訊外更多的 INSIGHT,提高交易期望值。 先前團隊看到過有交易者在 LUNA 死亡螺旋時仍瘋狂做多(僅看技術面,完全無視基本面),本篇週報為避免貓友走這樣的冤枉路;將分享團隊如何將基本面搭配盤勢規劃,進行有
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章探討了股票技術分析的基本概念,包括K線圖和移動平均線的定義和用途,以及型態學的應用。此外,文章也介紹了葛蘭碧八大法則的相關內容,並討論了其歷史和潛在侷限性。最後,文章提醒投資者要理解技術分析工具的原理,不依賴單一指標做出投資決策。
Thumbnail
HI 大家好 我是宥爸 今天要分享的是 永遠別輕忽風險 我想大多數人一進入股市 就是想著要靠股票賺大錢 今天買進100元 下周就會漲到200元 但是事情往往是相反的 經過十幾年的投資經驗 宥爸覺得股市是一個吃人怪獸 如果你跟風亂買 不瞭解公司的營運業務 亂開槓桿 小心吃人怪獸正惡狠
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
本文章介紹了K線圖的14種型態,包括大陽線、上、下影線陽線、上影線陽線、下影線陽線等,還介紹了看漲和看跌K線圖的形態及使用方式。文章提供了K線圖型態分析的相關資訊。
Thumbnail
十銓大補丸稍稍補血 重視籌碼分析 基本面跟技術面需要去研究線圖指標或財報等財務資訊 但籌碼只要花點時間研究或許就能看出端倪 過往刻意選了本身股性比較活潑的個股股票 經過思考之後 從今開始會改變一下分享的個股 會開始帶一些用分點進出判斷多空 即便如此 停損停利
Thumbnail
學習K線圖的好處是能夠在這項技能當中研判各國股市、匯率或個股的趨勢脈動,因K棒的形成是真金白銀打出來的型態,就是最真實的市場的反映,若將K棒及成交量結合,就能掌握大部分市場的走向,未來您可以做波段或是當沖交易都適用,就不需要再聽任何消息能夠自己做判斷。
Thumbnail
[Python基礎]淺談類別 先前淺談了類別的用法,這次要在來研究一下類別繼承的概念。 延續蛋糕的案例的概念,同樣為食物,所以可以由食物當作父類別來延伸,蛋糕則是食物的子類別,若同樣為食物一定有相同的方法(函式)是固定的跟名字(屬性),可以讓子類別(蛋糕)來繼承沿用,然後也有其他子類別也可以繼承
Thumbnail
前言 呢喃貓投資短線盤勢分析,將搭配分析近期基本面相關訊息,希望透由此方式提供除價格資訊外更多的 INSIGHT,提高交易期望值。 先前團隊看到過有交易者在 LUNA 死亡螺旋時仍瘋狂做多(僅看技術面,完全無視基本面),本篇週報為避免貓友走這樣的冤枉路;將分享團隊如何將基本面搭配盤勢規劃,進行有