零基础10分钟上手量化交易:几十行代码跑通第一个波段策略

2026-10-18 10:09:16 13阅读

先说说,什么是量化交易?简单来说,量化交易就是把交易想法写成明确的规则,再交给程序自动监控和判断。例如,我们可以告诉程序:价格高于最近 5 日平均价时提示买入,低于平均价时提示卖出。程序会自动读取行情、判断条件并给出信号,不需要一直盯着屏幕。收到提示后,再由自己打开券商软件手动下单。量化交易的基本过程只有三步:获取数据:读取价格、成交量等市场信息。制定规则:明确什么情况下买入,什么情况下卖出。信号提示:让计算机持续监控,并在条件满足时发出买卖提示。下面这种分时走势,常被股民形象地称为“一字断魂刀”:股价在极短时间内快速下跌,分时线几乎垂直落下。

图:股价在很短时间内从高位快速下跌,形成近乎垂直的分时线。这样的速度,仅靠人手查看行情、判断、输入价格再点击卖出,通常很难完成。程序却可以在条件触发后立即发出订单,还可以连续拆分订单、快速调整价格。这正是程序化交易的特点:速度快、执行统一、不会犹豫。需要说明的是,单凭一张分时图不能确定背后一定是哪一种量化策略,也可能与集中大单、流动性变化等因素有关。但它能直观说明,市场中的许多快速交易动作,已经远远超过普通手工操作的速度。最近我新开了一个专栏,准备和大家聊聊量化技术。很多人一听到“量化交易”,会觉得它很高深,需要复杂的数学模型和大量代码。其实量化入门并没有那么遥远。一套简单、明确的交易规则,可能只需要几十行代码就能实现。在这个专栏里,我会从程序员的角度,用尽量直白的方式,介绍量化工具的使用、策略代码的编写、回测方法和实用技巧。重点不是堆砌专业术语,而是带你先把工具用起来,再逐步理解代码和交易规则。本系列使用聚宽量化平台。第一篇就从零开始,带你快速创建一个策略、运行回测,并完成量化交易的第一次上手体验。

本专栏的核心观点:能做分时,但更建议做波段

量化当然可以使用分钟行情,甚至可以每分钟判断一次买卖条件。聚宽也提供分钟级回测功能。但是,能做分钟策略,不等于能够做好高频、精准的分时交易。免费版或一年几百元会员费的量化平台,主要价值是提供数据、研究环境、回测和信号提醒,不能把它当成机构使用的低延迟交易系统。分时策略对行情速度、网络延迟、成交价格、滑点和订单排队都很敏感。回测里看起来刚好买在低点、卖在高点,实际收到信号再手动操作时,价格可能已经发生变化。因此,过度追求分钟级的精确买卖点,往往并不可靠。对普通投资者和初学者来说,更合理的方式是做上升趋势中的波段操作:使用日线或较低频率的数据判断趋势。短期均线高于长期均线时,认为市场处于上升趋势。聚宽负责监控并提示信号,自己在券商软件中确认后下单。持有几天或更长时间,趋势破坏后再退出。这种方式不依赖几秒钟的速度,交易次数更少,也更适合“程序提示信号、人工完成下单”的使用方式。本文后面的示例策略,就是一个简单的上升趋势波段策略。搭建自己的量化分析系统,只需要完成 5 步:登录聚宽 → 新建策略 → 粘贴代码 → 运行回测 → 查看结果聚宽主要在浏览器中使用。刚开始不需要安装 Python,也不需要下载量化软件。官网:https://www.joinquant.com/

第 1 步:进入策略回测

注册并登录聚宽后,点击顶部菜单:量化研究平台 → 策略回测

也可以直接打开:https://www.joinquant.com/algorithm/index/list

第 2 步:新建策略

进入策略列表后,点击左上角的新建策略。

策略名称可以填写:

我的第一个量化策略

进入编辑器后,确认右上角选择的是Python3。

第 3 步:粘贴下面的代码

删除编辑器中的原代码,再粘贴下面这段:

from jqdata import *
def initialize(context):
    # 使用沪深300ETF作为练习标的
    g.security = '510300.XSHG'
    # 设置比较基准,并在每天10:00运行交易函数
    set_benchmark('000300.XSHG')
    set_option('use_real_price', True)
    run_daily(trade, time='10:00')
