量化进阶——量化交易策略之羊驼和均线策略

量化交易——羊驼交易法则 一、羊驼交易法则 1、羊驼交易原理   起始时随机买入N只股票,每天卖掉收益率最差的M只,再随机买入剩余股票池的M只。   总结:随机选股,周期调仓。   原理:物竞天择,找出最强的好股票。(玄学) 2、改进策略   买入历史收益率最低的N只股票,调仓日留下反转程度大的股票,卖掉表现最差的M只股票,再买入收益率最低的M只股票。 二、羊驼交易实现 from jqdata import *... 阅读详情

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

京东金融官方资讯QQ群:456448095 有什么想咨询的都可以来询问我们

相当于加了一个开关,站在40日均线上,就执行羊驼策略,否则,就空仓。

源码:

import random

import numpy as np

import pandas as pd

from pandas import Series,DataFrame

import scipy.stats as stats

import math

# 设置股票池,本程序中为所有沪深300的股票

stocks = get_index_stocks('000300.XSHG')

#求出股票池中有多少股票

num=len(stocks)

set_universe(stocks)

#设置benchmark,默认为沪深300

#set_benchmark('510050.XSHG')

#设置回测条件

set_commission(PerTrade(buy_cost=0.0008, sell_cost=0.0015, min_cost=5))

set_slippage(FixedSlippage(0))

#设置初始买入多少只股票

num_of_stocks=10

#设置每次更新时替换多少只股票

num_of_change=3

#设置计算几日收益率

period=2

#用一个列表来保存每天持有的股票代码

stockshold=[]

#判断参数输入是否符合条件,如果不符合,则重置为默认值

if num_of_stocks>num:

log.info('too large num_of_stocks')

num_of_stocks=10

elif num_of_change>num_of_stocks:

log.info('too large num_of_change')

num_of_change=1

num_MA=40

security = '000300.XSHG'

#预处理数据,将没有数据的股票剔除,同时加入收益率

#构成一个列索引为股票名,收益率一行的索引为

#'return'的dataframe,并返回这个dataframe

def process():

#取出每只股票period天的收盘价格

stocks_info=history(period,'1d','close')

#去除信息不全的数据

stocks_info.dropna(axis=0,how='any',thresh=None)

#取出昨天和period天之前的收盘价,计算收益率

a1=list(stocks_info.iloc[0])

a2=list(stocks_info.iloc[period-1])

a1=np.array(a1)

a2=np.array(a2)

#用一个dataframe来保存所有股票的收益率信息

stocks_return=DataFrame(a2/a1,columns=['return'],index=stocks_info.columns)

stocks_info=stocks_info.T

#把收益率的数据加到相应的列

stocks_info=pd.concat([stocks_info,stocks_return],axis=1)

#将股票信息按照收益率从大到小来存储

stocks_info=stocks_info.sort(columns=['return'],ascending=[False])

#返回处理好的dataframe

return stocks_info#股票入池

def BuyStocks(stocks_info,cash):

#计算现在持有的股票数

current_num=len(stockshold)

stocks_info=stocks_info.T

#将已持有的股票从股票池中剔除

for i in range(0,current_num):

if stockshold[i] in stocks_info.columns:

del stocks_info[stockshold[i]]

stocks_info=stocks_info.T

#计算在每只股票上可以支付的现金

cash=cash/num_of_stocks-current_num

for i in range(0,num_of_stocks-current_num):

#取得股票当前的价格

current_price=stocks_info['current_price'][i]

#判断是否有价格数据

if math.isnan(current_price)==False:

#计算可以每只股票可以购买的数量

num_of_shares=int(cash/current_price)

if num_of_shares>0:

order(stocks_info.index[i],+num_of_shares)

log.info('buying %s' %(stocks_info.index[i]))

#将购买的股票代码加到stockhold中

stockshold.append(stocks_info.index[i])

#股票出池

def SellStocks(stocks_info,num_of_change):

