年化18.9%的创业板趋势策略,使用模块化策略模板重构(代码+数据)

原创文章第590篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。

昨天咱们分享的文章:”以交易为生“,基础设施很重要。

传统backtrader写策略的步骤是如下:

1、定义因子,比如动量roc:

self.roc = bt.indicators.ROC(self.data, period=self.p.period)

2、写策略逻辑,主要是next:

class roc_trend(bt.Strategy):# 参数定义params = dict(period=20,  # 动量周期)def __init__(self):self.roc = bt.indicators.ROC(self.data, period=self.p.period)# self.roc = bt.talib.ROC(self.data, period=self.p.period)def next(self):if not self.position:  # not in the marketif self.roc[0] > 0.08:  # if fast crosses slow to the upsideself.order_target_percent(self.data, 0.99)  # enter long# self.buy()  # enter longelif self.roc[0] < 0:  # in the market & cross to the downsideself.close()  # close long position

我们看下在算子化的模式下,如何写策略:

数据通过calc_expr直接计算,无论多少个因子:

df = CSVDataloader.get_df(['159915.SZ'], set_index=True, start_date='20120101')
df = CSVDataloader.calc_expr(df, ['roc(close,20)'], ['roc_20'])
df

图片

然后通过SelectBySignal即可,输入买入信号规则,卖出信号规则即可:

engine = BacktraderEngine(df, start=datetime(2005, 1, 1))
engine.run_algo_strategy(algo_list=[SelectBySignal(rules_buy=['roc_20>0.08'], rules_sell=['roc_20<0']),WeightEqually(),ReBalance()
])

打印出交易记录:

图片

然后看下回测结果:

图片

图片

大家拿到代码,直接运行对比这两个策略的写法,能够直观地感受到模块化的效率:

图片

代码下载:AI量化实验室——2024量化投资的星辰大海

交易为生之美

应该没有人天生就是坏的。

多数我们认为的坏人,都是相对自己的标准。

这个标准是什么?更多是利益,披着道德外衣的利益。

哪里存在最多利益冲突?

职场,邻里—尤其是农村,类似地缘冲突。城市里关系冲突,以职场为主。

出去参加活动,大家都温文尔雅,表现的风度翩翩。

职场里尤其公司下行时,刷锅,扣帽子,争底盘,抢功劳,事情就多了。

人生苦短,有意义吗?——其实很没意思。我们应该花心思在创造性的研究上

你有足够的价值,有就有交换的选择权。

进一步讲,如果你够强,你的周遭的环境就会变好。——盖茨说,在你强大之前,不要太在意你的自尊,没有人在意你的自尊。

你要做的事情,专注让自己变强大,然后周围的人都会变友善。

而不是讨好,讨好获得的只有怜悯——而且不是所有人都会共情。

交易的江湖

有没有没有人际江湖的地方——交易。

除了交易很难外—只要你具备稳定获利的能力,交易几乎应有一切优点。

完全线上,没有交付环节,没有客户要服务,不需要销售或营销技巧。

更没有同事要讨好,没有上司要伺候。

策略在精不在多,有一两项武艺在身,足以行走江湖,忘情山水。

教学相长,通过输出倒逼学习与成长。

吾日三省吾身

突发的时间,打算原本既定的生活与工作节奏。

顺其自然,让自己偶尔停一会,发现也挺好。

这世界离了谁都一样转,不要认为自己多重要。

停下来想想,看看。

想起《世界尽头的咖啡馆》——

图片

你为什么来到这里?——你的PFE(Perpose For Existing)是什么?

你害怕死亡吗?

你满足吗?

我们大多数人活在别人定义的规则里。

好好学习,找份好工作,结婚,生娃,孩子教育…

在别人眼里,也许你是成功的,你应该是幸福的。

但,你满足吗?

你想过什么样的生活?

很多人如此害怕失业,不敢有一点点的,GAP时间?

在一些故事里,比如生病的蔡磊,如果再给他几年,他应该不会像之前那帮卖命工作和无趣生活。

想清楚自己要什么,想过什么样的生活,然后尽全力去追求。

历史文章:

想”以交易为生“,基础设施很重要。

