京东量化教你如何用简单的策略回测盈利

京东为什么要做量化平台业务 1. 京东量化平台是什么样的平台? 京东量化平台是一个针对中国A股市场(在不久的将来也将涵盖股指期货和商品期货)的在线量化交易平台。机构或个人投资者可以通过平台编写,回测,并实盘模拟自己的量化策略。 2. 京东量化平台理念是什么? 京东量化平台是京东金融打造的“一站式”在线量化交易平台,以“成为国内最值得信赖的量化交易平台”为使命,依托京东集团强大的资源,发挥整合和协同效应优势,打造专业的量 阅读详情


阅读原文:http://club.jr.jd.com/quant/topic/963245

今天来教大家使用量化平台中Python的部分,完成一个简单的策略回测。

 

首先,回测界面是长这个样子的

blob.png

可以看到,左半边的大部分区域是编辑代码的地方,开发环境会自动识别Python语言的关键词。在代码区上面的设置标志里面可以个性化调节开发环境的视觉效果。

 

Python的回测代码主要包括init()函数,handle_data()函数,以及其他用户自定义内容。如果在每天开盘前要进行额外的处理或计算,可选择添加before_trade()函数。

 

def init(context):

         # 这里用来写策略开始时要做什么

 

def before_trade(context):

         # 非强制,在这里写每天开盘之前要做什么,不可下单

 

def handle_data(context, data_dict):

         # 这里用来写每天开盘后要做什么,可以是计算,输出日志,或者下单

 

其中,init()是初始化函数,可以设置基准,滑点,佣金等回测参数,也可以利用context自定义变量。在Python及大部分其他编程语言中,在局部变量只在该变量定义的函数体有效,在其他函数体内是无效的。而context被定义为一个局部变量,可以把内容在不同函数代码之间传导。该函数在回测开始时运行一次。

 

handle_data()是每个交易时间点(分钟/日)时自动运行一次的函数,可以在此函数内设置交易判断和下单,是策略核心逻辑所在。

 

用户可以按照Python语言规则定义其他函数,包括运算/数据处理函数,也可以通过task()函数设置自定义函数的执行频率和执行时间。

 

接下来,我们用一个简单的策略来演示这个过程。我们策略的内容是对平安银行(000001.SZ)进行择时,如果前一天收益率大于中证全指收益率,则买入持仓,反之则不持仓。

 

首先,我们在init()函数里面设置我们的股票和比较的标的:

 

# init方法是您的初始化逻辑。context对象可以在任何方法之间传递。

def init(context):

    context.stock = '000001.SZ'

context.set_benchmark = '000985.SH'

 

其中,只要在“#”后面的内容都是注释,不会被Python编译。设置stock和set_benchmark对象时,一定要在前面加上“context.”,这样才能传递到之后的函数中。设置标的后,回测中的基准曲线和收益将采用设置的指数。

 

然后我们来编辑每个交易日的逻辑:

 

# 日或分钟或实时数据更新,将会调用这个方法

def handle_data(context, data_dict):

    price = get_history(2, '1d', 'close')[context.stock]

priceBm = get_history(2, '1d', 'close')[context.set_benchmark]

 

这部分代码获取了目标股票和标的的历史价格,其中context.stock和context.set_benchmark都在init()函数中定义好了。get_history()函数是京东量化平台封装的取历史交易数据的函数。其中“2”代表要取历史两天的数据,以便计算上个交易日的收益。“’1d’”和“'close’”分别表示数据频率为天,所需数据为收盘价。返回的价格为pandas.Series类型。各个平台函数的使用方法可以查看帮助板块中的API文档。

 

为了方便计算收益率,我自定义了一个CalRet()函数,输入连续两天的价格,计算第二天的收益率:

 

def CalRet(price):

    r = (price[1] - price[0]) / price[0]

return r

 

这段函数写在handle_data()之前。自定义函数编辑的语法符合Python语法即可。这个函数会返回float类型的r。

 

我们回到handle_data()函数,利用刚刚定义的函数和获取的股票及指数价格计算收益率:

 

    ytdRet = CalRet(price)

bmRet = CalRet(priceBm)

 

可以得到上个交易日股票的收益率ytdRet和指数收益率bmRet。之后我们进行判断,如果ytdRet大于bmRet,则全仓买入平安银行股票,否则清仓。

 

    if ytdRet > bmRet:

        order_target_percent(context.stock, 1)

    else:

        order_target_percent(context.stock, 0)

 

