🧠 量策派 自研的统计量化交易系统 · 每笔进出有数字理由 · OKX / Hyperliquid 查看 Quant Pro →
quant strategies

Veighna 教程:从零搭建你的量化交易策略实战指南

量策派 编辑部 发布 2026-06-19 · 3 分钟阅读 · 1317 字
Veighna 教程:从零搭建你的量化交易策略实战指南

Veighna 教程:从零搭建你的量化交易策略实战指南

如果你是量化交易领域的新手,或者正在寻找一个开源、功能强大的 Python 交易框架,那么 Veighna(原 vnpy)几乎是绕不开的名字。它由国内量化社区孵化,支持期货、股票、数字货币等多市场,核心优势在于事件驱动引擎 + 模块化策略开发。但很多用户卡在第一步:下载后怎么跑起来?策略怎么写?回测和实盘怎么衔接?本文用最直白的语言,带你走完一个完整的 Veighna 入门流程。

Veighna 安装与基础环境配置

Veighna 基于 Python 3.7+,推荐使用 Anaconda 管理环境。安装前请注意:不要直接在全局 Python 里装,否则依赖冲突会让你怀疑人生。

  1. 创建虚拟环境
    打开终端,运行:
    bash conda create -n veighna python=3.9 conda activate veighna

  2. 安装 Veighna
    官方推荐用 pip 安装完整版(含所有接口):
    bash pip install vnpy
    如果只想用核心功能,可以装 vnpy 基础包,再按需装接口(比如 vnpy_ctp 期货接口、vnpy_okx 数字货币接口)。

  3. 启动 Veighna Trader
    安装成功后,在终端输入:
    bash python -m vnpy
    此时会弹出 GUI 界面。第一次启动可能报错缺少数据库(默认用 SQLite,无需额外配置)。如果一切正常,你会看到左侧菜单栏:CTP、回测、策略等模块。

常见坑点:Windows 用户如果遇到 DLL 加载失败,通常需要安装 Microsoft Visual C++ Redistributable。Mac 用户注意 vnpy 对某些 C++ 扩展的兼容性,建议用 Docker 或 Linux 虚拟机。

编写第一个双均线策略(回测 + 参数优化)

Veighna 的策略逻辑写在 Python 类里,继承 CtaTemplate。我们以最常见的双均线金叉死叉为例,手写一个完整的策略。

策略代码模板

from vnpy_ctastrategy import CtaTemplate, BarGenerator, ArrayManager

class DoubleMaStrategy(CtaTemplate):
    author = "YourName"

    fast_window = 10   # 快线周期
    slow_window = 20   # 慢线周期

    def on_init(self):
        self.bg = BarGenerator(self.on_bar, 1, self.on_5min_bar)
        self.am = ArrayManager(size=100)

    def on_bar(self, bar):
        self.bg.update_bar(bar)

    def on_5min_bar(self, bar):
        self.am.update_bar(bar)
        if not self.am.inited:
            return

        fast_ma = self.am.sma(self.fast_window, array=True)
        slow_ma = self.am.sma(self.slow_window, array=True)

        if fast_ma[-1] > slow_ma[-1] and fast_ma[-2] <= slow_ma[-2]:
            self.buy(bar.close_price, 1)   # 开多
        elif fast_ma[-1] < slow_ma[-1] and fast_ma[-2] >= slow_ma[-2]:
            self.short(bar.close_price, 1) # 开空

回测运行步骤

  1. 在 Veighna Trader 界面中,点击左侧「回测」标签。
  2. 选择数据(比如从本地 CSV 导入或连接数据库),设置回测时间范围、初始资金、手续费。
  3. 在「策略」下拉框中选择 DoubleMaStrategy,调整参数(比如 fast_window 改成 5,slow_window 改成 30)。
  4. 点击「开始回测」。结束后查看净值曲线、最大回撤、夏普比率等指标。

优化技巧:Veighna 内置了参数优化功能。在回测界面勾选「优化」,设定参数范围(如 fast_window 从 5 到 20,步长 5),系统会自动遍历并输出最优组合。注意:优化过度容易过拟合,建议用样本外数据验证。

从回测到实盘:接口配置与风险控制

回测跑通后,很多人急着实盘。但 Veighna 的实盘和回测有本质区别:实盘需要对接交易所接口,且必须考虑滑点、网络延迟、资金管理

连接数字货币交易所(以 OKX 为例)

  1. 在 Veighna Trader 左侧菜单点击「系统」→「连接」→「OKX」。
  2. 输入你的 API Key、Secret、Passphrase(在 OKX 官网创建,权限至少勾选「交易」和「读取」)。
  3. 连接成功后,行情数据会自动推送,账户持仓和委托会显示在界面中。

注意:Veighna 的 OKX 接口支持 U 本位和币本位合约,但需要手动在代码中指定合约类型。如果你不熟悉 API 配置,或者希望更专注于策略本身,可以试试 Quant Pro 量化交易系统trade.medias-ai.cloud/zh/pro/)。它直接内置了 OKX 和 Hyperliquid 的实盘接入,无需手动配置接口,而且资金始终留在你的交易所账户,系统只负责机械执行——每 5 分钟评估一次行情,按净费后期望(net-fee EV)决定是否入场,每一步都有「决策台」记录,不是黑箱信号。

实盘风险控制建议

Veighna 本身不强制风控,需要你在策略中自行实现。核心几点:

  • 止损:在 on_bar 里判断当前价格是否跌破移动止损线,调用 self.sell() 平仓。
  • 仓位管理:用固定比例(如每次开仓占用总资金的 2%)而非固定手数。
  • 日亏损限额:在 on_trade 中累计当日盈亏,如果超过阈值,停止所有交易。

如果你觉得手动写风控逻辑太繁琐,Quant Pro 的「风险信封」功能已经帮你想好了:盈利目标、移动止损、回撤调速、日亏止血闸、KILL 急停一应俱全。亏损发生时先止血,再复盘。

常见问题 FAQ

Q1: Veighna 回测结果和实盘差异很大,怎么办?

大概率是回测没有考虑滑点和手续费。建议在回测设置中增加滑点(比如 1 跳)和手续费(按交易所实际费率)。另外,实盘的网络延迟会导致成交价偏离,可以考虑用限价单代替市价单。

Q2: 我是新手,Veighna 学起来太复杂,有没有更简单的替代方案?

Veighna 适合有一定 Python 基础、愿意折腾的用户。如果你想要一个开箱即用的方案,可以了解 Quant Pro 量化交易系统。它不需要写代码,通过图形化界面配置策略参数,且自带 AI 洞察套件(用你自己的 LLM Key),AI 负责复盘和问答,但交易决策不依赖 AI——完全基于统计核心的机械执行。

Q3: Veighna 支持哪些交易所?

官方内置了 CTP(期货)、OKX、Binance、BitMEX 等常见接口。社区还贡献了币安合约、Coinbase 等扩展包。如果你需要连接 Hyperliquid,可以自建接口或使用 Quant Pro(已原生支持 Hyperliquid 实盘接入)。

每周精选送到邮箱

周日一封邮件 · 本周深度文章 + 交易机会 + 策略更新