從樸實無華的再出發之一[QuantTradingwithPython_9]

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

 

raw-image


從樸實無華的再出發之一


接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來幫幫手)。就決定從這個地方開始新方向。先確認個進度,原始程式碼與輸出的結果如下。


import yfinance as yf

import talib

import mplfinance as mpf

import pandas as pd

%matplotlib notebook

# 下載AAPL股票的資料

symbol = "AAPL"

data = yf.download(symbol, start="2023-01-01", end="2023-08-14")

# 計算吞噬K線組合

engulfing = talib.CDLENGULFING(data['Open'], data['High'], data['Low'], data['Close'])

# 找出吞噬K線組合的日期

engulfing_dates = data.index[engulfing != 0]

# 在吞噬K線組合的日期上標示三角箭頭

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

data.loc[engulfing_dates, 'Arrow'] = data.loc[engulfing_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)


raw-image


 

既然要動刀給它手術了;就順便把一些也忍了很久的缺點一併解決。所以在這一章中,先來解決一些關於資料下載的問題。首先我想讓下載資料長度活起來。蠻討厭的;每次總是要去敲鍵盤,輸入開始日期以及資料的截止日期。對吧!沒說錯吧?我看見有人舉手了。所以必須要調用jupyter notebook的部件小工具widgets,來幫大夥解決這個問題。這個小工具就叫做日期挑選器Date picker。

程式範例如下、、


widgets.DatePicker(

    description='Pick a Date',

    disabled=False

)

看起來還蠻容易使用的。但事實上它有兩個是可以控制的;首先是上面的這個description。衹是用來設定一個指示文字的標題欄,沒什麼技術含量的。另外還有一個value。這個便是輸出點擊後的日期變數。在之後的範例程式中可以看到它的使用。但在事實上,這個變數是可以雙向使用的。也就是說我們可以來設定這個小工具呈現時候所預設的日期。放心,這個我們之後的範例中會再介紹。現在就來看看第一步改造後的結果。


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

# 創建日期小部件

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

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

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

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

