加密货币

HowTrader:如何提升数字货币收益率100%?

wayne · 5月20日 · 2025年 · · 本文共3889个字 · 预计阅读13分钟26次已读

数字货币交易市场日益成熟,量化交易因其高效、自动化的特点,成为众多交易者的选择。HowTrader 是一款专为数字货币市场设计的开源量化交易框架,基于 VNPY 进行优化,修复了部分 BUG,增强了对 TradingView 信号的支持,并增加了 网格交易 等功能。本文将详细介绍 HowTrader 的功能、安装方法及使用示例,帮助新手快速上手.


HowTrader 的特点与优势

HowTrader 在 VNPY 的基础上进行了多项优化,使其更适合数字货币量化交易:

交易数据精度提升

  • OrderData (订单数据)、TradeData(成交数据)、ContractData(交易对信息)等核心数据结构采用 Decimal 而非 float,提高计算精度。

交易回调顺序优化

  • VNPY 先推送 on_order,后推送 on_trade,导致仓位计算可能滞后。HowTrader 先推送 on_trade,再推送 on_order,确保仓位信息的实时性。

交易网关优化

  • 增强了 断线重连 及 异常处理机制,提高系统稳定性。

支持 TradingView 信号对接

  • 允许通过 HTTP Webhook 接收来自 TradingView 的交易信号,实现自动化交易。

精简代码,减少依赖

  • 相较于 VNPY,删除了部分冗余代码,仅保留核心交易功能,降低学习成本,提高运行效率。

安装与环境配置

由于 HowTrader 依赖 pandasnumpy 等科学计算库,推荐使用 Anaconda 进行安装。

1. 安装 Anaconda

可通过官网下载 Anaconda 或 Miniconda

  • Anaconda 下载地址
  • Miniconda 下载地址

2. 安装 Git

HowTrader 源码托管在 GitHub,需要 Git 来进行克隆:

# Ubuntu/Debian 系统sudo apt install git# macOS 系统brew install git# Windows 用户请参考 Git 官网安装:[https://git-scm.com/downloads](https://git-scm.com/downloads)

3. 创建 Python 虚拟环境

HowTrader 推荐使用 Python 3.9:

conda create -n mytrader python=3.9conda activate mytrader

4. 安装 HowTrader

pip install git+https://github.com/51bitquant/howtrader.git

如需更新:

pip install git+https://github.com/51bitquant/howtrader.git -U

5. 检查安装

安装完成后,可以通过以下命令检查:

import howtraderprint(howtrader.__version__)

HowTrader 的基本使用

1. 启动主程序

创建 main.py 文件,输入以下代码:

from howtrader.trader.ui import create_qapp, MainWindowfrom howtrader.trader.engine import MainEnginefrom howtrader.event import EventEnginefrom howtrader.gateway.binance import BinanceSpotGateway
# 初始化qapp = create_qapp()event_engine = EventEngine()main_engine = MainEngine(event_engine)
# 添加 Binance 现货交易网关main_engine.add_gateway(BinanceSpotGateway)
# 创建主窗口main_window = MainWindow(main_engine, event_engine)main_window.showMaximized()
qapp.exec()

运行 python main.py,即可启动 HowTrader 主界面。


2. 开发交易策略

HowTrader 提供了基于 CTA(趋势跟随) 的策略框架,用户可自行开发策略。

示例:双均线交易策略

from howtrader.trader.object 
import BarDatafrom howtrader.trader.strategy 
import CtaTemplatefrom howtrader.trader.utility 
import ArrayManagerclass DualMA(CtaTemplate):    
author = "51bitquant"    
fast_window = 10    
slow_window = 20    
fast_ma = 0    
slow_ma = 0    
parameters = ["fast_window", "slow_window"]    
variables = ["fast_ma", "slow_ma"]    
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):        
super().__init__(cta_engine, strategy_name, vt_symbol, setting)        
self.am = ArrayManager()    
def on_init(self):       
self.write_log("策略初始化")        
self.load_bar(10)    
def on_bar(self, bar: BarData):        
self.am.update_bar(bar)        
if not self.am.inited:            
return        
self.fast_ma = self.am.sma(self.fast_window)        
self.slow_ma = self.am.sma(self.slow_window)       
if self.fast_ma > self.slow_ma:            
self.buy(bar.close_price, 1)        
elif self.fast_ma < self.slow_ma:            
self.sell(bar.close_price, 1)

HowTrader:如何提升数字货币收益率100%?

3. 运行回测

在 HowTrader 中,回测是评估策略效果的重要步骤,以下代码展示了如何进行回测:

from howtrader.app.cta_strategy.backtesting import BacktestingEngine
from datetime import datetime
from howtrader.trader.object import Interval
from strategies.dual_ma_strategy import DualMA

engine = BacktestingEngine()
engine.set_parameters(
    vt_symbol="BTCUSDT.BINANCE",
    interval=Interval.MINUTE,
    start=datetime(2021, 1, 1),
    end=datetime(2022, 1, 1),
    rate=0.0004,
    slippage=0.01,
    size=1,
    pricetick=0.01,
    capital=100000
)

engine.add_strategy(DualMA, {})
engine.load_data()
engine.run_backtesting()
df = engine.calculate_result()
engine.calculate_statistics()
engine.show_chart()

TradingView 信号对接

HowTrader 支持接收来自 TradingView 的交易信号,实现全自动化交易。

1.配置 Webhook 服务器

from flask import Flask, request
from howtrader.event import Event, EventEngine
from howtrader.trader.event import EVENT_TV_SIGNAL

app = Flask(__name__)
event_engine = EventEngine()

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    event = Event(EVENT_TV_SIGNAL, data)
    event_engine.put(event)
    return {"status": "success"}

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=9999)

2.在 TradingView 中添加 Webhook

  • 进入 TradingView,创建一个新策略
  • 选择 Webhook URL
  • 输入 http://your-server-ip:9999/webhook
  • 交易信号触发时,HowTrader 将自动执行对应的交易指令

总结

HowTrader 作为一款开源的数字货币量化交易框架,在 VNPY 的基础上进行了优化,支持多交易所、多策略,并可与 TradingView 结合使用,实现全自动化交易。对于量化交易爱好者,HowTrader 提供了一种高效、灵活的开发方式。

🔗 项目地址:https://github.com/51bitquant/howtrader

相关文章
暂无相关文章!
0 条回应

做什么都会有一个过程

  • Hot Post