文章目录

  • 前言
  • 准备
  • python代码
  • 总结

前言

本研究旨在探讨 A 股市场的均线理论及波动性变化情况。在研究中,我们使用了历史股价数据,并基于这些数据计算了不同时间段的简单移动平均线和指数移动平均线。

我们的结果表明,A 股市场的均线理论较为成立,即长期均线对价格走势具有较好的预测作用。同时,我们也发现,A 股市场的波动性变化较大且不稳定,需要考虑多种因素来进行有效的风险管理。

具体来说,我们发现,在不同时期,简单移动平均线和指数移动平均线的预测能力有所不同。在市场比较平稳的时期,长期简单移动平均线的预测能力较强;而在市场波动较大的时期,则更应该关注短期指数移动平均线的预测能力。此外,我们还注意到,市场中存在着一些异常波动和价格暴涨暴跌的情况,需要对这些风险进行有效的管理和控制。

准备

参考资料:

1.A 股市场均线理论及波动性变化的实证研究

2.python==python38

  1. 查询dqnapi接口域名:http://www.dqnapi.com/

pro.stock_basic dqnapi号:100.3568/2023.1_v1
pro.daily dqnapi号:100.3568/2023.11_v1

python代码

import tushare as ts
import pandas as pd
from time import sleep# 获取 Tushare 账户 TOKEN
pro = ts.pro_api(token='官方获取')# 获取股票列表并遍历所有股票
stock_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code')
result_list = []
count = 0  # 计数器,记录已经访问接口的次数
for i in range(len(stock_list)):ts_code = stock_list['ts_code'][i]print('Processing stock:', ts_code)count += 1if count >= 800:sleep(60)count = 0# 获取股票数据df = pro.daily(ts_code=ts_code, start_date='20230101', end_date='20230614')# 计算均线df['ma10'] = df['close'].rolling(10).mean()df['ma20'] = df['close'].rolling(20).mean()# 初始化变量position = Nonebuy_price = 0sell_price = 0capital = 10000hands = 0fee = 0.0015# 判断金叉和死叉并进行交易for i in range(20, len(df)):# 判断是否金叉if df['ma10'][i] > df['ma20'][i] and df['ma10'][i-1] <= df['ma20'][i-1]:# 判断前两日波动情况if (df['close'][i-1] - df['close'][i-2]) / df['close'][i-2] >= 0.02:# 记录交易信息并买入hands = int(capital / (df['close'][i] * 100)) # 计算买入手数buy_price = df['close'][i] + fee # 买入价为当日收盘价加上手续费capital -= hands * buy_price * 100 # 计算剩余资本position = 'long'print(df['trade_date'][i], 'buy', hands, 'hands')# 判断是否死叉elif df['ma10'][i] < df['ma20'][i] and df['ma10'][i-1] >= df['ma20'][i-1]:# 判断前两日波动情况if (df['close'][i-1] - df['close'][i-2]) / df['close'][i-2] >= 0.02:# 记录交易信息并卖出sell_price = df['close'][i] - fee # 卖出价为当日收盘价减去手续费capital += hands * sell_price * 100 # 计算剩余资本hands = 0position = Noneprint(df['trade_date'][i], 'sell', hands, 'hands')# 计算收益率if position != 'long':continuetrade_days = len(df[df['trade_date']>=df.iloc[-1]['trade_date']])start_capital = 10000end_capital = capital + hands * df.iloc[-1]['close'] * 100 - trade_days * 2 * feeprofit = (end_capital - start_capital) / start_capitalif profit > 0.05:df_trade = pd.DataFrame({'ts_code': [ts_code], 'trade_date': [df.iloc[-1]['trade_date']], 'position': ['long'], 'hands': [hands], 'price': [buy_price], 'profit': [profit]})result_list.append(df_trade)print('The total return of', ts_code, 'is: {:.2%}'.format(profit))# 将结果写入 csv 文件中
if len(result_list) > 0:df_result = pd.concat(result_list).reset_index(drop=True)df_result.to_csv('result.csv', index=False)print('Result has been saved in result.csv')
else:print('No stock meets the requirements.')

总结

在股票技术分析中,均线的金叉和死叉是很常见的交易信号。

均线的金叉表示短期均线上穿长期均线,此时标志着股价走势由下向上改变,是一个买入信号;而均线的死叉则表示短期均线下穿长期均线,此时标志着股价走势由上向下改变,是一个卖出信号。

在代码中,我们可以通过以下方式来判断均线的金叉或死叉:

if df[‘ma10’][i] > df[‘ma20’][i] and df[‘ma10’][i-1] <= df[‘ma20’][i-1]:
# 发出买入信号

elif df[‘ma10’][i] < df[‘ma20’][i] and df[‘ma10’][i-1] >= df[‘ma20’][i-1]:
# 发出卖出信号
在这里,我们使用了当前交易日的两个均线值(10日均线和20日均线)和前一日的均线值进行比较,以判断金叉或死叉的发生。如果当前交易日的短期均线大于长期均线,并且前一日的短期均线小于等于长期均线,说明出现了金叉;如果当前交易日的短期均线小于长期均线,并且前一日的短期均线大于等于长期均线,说明出现了死叉