quantlab5.1代码发布,含10+个策略以及期货实盘对接(代码+数据)

AI量化实验室——2024量化投资的星辰大海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/378263.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django创建子应用、追加导包路径、默认用户模型类、自定义用户模型类、

一、创建用户模块子应用 1.准备apps包&#xff0c;用于管理所有应用 2.在apps包下创建应用users 查看项目导包路径 提示&#xff1a;若要知道如何导入users应用并完成注册&#xff0c;需要知道项目导包路径 已知导包路径&#xff1a;project/meiduo已知 users应用所在目录&…

网络安全高级工具软件100套

1、 Nessus&#xff1a;最好的UNIX漏洞扫描工具 Nessus 是最好的免费网络漏洞扫描器&#xff0c;它可以运行于几乎所有的UNIX平台之上。它不止永久升级&#xff0c;还免费提供多达11000种插件&#xff08;但需要注册并接受EULA-acceptance–终端用户授权协议&#xff09;。 它…

visual studio开发C++项目遇到的坑

文章目录 1.安装的时候&#xff0c;顺手安装了C模板&#xff0c;导致新建项目执行出问题2.生成的exe&#xff0c;打开闪退问题3.项目里宏的路径不对&#xff0c;导致后面编译没有输出4. vs编译ui&#xff0c;warning跳过&#xff0c;未成功5.vs编译.h&#xff0c;warning跳过&a…

【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示DS1307 RTC时间数据

LCD ST7789显示DS1307 RTC时间数据 文章目录 LCD ST7789显示DS1307 RTC时间数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS1307 RTC 集成电路构建简单的实时时钟和日历 (RTCC),其中时间和日期打印在 ST7789 TFT 显示模块上。 ST7789 TFT 模块包…

图像处理:使用 OpenCV-Python 卡通化你的图像(2)

一、说明 在图像处理领域&#xff0c;将图像卡通化是一种新趋势。人们使用不同的应用程序将他们的图像转换为卡通图像。如今&#xff0c;玩弄图像是许多人的爱好。人们通常会点击图片并添加滤镜或使用不同的东西自定义图像并将其发布到社交媒体上。但我们是程序员&#xff0c;…

用node.js写一个简单的图书管理界面——功能:添加,删除,修改数据

涉及到的模块&#xff1a; var fs require(‘fs’)——内置模块 var ejs require(‘ejs’)——第三方模块 var mysql require(‘mysql’)——第三方模块 var express require(‘express’)——第三方模块 var bodyParser require(‘body-parser’)——第三方中间件 需要…

【论文阅读】MCTformer+:弱监督语义分割的多类令牌转换器

【论文阅读】MCTformer:弱监督语义分割的多类令牌转换器 文章目录 【论文阅读】MCTformer:弱监督语义分割的多类令牌转换器一、介绍1.1 WSSS背景1.2 WSSS策略 二、联系工作2.1 弱监督语义分割2.2 transformers的可视化应用 三、MULTI-CLASS TOKEN TRANSFORMER3.1 Multi-class t…

自建Web网站部署——案例分析

作者主页: 知孤云出岫 目录 作者主页:如何自建一个Web网站一、引言二、需求分析三、技术选型四、开发步骤1. 项目初始化初始化前端初始化后端 2. 前端开发目录结构示例代码App.jsHome.js 3. 后端开发目录结构示例代码app.jsproductRoutes.jsProduct.js 4. 前后端连接安装axio…

硕博电子智能控制器、触摸显示屏在集装箱跨运车上的应用

港口跨运车&#xff0c;又称跨运车或轮胎式龙门吊(RTG)&#xff0c;专门用于集装箱码头的装卸和搬运作业&#xff0c;能够迅速完成集装箱在码头前沿、堆场区域以及仓库之间的运输和堆垛&#xff0c;大幅度缩短了装卸周期&#xff0c;提高了港口物流周转效率。 现代跨运车往往配…

LabVIEW扬尘控制系统

设计了一套基于LabVIEW的扬尘控制系统&#xff0c;通过监测TsP&#xff08;总悬浮颗粒物&#xff09;浓度、风向和摄像头视频&#xff0c;实现对环境的综合监控和扬尘控制。系统可以自动判断扬尘位置&#xff0c;并驱动抑尘设备进行抑尘。硬件选用NI cDAQ-9178数据采集模块、Om…

