前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >股票打板策略分析_打板选股技巧

股票打板策略分析_打板选股技巧

作者头像
全栈程序员站长
发布于 2022-11-01 03:07:03
发布于 2022-11-01 03:07:03
75500
代码可运行
举报
运行总次数:0
代码可运行

股票打板策略分析

这里我们只分析一件事情,就是如何打板才能最大概率赚到钱,就是我们可以分析过去一天涨停今天还涨停、分析过去两天涨停今天涨的概率,一直到过去10天涨停今天涨的概率,其实很多人都喜欢打板,但是可能大家都没分析过打板的胜率。

前面我们已经可以筛选出截止到特定日期的过去10天中的连续涨停了,这里我们只需要将所有日期过去10日的连续涨停计算出来就可以作为我们的数据源,然后计算统计个数算分布就可以了,至于如何计算连续涨停可以参考股票数据分析

计算历史数据的涨停情况

我们今天的打板分析,是在昨天的基础上,这里我们真的是需要一个for 循环了,循环所有日期

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def main(args: Array[String]): Unit = { 

val data=spark
.read
.option("header", true)
.csv(path)
.select("ts_code","trade_date","open","high","low","close","pre_close","change","pct_chg","vol","amount")
// close 收盘价 pre_close 昨收价 change 涨跌额 pct_chg 涨跌幅 vol 成交量 (手) amount 成交额 (千元)
data.createOrReplaceTempView("trade")
val stocks=spark
.read
.option("header", true)
.csv(stocksPath)
stocks.createOrReplaceTempView("stocks")
val dates=spark
.read
.option("header", true)
.csv(datesPath)
dates.createOrReplaceTempView("dates")
val start=LocalDate.of(2018,1,1)
val loop = new Breaks;
val pattern=DateTimeFormatter.ofPattern("yyyyMMdd")
// 循环的日期
loop.breakable{ 

for(i<- 1 to 2000){ 

val lastDate = start.plusDays(i).format(pattern)
val startDate=LocalDate.parse(lastDate,pattern).plusDays(-30).format(pattern)
lastContinueDays(lastDate,startDate)
if(lastDate.equals("20211104")){ 

loop.break
}
}
}
}
// 算出截止lastDate过去10天内,连续涨停的情况
def lastContinueDays(lastDate:String,startDate:String): Unit ={ 

println(s"业务时间: '${startDate}' '${lastDate}'")
// 首先选出涨停的票
sql(
s""" |select | ts_code,trade_date,$lastDate as end_date |from( | select | ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol,amount,row_number() over(partition by ts_code order by trade_date desc) as rn | from | trade | where | -- 时间要换掉 大致的过滤条件 | trade_date>='${startDate}' | and trade_date<='${lastDate}' |)tmp |where | -- 过去10条记录(这里注意一下不一定是过去10天的) | rn<=10 | -- 涨停的数据 | and pct_chg>=9.8 |""".stripMargin
).createOrReplaceTempView("zhangting")
sql(
""" |select | ts_code,trade_date,end_date,zt_cnt |from( | select | ts_code, | trade_date, | end_date, | zt_cnt, | row_number()over(partition by ts_code order by zt_cnt desc) as rn | -- 筛选出 zt_cnt最大的记录 | from( | select | a.ts_code, | a.trade_date, | a.end_date, | count(distinct b.trade_date) as zt_cnt | from | zhangting a | left join | zhangting b | on | a.ts_code=b.ts_code | and a.trade_date<=b.trade_date | and a.end_date>=b.trade_date | left join | dates dates | on | dates.cal_date>=a.trade_date | and dates.cal_date<=a.end_date | -- 是否是交易日 | and dates.is_open=1 | group by | a.ts_code,a.trade_date,a.end_date | having | count(distinct b.trade_date)=count(distinct dates.cal_date) | )t |)t |where | rn=1 |order by | zt_cnt |""".stripMargin
)
.write
.format("parquet")
.mode(SaveMode.Overwrite)
.save(s"/Users/gemii/Desktop/data/day=${lastDate}")
}

Jetbrains全家桶1年46,售后保障稳定

这个代码主要是我们以前讲的SQL,今天的话主要是配合了for循环,唯一要注意的是我们s"/Users/gemii/Desktop/data/day=${lastDate}" 这个路径,文件的命名方式是分区的处理,后面在读取的时候spark 就可以分区感知,自动读取,否则的话比较麻烦,效果如下

这里有一个地方要注意一下,那就是你可以打开某一天的文件夹,你会发现下面有很多小文件

