【精选】PHP将股票日K线数据转换为半年K线数据

网极科技1年前代码笔记275

将股票日K转换为半年K数据,可以用每年的7-1日作为分割点,分为上半年和下半年,开盘价应为分组开始的第一条数据的开盘价,收盘价应为分组数据的最后一条收盘价,最高和最低则为分组中的最高最低,成交量是累加的,如此计算,这里给出php的转换函数:

    // 将日K线数据转换为半年K线数据
    function convertToHalfYearKLine($data)
    {             
        $daily_k_data = $data;

        usort($daily_k_data, function($a, $b) {
            return strtotime($a['date']) - strtotime($b['date']);
        });


        $k_line_data = array();
        $last_group_end_date = '';

foreach ($daily_k_data as $key => $daily_data) {
    // 如果是第一个日期,则直接添加到一个新的分组里面
    if ($key == 0) {
        $k_line_data[] = array($daily_data);
        $last_group_end_date = $daily_data['date'];
        continue;
    }


        //获取当前日期的所在年份的上半年还是下半年
        $cur_time = date('md',strtotime($daily_data['date']))<701?date('Y',strtotime($daily_data['date'])).'13':date('Y',strtotime($daily_data['date'])).'14';

        //获取上个日期的所在年份的上半年还是下半年
         $last_time = date('md',strtotime($last_group_end_date))<701?date('Y',strtotime($last_group_end_date)).'13':date('Y',strtotime($last_group_end_date)).'14';
    // echo $cur_time.' '.$last_time;

    // 如果当前日期与上一个分组结束日期不是一个半年,则将当前日期的K线数据添加到一个新的分组里面
  
            
已隐藏部分内容,支付后自动显示
如有疑问请联系QQ:706448591
支付38元查看
print_r($k_line_data); }

相关文章

火车头采集分页多页数据

火车头采集分页多页数据

在使用火车头采集器时,遇到有分页多页的情况出现,可进行如下设置进行采集1 在第二步,采集内容规则中设置“分页获取规则”,即页码标签位置2 在标签编辑页面勾选  该标签在分页中匹配 ...

解决composer异常 Composer\Downloader\TransportException

解决composer异常 Composer\Downloader\TransportException

Composer在腾讯或阿里的服务器上经常会遇到报出如下异常: [Composer\Downloader\TransportException]...

使用xbstream打包的物理备份恢复腾讯云云数据库MySQL数据库

使用xbstream打包的物理备份恢复腾讯云云数据库MySQL数据库

腾讯云为节约存储空间,云数据库 MySQL 的物理备份和逻辑备份文件,都会先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具)进行压...

Linux使用supervisor创建守护进程方法

Linux使用supervisor创建守护进程方法

下载最新的supervisor安装包: supervisor-4.2.5.tar.gz 安装步骤 wget https://www.wangjikeji.com/uploads/upload...

私有化部署PaddleOCR图片中文字识别

私有化部署PaddleOCR图片中文字识别

图片文字识别(OCR)的技术目前已经比较成熟,有很多开源模型可以使用。本文主要以百度开源的PaddleOCR为例,进行私有化部署 为什么要进行文字识别私有化很多图片是比较隐私的,比方身份证,虽然市面...

宝塔面板Nginx设置任意路径301重定向

宝塔面板Nginx设置任意路径301重定向

接到一个客户的诉求,需要将指定路径进行301重定向,由于宝塔设置重定向只有域名(即根目录),无法对子目录或其他任意路径进行重定向,所以需要手写Nginx的重定向规则。 301重定向和伪静态有...