stocks_hold=DataFrame()

current_num=len(stockshold)

'log.info('here' % (current_num))'

#用一个dataframe来保存持有的股票的信息

for i in range(0,current_num):

stocks_hold=pd.concat([stocks_hold,stocks_info.loc[stockshold[i]]],axis=1)

stocks_hold=stocks_hold.T

#在持有的股票数不为0时,将持有的股票信息按照收益率大小从小到大排序

if current_num>0:

stocks_hold=stocks_hold.sort(columns=['return'])

#把收益率最低的股票卖空

for k in range(0,min(num_of_change,current_num)):

log.info(num_of_change)

#判断是否停牌

if stocks_hold['paused'][k]=='False':

order_target(stocks_hold.index[k],0)

log.info('Selling %s' % (stocks_hold.index[k]))

#在stockshold中去除已经卖空的股票的信息

stockshold.remove(stocks_hold.index[k])

# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次

def handle_data(context, data):

stocks_info=process()

stocks_num=len(stocks_info.index)

#用一个列表来保存所有股票是否停牌的信息

pause=[]

for i in range(0,stocks_num):

if data[stocks_info.index[i]].paused==True:

pause.append('True')

else:

pause.append('False')

#将列表转换成dataframe以便加入到stocks_info中

paused=DataFrame(pause,columns=['paused'],index=stocks_info.index)

stocks_info=pd.concat([stocks_info,paused],axis=1)

#用一个列表来保存所有股票当前的价格信息

currentprice=[]

for i in range(0,stocks_num):

currentprice.append(data[stocks_info.index[i]].price)

current_price=DataFrame(currentprice,columns=['current_price'],index=stocks_info.index)

#将股票是否停牌,当前价格的信息添加到stocks_info中

stocks_info=pd.concat([stocks_info,current_price],axis=1)

#取得当前现金

cash=context.portfolio.cash

#判断MA的条件

close_price =history(num_MA,'1d', 'close', ['000300.XSHG'])

Closemean=close_price[security].mean()

# 取得当前价格

Current_close = close_price.iloc[-1,-1]

log.info('close %s' % (Current_close))

log.info('mean %s' % Closemean)

if Current_close > Closemean:

#执行卖出股票的函数

SellStocks(stocks_info,3)

#执行买入股票的函数

BuyStocks(stocks_info,cash)

elif Current_close <>

SellStocks(stocks_info,10)

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

大模型在金融量化策略中的实践与优化 量化交易作为金融科技的核心领域,正经历AI技术的深度变革。本文从大模型技术原理切入,解析检索增强生成(RAG)架构如何平衡计算成本与知识时效性,特别分享金融知识图谱构建与多智能体系统设计经验。通过OpenBB等开源工具实战演示,展示如何将生成式AI应用于策略回测、风险控制等核心场景,并针对金融领域特有的数据合规、模型幻觉等问题提供工程解决方案。对于希望融合AI与量化交易的开发者,文中涉及的FinGPT应用、向量数据库技术等热词方向具有重要参考价值。 阅读详情

相关推荐

python全栈工程师要学些什么?

python全栈工程师要学些什么?

xiangxue666的博客 1443

[QUANTAXIS量化分析]羊驼策略1

羊驼策略1 基本原理 在本策略中,每天按照收益率从小到大对股票池中的所有股票进行排序,起始时买入num_of_stocks只股票,然后每天在整个股票池中选出收益率前num_of_stocks,如果这些股票已持有,则继续持有,如果未持有则买入,并卖掉收益率不是排在前num_of_stocks的股票 策略实现 选取市盈率在0~20之间的股票,作为待选股(若用所有股票,计算量过于庞大),一共33...

weixin_39220714的博客 3281

羊驼交易系统