order_target_percent()是量化平台编辑的下单函数,可以设置某个股票的仓位至一个百分比。平台同样支持加减仓,用手数,金额等方式下单,详见API文档。

 

现在,我们就完成了这个策略的设计。回测平台会自动按照这个逻辑,在回测区间内完成交易。

blob.png

我们设置回测区间为今年,初始金额为一百万,调仓频率为每天,点击“运行回测”。结果如下:

blob.png

我们可以看到在回测区间内,策略和基准的净值曲线,每天盈亏,买卖等图像,以及回测的技术指标。同时可以查看相对收益,对数收益等。我们可以看到,这个策略没有能够跑赢大盘。当然,这只是一个例子。

在左边的交易详情,持仓和输出日志中可以看到回测中的具体情况,方便进行归因分析,调整策略等等,同时还可以查看历史回测记录。

 

这样我们就成功完成了整个回测过程。更详细的函数使用方法和平台功能,请参加平台的帮助板块。

阅读原文:http://club.jr.jd.com/quant/topic/963245

Python股票量化学习(3)——简单的策略回测 如上图所示,2022年8月31日,交易指令为1,全仓买入,狠狠的干了一票。再看'total'列,账户总资产从最初的100000元变成了现在的560000+元(当然我没有考虑交易费用等等之类因素)。此策略基于布林通道,当股价低于布林通道下轨线且持仓为0时,以下轨线价格全仓买入(不关心风险,反正也不要本钱)。首先,从MySQL数据库读取已经下载好的股票历史数据,我用的库名是stock_databases。有了布林通道的数据后,就可以通过比较最高价、最低价与上下轨的大小来确定交易信号。股市有风险,入市须谨慎! 阅读详情

相关推荐

如何用IED编写股票的量化策略?