def plot_stock_data(button):

    # 獲取所選的開始日期和結束日期

    start_date = start_date_widget.value

    end_date = end_date_widget.value

    # 下載AAPL股票的資料

    symbol = "AAPL"

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

      # 計算吞噬K線組合

    engulfing = talib.CDLENGULFING(data['Open'], data['High'], data['Low'], data['Close'])

      # 找出吞噬K線組合的日期

    engulfing_dates = data.index[engulfing != 0]

      # 在吞噬K線組合的日期上標記三角箭頭

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

    data.loc[engulfing_dates, 'Arrow'] = data.loc[engulfing_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(button)

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

button.on_click(plot_stock_data)

 

raw-image


好的,這下子我們動動滑鼠。就可以自由的選擇下載資料的長度了。如果再配上了,我們 Jupyter notebook的神奇指令 %matplotlib notebook。這下子觀察的自由度就會更大了。

弄到這裡了,可是還是覺得有個地方癢癢的對不對?既然讓我們恨得牙癢癢的;那就用力抓吧!接下來再下一刀,把這個沉痾解決了。再請來個小部件,把股票觀察視野擴大。


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

# 創建日期和股票代碼小部件

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

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

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

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

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

def plot_stock_data(button):

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

    start_date = start_date_widget.value

    end_date = end_date_widget.value

    symbol = symbol_widget.value

        # 下載股票資料

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

        # 計算吞噬K線組合

    engulfing = talib.CDLENGULFING(data['Open'], data['High'], data['Low'], data['Close'])

        # 找出吞噬K線組合的日期

    engulfing_dates = data.index[engulfing != 0]

        # 在吞噬K線組合的日期上標記三角箭頭

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

    data.loc[engulfing_dates, 'Arrow'] = data.loc[engulfing_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(button)

button.on_click(plot_stock_data)


raw-image



是吧,找來了老朋友幫我們抓癢。這個小部件就可以解決了,輸入股票代碼的問題。看起來一切都朝著所要的方向前進。今天就先牛刀小試,解決這兩個問題。在下一篇當中。會依然朝著這個方向去拓展我們需要的功能。希望改變後的這個開發方向是正確的。那麼我們這一篇就先談到這裡,也真誠的期待著你對這系列文章的反饋與建議。很期待下期很快就能跟大家再見面。祝你早安,午安晚安。


raw-image



7會員
19內容數
一個專為金融專業設計的專題。介紹量化交易的基本概念和使用Python進行量化交易策略開發的方法。專題涵蓋金融市場運作、技術分析,實例和代碼提供,幫助理解和應用不同的交易策略和指標。此外,介紹了回測工具的使用和風險管理技巧。本專題為對量化交易有興趣的讀者提供了全面的學習指南。
留言0
查看全部
發表第一個留言支持創作者!
Parkson Dow的沙龍 的其他內容
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
本來模組化這件事;打算在我們完成股票池工作之後再來談的。沒想到這幾天,已經有一些朋友反應;大概因為端午節的關係,提前磕了太多粽子,導致有點消化不良。所以左思右想之後,決定提前先上一下模組化的部分。目的在於簡化工作。我們討論系列文章的目的,或許跟大家介紹許多一般比較少用的Python套件、、
首先。先跟大家說一個令人振奮的消息。在這一篇文章當中。我們終於即將完成K線圖形顯示程式。這個未來會常常使用的小工具完工啦!就說興不興奮,高不高興。這段時間總算沒有白費;我們真的給鼓搗出了一些東西,這下子應該不只可以面對家鄉的父老了;都有一種榮歸故里的感覺。
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
本來模組化這件事;打算在我們完成股票池工作之後再來談的。沒想到這幾天,已經有一些朋友反應;大概因為端午節的關係,提前磕了太多粽子,導致有點消化不良。所以左思右想之後,決定提前先上一下模組化的部分。目的在於簡化工作。我們討論系列文章的目的,或許跟大家介紹許多一般比較少用的Python套件、、
首先。先跟大家說一個令人振奮的消息。在這一篇文章當中。我們終於即將完成K線圖形顯示程式。這個未來會常常使用的小工具完工啦!就說興不興奮,高不高興。這段時間總算沒有白費;我們真的給鼓搗出了一些東西,這下子應該不只可以面對家鄉的父老了;都有一種榮歸故里的感覺。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
國高中的時候,教室裡開始出現各式各樣的班對,不管是學霸組、校花校草組亦或是同性戀,我們似乎都會為班上那神秘的一對,貼上一張又一張的標籤。近幾年來隨著性別意識的高漲,社會對於同性之間的情誼開始帶有不一樣的見解,透過小說、漫畫、電影,只要出現特定的情節,我們就會想要推理出這段戀情日後的發展,也會想要為它
Thumbnail
朴海英編劇的新劇《我的出走日記》讓青年世代的厭世厭世轉化為治癒人心的力量,1972年出生的她是如何精準地抓住青年世代的內心,將我們靈魂深處的不安說出來 ?那些連我們父母都不理解的焦慮與迷茫,為什麼在她筆下都得以被撫慰?她是如何做到跨越世代的傾聽,並解放無數疲憊的靈魂?
Thumbnail
雙魚座或海王能量受到突顯的人,在人生的不同階段,也許都會對於『 金剛經 』這樣的東方經典愛不釋手,經文中透過須菩提和彿陀一來一往的對話,為人們描述關於究竟智慧的理路,多重層次的哲學思辨耐人尋味,為身處浮掠現世的我們,撬動所在分別、執著、各種阻礙造作的觀點。
Thumbnail
某陣子,只要早上一進廚房準備早餐就會有種「今天也好想吃三明治」的感覺,說真的,我仍不明白究竟到底是什麼原因,但只要我看著自己將吐司和食材一層一層往上疊的畫面,心中就會莫名湧起一股「好幸福啊」的感覺!生活的幸福感是否就如同層層疊加的三明治一樣呢?每一樁生活小事都是我們最美味的餡料。
Thumbnail
開始做香料咖哩,也已經過了一年。回想第一次做的,就是這道番茄雞肉咖哩了。還記得當時吃的時候是相當興奮的,「原來我也可以不依靠咖哩塊,用香料做出咖哩!」從那之後就一頭栽進了香料咖哩的世界。
Thumbnail
透過是非、對錯這種二元的想法,我們能夠快速的辨別敵我,也方便在不瞭解的情況下很方便的處理事情,只是最近幾年出現了光譜的概念,試著為似乎跳脫了二元的事物作解釋。
Thumbnail
這周挑戰月亮蝦餅!光看外表真的很難想像可以自己在家做出月亮蝦餅,這份食譜是我爬了大量蝦餅文之後整合成的簡易版本,我覺得不一定要的材料跟步驟都省略了,但好吃度絕不妥協!那為什麼餅皮跟沾醬也要自己來呢?因為餅皮好難買,雖然很多食譜都用水餃皮、蛋餅皮各種有的沒的,那些厚厚的皮我不能接受
Thumbnail
一個人的時間,做料理真的是很有趣呀,很舒壓又很期待成品出來會變得如何,而且料理真的是需要極大的專注力再上面,調味的過程也很像在玩神秘的煮鍋!不知不覺就能熱再其中...
Thumbnail
陳彥溥,一個年輕的金工師傅,從體制內教育逃脫進入全人實驗中學,然後又從剝削的金工勞動市場裡面跳出,自創自己的品牌 Wild.D。這次的出走,就如同當年選擇逃離體制內教育一樣,彥溥再次選擇離開金工產業的標準化作業與工廠內的生產線分工,我想,他的生命註定無法接受制式化的生產線,而這一次,他再也不會回去了
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
國高中的時候,教室裡開始出現各式各樣的班對,不管是學霸組、校花校草組亦或是同性戀,我們似乎都會為班上那神秘的一對,貼上一張又一張的標籤。近幾年來隨著性別意識的高漲,社會對於同性之間的情誼開始帶有不一樣的見解,透過小說、漫畫、電影,只要出現特定的情節,我們就會想要推理出這段戀情日後的發展,也會想要為它
Thumbnail
朴海英編劇的新劇《我的出走日記》讓青年世代的厭世厭世轉化為治癒人心的力量,1972年出生的她是如何精準地抓住青年世代的內心,將我們靈魂深處的不安說出來 ?那些連我們父母都不理解的焦慮與迷茫,為什麼在她筆下都得以被撫慰?她是如何做到跨越世代的傾聽,並解放無數疲憊的靈魂?
Thumbnail
雙魚座或海王能量受到突顯的人,在人生的不同階段,也許都會對於『 金剛經 』這樣的東方經典愛不釋手,經文中透過須菩提和彿陀一來一往的對話,為人們描述關於究竟智慧的理路,多重層次的哲學思辨耐人尋味,為身處浮掠現世的我們,撬動所在分別、執著、各種阻礙造作的觀點。
Thumbnail
某陣子,只要早上一進廚房準備早餐就會有種「今天也好想吃三明治」的感覺,說真的,我仍不明白究竟到底是什麼原因,但只要我看著自己將吐司和食材一層一層往上疊的畫面,心中就會莫名湧起一股「好幸福啊」的感覺!生活的幸福感是否就如同層層疊加的三明治一樣呢?每一樁生活小事都是我們最美味的餡料。
Thumbnail
開始做香料咖哩,也已經過了一年。回想第一次做的,就是這道番茄雞肉咖哩了。還記得當時吃的時候是相當興奮的,「原來我也可以不依靠咖哩塊,用香料做出咖哩!」從那之後就一頭栽進了香料咖哩的世界。
Thumbnail
透過是非、對錯這種二元的想法,我們能夠快速的辨別敵我,也方便在不瞭解的情況下很方便的處理事情,只是最近幾年出現了光譜的概念,試著為似乎跳脫了二元的事物作解釋。
Thumbnail
這周挑戰月亮蝦餅!光看外表真的很難想像可以自己在家做出月亮蝦餅,這份食譜是我爬了大量蝦餅文之後整合成的簡易版本,我覺得不一定要的材料跟步驟都省略了,但好吃度絕不妥協!那為什麼餅皮跟沾醬也要自己來呢?因為餅皮好難買,雖然很多食譜都用水餃皮、蛋餅皮各種有的沒的,那些厚厚的皮我不能接受
Thumbnail
一個人的時間,做料理真的是很有趣呀,很舒壓又很期待成品出來會變得如何,而且料理真的是需要極大的專注力再上面,調味的過程也很像在玩神秘的煮鍋!不知不覺就能熱再其中...
Thumbnail
陳彥溥,一個年輕的金工師傅,從體制內教育逃脫進入全人實驗中學,然後又從剝削的金工勞動市場裡面跳出,自創自己的品牌 Wild.D。這次的出走,就如同當年選擇逃離體制內教育一樣,彥溥再次選擇離開金工產業的標準化作業與工廠內的生產線分工,我想,他的生命註定無法接受制式化的生產線,而這一次,他再也不會回去了