双均线策略代码多个股票-双均线策略赚了1亿

2023-07-09 04:06:48 入门知识 0次阅读 投稿:admin
双均线策略代码多个股票.jpg

关于双均线策略代码多个股票的问题,我们总结了以下几点,给你解答:

双均线策略代码多个股票


双均线策略代码多个股票



# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import tushare as ts

# 获取股票数据
def get_stock_data(stock_code, start_date, end_date):
df = ts.get_k_data(stock_code, start=start_date, end=end_date)
df = df.sort_index(ascending=True)
return df

# 计算均线
def get_ma(df, n):
ma_list = []
for i in range(len(df)):
if i < n:
ma = np.mean(df['close'][:i+1])
else:
ma = np.mean(df['close'][i+1-n:i+1])
ma_list.append(round(ma, 2))
return ma_list

# 双均线策略
def double_ma_strategy(df, short_window, long_window):
# 计算短期均线
short_ma = get_ma(df, short_window)
# 计算长期均线
long_ma = get_ma(df, long_window)
# 初始化信号列表
signal_list = []
# 初始化买卖价格列表
buy_price_list = []
sell_price_list = []
# 初始化持仓状态
position = 0
# 遍历每一天的数据
for i in range(len(df)):
# 如果短期均线大于长期均线,且当前没有持仓,则买入
if short_ma[i] > long_ma[i] and position == 0:
signal_list.append(1)
buy_price_list.append(df['close'][i])
position = 1
# 如果短期均线小于长期均线,且当前持仓,则卖出
elif short_ma[i] < long_ma[i] and position == 1:
signal_list.append(-1)
sell_price_list.append(df['close'][i])
position = 0
# 其他情况,信号为0
else:
signal_list.append(0)
buy_price_list.append(np.nan)
sell_price_list.append(np.nan)
# 将信号列表添加到DataFrame中
df['signal'] = signal_list
df['buy_price'] = buy_price_list
df['sell_price'] = sell_price_list
return df

# 计算收益率
def get_return_rate(df):
# 计算每笔交易的收益率
return_list = []
for i in range(len(df)):
# 如果当天有买入信号
if df['signal'][i] == 1:
# 计算当天买入和卖出的收益率
return_rate = (df['sell_price'][i] - df['buy_price'][i]) / df['buy_price'][i]
return_list.append(return_rate)
else:
return_list.append(0)
# 计算每天的累计收益率
cum_return = np.cumsum(return_list)
# 将累计收益率添加到DataFrame中
df['cum_return'] = cum_return
return df

# 绘制图像
def plot_chart(df, stock_code):
# 绘制K线图
plt.subplot(211)
plt.title(stock_code)
plt.xlabel('Date')
plt.ylabel('Price')
df.plot(ax=plt.gca(), x='date', y='close')
# 绘制买卖信号
ax = plt.gca()
ax.scatter(df.index, df['buy_price'], color='green', marker='^', label='buy signal')
ax.scatter(df.index, df['sell_price'], color='red', marker='v', label='sell signal')
plt.legend(loc='best')
# 绘制累计收益率
plt.subplot(212)
plt.xlabel('Date')
plt.ylabel('Cum Return')
df.plot(ax=plt.gca(), x='date', y='cum_return')
plt.show()

# 主函数
def main():
# 设置参数
stock_code_list = ['600000', '600004']
start_date = '2015-01-01'
end_date = '2018-12-31'
short_window = 5
long_window = 10
# 遍历每只股票
for stock_code in stock_code_list:
# 获取股票数据
df = get_stock_data(stock_code, start_date, end_date)
# 双均线策略
df = double_ma_strategy(df, short_window, long_window)
# 计算收益率
df = get_return_rate(df)
# 绘制图像
plot_chart(df, stock_code)

if __name__ == '__main__':
main()

双均线策略思路


双均线策略思路

双重均线应该是利用不同周期的两条均线来作为自己看盘和买卖的系统,比起单根的均线的线上买,线下卖,它又多了一些稍微复杂的技巧,比如金叉买,死叉卖等。

双均线策略赚了1亿


双均线策略赚了1亿

不要专门末去找那些专业的网站,建议你看几篇关于单均线或双均线交易的文章。先把趋势弄清楚,然后再将策略上的不足,慢慢补充。
利益的驱使下,很多交易者都会认为,我掌握得越多,我就能赚越多。恰恰相反,分析技术越少,越容易被掌握,越容易操作。
笨笨的《关于均线来自的秘密》是个不错的文章。推包荐阅读。


声明:稳得一批是理财投资基础知识平台! 并不指导专业性投资! 投资有风险,入市需谨慎!