阅读原文:京东量化平台-为投资者提供数据支持、策略开发到策略输出的量化生态服务 京东金融官方资讯QQ:3414182370 只要你有想说的就可以来吐槽,还有机会获得丰厚奖品哦! 1 集成开发环境(IDE)介绍 较早期程序设计的各个阶段都要用不同的软件来进行处理,开发者必须在几种软件间来回切换操作,开发过程非常不便利。而集成开发环境(IDE,Integrated Development E

JDquant的博客 2210

量化初步-《python与量化投资从基础到实战》——优矿策略

python与量化投资从基础到实战——策略初步

qq_47326711的博客 4625

【公告】变更!采用动态复权作为回测复权机制

相信最近一些小伙伴可能发现一些问题就是同一个策略回测的结果……好像跟之前不太一样了回测效果貌似没有之前好了是记错了吗?是代码被改了吗?都不是!是我们回测的复权机制改了!什么是复权复权就是对股价和成交量进行权息修复,股票的实际价值没有变,只是数量与价格变化了而已。如:原来20元的股票,十送十之后为10元,但实际还是相当于20元。从K线图上看这个价位看似很低,但很可能就是一个历史高位。复权的作用是为了...

JDquant的博客 2755

京东量化平台理念是什么

京东量化平台是京东金融打造的“一站式”在线量化交易平台,以“成为国内最值得信赖的量化交易平台”为使命,依托京东集团强大的资源,发挥整合和协同效应优势,打造专业的量化策略开发与研究平台。 请访问:quant.jd.com

qq_36138213的博客 757

python股票量化交易模型_如何建立一个股票量化交易模型并仿真? ?

先从最基础的说起好了首先是工具(一) 软件推荐:python常用的量化软件有python、matlab、java、C++。从开发难度而言python和matlab都比较容易,java和C++麻烦一些。从运行速度而言,C++、java要快于matlab和python。不过对于大部分人而言,尤其是初学者,开发占用的时间远大于运行时间。如果追求运行速度的话,先将策略开发出来,再用C重写也不迟。另外,从量...

weixin_39517859的博客 1454

目前市面上量化交易软件、平台、框架的特点, 重点推荐VNPY底层仿真回测系统

随着这几年量化交易在国内的快速发展,各种API接口、量化平台、量化交易框架匆匆推出,呈现出一片百花齐放,欣欣向荣的景象,但是由于目前国内还处于私募基金发展的初期,大部分平台也都匆匆上马,既有自己的特点也有不足之处。 真正开展CTA 程序化交易,至少要搭建行情数据平台、研究平台和交易平台三大平台,还会涉及到平台之间的对接问题;从数据质量角度,选择准确的行情源,保证研究和交易的行情数据一致,最好采用Level-2 数据;从数据传输速度的角度,需要考虑到服务器的托管;策略设计需要考虑突发行情的处理。 量化平台主要

weixin_49537459的博客 2653

(转)JD-Quant量化交易平台设计:延迟latency

低延迟系统结构的起源现在计算机硬件速度已经足够的快,而且越来越快。我们的交易策略能够实时处理海量数据并立即做出决策。

代码过客 1499

如何设计出一个比较成功量化策略?

阅读原文:京东量化平台-为投资者提供数据支持、策略开发到策略输出的量化生态服务 京东金融官方资讯QQ:3414182370 只要你有想说的就可以来吐槽,还有机会获得丰厚奖品哦! 设计量化交易策略其实就是一个想法+验证的过程。 一、想法的来源: 大概有以下几个思路: 1、金融理论。 金融理论里资产定价的核心就是无套利原则。这里说的套利既包括通常意义的统计套利,也包括更宽泛的概

JDquant的博客 2871

量化策略如何让统计回测结果

阅读原文:京东量化平台(quant.jd.com)-全方位量化策略开发平台。量化交易、量化投资、云端在线编程、策略历史回测、实盘模拟、量化社区 京东金融量化交流群:417082141 我们需要统计这几个指标: [超额收益为正的月数占比] [收益为正的月数占比] [相对最大回撤] 步骤: 1、回测你的策略,然后把回测结果导出来,然后另存为一个csv文件 2、把上面那个结果文件我这

JDquant的博客 3309

Anomalib实战:从零开始构建自定义数据集的异常检测模型

本文详细介绍了如何使用Anomalib 2.1.0从零开始构建自定义数据集的异常检测模型。通过实战演示,指导读者准备符合规范的数据集结构,快速上手训练Patchcore等先进算法,并完成模型推理与调优,为工业质检、医疗影像等场景提供高效的视觉异常检测解决方案。

weixin_29165465的博客 109

库卡机器人外部轴配置全流程:从接线到WorkVisual 6.0实战(附避坑指南)

本文详细解析了库卡机器人外部轴配置的全流程,涵盖从硬件接线到WorkVisual 6.0软件配置的实战步骤。重点介绍了KPP驱动模块连接、电机参数匹配、安全配置激活及零点标定等关键环节,并提供了实用的避坑指南,旨在帮助工程师高效、安全地完成外部轴集成,提升工作站柔性。

weixin_29161785的博客 496

搭建系统|继承backtrader的本地量化回测平台如何玩转多股轮动策略!

前言一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子、更换交易策略以应对当前的市场。因此创建完整的、功能键全的GUI用户界面至关重要。市面上也出...

hangzhouyx的博客 2442

实战对比:Lmcache+vllm将KVcache卸载到CPU和SSD的性能差异(附完整配置)

本文通过实战对比Lmcache与vLLM在KV Cache卸载到CPU和SSD的性能差异,详细解析了配置优化、基准测试及高级调优策略。实验显示,CPU卸载在低并发下表现优异,而SSD方案在高并发场景中更具性价比优势,为LLM推理任务提供了高效的存储解决方案。

weixin_30664051的博客 700

京东量化手把手教你写“法玛三因子”策略

阅读原文:京东量化平台(quant.jd.com)-全方位量化策略开发平台。量化交易、量化投资、云端在线编程、策略历史回测、实盘模拟、量化社区 京东金融量化交流群:417082141 [入门教程],大神轻拍! “法玛三因子”是个什么鬼? 尤金-法玛、彼得-汉森和罗伯特-希勒这三位学者因对资产定价领域的相关贡献得奖是2013年的诺贝尔经济学奖一个非常热门的话题。 就是上面这个老头他提

JDquant的博客 1万+

子网划分详解

还不会子网划分?看这篇就够了,保姆级教程

m0_47584619的博客 6093

Android逆向实战:通过smali/baksmali动态注入DEX逻辑

本文详细介绍了在无源码条件下对Android应用进行动态逻辑注入的实战方法。通过使用smali和baksmali工具对DEX文件进行反编译、修改与重打包,实现在目标方法中插入自定义代码(如日志打印),并分享了定位目标、处理寄存器、避免常见错误的实用技巧与避坑指南。

weixin_29008691的博客 364

教你如何使用量化高卖低买赚Spread策略

阅读原文:京东量化平台(quant.jd.com)-全方位量化策略开发平台。量化交易、量化投资、云端在线编程、策略历史回测、实盘模拟、量化社区 京东金融量化交流群:417082141 今天想跟大家分享的是一个高卖低买的交易策略,这类策略各种论坛里面很多,主要是各类版本都有,这里仅供大家参考。 频率需要按照分钟回测,策略的参数设置比较多,所以可能在一些时间段需要具体调整。目前是从20

JDquant的博客 3275

道威棱镜的设计参考

道威棱镜的设计参考

weixin_72050316的博客 379

量化进阶——多策略量化回测实录(一)

阅读原文:http://club.jr.jd.com/quant/topic/1428261 京东金融官方资讯QQ群:456448095 有什么想咨询的都可以来询问我们 移动平均线是技术分析中最常用的,作为一种简单有效的数学模型而被广泛使用。均线使用的方式的差异在于均线的计算方式与价格使用方式。不同的均线计算方式会产生不同的结果,不同的价格使用也会有不同的效果。此外,使用一条、两条

JDquant的博客 5722

全球SAR卫星大盘点与回波数据处理专栏目录

本专栏将详细介绍各国各地区的SAR卫星的特点和性能,以及SAR回波数据的处理方法和技巧。主要介绍民用和商用SAR卫星,帮助你了解商业SAR卫星的最新动态和技术,MATLAB代码将全部开源。以下是专栏目录,持续更新中。

3161

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【等你来战】京东金融-中信证券杯量化策略大赛第6期!

阅读原文:http://club.jr.jd.com/quant/topic/1257642 京东金融官方资讯QQ群:456448095 有什么想咨询的都可以来询问我们 策略battle战,赢取500万! 谁能固守疆土,策略一直立于不败之地? 京东金融-中信证券杯量化策略大赛第6期 5月1日,战役正式打响 百万现金,丰富奖品,专家培训,满满都是诚意 我

JDquant的博客 2463

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

目前市面上的量化平台介绍,教你学会选取适合自己的平台

阅读原文:http://club.jr.jd.com/quant/topic/1080070?from=csdn  京东金融量化交流群:417082141 现在市面上比较流行的量化平台除了京东量化平台,还有优矿,聚宽,米筐等。这些平台大体上提供类似的服务,但在细节上又有所不同。 量化平台的服务本质在于通过封装好的回测函数和金融数据库,帮助用户快捷的实现策略编程和回测。这个过程中免去了用户

JDquant的博客 3031

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

京东量化教你如何量化选股

京东金融量化交流群:417082141 阅读原文:http://club.jr.jd.com/quant/topic/836018 思路:对于不同的股票,如果营业利润率上涨了相同的比例,而股价上涨幅度不同,那么就买入上涨幅度较小的。 具体选股策略:1、对沪深300所有股票计算当前价格p与一年前的价格p0的比例,并用这个比例除以(1+营业利润同比增长率)。2、筛选出营业利润同比增长率大于

JDquant的博客 2299

搭建系统|听说backtrader很不错!把它集成到本地GUI回测平台中!

前言一个完整的量化交易系统离不开人机交互功能的应用,特别是在回测阶段,我们需要不断更改参数因子、更换交易策略以应对当前的市场。因此创建完整的、功能键全的GUI用户界面至关重要。前几期我们...

hangzhouyx的博客 2592

量化策略“高股息率模型”长期有效性的实证

阅读原文:http://club.jr.jd.com/quant/topic/1103671 京东金融官方QQ群:417082141 不管您有什么想问的想说的都可以加入我们参与讨论。 作者:剑雪 命题:“高股息策略”长期有效吗? 平台:京东量化 语言:python 杰里米J.西格尔在《投资者的未来》一书中阐述了一个重要观点:高股息率股票具备长期投资价

JDquant的博客 4196
上一篇: 近十年量化交易领域最重要的十本参考书推荐!重要!
下一篇: 京东量化教你赚钱钱(二)
JDquant
博客等级 码龄10年 326粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值