用python实现动量投资策略的代码
下面是一份用Python实现动量投资策略的代码示例:
import pandas as pd
import numpy as np
import yfinance as yf
# 定义获取股票历史数据的函数
def get_stock_data(ticker, start_date, end_date):
stock_data = yf.download(ticker, start=start_date, end=end_date)
stock_data['Returns'] = stock_data['Adj Close'].pct_change()
return stock_data
# 定义计算动量指标的函数
def momentum_indicator(stock_data, lookback_period):
momentum = stock_data['Returns'].rolling(lookback_period).mean()
return momentum
# 定义动量投资策略函数
def momentum_strategy(stock_data, n_top, lookback_period):
momentum = momentum_indicator(stock_data, lookback_period)
top_n = momentum.nlargest(n_top)
buy_list = list(top_n.index)
sell_list = list(set(stock_data.index) - set(buy_list))
return buy_list, sell_list
# 设置参数
ticker = 'AAPL'
start_date = '2010-01-01'
end_date = '2021-12-31'
lookback_period = 12
n_top = 10
# 获取股票历史数据
stock_data = get_stock_data(ticker, start_date, end_date)
# 计算动量指标并进行动量投资策略
buy_list, sell_list = momentum_strategy(stock_data, n_top, lookback_period)
# 输出买入和卖出日期
print('Buy Dates:')
for date in buy_list:
print(date)
print('\nSell Dates:')
for date in sell_list:
print(date)
在这个示例代码中,我们使用了yfinance库来获取股票历史数据,并计算了动量指标。然后我们使用动量指标来进行动量投资策略,找到动量最强的前n只股票并买入。最后,我们输出了买入和卖出的日期。
请注意,这只是一个示例代码,实际应用中还需要进行更多的细节处理和风险控制
原文地址: https://www.cveoy.top/t/topic/fgZq 著作权归作者所有。请勿转载和采集!