双均线策略 ------优矿学习

本文通过使用Python及其相关库如pandas、seaborn等,从通联数据API获取华夏上证50ETF的历史价格数据,并实现了一个基于均线交叉策略的简单量化交易系统。该系统计算了短期和长期移动平均线,并根据两者之间的偏离度来生成买卖信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from matplotlib import pylab
import numpy as np
from datetime import datetime
import pandas as pd
import DataAPI  #通联数据提供的数据API
import seaborn as sns
sns.set_style('white')#设置背景为白色

secID = '510050.XSHG' #华夏上证50ETF
start = '20080101'
end = '20150423'
#获取基金行情信息
security = DataAPI.MktFunddGet(secID=secID,beginDate=start,endDate=end,field=['tradeDate','closePrice'])
security['tradeDate']=pd.to_datetime(security['tradeDate'])
security.info()

security['closePrice'].plot(grid=False,figsize=(12,8))
sns.despine()

window_short = 20 #月均线,短期均线
window_long = 120 #半年线,长期均线
SD = 0.05 #偏离度阈值5%

#numpy内置移动平均函数:rolling_mean
security['short_window'] = np.round(pd.rolling_mean(security['closePrice'],window=window_short),2)
security['long_window'] = np.round(pd.rolling_mean(security['closePrice'], window=window_long), 2)
print(security[['closePrice','short_window','long_window']].tail())

#将三条线画到一张图上
security[['closePrice','short_window','long_window']].plot(grid=False,figsize=(12,8))
sns.despine()

#定义信号
#计算短期均线与长期均线的差s-1
security['s-1'] = security['short_window'] - security['long_window']
print(security['s-1'].tail)

#定义Regime为True,买入;Regime为False,卖出
security['Regime'] = np.where(security['s-1']>security['long_window']*SD,1,0)
security['Regime'].value_counts()

#信号时间分布
security['Regime'].plot(grid=False,lw=1.5,figsize=(12,8))
pylab.ylim((-0.1,1.1))
sns.despine()

security['Market'] = np.log(security['closePrice'] / security['closePrice'].shift(1))
security['Strategy'] = security['Regime'].shift(1) * security['Market']
security[['Market', 'Strategy', 'Regime']].tail()

security[['Market', 'Strategy']].cumsum().apply(np.exp).plot(grid=False, figsize=(12,8))
sns.despine()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值