python A股金叉死叉量化交易相关推荐

  1. python量化 双均线策略(金叉死叉)

    #小策略,策略逻辑是在金叉时候买进,死叉时候卖出,所谓金叉死叉是两条均线的交叉,当短期均线上穿长期均线为金叉,反之为死叉 #下面是策略代码及结构 # 导入函数库 from jqdata import ...

  2. 用python找出400多万次KDJ金叉死叉,胜率有多高?附代码

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投Z,了解行业研究方向 这是邢不行第90期量化小课堂分享 作者 l 邢不行 不知道大家有没有发现 ...

  3. 小散量化炒股记|趋势指标金叉死叉策略在震荡行情中怎么处理

    前言 相信大家都听说了量化交易这个东西了吧!量化交易是一种新兴的系统化金融投资方法. 那么,什么才是普通股民所适合的量化交易打开方式呢? 本文就用一个接地气的股票分析场景--典型的趋势指标金叉死叉策略 ...

  4. 择时策略1:一个金叉死叉(python)

    学习目标:择时策略1:一个金叉买入死叉卖出策略 学习内容: 1:导入必要的库 import pandas as pd pd.set_option('expand_frame_repr', False) ...

  5. 金叉走势图解上半年暴跌行情,如何证明macd金叉死叉模型确实有用?

    <MACD指标详解>课程学员:如何证明一种指标实战效果是否有效? 同济桥博士:今年的上半年是特殊的一个上半年,我们国内的A股也遇到了从来没有遇到过的疫情.行情特别的罕见,暴跌加超强反弹.我 ...

  6. 金叉死叉图解,金叉死叉的短线操作方法

    小沙我自己长期以来一直对二级市场交易很有热情,从三年前开始,就不断地在理论实践两方面逐渐加深对于金融市场的理解,最近发现一个叫QR量化社区的平台,也给了自己很多灵感.经历了最近的市场波动,突然来了动力 ...

  7. 扑克王怎样于市场中基于金叉死叉进行趋势跟踪

    扑克王怎样于市场中基于金叉死叉进行趋势跟踪 小孙我自己很久之前就对金融市场交易很感兴趣,从三年前开始,就不断地在理论实践两方面逐渐加深对于金融市场的理解,最近发现一个叫QR量化社区的平台,也给了自己很 ...

  8. MACD金叉死叉能不能提前预警?2020上半年MACD金叉死叉的效果如何?

    MACD金叉死叉能不能提前预警?2020上半年MACD金叉死叉的效果如何? 欢迎来到桥博士<MACD指标详解>课堂,今天的主题是MACD金叉死叉能不能提前预警?2020上半年MACD金叉死 ...

  9. 家庭主夫怎么在今年3月27号的市场中利用金叉死叉进行波段操作

    小孙我自己很久之前就对证券市场很感兴趣,从大学开始,就不断地在理论实践两方面逐渐加深对于金融市场的理解,最近发现一个叫QR量化社区的平台,也给了自己很多灵感.经历了最近的市场波动,心血来潮,在此就分享 ...

最新文章

  1. Asp.net的加密解密技巧--[转载]
  2. Docker中的execdriver架构
  3. int(*p)[]和int(**p)[]
  4. python从入门到入土表情包-Python开发个人专属表情包网站,表情在手,天下我有...
  5. 科研SCI论文图片常见问题和错误汇总
  6. 解决无法删除表,提示被外键约束引用
  7. GANs最新综述论文: 生成式对抗网络及其变种如何有用【附pdf下载】
  8. 基于JAVA+SpringMVC+MYSQL的小说管理系统
  9. Hive源码分析——Alter Table操作执行流程分析
  10. RAR文件设置密码和清除密码的方法
  11. 阿尔法α-贝塔β剪枝
  12. RPA是什么?推荐让电商运营10倍提效的自动化工具
  13. 1345. 跳跃游戏 IV
  14. CentOS8 tingzhuxuan 不在 sudoers 文件中。此事将被报告。
  15. 分享2022武体考研一战上岸学习心得
  16. Python到底能做什么
  17. C++格式化输入输出控制----iomanip
  18. AUTOSAR 诊断协议栈介绍
  19. Vue下面安装Element 的详细步骤
  20. SSP广告引擎(1)对接流程

热门文章

  1. 单片机STC8H入门
  2. 获取新浪微博开发时的MD5签名
  3. Android中的 eBPF 流量监控
  4. python爱心代码_「含蓄优雅表白神器」程序员式用python代码画爱心(附详细教程)...
  5. PlantUML 用代码画思维导图,时序图,流程图
  6. 企业如何借助三方表格控件,实现多人在线协同编辑?
  7. 苹果证书过期踩过的坑
  8. 系统对比下FinClip 与 mPaaS
  9. C++ 软件开发多国语言解决方案汇总
  10. 为什么要重提“内容为王”