def trade(context):
    # 获取最近20个交易日的收盘价
    prices = attribute_history(
        g.security, 20, '1d', ['close'], skip_paused=True
    )
    if len(prices) < 20:
        return
    average_5 = prices['close'][-5:].mean()
    average_20 = prices['close'].mean()
    current_price = get_current_data()[g.security].last_price
    # 价格在5日均线上方,且5日均线高于20日均线时买入
    if current_price > average_5 > average_20:
        money = context.portfolio.total_value * 0.9
        order_target_value(g.security, money)
    else:
        order_target(g.security, 0)

这段代码只做一件事:判断当前是否处于上升趋势。当前价格高于 5 日均线,并且 5 日均线高于 20 日均线时,买入 90% 仓位。条件不再满足时卖出,等待下一次上升趋势。这是练习代码,目的是熟悉聚宽操作,不代表能够稳定盈利。如果不知道某个函数怎么用,可以打开聚宽 API 文档,按Ctrl + F搜索函数名:https://www.joinquant.com/help/api/help?name=api

第 4 步:设置并运行回测

第一次回测可以使用下面的设置:

设置建议值
开始日期2023-01-01
结束日期最近一个交易日
初始资金100000
频率每天
PythonPython3

按顺序操作:点击保存。点击编译运行。没有红色错误后,点击运行回测。等待页面显示“回测完成”。如果有红色报错,先查看右下角“错误”区域的最后几行。

第 5 步:查看回测结果

初学时先看 3 项即可:

指标简单理解
策略收益整个回测期间赚了或亏了多少
基准收益同期大盘表现,用来比较策略是否更好
最大回撤历史上从高点到低点最多跌了多少

然后打开交易详情,检查买卖时间是否符合代码规则。

截图中的收益数字来自演示策略,只用于说明页面位置,不代表收益承诺。

可选:开启模拟交易

回测能够正常运行后,可以进入:量化研究平台 → 模拟列表

点击新建模拟策略,选择刚才创建的策略。模拟交易不会使用真实资金,可以用来观察策略在真实交易时间中的运行情况。聚宽模拟交易支持通知功能。开启微信通知后,策略出现买入或卖出信号时,可以收到相应提示。本文建议按下面的方式使用:聚宽监控行情 → 策略产生信号 → 微信收到提示 → 人工确认 → 在券商软件手动下单这样,程序负责持续盯盘和判断规则,人只需要在收到信号后检查价格、仓位和市场情况,再决定是否下单。需要注意:聚宽提供的是策略信号和模拟结果,不代表真实订单已经成交。实际下单、撤单和资金管理都由自己操作。盘中刚开启微信通知时,当天可能不会推送,具体以模拟交易页面提示为准。信号只是交易参考,收到提示后仍应先确认,不要机械下单。量化交易并没有想象中那么高深,它的核心就是把自己的交易想法变成清晰的规则,再让程序持续监控和提示。几十行代码,就可以完成数据读取、趋势判断和买卖信号生成。对于普通投资者来说,没有必要追求看似精确的分钟级买卖点。免费版或低价会员平台更适合用来研究策略、回测历史和提醒信号,而不是进行低延迟高频交易。选择日线或较低频率,在上升趋势中寻找波段机会,通常更容易理解,也更符合手动下单的实际情况。

回测、模拟交易和信号提示都不代表未来收益,实际交易前请独立判断并控制风险。


作者:不脱发的程序猿
链接:https://www.aiddithome.com/p/dcfa78e9206cb.html
本作遵循 [CC BY 4.0 署名] 许可,版权归作者所有。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
3条评论
周五下班搞一搞
1楼 · 2026-10-18 10:11:46

量化不是玄学,先把最小闭环跑起来再谈优化,这篇就是那个闭环。

隔壁工位的好奇宝
2楼 · 2026-10-18 10:11:45

对新手很友好的入门路径,几十行代码跑通第一个策略,门槛确实低。

修啥都行二哥
3楼 · 2026-10-18 10:11:45

从零开始跑通波段策略,思路清楚,回测逻辑也交代了,值得跟着做一遍。