從樸實無華的再出發之一[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



留言
avatar-img
Parkson Dow的沙龍
9會員
19內容數
一個專為金融專業設計的專題。介紹量化交易的基本概念和使用Python進行量化交易策略開發的方法。專題涵蓋金融市場運作、技術分析,實例和代碼提供,幫助理解和應用不同的交易策略和指標。此外,介紹了回測工具的使用和風險管理技巧。本專題為對量化交易有興趣的讀者提供了全面的學習指南。
Parkson Dow的沙龍的其他內容
2023/12/19
本期這篇文章。將迎來我們建構股票池工具的收官之作。依照慣例,追劇的每一季結尾,代表著總要對每一季階段性的故事做一個交代。然後也必須要適時的加入一些念想。
Thumbnail
2023/12/19
本期這篇文章。將迎來我們建構股票池工具的收官之作。依照慣例,追劇的每一季結尾,代表著總要對每一季階段性的故事做一個交代。然後也必須要適時的加入一些念想。
Thumbnail
2023/12/18
首先、本來想在這一邊做一個收官,用來結束我們創建股票池工具的階段工作。如此也可以讓我們展開往後的策略設計,以及回測的工作。
Thumbnail
2023/12/18
首先、本來想在這一邊做一個收官,用來結束我們創建股票池工具的階段工作。如此也可以讓我們展開往後的策略設計,以及回測的工作。
Thumbnail
2023/12/18
技術文件   # Pattern Recognition Functions 形態識別    ### CDL2CROWS - Two Crows > 函數名:CDL2CROWS   名稱:Two Crows 兩隻烏鴉   簡介:三日K線模式,第一天長陽,第二天高開收陰,
Thumbnail
2023/12/18
技術文件   # Pattern Recognition Functions 形態識別    ### CDL2CROWS - Two Crows > 函數名:CDL2CROWS   名稱:Two Crows 兩隻烏鴉   簡介:三日K線模式,第一天長陽,第二天高開收陰,
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
還沒有看過上一篇的可以點擊下面連結 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析。 這一篇會把注意力放在論文提到的技術並套用在台股市場,也會使用論文中的方法進行驗證,看看是否在台股也有一樣的超額報酬。 資料生成 第一步也是最難的一步-資料生成。 這裡
Thumbnail
還沒有看過上一篇的可以點擊下面連結 什麼?!AI也看得懂k線圖?利用機器學習來判斷股票漲跌。(1)論文解析。 這一篇會把注意力放在論文提到的技術並套用在台股市場,也會使用論文中的方法進行驗證,看看是否在台股也有一樣的超額報酬。 資料生成 第一步也是最難的一步-資料生成。 這裡
Thumbnail
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
Thumbnail
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
Thumbnail
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
Thumbnail
墨菲定律說。要什麼不一定來什麼;但不要什麼就一定會來什麼。自從幾個月前過完28歲的生日之後,有一天在洗手臺上面發現了一根掉落的白髮,就暗示的事情不會那麼的簡單。
Thumbnail
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
Thumbnail
在上一篇文章當中;我們已經順利的,把股價當中所發現的吞噬K線形態。標示,在圖形當中。對我這個圖形極簡偏執狂來說,已經是在滿意得不得了了。但自己知道,許多朋友們,還是喜歡看到習慣的紅綠色來標示;上漲或下跌的方向。
Thumbnail
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
Thumbnail
在上一期文章中。我們使用TA_lib套件。來協助我們尋找隱藏在股票價格當中的特殊K線形態並把它尋找到的結果輸出到一個表格當中。雖然結果是以100。以及-100的簡明方式來呈現;
Thumbnail
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
Thumbnail
剛剛我們完成了第一個所需要的工具,用來顯示觀察的K線圖形。今天要進入一個全新的項目。既然我們已經將資料能夠順利的下載到本地端,便需要好好的來利用它。利用它來建立,所關注的股票池。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News