Go语言---HTTP编程基础(简单版百度贴吧爬虫)

网络爬虫 网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等&#xff0c;可以自动化浏览网络中的信息&#xff0c;当然浏览信息的时候需要按照我们制定的规则进行&#xff0c;这些规则我们称之为网络爬虫算法。使用Python可以很方便地编写出爬虫程序&#xff0c;进行互联网信息的…

深入理解PostgreSql域类型(Domain),灵活定义数据约束,让表结构设计更加严谨

在PostgreSQL中&#xff0c;域&#xff08;Domain&#xff09;是一种用户定义的数据类型&#xff0c;它基于系统内已存在的数据类型&#xff0c;并可以附加约束条件。使用域可以增强数据的完整性和一致性&#xff0c;因为它允许开发者对特定列设定更为具体的规则&#xff0c;比…

科技出海|百分点科技智慧政务解决方案亮相非洲展会

近日&#xff0c;华为非洲全联接大会在南非约翰内斯堡举办&#xff0c;吸引政府官员行业专家、思想领袖、生态伙伴等2,000多人参会&#xff0c;百分点科技作为华为云生态合作伙伴&#xff0c;重点展示了智慧政务解决方案&#xff0c;发表《Enable a Smarter Government with Da…

socket功能定义和一般模型

1. socket的功能定义 socket是为了使两个应用程序间进行数据交换而存在的一种技术&#xff0c;不仅可以使同一个主机上两个应用程序间可以交换数据&#xff0c;而且可以使网络上的不同主机间上的应用程序间进行通信。 2. 图解socket的服务端/客户端模型

简单一阶滤波器设计:matlab和C实现

一、简单一阶滤波器的模型 二、示例 得: y(n)-0.9y(n-1)=x(n)+0.05x(n-1),即:y(n)=0.9y(n-1)+x(n)+0.05x(n-1) 已知:,并且有: A. 假设输入序列有N=100个点 B. 系统初始状态为0,即y(-1)=0 C. 输入序列是因果序列,

IDEA快速生成项目树形结构图

下图用的IDEA工具&#xff0c;但我觉得WebStorm 应该也可以 文章目录 进入项目根目录下&#xff0c;进入cmd输入如下指令&#xff1a; 只有文件夹 tree . > list.txt 包括文件夹和文件 tree /f . > list.txt 还可以为相关包路径加上注释

C++ 入门基础:开启编程之旅

文章目录 引言一、C的第⼀个程序二、命名空间1、namespace2、namespace的定义 三、C输入 与 输出四、缺省参数五、函数重载六、引用1、引用的概念和定义2、引用的特性3、指针和引用的关系七、inline八、nullptr 引言 C 是一种高效、灵活且功能强大的编程语言&#xff0c;广泛应…

为ppt中的文字配色

文字的颜色来源于ppt不可删去的图像的颜色 从各类搜索网站中搜索ppt如何配色&#xff0c;有如下几点&#xff1a; 1.可以使用对比色&#xff0c;表示强调。 2.可以使用近似色&#xff0c;使得和谐统一。 3.最好一张ppt中&#xff0c;使用的颜色不超过三种主要颜色。 但我想强调…

33.异步FIFO IP核的配置、调用与仿真

&#xff08;1&#xff09;异步FIFO的配置过程&#xff1a; ps&#xff1a;异步fifo相比较同步fifo少一个实际深度 &#xff08;2&#xff09;异步FIFO的调用: module dcfifo (input wr_clk ,input rd_clk ,input [7:0] …

泉盛UV-K5扩容2Mbit EEPROM

泉盛UV-K5扩容2Mbit EEPROM 步骤 分离前面板与背板。 拆下电池&#xff0c;底部有个空隙&#xff0c;从缝隙撬开背板。分离前面板时注意喇叭连接线&#xff0c;不要扯断了。 分离屏幕。 先从箭头位置向上挑起&#xff0c;屏幕稍微松动即可左右晃动&#xff0c;直至完全取出。注…