听说我们的神兽草泥马,哦不,羊驼,能选股? 美国“旧金山纪事报”曾做过大猩猩选股实验,让大猩猩随机挑选出5只股票。发现这个股票组合比《华尔街日报》8位知名分析师精心计算分析挑选的5只股票组合表现还好!2014年甘肃卫视的《马上知道》栏目中,节目组让羊驼随机选择一堆股票进行持仓,然后每天卖掉持有的股票中收益率最差的一只,再买入羊驼随机选择的一只。结果也得到了很可观的收益率!是不是很神奇! 稍加思考,我们可以发现其实这是一个将动量因子和遗传算法(这是啥?)相结合的策略。听上去很高深的样子,别急,我们先来看看

JanLEE 711

金融量化分析【day113】:羊驼策略

零、动量策略VS反转策略 1、实现代码 # 导入函数库 import jqdata import pandas as pd import numpy as np import datetime import math def initialize(context): set_option('use_real_price', Tru...

weixin_30641465的博客 934

【深度学习新浪潮】基于AI的量化投资入门介绍

入门基于AI的量化投资需循序渐进:先夯实数学、编程和金融基础,再学习机器学习与大模型技术,通过实战项目积累经验,并持续关注行业动态。关键是将理论与实践结合,从简单策略开始,逐步挑战复杂模型,同时注重风险管理和合规意识。通过参与社区、学习头部机构经验,并利用高效工具,可加速从新手到专业量化从业者的成长。

专注:太空算力、AI infra、异构调度、大模型成本工程 484

羊驼策略.html

羊驼策略.html

量化策略经典战法——羊驼策略初步研究一

作者:剑雪 阅读原文:http://club.jr.jd.com/quant/topic/854721 京东金融官方资讯QQ:3414182370 有什么想问的想说的都可以来参与!还有机会获取奖品! 羊驼策略到底是个什么鬼?这还要从美国《旧金山纪事报》曾做过大猩猩选股实验说起。他们让大猩猩随机选择写有股票代码的纸板,一共选择了5支。然后,用大猩猩挑选的股票组合与《华尔街日报》8位知名分析师精

JDquant的博客 6712

LightGBM学习笔记

LightGB学习笔记1. lightgbm概述1.1 lightgbm介绍1.2 lightgbm和xgboost对比2 .直方图算法及改进2.1 直方图算法2.2 直方图算法改进2.2.1 GOSS算法3.树的生长策略4.系统设计5. 实战 lightgbm是基于boosting的学习框架,使用的是基于决策树的学习算法,具有更快的训练速度、更低的内存使用、更高的正确率、并且能够支持并行化学习,可以用来处理大规模数据,本文主要是针对学习视频https://www.bilibili.com/video/BV

一一xi的博客 3304

【量化干货合集】你想要的,都在这里!

【量化干货合集】你想要的,都在这里!量化的春风吹拂下,我想,不管是在校的学霸学酥、炒股的程序猿哥哥, 还是股市沉浮多年正在寻找新的突破口的你,都值得拥有这样一份全面的资料。绝对的干货!(以下很多策略均包含源码分享供参考,欢迎大家多多交流谈论) 资料分享Python、研究报告、计量经济学、投资书籍、R语言等!(Book+Video)推荐一些Python入门学习资料(持续添加中…)Python编程【量化

shuigge的博客 5035

3D点云修复实战:用PCN网络快速补全缺失的激光雷达数据(附代码)

本文详细介绍了PCN(Point Completion Network)网络在3D点云修复领域的实战应用。针对激光雷达数据常见的缺失问题,PCN通过端到端的深度学习架构,直接处理原始点云,实现由粗到精的快速补全。文章深入解析了其核心思想与编码器-解码器架构,并提供了完整的环境搭建、数据准备、模型实现、训练评估及在真实场景下的优化策略与代码示例,为自动驾驶、机器人等领域的开发者提供了高效的数据修复解决方案。

weixin_29041195的博客 392

从圆形到椭圆:CenterNet中高斯热图半径的自适应优化策略