其实这里我们知道我们每一天的数据量其实很小,所以我们可以针对这些小文件做一下处理,就是在DataFrame 写出的时候调用一下,repartition 或者coalesce 方法,最后的效果如下

分析涨停的分布情况

上面我们统计出了截止每一天的过去10天的连续涨停数据,接下来我们就统计一下涨停的分布,首先我们先看一下我们的数据

这里我们的end_date就是我们的业务日期,day是分区信息,所以end_date和day是相等的,zt_cnt是连续涨停的天数,1 就代表只有end_date那天是涨停的

我们想算的是在n连涨的情况下n+1 连涨的概率,我们只需要统计出n连涨的个数和n+1连涨的个数即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  def daBan(): Unit ={ 

val data=spark
.read
.parquet("/Users/gemii/Desktop/data")
data.createOrReplaceTempView("daban")
sql(
""" |select | zt_cnt, | cnt, | concat(cast(round(cnt/lag(cnt)over(order by zt_cnt)*100,2) as string),"%") rate |from( | select | zt_cnt, | count(ts_code) as cnt | from | daban | group by | zt_cnt |) |order by | zt_cnt |""".stripMargin
).show(2000,false)
}

计算结果

我们可以看到在8连板之后买入涨停的概率最大,所以打板的小伙伴们,不要在打三连板了,网上很多大佬告诉你打三连板,哈哈!

总结

