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

股票打板策略分析_打板选股技巧股票打板策略分析这里我们只分析一件事情,就是如何打板才能最大概率赚到钱,就是我们可以分析过去一天涨停今天还涨停、分析过去两天涨停今天涨的概率,一直到过去10天涨停今天涨的概率,其实很多人都喜欢打板,但是可能大家都没分析过打板的胜率。前面我们已经可以筛选出截止到特定日期的过去10天中的连续涨停了,这里我们只需要将所有日期过去10日的连续涨停计算出来就可以作为我们的数据源,然后计算统计个数算分布就可以了,至于如何计算连续涨停可以参考股票数据分析计算历史数据的涨停情况我们今天的打板分析,是在昨天的基础上,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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

股票打板策略分析

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

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

计算历史数据的涨停情况

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

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 就可以分区感知,自动读取,否则的话比较麻烦,效果如下

image-20211105145332352

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

image-20211105145450703

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

image-20211105145708764

分析涨停的分布情况

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

image-20211105152823303

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

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

  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)
  }

计算结果

image-20211105171449714

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

总结

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • yodgor mirzajonov_jacqueline novogratz

    yodgor mirzajonov_jacqueline novogratz1142.MaximalClique(25)题目:Acliqueisasubsetofverticesofanundirectedgraphsuchthateverytwodistinctverticesinthecliqueareadjacent.Amaximalcliqueisacliquethatcannotbee…

    2022年9月28日
    0
  • C3P0连接池配置文档

    C3P0连接池配置文档一、导入jar包下载链接 二、配置文件配置文件名称:c3p0-config.xml(固定)配置文件路径:src(类路径)配置文件内容:命名配置&lt;c3p0-config&gt;&lt;!–命名的配置–&gt;&lt;named-configname="test"&gt;&lt;!–连接数据库的4项基本参数-…

    2022年6月12日
    24
  • html中滚动条的代码是什么?如何设置html滚动条?

    html中滚动条的代码是什么?如何设置html滚动条?本篇文章主要介绍了关于 html 中的滚动条的代码 还有关于 html 滚动条代码 marquee 标签属性的用法 具体的让我们一起来看这篇文章吧首先我们介绍 html 中的滚动条代码 今天我们介绍这个 html 滚动条标签是 marquee marquee 标签 它是成对出现的标签 首标签 marquee 和尾标签 marquee 之间的内容就是滚动内容 marquee 标签的属性主要有 behavior bgcolor direction width height marquee marquee

    2025年7月7日
    0
  • android 定时器的实现比较

    android 定时器的实现比较第一种,Handler+threadpublicclassMainActivityextendsActivity{TextViewtextView;inttime;Handlerhandler=newHandler(){@OverridepublicvoidhandleMessage(Messag

    2022年7月25日
    6
  • hadoop错误_wired connected

    hadoop错误_wired connectedhadoop错误INFO ipc.Client Retrying connect to server

    2022年4月22日
    47
  • pycharm 社区版 激活码_最新在线免费激活「建议收藏」

    (pycharm 社区版 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0VOERWDQ5R-eyJsaWNlb…

    2022年3月30日
    157

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号