Python数据分析之股票双均线策略制定
需求:双均线策略制定
库
tushare包
预处理数据
df = pd.read_csv('./maotai.csv').drop(labels='Unnamed: 0', axis=1)
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
均线的计算分析
- 计算该股票历史数据的5日均线和30日均线
- 什么是均线?
- 对于每一个交易日,都可计算出前N天的移动平均值,然后把这些移动平均值连起来成为一条线,就叫做N日移动平均线。常用线有5天、10天、30天、60天、120天和240天的指标。
- 5天和10天的是短线操作的参照指标,称作日均线指标
- 30天和60天的是中期均线指标,称作季均线指标
- 120天和240天的是长期均线指标,称作年均线指标
- 均线计算方法:MA=(C1+C2+C3+…+Cn)/N,C:某日收盘价 N:移动平均周期(天数)
ma5 = df['close'].rolling(5).mean()
ma30 = df['close'].rolling(30).mean()
import matplotlib.pyplot as plt
import matplotlib.pylab as pla
plt.plot(ma5)
plt.plot(ma30)
pla.show()
plt.plot(ma5[50:180])
plt.plot(ma30[50:180])
金叉&死叉
- 分析输出所有金叉日期和死叉日期
- 股票分析技术中的金叉和死叉,可以简单解释为:
- 分析指标中的两根线,一根为短时间内的指标线,另一根为较长时间的指标线
- 如果短时间的指标线方向拐头向上,并且穿过了较长时间的指标线,这种状态叫”金叉”
- 如果短时间的指标线方向拐头向下,并且穿过了较长时间的指标线,这种状态叫”死叉”
- 一般情况下,出现金叉后,操作趋向买入;死叉则趋向卖出。金叉和死叉只是分析指标之一,要和其他很多指标配合使用,才能增加操作的准确性
df = df[30:]
ma5 = ma5[30:]
ma30 = ma30[30:]
s1 = ma5 < ma30
s2 = ma5 > ma30
death_ex = s1 & s2.shift(1)
death_date = df.loc[death_ex].index
golden_ex = -(s1 | s2.shift(1))
golden_date = df.loc[golden_ex].index
双均线策略的测试
- 如果从2010年1月1日开始,初始资金为100000元,金叉尽量买入,死叉全部卖出,则到今天为止,炒股收益率如何?
- 分析:
- 买卖股票的单价使用开盘价
- 买卖股票的时机
- 最终手里会有剩余的股票没有卖出
- 会有。若最后一天为金叉,则买入股票。估量剩余股票的价值计算到总收益
- 剩余股票的单价就是用最后一天的收盘价
t1 = Series(data=1, index=golden_date)
t2 = Series(data=0, index=death_date)
t = t1.append(t2)
t = t.sort_index()
t = t['2010':'2022']
first_money = 100000
money = first_money
hold = 0
for i in range(len(t)):
if t[i] == 1:
golden_time = t.index[i]
p_golden = df.loc[golden_time]['open']
hold += (money // (p_golden * 100)) * 100
money -= (hold * p_golden)
else:
death_time = t.index[i]
p_death = df.loc[death_time]['open']
money += (p_death * hold)
hold = 0
last_money = hold * df['close'][-1]
total = money + last_money - first_money
Original: https://blog.csdn.net/qq_40202164/article/details/125917832
Author: GODamnbit
Title: Python数据分析之股票双均线策略制定
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/742648/
转载文章受原作者版权保护。转载请注明原作者出处!