用python写一个简单的量化交易策略
时间: 2023-02-25 10:43:29 浏览: 121
下面是一个使用Python写的简单的量化交易策略的代码:
```
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 获取股票数据
def get_data(ticker):
data = pd.read_csv(ticker + '.csv', index_col='Date', parse_dates=True)
return data
# 计算移动平均线
def moving_average(data, window):
moving_average = data['Close'].rolling(window=window).mean()
return moving_average
# 策略逻辑
def trade_strategy(data, window):
# 计算移动平均线
data['MA'] = moving_average(data, window)
# 初始化持仓
data['Position'] = 0
# 记录持仓
for i in range(len(data)):
if data['Close'][i] > data['MA'][i]:
data['Position'][i] = 1
else:
data['Position'][i] = -1
# 计算策略收益
data['Return'] = data['Close'].pct_change() * data['Position'].shift(1)
return data
# 画图
def plot_strategy(data):
plt.figure(figsize=(10, 5))
plt.plot(data['Close'], label='Close')
plt.plot(data['MA'], label='Moving Average')
plt.legend()
plt.show()
# 主函数
def main():
# 获取数据
data = get_data('AAPL')
# 执行交易策略
result = trade_strategy(data, window=10)
# 画图
plot_strategy(result)
# 计算累计收益
cumulative_return = np.cumprod(1 + result['Return']) - 1
# 画图
plt.figure(figsize=(10, 5))
plt.plot(cumulative_return)
plt.show()
if __name__ == '__main__':
main()
```
这个代码实现了一个简单的均线策略,即在股价高于移动平均线时买入,低于移动平均线时卖出。代码的主
阅读全文