全股市均线策略python代码
时间: 2023-05-08 12:00:20 浏览: 81
全股市均线策略是一种通过计算股票价格的平均值,来判断股票趋势和买卖信号的交易策略。这种策略在股票交易中应用广泛,可以采用Python来编写实现。以下是一个简单的全股市均线策略的Python代码。
1. 导入所需库
```Python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
```
2. 设置股票代码和时间
```Python
stock_code = 'SH000001'
start_date = '2015-01-01'
end_date = '2021-12-31'
```
3. 从股票数据源中获取数据并进行处理
```Python
from jaqs.data import DataApi
data_api = DataApi(addr='tcp://data.quantos.org:8910')
data_api.login(username="phone number", password="password")
df, msg = data_api.daily(
symbol=stock_code,
start_date=start_date,
end_date=end_date,
fields="open,close,high,low,volume,vwap"
)
data_api.logout()
df = df.set_index('trade_date')
df['ma5'] = df['close'].rolling(5).mean()
df['ma10'] = df['close'].rolling(10).mean()
df['ma20'] = df['close'].rolling(20).mean()
df['ma60'] = df['close'].rolling(60).mean()
df['ma120'] = df['close'].rolling(120).mean()
df = df.dropna(axis=0, how='any')
```
4. 根据均线计算交易信号
```Python
df['signal'] = None
for i in range(1, len(df)):
if df['ma5'].iloc[i] > df['ma60'].iloc[i] and df['ma5'].iloc[i-1] <= df['ma60'].iloc[i-1]:
df['signal'].iloc[i] = 'buy'
elif df['ma5'].iloc[i] < df['ma60'].iloc[i] and df['ma5'].iloc[i-1] >= df['ma60'].iloc[i-1]:
df['signal'].iloc[i] = 'sell'
```
5. 绘制股票价格和交易信号曲线图
```Python
buy_points_x = df[df['signal'] == 'buy'].index
buy_points_y = df[df['signal'] == 'buy']['close']
sell_points_x = df[df['signal'] == 'sell'].index
sell_points_y = df[df['signal'] == 'sell']['close']
plt.figure(figsize=(16,8))
plt.plot(df['close'], label='Close')
plt.plot(df['ma5'], label='MA5')
plt.plot(df['ma10'], label='MA10')
plt.plot(df['ma20'], label='MA20')
plt.plot(df['ma60'], label='MA60')
plt.plot(df['ma120'], label='MA120')
plt.scatter(buy_points_x, buy_points_y, color='green', label='Buy')
plt.scatter(sell_points_x, sell_points_y, color='red', label='Sell')
plt.legend(loc='upper left')
plt.show()
```
以上就是一个简单的全股市均线策略的Python代码。如果您想在实际交易中采用股票交易策略,建议您先进行充分的实验和研究,对股市趋势、价格预测和交易成本等多方面因素进行充分考虑和评估。