Backtrader 是一個用於測試和開發量化策略的 Python 庫,尤其適合於回測股票、期貨、外匯等金融市場的交易策略。它提供了一個功能豐富且靈活的平台,允許使用者快速開發和測試他們的交易想法。下面是 Backtrader 的一些關鍵特點和功能:
安裝 Backtrader 非常簡單,可以通過 pip 進行安裝:
pip install backtrader
範例
import backtrader as bt
import yfinance as yf
import matplotlib.pyplot as plt
%matplotlib inline
# 定義策略
class MyStrategy(bt.Strategy):
def next(self):
pass # 策略邏輯
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
# 添加策略
cerebro.addstrategy(MyStrategy)
# 設置初始資金
cerebro.broker.setcash(10000.0)
# 設置手續費
cerebro.broker.setcommission(commission=0.001)
# 添加數據
data = bt.feeds.PandasData(dataname=yf.download("MSFT",
start="2018-01-01",
end="2018-12-31"))
cerebro.adddata(data)
# 運行策略
cerebro.run()
# 繪製結果
cerebro.plot(iplot=False)
Cerebro 是 Backtrader 框架的核心組件,負責整合策略、數據和分析器,並執行回測或實時交易。它提供了一個高度靈活和可擴展的環境,讓使用者可以輕鬆地定義和測試他們的交易策略。以下是對 Cerebro 的主要特點和功能的介紹:
使用 Cerebro 進行策略回測的基本流程通常包括以下幾個步驟:
adddata
方法添加市場數據。這些數據可以是歷史數據,用於回測,也可以是實時數據,用於實時交易。addstrategy
方法添加一個或多個交易策略。run
方法運行策略回測。plot
方法繪製交易性能圖表。以下表格介紹了 Cerebro
的一些核心方法及其功能:
方法名稱 | 描述 | 範例 |
---|---|---|
addstrategy | 添加一個交易策略到 Cerebro 引擎中。 | cerebro.addstrategy(MyStrategy) |
adddata | 添加市場數據到 Cerebro 引擎中。 | cerebro.adddata(data) |
addanalyzer | 添加分析器以評估策略的性能。 | cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name='sharpe') |
addobserver | 添加觀察者,用於在策略運行時觀察和記錄特定的信息(如賬戶價值)。 | cerebro.addobserver(bt.observers.Broker) |
addwriter | 添加一個 Writer,用於將運行期間的輸出寫入到外部文件。 | cerebro.addwriter(bt.WriterFile, csv=True) |
broker.setcash | 設置初始資金。 | cerebro.broker.setcash(10000) |
broker.setcommission | 設置交易手續費。 | cerebro.broker.setcommission(commission=0.001) |
run | 執行添加到 Cerebro 的策略。 | cerebro.run() |
plot | 繪製策略執行結果的圖表。 | cerebro.plot() |
使用 Cerebro
進行回測時,你會按照需求組合使用這些方法來配置你的回測環境。例如,你可能會先用 adddata
添加數據,再用 addstrategy
添加策略,最後調用 run
方法來運行策略。回測完成後,你可以使用 plot
方法來繪製結果圖表,或者使用 addanalyzer
和 addobserver
來分析策略表現和監控交易過程。
在 Backtrader 中,數據源(Data Feeds)是策略運行的基礎,提供了市場數據的輸入。數據源包含了股票、期貨、外匯等金融資產的價格信息,如開盤價、最高價、最低價、收盤價和成交量等。Backtrader 設計了靈活的數據源系統,支持從多種來源獲取數據,包括本地檔案(如 CSV)、網絡數據(如 Yahoo Finance)和即時數據。
import backtrader as bt
# 創建 Cerebro 實例
cerebro = bt.Cerebro()
# 加載數據
data = bt.feeds.GenericCSVData(
dataname='data.csv',
fromdate=datetime.datetime(2020, 1, 1),
todate=datetime.datetime(2021, 1, 1),
nullvalue=0.0,
dtformat=('%Y-%m-%d'),
datetime=0,
high=2,
low=3,
open=1,
close=4,
volume=5,
openinterest=-1
)
# 將數據添加到 Cerebro
cerebro.adddata(data)
要使用 yfinance
下載數據並餵入 Backtrader 策略,你需要先安裝 yfinance
庫。yfinance
是一個流行的 Python 庫,可以用來從 Yahoo Finance 獲取股票市場數據。以下是如何實現的步驟:
安裝 yfinance
如果你尚未安裝 yfinance
,可以通過以下命令安裝:
pip install yfinance
使用 yfinance 下載數據
下面的代碼示例展示了如何使用 yfinance
下載特定股票的歷史數據,並將其轉換為 Backtrader 可以使用的格式:
import yfinance as yf
import backtrader as bt
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
# 使用 yfinance 下載數據
data = yf.download('AAPL', start='2020-01-01', end='2021-01-01')
# 轉換數據格式,使其適用於 Backtrader
dataframe = bt.feeds.PandasData(dataname=data)
# 將數據添加到 Cerebro
cerebro.adddata(dataframe)
在 Backtrader 中,策略(Strategy)是實現交易邏輯的核心。一個策略定義了進場(買入)、出場(賣出)的條件,以及可能的持倉管理規則。Backtrader 通過 Strategy
類提供了一個框架,允許使用者定義自己的交易策略。以下是策略類的一些關鍵概念和組件:
__init__
):
start
):
start
方法在回測或實時交易開始前調用一次,通常用於策略的初始化設置。next
):
next
方法在每一個新的數據點(例如每日或每分鐘的市場數據)到來時被調用。大部分的交易邏輯,如基於某些條件買入或賣出,都會在這裡實現。log
):
log
函數用於記錄交易和策略信息是一個好習慣。notify_order
):
notify_order
方法用於處理訂單的狀態更新。例如,您可以在此檢查訂單是否已被執行,並根據訂單執行的結果調整策略。notify_trade
):
notify_trade
方法會被調用。這可以用來記錄交易的盈虧等信息。stop
):
import yfinance as yf
import backtrader as bt
# 定義一個策略
class TestStrategy(bt.Strategy):
def log(self, text, dt=None):
''' 日誌函數,用於記錄策略的執行信息 '''
dt = dt or self.datas[0].datetime.date(0)
print(f'{dt.isoformat()}, {text}')
def next(self):
''' 主要的策略邏輯,每個 bar 呼叫一次 '''
self.log(f'收盤價: {self.data.close[0]}')
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
# 使用 yfinance 下載數據
data = yf.download('AAPL', start='2020-01-01', end='2021-01-01')
# 轉換 yfinance 數據為 Backtrader 數據格式
datafeed = bt.feeds.PandasData(dataname=data)
# 添加數據到 Cerebro
cerebro.adddata(datafeed)
# 添加策略到 Cerebro
cerebro.addstrategy(TestStrategy)
# 設置初始資本
cerebro.broker.setcash(10000.0)
# 印出初始資本
print(f'初始資本: {cerebro.broker.getvalue():.2f}')
# 運行策略
cerebro.run()
# 印出最終資本
print(f'最終資本: {cerebro.broker.getvalue():.2f}')
# 畫出圖片
cerebro.plot(iplot=False)
在這個例子中,我們使用 yfinance
下載了蘋果公司(AAPL)從 2020 年 1 月 1 日到 2021 年 1 月 1 日的股票數據。然後,我們使用 bt.feeds.PandasData
將下載的 DataFrame 轉換成 Backtrader 可以處理的數據格式,並添加到 Cerebro 引擎中。最後,我們運行了一個簡單的策略,該策略在每個交易日記錄收盤價。
這個方法讓你可以方便地從 Yahoo Finance 獲取並使用最新的股票市場數據,進行策略的回測和分析。
在 Backtrader 中,Order
對象是交易執行的核心概念,代表了一個交易指令,包括買入或賣出股票、期貨等金融資產的操作。Order
對象包含了訂單的詳細信息,如訂單類型、價格、大小(數量)、狀態等,並在訂單被創建、提交、執行或取消時更新這些信息。
屬性名稱 | 描述 |
---|---|
size | 訂單的大小(正數代表買入,負數代表賣出)。 |
price | 訂單的價格(對於市價單,這個值可能為 None)。 |
executed | 訂單執行的細節,包括執行的價格和大小等。 |
status | 訂單的當前狀態(如已提交、已取消、已執行等)。 |
ordertype | 訂單的類型(如市價單、限價單等)。 |
created | 訂單創建時的日期時間。 |
comm | 訂單執行所產生的手續費。 |
Order
對象的狀態是了解訂單是否被執行的關鍵,常見的狀態包括:
Created
:訂單已創建但尚未提交到市場。Submitted
:訂單已提交到市場但尚未被執行。Accepted
:訂單已被市場接受(某些交易所會有這一階段)。Partial
:訂單部分執行。Completed
:訂單已完全執行。Canceled
:訂單已取消。Expired
:訂單已過期。Margin
:由於保證金不足,訂單未能執行。Rejected
:訂單被拒絕。Backtrader 支持多種訂單類型,允許交易策略根據不同的市場條件進行交易,包括:
Market
:市價單,以當前市場價格執行。Limit
:限價單,只有當市場達到指定價格時才執行。Stop
:止損單,當市場價格達到某一不利水平時觸發執行。StopLimit
:止損限價單,結合了止損單和限價單的特性。在 Backtrader 策略中,當你通過 buy()
或 sell()
方法創建訂單時,這些方法會返回一個 Order
對象。你可以保存這個對象的引用,以便後續檢查訂單的狀態或其他相關信息。
# 在策略中創建一個市價買入訂單
self.order = self.buy()
# 在策略的其他部分檢查訂單狀態
if self.order.status in [self.order.Completed, self.order.Canceled, self.order.Margin]:
self.order = None # 重置訂單引用
Order
對象和相關的功能使 Backtrader 成為一個強大且靈活的交易策略開發和回測框架,允許細粒度地控制交易執行過程。
在 Backtrader 中,broker
是一個核心組件,它模擬了真實世界中的交易執行環境。broker
負責處理訂單的提交、執行以及管理策略的現金和倉位。通過與 broker
交互,策略可以執行買賣操作、設置手續費、獲取賬戶信息等。下面將介紹 broker
的一些主要功能和使用方法。
broker
可以計算所需的保證金。在 Backtrader 中使用 broker
的一些常見操作如下:
cerebro.broker.setcash(10000.0)
cerebro.broker.setcommission(commission=0.001, margin=2000.0, leverage=10.0)
這裡設置了每筆交易的手續費率為0.1%,並為使用杠桿交易的商品設置保證金和杠桿比例。cash = cerebro.broker.get_cash()
value = cerebro.broker.get_value()
buy()
或 sell()
方法提交訂單,這些操作會通過 broker
進行處理。Backtrader 允許使用自定義的 broker
來擴展或修改默認行為,例如接入真實的交易平台或實現特殊的交易規則。這通過繼承 BrokerBase
類並實現相關方法來實現。
broker
在 Backtrader 中扮演著非常重要的角色,它不僅作為策略和市場之間的橋樑,處理交易執行,同時也提供了一套豐富的接口,使策略能夠以高度自定義的方式進行交易。通過合理配置和使用 broker
,可以更精準地模擬策略在實際交易環境中的表現。
在 Backtrader 中,指標(Indicators)是用於分析和預測市場行為的數學計算工具。它們從原始數據(如股票的開盤價、收盤價、最高價、最低價和成交量)中提取信息,生成可以用於交易決策的信號。Backtrader 提供了豐富的內置指標,並允許用戶自定義新指標。這些指標可以輕鬆地集成到交易策略中。
在 Backtrader 中使用指標非常直接。首先,你需要在策略的 __init__
方法中創建指標實例。然後,你可以在策略的 next
方法中訪問這些指標的值。
import backtrader as bt
class MyStrategy(bt.Strategy):
def __init__(self):
# 創建一個 20 期的簡單移動平均線指標
self.sma = bt.indicators.SimpleMovingAverage(self.data.close, period=20)
def next(self):
# 訪問移動平均線的當前值
sma_value = self.sma[0]
print(f'當前移動平均線值:{sma_value}')
Backtrader 也支持創建自定義指標。這通常涉及繼承 bt.Indicator
類,並在子類中定義指標的計算邏輯。
class MyIndicator(bt.Indicator):
lines = ('myline',) # 定義指標線
def __init__(self):
# 指標計算邏輯
self.lines.myline = self.data.close / 2 # 假設指標是收盤價的一半
然後,你可以像使用內置指標一樣,在策略中創建和使用這個自定義指標。
指標是量化交易和技術分析中不可或缺的工具。Backtrader 通過提供豐富的內置指標和支持自定義指標的能力,使得交易策略的開發變得靈活且強大。无论是趨勢跟踪、尋找轉折點,還是衡量市場波動性,指標都能為你提供有價值的見解。
在 Backtrader 中,分析器(Analyzers)是用來對策略性能進行評估和分析的工具。它們可以收集在策略執行過程中產生的各種數據,如交易盈虧、回報率、夏普比率等,並提供詳細的報告和統計信息。這些信息對於理解策略的表現、優化策略參數以及比較不同策略之間的效果非常有用。
Backtrader 提供了多種內置分析器,例如:
要在策略中使用分析器,需要在執行策略之前將分析器添加到 Cerebro 引擎中。執行完畢後,可以從策略實例中獲取和查看分析結果。
import backtrader as bt
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
# 添加策略
cerebro.addstrategy(MyStrategy)
# 添加分析器
cerebro.addanalyzer(bt.analyzers.SharpeRatio, _name='sharpe_ratio')
cerebro.addanalyzer(bt.analyzers.DrawDown, _name='drawdown')
# 執行策略
results = cerebro.run()
# 獲取分析結果
sharpe_ratio = results[0].analyzers.sharpe_ratio.get_analysis()
drawdown = results[0].analyzers.drawdown.get_analysis()
print(f"夏普比率: {sharpe_ratio['sharperatio']}")
print(f"最大回撤: {drawdown['max']['drawdown']}")
除了使用內置分析器外,Backtrader 也允許創建自定義分析器。這通過繼承 bt.Analyzer
類並實現必要的方法來完成。這樣,用戶可以根據特定的需求來收集和分析數據。
分析器是 Backtrader 框架中一個強大的特性,它為量化策略的評估和優化提供了豐富的工具。通過使用內置分析器或創建自定義分析器,用戶可以深入理解策略的性能和風險特性,從而做出更加明智的交易決策。
在 Backtrader 中,手續費方案(Commission Schemes)是用於模擬交易成本的重要組件。這些方案允許策略開發者根據實際交易環境設置手續費、印花稅、保證金要求等成本,從而更準確地評估策略的表現。透過設定不同的交易成本模型,可以幫助開發者理解在不同市場條件下策略的盈利能力。
Backtrader 提供了幾種內置的手續費模型,以滿足不同交易市場和資產類型的需求:
設定一個簡單的百分比手續費模型:
cerebro = bt.Cerebro()
# 設置每筆交易0.1%的手續費
cerebro.broker.setcommission(commission=0.001)
針對期貨交易設定保證金和滑點:
# 創建一個期貨手續費方案
comm_info = bt.CommissionInfo(
commission=0.0005,
margin=2000.0,
mult=10.0,
commtype=bt.CommInfoBase.COMM_PERC,
percabs=True)
# 為 Cerebro 實例添加手續費方案
cerebro.broker.addcommissioninfo(comm_info)
如果內置的手續費模型不能滿足特定需求,Backtrader 允許開發者通過繼承 CommInfoBase
類來實現自定義的手續費方案。這樣可以實現更複雜的成本結構,例如基於交易量的階梯式手續費、特定時間的額外成本等。
手續費方案是量化交易策略評估中不可或缺的一部分,它們幫助策略開發者更真實地模擬交易成本,從而提供更準確的策略表現評估。Backtrader 的靈活設定和自定義能力,使得開發者可以根據不同市場和交易策略的需要,設定最合適的手
在 Backtrader 中,觀察者(Observers)是用於在策略運行時監控和記錄特定信息的組件。與指標(Indicators)不同,觀察者主要用於跟踪策略的運行狀態,如賬戶現金餘額、當前持倉、交易成本等,而不直接參與交易決策。觀察者可以在策略運行過程中提供實時反饋,幫助分析和調整策略。
Backtrader 內置了多個觀察者,以下是一些常見的觀察者及其用途:
在 Cerebro 引擎中添加觀察者非常簡單,以下是如何添加 Broker 觀察者和 BuySell 觀察者的示例:
import backtrader as bt
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
# 添加策略
cerebro.addstrategy(MyStrategy)
# 添加 Broker 觀察者
cerebro.addobserver(bt.observers.Broker)
# 添加 BuySell 觀察者,標記交易點
cerebro.addobserver(bt.observers.BuySell)
# 加載數據、設定初始資金等
# 執行策略
cerebro.run()
# 繪製結果(包括觀察者收集的信息)
cerebro.plot()
除了使用內置的觀察者外,Backtrader 也支持自定義觀察者。通過繼承 Observer
基類並實現相應的方法,你可以創建專門針對你的策略需求的觀察者。這為策略開發提供了更大的靈活性和控制能力。
觀察者在 Backtrader 中是一個強大的工具,能夠幫助開發者更好地理解和優化他們的交易策略。無論是通過內置的觀察者來獲取關鍵的運行狀態信息,還是通過自定義觀察者來收集特定的策略表現數據,觀察者都能夠為策略的評估和調整提供重要的支持。
在 Backtrader 中,Sizers(位元大小設定器)是用來自動計算每次交易(買入或賣出)應該使用的股數或合約數的組件。Sizers 的目的是為了根據策略的邏輯和資金管理規則來動態調整每筆交易的規模,從而優化資金的使用效率和控制風險。
Backtrader 提供了幾種內置的 Sizers,以滿足常見的資金管理需求:
以下是如何在 Backtrader 策略中使用固定大小 Sizer 的示例:
import backtrader as bt
class MyStrategy(bt.Strategy):
def __init__(self):
# 定義策略的其他組件,如指標等
pass
def next(self):
# 根據策略邏輯決定是否買入或賣出
if self.buy_signal():
self.buy()
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
# 添加策略
cerebro.addstrategy(MyStrategy)
# 使用 FixedSize Sizer,每次交易買入 10 股
cerebro.addsizer(bt.sizers.FixedSize, stake=10)
# 加載數據、設定初始資金等
# 執行策略
cerebro.run()
如果內置的 Sizers 不滿足特定的需求,Backtrader 也允許創建自定義的 Sizers。這通過繼承 bt.Sizer
基類並實現 getsizing
方法來完成。在這個方法中,你可以根據自己的資金管理策略來計算交易大小。
Sizers 是 Backtrader 中一個重要的組件,它們幫助實現策略中的資金管理和風險控制規則。通過使用內置的 Sizers 或創建自定義的 Sizers,策略開發者可以更好地控制每筆交易的規模,從而優化策略的整體表現和風險暴露。
在 Backtrader 中,繪圖功能是一個強大的工具,允許開發者對策略運行的結果進行可視化分析。透過圖表,可以直觀地展示策略的表現,如價格變動、交易點、持倉情況、指標信號等,從而幫助開發者理解策略的行為和優化策略。
Backtrader 的繪圖功能依賴於 matplotlib
庫,因此在使用繪圖功能之前需要確保已經安裝了 matplotlib
。
繪圖通常在策略運行完畢後進行,使用 Cerebro 引擎的 plot()
方法來觸發繪圖過程:
cerebro = bt.Cerebro()
# 添加數據、策略等
cerebro.run()
cerebro.plot()
雖然 Backtrader 提供了一些預設的繪圖配置,但開發者可以通過修改 plot
方法的參數來自定義繪圖行為,例如:
cerebro.plot(style='candle', barup='green', bardown='red')
此外,如果預設的繪圖功能不能滿足特定需求,開發者可以直接使用 matplotlib
的 API 在策略執行結果的基礎上進行自定義繪圖。
Backtrader 的繪圖功能是一個強大的分析工具,使得策略的可視化分析變得簡單和直觀。通過合理利用這一功能,開發者可以更有效地理解和優化他們的交易策略。
在 Backtrader 中,定時器(Timer)功能允許策略在特定時間點觸發事件。這使得策略能夠基於時間條件(如特定時間、日期或交易周期)而非僅僅是市場數據的變化來執行操作。定時器功能提供了額外的靈活性,讓策略能夠實珀更複雜的交易邏輯,如定期重新平衡投資組合、定時執行市場分析等。
在策略中使用定時器涉及到以下幾個步驟:
__init__
方法中添加定時器:使用 add_timer
方法設置定時器的觸發條件。notify_timer
方法:當定時器觸發時,notify_timer
方法將被調用,你可以在這裡實現定時器的事件處理邏輯。以下是一個簡單的示例,展示了如何在每個交易日的開盤時刻觸發定時器:
import backtrader as bt
class MyStrategy(bt.Strategy):
def __init__(self):
# 在每個交易日的開盤時觸發定時器
self.add_timer(
when=bt.Timer.SESSION_START,
weekdays=[0, 1, 2, 3, 4], # 周一到周五
weekcarry=True, # 如果當日沒有數據,則延至下一個交易日
)
def notify_timer(self, timer, when, *args, **kwargs):
# 定時器觸發時的操作
print(f'Timer triggered at: {when}')
# 這裡可以放置策略邏輯,如買賣操作等
在這個示例中,add_timer
方法被用來設置一個定時器,該定時器將在每個交易日的開盤時刻觸發。當定時器觸發時,notify_timer
方法被調用,並執行相應的操作。
定時器是 Backtrader 框架中一個強大的功能,它為策略提供了基於時間觸發的靈活性,使策略能夠更好地適應各種交易需求和條件。
定期定額買入策略(也稱作定期投資或定投)是一種長期投資策略,它忽略市場的波動,按照固定的時間間隔(如每月、每季)投入固定金額購買某一資產。這種策略的優點在於它可以平滑市場波動的影響,並且透過長期累積和複利效應來增加投資回報。接下來,我們將使用 Backtrader 來實現一個簡單的定期定額買入策略。
以下是一個使用 Backtrader 實現定期定額買入策略的範例。這個策略將會在每個月的第一個交易日買入固定金額的股票。
import backtrader as bt
import datetime
class PeriodicInvestmentStrategy(bt.Strategy):
params = (
('investment_amount', 1000), # 每期投資金額
('printlog', True), # 是否打印交易日志
)
def __init__(self):
self.order = None
self.add_timer(
when=bt.Timer.SESSION_START,
monthdays=[1], # 每月的第一天
monthcarry=True, # 如果第一天不是交易日,則延至下一個交易日
)
def notify_timer(self, timer, when, *args, **kwargs):
self.log('進行定期投資')
self.order = self.buy(size=self.params.investment_amount)
def log(self, txt, dt=None):
''' 日誌函數 '''
dt = dt or self.datas[0].datetime.date(0)
if self.params.printlog:
print('%s, %s' % (dt.isoformat(), txt))
def notify_order(self, order):
if order.status in [order.Completed]:
if order.isbuy():
self.log('買入執行, 價格: %.2f, 成本: %.2f, 手續費: %.2f' %
(order.executed.price,
order.executed.value,
order.executed.comm))
elif order.issell():
self.log('賣出執行, 價格: %.2f, 成本: %.2f, 手續費: %.2f' %
(order.executed.price,
order.executed.value,
order.executed.comm))
self.bar_executed = len(self)
elif order.status in [order.Canceled, order.Margin, order.Rejected]:
self.log('訂單 取消/保證金不足/拒絕')
self.order = None
# 初始化 Cerebro 引擎
cerebro = bt.Cerebro()
cerebro.addstrategy(PeriodicInvestmentStrategy)
# 添加數據
data = bt.feeds.YahooFinanceData(dataname='AAPL',
fromdate=datetime.datetime(2019, 1, 1),
todate=datetime.datetime(2020, 12, 31))
cerebro.adddata(data)
# 設置初始資本
cerebro.broker.setcash(10000.0)
# 設置每筆交易的手續費
cerebro.broker.setcommission(commission=0.001)
# 執行策略
cerebro.run()
# 繪製結果
cerebro.plot()
在這個策略中,我們使用了 add_timer
方法來定時執行交易,並且在每個月的第一個交易日執行買入操作,購買固定金額的股票。通過調整 investment_amount
參數,您可以設置每次定投的金額。
這個策略非常簡單,但它很好地展示了如何在 Backtrader 中實現定期定額投資。您可以根據自己的需求調整策略,例如改變投資頻率或金額,或是根據市場條件調整投資策略。
官方教學文件
Notebook - Automatic Inline Plotting
Python量化
用40分鐘學會專業回測工具 - backtrader基本操作
分享所學貢獻社會
[Python教學]開發工具介紹
[開發工具] Google Colab 介紹
[Python教學] 資料型態
[Python教學] if判斷式
[Python教學] List 清單 和 Tuple元組
[Python教學] for 和 while 迴圈
[Python教學] Dictionary 字典 和 Set 集合
[Python教學] Function函示
[Python教學] Class 類別
[Python教學] 例外處理
[Python教學] 檔案存取
[Python教學] 實作密碼產生器
[Python教學] 日期時間
[Python教學] 套件管理
[Python爬蟲] 網路爬蟲
[Python爬蟲] 分析目標網站
[Python爬蟲] 發送請求與解析網站內容
[Python爬蟲] Requests 模組
[Python爬蟲] Beautiful Soup 模組
[Python爬蟲] Selenium 模組
[Python爬蟲] Pandas模組
[Python投資] YFinance 模組
[Python投資] Backtrader 模組
我們推出電子報拉,歡迎大家訂閱免費電子報,會接收到分享的程式文章,
透過閱讀文章,今天比昨天進步一點,每天的一小步,就是未來的一大步。
訂閱免費電子報
Facebook 粉絲頁 - TechMasters 工程師養成記
同步分享到部落格