合并成周线、月线、季度线、年线这几个长周期k线的函数---使用掘金量化平台

RiceQuant和 JoinQuant合成月k线、周k线的极简公式 米筐和聚宽没有直接可以获取月k线,周k线的函数,为此写了一个极简函数可以获取日k线,周k线,月k线,乃至分钟k线。如下: 聚宽: def get_period_price_wjlec(stock, rule='W', start_date=None, end_date=None, frequency='daily', fields=None, \ skip_paused=True, fq='pre', count=None): ''' 阅读详情

由于在掘金量化平台上没有直接提供长期的k线数据,需要自己去提取合并,造成很大的麻烦。

def compose_bar(symbol,start_time,end_time,frequency):
    #symbol:标的,start_time:开始时间,end_time:结束时间,frequency:频率
    # 合成周线
    if frequency == 'W':
        # 判断开始日期是否为周一(默认周一 = 0,周二 = 1,所以对得出的week进行调整,加一)
        start_time = datetime.datetime.strptime(start_time,'%Y-%m-%d')
        week_start = start_time.weekday() + 1
        # 如果不是周一,则将开始时间调整到该周周一
        if week_start != 1:
            print('输入的开始日期为周{},调整到该周周一'.format(week_start))
            start_time = start_time - datetime.timedelta(days = week_start - 1)

    # 合成月线
    if frequency == 'M':
        # 判断开始日期是否为月初
        day_start_1th = int(start_time[8:10])
        # 如果不是1号,则转为当月1号
        if day_start_1th != 1 :
            start_time = datetime.datetime.strptime(start_time, '%Y-%m-%d')
            start_time = start_time - datetime.timedelta(days = day_start_1th - 1)
            print('开始日期为该月{}号,调整到当月1号',format(day_start_1th))

    # 合成季线
    if frequency == 'Q':
        # 直接开始日期设置为季度初
        month = int(start_time[5:7])   # 看开始时间月份
        year = int(start_time[0:4])     # 看开始时间年份
        if month in range(1,3):
            start_time = datetime.date(year,1,1)
        if month in range(4,6):
            start_time = datetime.date(year,4,1)
        if month in range(7,9):
            start_time = datetime.date(year,7,1)
        if month in range(10,12):
            start_time = datetime.date(year,9,1)

    # 合成年线
    if frequency == 'A':
        # 将开始时间调整为年初
        year_start = int(start_time[0:4])  # 看开始时间年份
        start_time = datetime.date(year_start,1,1)

    # 订阅历史数据(注意要复权到当前日期才能和新浪财经的数据对得上)
    data = history(symbol = symbol,frequency = '1d',start_time = start_time,end_time = end_time,fields = 'eob,open,close,high,low,amount,volume',df = True,
                   skip_suspended = True,fill_missing = None, adjust=ADJUST_PREV,adjust_end_time = datetime.datetime.today())
    # 修改日期格式并变成索引
    data.eob = data.eob.apply(lambda x :datetime.datetime.strptime(str(x).split(' ')[0],'%Y-%m-%d'))
    data.set_index(data['eob'],inplace = True)
    data.drop(columns = ['eob'],inplace = True)
    data_index = data.resample(frequency,label = 'right').last().index
    # 结果返回成dataframe格式
    data_k = pd.DataFrame({'open':data.resample(frequency,label = 'right').first()['open'],
                                'close': data.resample(frequency,label = 'right').last()['close'],
                                'high': data.resample(frequency,label = 'right').max()['high'],
                                'low': data.resample(frequency,label = 'right').min()['low'],
                                'amount': data.resample(frequency,label = 'right').sum()['amount'],
                                'volume': data.resample(frequency,label = 'right').sum()['volume'],
                                'frequency':frequency
                                })
    data_k.set_index(data_index,inplace = True)

    # 如果某周放假没有数据,则删除
    data_k.dropna(inplace = True)

    return data_k 

# 测试一下
weekly_k = compose_bar('SZSE.002261','2020-12-31','2023-11-22','W')
monthly_k = compose_bar('SZSE.002261','2020-12-31','2023-11-22','M')
quarterly_k = compose_bar('SZSE.002261','2020-12-31','2023-11-22','Q')
yearly_k = compose_bar('SZSE.002261','2020-12-31','2023-11-22','A')

测试的股票并未有任何投资建议,作案例提供参考

我是普通计算机本科生,量化小白,往量化行业,简历已投了很多都是已读不回,有点迷茫,不知道还要不要再继续往这个量化行业发展,我目前对这个工作还很懵,不知道怎样下手,想通过实习增加自己的水平,但又没有找到实习,太难了~

欢迎大家可以对我进行意见提供,不论是工作、学习!

在掘金,如何获取周线数据?(建议收藏) 其实这个问题的解决方法,我们很早之前就有分享,也提供了相关的代码。不过,小Q猜你们大概率是懒得去挖旧贴,所以今天索性把这段代码再分享一遍。(比如合成周线,开始日期输入的是周三,如果直接按照周合成,那么第一个合成的周线就是残缺的,这就需要进行调整,把起始日期前推到该周期的第一天)我们要将日线按照日期以周为频率进行分组,计算开盘价、收盘价、最高价、最低价、成交额和成交量。,分别为:股票代码、开始日期、结束日期、合成频率。近期不时有小伙伴来问咱:如何获得周线数据? 阅读详情

相关推荐

掘金量化—Python SDK文档—5.API 介绍(1)

init - 初始化策略初始化策略, 策略启动时自动执行。可以在这里初始化策略配置参数。参数名类型说明contextcontext上下文,全局变量可存储在这里# 订阅bar# 增加对象属性,如:设置一个股票资金占用百分比回测模式下init函数里不支持交易操作,仿真模式和实盘模式支持schedule - 定时任务配置在指定时间自动执行策略算法, 通常用于选股类型策略参数名类型说明function策略定时执行算法date_rulestr。

量化交易研究 3492

通达信 设置 年线和季度线 分割线

通达信 设置 年线和季度线 分割线 季度线 需要把上面的 12 修改为3 STICKLINE(REFX(CROSS(MOD(MONTH,12),0.5),1),CONST(HHV(H,120)),CONST(LLV(L,120)),0,-1),COLOR999999;

abc 6674

使用Numpy快速分析股票数据——计算移动平均线及日周均线之间的转换

使用工具:jupyter notebook,新建一个python3项目 以分析亚马逊股票近一年的历史数据为例 一、按年度日均线数据做基础处理 加载指定的文件 import numpy as np stock_info = np.loadtxt('AMZN_STOCK.csv',skiprows=1,delimiter=',',usecols=[0,1,2,3,4],dtype='f8,S10,...

一半芒果的博客 4021

股票自选股基本函数大全-8

1、线形和资源等函数 1)COLOR 自定义色 格式为COLOR+“BBGGRR”:BB、GG、RR表示蓝色、绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制。 例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。 2)COLORBLACK 黑色 画黑色 3)COLORBLUE 蓝色 画蓝色 4)COLORGREEN 绿色 画绿色 5)COL...

Venus 的博客 5297

季线 月线 周线画矩形通达信指标公式源码.doc

季线 月线 周线画矩形通达信指标公式源码.doc

计组实验之四路表决器

请在之前四路表决器电路实现的基础上,继续用连接线 联接CD4511,将投票为1的票数总和显示到一个 LED上,思考如何做?由于我们需要通过显示字形来直接看出有几个1,在这里,我们最多有四个1,即显示字形最多到4就行,所以我们需要将有几个1用2进制数来表示,下面给出了相关电路图。显示输入插口,按真值表(自拟)要求,逐次改变输入变量, 测量相应的输出值,验证逻辑功能, 与表3-1 进行比较, 验证所设计的逻辑电路是否符合要求。用实验结果与真值表3-1和3-2进行比对,可以得出,我们实验结果是正确的。

szyugly的博客 1万+

【掘金量化使用技巧】用日线合成长周期k线

掘金API中的接口最长的周期是‘1d’的,因此周线/月线/年线等数据需要自己进行合成。

柴犬的博客 1486

硬件工程师八大细分岗位详解:从芯片到整机的技术分工与职业选择

硬件工程作为电子系统设计的核心领域,涉及从芯片级到整机级的完整技术链条。其基本原理是通过电路设计、信号处理和功率管理等技术,将电子元件集成为功能完备的硬件系统。随着产品复杂度提升,硬件工程师岗位出现高度专业化分工,这种细分不仅提升了技术深度,更优化了团队协作效率。在工程实践中,信号完整性和电源完整性成为高速数字设计的两个关键技术挑战,直接影响系统稳定性。本文基于行业热词"硬件工程师"和"信号完整性",深入解析八大细分岗位的技术差异,帮助从业者明确职业发展方向,构建系统化的硬件设计思维。

weixin_33811539的博客 450

python汇总数据:日线->周线

背景将浦发银行一年日线的收盘价汇总成周线数据。代码""" 数据按周汇总 """ import numpy as np import datetime"""step1 :读取数据 2017浦发银行.CSV: 时间,收盘价(浦发银行),成交量(浦发银行) 2017-01-03,12.3804137039431,21377729.6808511 2017-01-04,12.4

潜水的飞鱼baby 4819

避开这些坑!RK3588安卓系统内置输入法的正确姿势(含.mk文件修改指南)

本文详细解析了在RK3588安卓系统定制中预置第三方输入法的完整流程与关键避坑指南。重点涵盖APK签名、Android.mk文件编写、系统默认输入法配置(使用adb ime list命令获取服务名)以及SeLinux策略适配等核心步骤,并指出RK3566/RK3568等兄弟平台的通用性与差异点,帮助开发者实现稳定、深度的系统集成。

tgb34567890的博客 437

【问题解析】Matlab Function的易错点(Variable Size)

Matlab Function的易错点

CrazyRabbit的博客 9865

php实现股票日线数据转换为周线月线,通达信引用月线数据,如何在日线里调用周线和月线函数?...

Q1:如何在日线里调用周线和月线函数?调用某指标的某线调用周线:"某指标.某线#WEEK";调用月线:"某指标.某线#MONTH";比如:调用KDJ的K线调用周线:"KDJ.K#WEEK";调用月线:"KDJ.K#MONTH";--------------------------------------你试试看Q2:求高手指点通达信如何跨时段跨周期调用指标的值通达信如何在日线中跨周期引用月线数据呢...

weixin_29974217的博客 4092

解决 PyInstaller 与 `pathlib` 包不兼容的问题

为了避免 PyInstaller 和pathlib包的兼容性问题,最简单的解决办法就是卸载不必要的pathlib包。只需在命令行中运行卸载命令,然后重新打包即可。

Winfredzhang的博客 3225

应用篇 | 你只有日K线数据,想要周K线?安排。

pandas | 使用df.resample( ).agg({ })将日线转周线

weixin_56069388的博客 1731

STM32F103到F407移植OLED,为啥F4屏幕不亮?一个延时函数搞定时序问题

本文详细分析了STM32F103到F407移植OLED时屏幕不亮的问题,指出时钟频率差异导致的时序问题是关键原因。通过对比F103和F407的时钟架构差异,提供了精确延时函数的实现方法,并指导在I2C通信关键点插入适当延时,确保OLED正常显示。文章还涵盖了完整的测试方案和高级优化技巧,帮助开发者彻底解决移植中的时序问题。

weixin_30642561的博客 549

MATLAB应用实战系列(四十三)-基于MATLAB的光伏并网系统仿真设计

在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行。 壹 构建太阳能电池模型。 初始化参数如下图所示。 贰 构建MPPT控制模型。 具体封装如下所示: 通过PWM算法实现DC-DC稳步输出最大点。 叁 三、构建直流短距离输电线路。 仿真模型如下图: 通过电容来均衡线路电压,使得线路电压保持可靠性。 肆 通过逆变器变换,使得直流线路转换成...

wenyusuran的专栏 3168

TICK回测研究四,合成K线的问题分析

概述 K线合成是指将原始的TICK数据按时间范围进行汇总,如下表所示的TICK数据, 时间 价格 成交量 2021年11月15日09点13分22秒000毫秒 192 1 2021年11月15日09点13分22秒250毫秒 190 2 2021年11月15日09点13分22秒500毫秒 1

布兰姥爷的博客 3625

京东豆自动领取脚本配置教程

腾讯云/阿里云服务器(Docker环境):全自动跑脚本领京豆(无需本地代理,使用加速源)

AIOT魔法师 855

将日/分钟数据转为周线、月线或其他周期

import os import pandas as pdstock_data = pd.read_csv('stock data/sh600898.csv',parse_dates=[1]) #设定转换周期period_type 转换为周是'W',月'M',季度线'Q',五分钟'5min',12天'12D' period_type = 'W' #将[date]设定为index,inplace是原

Zhang_Jian 8286

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

pandas 根据日线生成周线

利用pandas生成多周期数据

LuoShunkui的专栏 694

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【教学】MT4实现任意分钟变周期 灵活K线

不需要编译脚本,只要会用记事本。3分钟就可以做出来任意分钟周期的K线,并实时显示。本文做一个简单的教学,使用FinalTrader MT4可以自定义任意分钟周期的灵活K线,7分钟、11分钟、29分钟都可以任意设置,非常方便。算是原创的一个方法,这里分享给大家。

flash_temp的博客 5079

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python将日期转化为星期_一学就会的 Python 时间转化总结(超全)

在生活和工作中,我们每个人每天都在和时间打交道:早上什么时候起床?地铁几分钟来一趟?中午什么时候开始午休?明天是星期几?距离上次买衣服已经2个月呢?领导让我给代码加上一个定时任务的功能,怎么办?不同的情况会遇到不同的时间问题:具体时间点、时间间隔、星期等,无时不刻我们在和时间碰撞。本文将利用Python对时间相关的类,及其方法与属性等进行详细的讲解1. 时间戳1.1时间戳简介在正式讲解时间的相关函...

weixin_42601547的博客 4799

php实现股票日线数据转换为周线月线,选股方法:抓住周线和月线趋势选股

选股方法:抓住周线和月线趋势选股。下面的小编为你介绍选股方法:抓住周线和月线趋势选股。股票市场既然是客观规律,当然也有政策市的情况发生,但总体最终还要围绕股市自身规律运行,涨跌到了某个时间点,自然上涨下跌。趋势的形成是缓慢的,我们做到顺势操作已经足够了。股票K线一般分为:日线,周线,月线走势图;既然强调中线选股,我们主要抓住周线和月线趋势选股。选择自身实战中运用最好的一种方法,必须保证你的方法就是...

weixin_33675283的博客 603

掘金量化Python量化交易实战王晓华-程序6-1

Python量化交易实战王晓华-程序6-1更新

qq_45760086的博客 1596

python将日期转化为星期_Python日期和时间处理(三) - 周数转换

周数的转换日期转换周数当我们需要获取特定日期对应的周数的时候,通常我们使用如下方法:from datetime import datedt1 = date(2018, 10, 10)dt2 = date(2018, 12, 31)dt1.strftime("%V") # output: '41'dt2.strftime("%V") # output '1'可以看出周数显示的没有问题,但是对于...

weixin_39618173的博客 3253

量化投研之如何获取所需的数据?

掘金提供两大类数据获取方式:订阅数据获取实时数据、接口直通获取历史数据。

量化交易研究 2878
上一篇: C语言 数据结构 折半查找(二分查找)
披星斩月
博客等级 码龄7年 14粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值