股市有风险,入市需谨慎,学习无限好,从此自由活

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/198377.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Cloud Gateway动态路由配置
1启动我们的Nacos,配置我们服务需要配置文件。 nacos配置列表 image.png 比如youlai-gateway.yaml网关配置文件。 网关的配置文件 youlai-gateway.yml spring: cloud: gateway: discovery: locator: enabled: true # 启用服务发现 lower-case-service-id: true routes:
花落花相惜
2021/11/22
7700
聊聊spring cloud gateway的RouteLocator
本文主要研究一下spring cloud gateway的RouteLocator
code4it
2018/09/17
2.9K0
Springcloud Gateway:动态配置,过滤器源码思路
Spring Cloud GateWay 是 spring 官方推出的一款 基于 springframework5,Project Reactor和 spring boot2 之上开发的网关,其性能,高吞吐量,将代替zuul称为新一代的网关,用于给微服务提供 统一的api管理方式
冷环渊
2021/12/10
1.7K0
Springcloud Gateway:动态配置,过滤器源码思路
Spring Cloud Gateway解析
Gateway( 网关),顾名思义,是出现在系统边界上的一个面向API或应用服务的、串行集中式的强管控服务,这里我们讨论的边界可以基于企业IT系统的边界,当然,可以理解为企业级应用防火墙,其目标主要起到隔离外部访问与内部系统交互的作用。在微服务概念的流行之前,网关就已经诞生了,在面向SOA体系中已经成熟,然而,随着微服务体系的快速发展,更进一步将Gateway推向更高的浪口。与其说网关催生了微服务体系,不如说微服务体系拥抱了网关。
Luga Lee
2021/12/09
8540
Spring Cloud Gateway解析
Spring Cloud Gateway整合nacos实战(三)
Spring Cloud GateWay是Spring Cloud的⼀个全新项⽬,⽬标是取代Netflix Zuul,它基于Spring5.0+SpringBoot2.0+WebFlux(基于⾼性能的Reactor模式响应式通信框架Netty,异步⾮阻塞模型)等技术开发,性能⾼于Zuul,官⽅测试,GateWay是Zuul的1.6倍,旨在为微服务架构提供⼀种简单有效的统⼀的API路由管理⽅式。
Java技术债务
2022/08/09
2.5K0
Spring Cloud Gateway整合nacos实战(三)
Spring项目如何集成Gateway和Nacos服务
在本文中,我们将探讨如何在Spring项目中集成Gateway和Nacos服务,帮助初学者成功地完成这些存在解决方案。通过本文,您将了解完整的集成流程和具体实现方法,以提高项目性能和拓展性。
默 语
2025/01/20
2540
Spring Cloud Gateway实战之三:动态路由
本篇概览 本文是《Spring Cloud Gateway实战》系列的第三篇,前文介绍了多种路由配置方式,它们存在一个共同问题:路由配置变更后必须重启Gateway应用才能生效,聪明的您一下就看出了问题关键:这样不适合生产环境! 如何让变动后的路由立即生效,而无需重启应用呢?这就是今天的主题:动态路由 设计思路 这里提前将设计思路捋清楚,总的来说就是将配置放在nacos上,写个监听器监听nacos上配置的变化,将变化后的配置更新到Gateway应用的进程内: 上述思路体现在代码中就是下面三个类: 将操作路由
程序员欣宸
2021/12/07
9260
Spring Cloud Gateway实战之三:动态路由
spring-gateway基于数据库 + nacos 的动态路由
使用 spring-boot-starter-paren t就不需要给子集pom配置版本号了,因为它包括了
BUG弄潮儿
2022/12/05
9510
SpringCloud Gateway 基于nacos实现动态路由
在使用Spring Cloud Gateway 的时候,官方文档提供的方案总是基于配置文件或代码配置的方式
JulyWhj
2022/09/06
3.3K1
SpringCloud Gateway 基于nacos实现动态路由
Spring Cloud Gateway实战之二:更多路由配置方式
本篇概览 本文是《Spring Cloud Gateway实战》系列的第二篇,通过前文咱们了解到Spring Cloud Gateway的核心是路由配置,然后在本地application.yml中配置了一条路由,但这种修改本地配置文件的方式缺乏灵活性,未必能满足灵活多变的业务需求,因此,本篇的目的就是找出本地配置之外的其他配置方式来,满足各种实际需求; 总的来说以下三种方式都是常用的: 目标地址支持用服务名(取代之前的IP+端口); 支持在nacos上配置; 支持写代码的方式配置; 另外还有一种更加灵活的配
程序员欣宸
2021/12/07
7120
Spring Cloud Gateway实战之二:更多路由配置方式
Spring Cloud Gateway 服务网关的部署与使用详细教程
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/10/09
4.7K0
Spring Cloud Gateway 服务网关的部署与使用详细教程
SpringCloud Gateway 在不重启网关服务的前提下,实现添加服务路由零配置升级
在实际的生产环境中,如果采用了微服务架构,每次功能迭代发版上线,经常会遇到需要在网关,添加路由配置,如 zuul。
猿芯
2022/08/30
1.5K0
SpringCloud Gateway 在不重启网关服务的前提下,实现添加服务路由零配置升级
【十】SpringCloud Alibaba之整合gateway(包括配置详解以及各种坑)
在前面章节里面,我们已经建了一个父子工程项目,这里直接接着整,新增一个子模块(demo-gateway),最终目录结构如下:
小z666
2024/06/21
7651
【十】SpringCloud Alibaba之整合gateway(包括配置详解以及各种坑)
gateway nacos sentinel 三剑客强强组合
spring cloud gateway 响应式网关,基于nacos实现动态网关,基于sentinel实现动态限流,sentinel基于nacos数据持久化
kinbug [进阶者]
2020/05/07
4.2K0
Spring Cloud Gateway夺命连环10问?
这篇文章介绍下微服务中的一个重要角色:网关,对于网关如何选择,由于阿里系暂时未出网关,当然是选择了Spring cloud Gateway,毕竟是亲儿子。
码猿技术专栏
2023/05/01
5200
Spring Cloud Gateway夺命连环10问?
网关 Spring-Cloud-Gateway 源码解析 —— 路由(1.1)之RouteDefinitionLocator一览
本文主要对 路由定义定位器 RouteDefinitionLocator 做整体的认识。
芋道源码
2018/07/31
1.4K0
网关 Spring-Cloud-Gateway 源码解析 —— 路由(1.1)之RouteDefinitionLocator一览
spring-gateway 基于 nacos 配置文件的动态路由
InFileRouteDefinitionRepository 类主要是简单 nacos 中的配置文件routes.json 的变化;只要监听到 routes.json 就进行路由更新。
BUG弄潮儿
2022/12/05
9590
Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单
网关的核心概念就是路由配置和路由规则,而作为所有请求流量的入口,在实际生产环境中为了保证高可靠和高可用,是尽量要避免重启的,所以实现动态路由是非常有必要的;本文主要介绍 Spring Cloud Gateway 实现的思路,并且以Nacos为数据源来讲解
陶陶技术笔记
2020/06/02
1.8K0
Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单
Spring Cloud Gateway动态路由实现
当你的网关程序开发完成之后,需要部署到生产环境,这个时候你的程序不能是单点运行的,肯定是多节点启动(独立部署或者docker等容器部署),防止单节点故障导致整个服务不能访问,网关是对客户端的入口与出口,在生产运行中极为重要,哪怕是简单的重启也会导致部分请求的丢失。
BUG弄潮儿
2020/06/15
2.6K0
Spring Cloud Gateway动态路由实现
Spring Cloud Gateway 数据库存储路由信息的扩展方案
​ 无论你在使用Zuul还是Spring Cloud Gateway 的时候,官方文档提供的方案总是基于配置文件配置的方式
冷冷
2019/05/26
7910
推荐阅读
相关推荐
Spring Cloud Gateway动态路由配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验