本文深入探讨了CenterNet目标检测模型中高斯热图生成策略的优化,针对传统圆形高斯核在处理长宽比差异大目标时的局限性,提出了自适应椭圆高斯核的解决方案。通过数学推导和代码实战,详细阐述了如何根据目标边界框尺寸动态计算椭圆长短轴半径,生成更贴合目标几何形状的热图监督信号,从而有效提升模型,尤其是对无人机、车辆等不规则目标的定位精度。

alice7model的博客 985

从技术分析到认知智能:AI量化交易的技术演进与实践路径

在金融市场的数字革命浪潮中,AI量化交易正从简单的技术指标分析,逐步演进为融合多模态数据、强化学习和大语言模型的复杂认知系统。这一演进不仅改变了传统交易策略的构建方式,更重新定义了人机协同的投资决策模式。 ## 技术分析时代的基石:双均线策略的工程化实现 双均线策略作为量化交易的入门级方法,其核心在于捕捉短期与长期趋势的交叉信号。在技术分析框架下,这一策略的工程实现需要考虑诸多细节参数。项目的

gitblog_00489的博客 1017

使用sysbench对Oracle做基准测试(-) 安装篇

sysbench是一款开源的多线程性能测试工具, 可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。

道行尚浅(老道)的博客 7811

TradingAgents-CN智能交易框架:5分钟快速上手指南

在AI技术快速发展的今天,基于多智能体LLM技术的TradingAgents-CN框架为中文用户提供了一个强大的股票分析学习平台。无论你是金融科技爱好者、量化交易初学者,还是想要了解AI如何辅助投资决策的普通投资者,这个框架都能帮助你系统化地学习如何使用人工智能进行合规的股票研究与策略实验。 **核心关键词**:TradingAgents-CN、智能交易框架 **长尾关键词**:多智能体LL

gitblog_00593的博客 438

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 249

IAR许可证Generation 18代际不匹配问题解析与解决

IAR Embedded Workbench 的许可证机制采用‘代际(Generation)’模型,而非简单版本号匹配——这是一种基于数字签名算法、加密协议和硬件绑定策略演进的授权安全体系。Generation 18 是 v9.30 及以上版本强制要求的许可代际标准,对应 ECDSA 签名与增强型硬件指纹校验,旨在提升防破解能力与平台适配性。当旧版许可证(如 Generation 16/17)被用于新 IDE 时,启动器会在本地完成代际校验并直接拦截,导致‘The generation feature is

weixin_34203832的博客 344

TradingAgents-CN:3分钟极速部署的AI智能交易框架终极指南

在人工智能技术快速发展的今天,传统股票分析方式正面临革命性变革。TradingAgents-CN作为基于多智能体LLM技术的中文金融交易框架,为投资者提供了全新的智能决策工具。这个开源框架不仅融合了最新的大语言模型技术,还针对中文市场进行了深度优化,支持A股、港股、美股的全方位智能分析。无论你是量化交易新手还是经验丰富的金融从业者,本指南都将帮助你快速掌握这个AI智能交易框架的部署与应用技巧。

gitblog_00448的博客 306

库存管理系统项目部署方案(基于jdk17)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

程序员诚哥 6370

faceai 项目 OpenCV 环境搭建全指南:Windows 与 Linux 下 Python 3.x 的安装、验证与排错

本文以 faceai 仓库的 [doc/settingup.md](https://link.gitcode.com/i/1f37480f6ac99da88f37413d61f11878) 为骨架,完整讲解 OpenCV 在 Python 3.x 上的环境搭建流程,覆盖 Windows 与 Linux(Ubuntu)两条主线:从 Python/numpy 安装、OpenCV 的 whl 或 pip

gitblog_00602的博客 874

探秘RK3588:OverlayFS挂载与固件升级全攻略

本文围绕RK3588芯片的OverlayFS文件系统挂载与固件升级技术展开详细阐述。首先介绍了RK3588芯片的卓越性能及其在嵌入式领域的广泛应用,重点分析了OverlayFS文件系统的分层架构原理及其在RK3588设备上的挂载方法,包括详细的挂载步骤、常见问题解决方案。随后详细阐述了RK3588设备在Windows和Linux环境下的固件升级方案,涵盖升级准备、具体操作流程及故障处理等内容。最后通过智能安防监控设备的实际案例,展示了OverlayFS挂载与固件升级技术的应用效果。文章为嵌入式开发者提供了全

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 286

OV9734 DATASHEET,完整规格书

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

终极指南:如何构建基于多智能体LLM的AI金融交易分析系统

TradingAgents-CN是一个基于多智能体LLM技术的中文金融交易框架,为投资者提供专业级的AI交易分析平台。这个开源项目将复杂的投资决策过程拆解为多个AI智能体协作完成,让普通投资者也能获得机构级的分析能力。无论你是金融从业者、AI技术爱好者,还是想要学习智能投资的新手,这篇文章将带你全面了解如何快速上手这个强大的AI交易分析工具。 ## 项目概览与价值主张 TradingAgent

gitblog_00638的博客 517

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

学习python的策略是什么?

众所周知,Python是一门很简单的编程语言,0基础也可以轻松学会,虽说如此,但是想要学好Python还是要一番苦工的,那么该如何学习Python呢?学习Python需要什么策略吗?Python上手很容易, 基本有其他语言编程经验的人可以在1周内学会Python最基本的内容,没基础的速度可能会慢点,那么学习Python都需要学习哪些内容呢?以下是老男孩教育Python全栈开发...

weixin_34187822的博客 104

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python要掌握哪些技术

如果对Python感兴趣的话,可以试试我的学习方法以及相关的小狗Python所有方向的学习路线这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。

x3088的博客 993

老男孩python全栈工程师_如何成为Python全栈工程师 一般要学哪些内容

前端开发核心能力:1. Html、CSS、JavaScript开发;2. Jquery\bootstrap开发;3. 前端框架VUE开发。四、WEB框架开发核心能力:1. Django框架基础;2. Django框架进阶;3. BBS+Blog实战项目开发;4. 缓存和队列中间件;5. Flask框架学习;6. Tornado框架学习;7. Restful API。五、 爬虫开发核心能力:1. 掌...

weixin_39723899的博客 175

从事python需要掌握哪些知识和技能_零基础想转行从事Python?需要掌握如下技能...

零基础python能找到工作吗?需要掌握哪些技能?对于大部分零基础学编程半路出家的人来说,无非是想改变现状换一门新职业,所谓技术大牛不过是比小白们更早接触编程罢了,选择好自己有兴趣的职业技能,并为之学习专业技术,提升自身的编程水平。首先要清楚,找到python开发工作的前提是你需要掌握相关的技能,对于python的职业需要掌握的技能如下:python开发技能一、python爬虫爬虫是将网络中的所有...

weixin_39638048的博客 204

Windows本地AI开发环境搭建:Ollama与OpenClaw实战指南

本地AI开发环境搭建是当前AI工程化的重要基础,其核心原理是通过容器化技术(如Docker)和模型管理工具(如Ollama)在本地部署AI能力。这种方案解决了云端服务的延迟、隐私和成本问题,特别适合需要快速迭代的AI应用开发场景。OpenClaw作为AI代理网关,实现了本地模型与通讯工具的无缝集成,配合Ollama的模型管理功能,可以构建支持自然语言处理、代码生成等任务的完整AI系统。在Windows平台上,通过WSL 2和Docker Desktop的组合,开发者能够高效利用硬件资源(如NVIDIA显卡)

weixin_34150830的博客 420
上一篇: 京东量化教你如何正确的股市期限套利
下一篇: 量化进阶——多策略量化回测实录(一)
JDquant
博客等级 码龄10年 326粉丝 56原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值