python高频交易策略_VNPY中 Tick级别准高频交易简单策略

本文介绍了如何在VNPY框架下实现一个基于Tick数据的准高频交易策略。策略根据过去10个Tick的买卖量对比决定开仓方向,使用市价下单并设置反向止损单。在开盘时间运行,收盘前自动平仓。文章还讨论了策略的优化,包括将止损单改为限价单和加入订单状态的同步锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VNPY中,大多策略都是基于bar分钟级别;国内tick是一秒两笔,频率不算太高。这里尝试做了一个Tick基本准高频交易策略,只是为了实现思路。可以回测,不要直接用。。

回测时候记得把回测模式改为TICK_MODE, 数据库改为TICK_DB_NAME,还有setStartDate时候initdays设为0,不需要回读历史天数,只需要当天数据; 另外TICK回测超过一天系统就报错内存不够, 所以最好一天就够。

还有,把

currentTime改为开盘时间, 因为策略只在开盘时间运行,收盘前会自动平仓。

入场:

每次读

Tick

,分析过去

10

tick

的的总计,如果买量大于卖量,开多单

;反之空单

下单价格是当前tick市价;

止损:下单同时开反向2个价位的阻止单;

离场:下次TICK读取时候,如果已经是买入价格正向3个点,再次判断买卖量比,如果已经不符合,市价卖出;如果还是符合原来量比就极小持有,清掉之前阻止单,改挂当前价位反向2个点阻止单。

7

-24

更新,具体代码更新等验证后更新:

更改

stoporder

止损单为

limit order

限价单,这样更为快速;放在

ontrade()

,一旦主动交易确认发生后,发出这个止损

limit order

onorder()

加入,一旦发现发出交易没有完成,还在挂单,取消

新增一个类全局变量级别的锁,当有

order

挂单或者没有

order

发出单没有返回信息时候,这个锁关闭,不再开新单;避免多个单同时阻塞。

# encoding: UTF-8

from __future__ import division

from vnpy.trader.vtGateway import *

from datetime import datetime, time

from vnpy.trader.vtObject import VtBarData

from vnpy.trader.vtConstant import EMPTY_STRING

from vnpy.trader.app.ctaStrategy.ctaTemplate import (CtaTemplate,

BarGenerator,

ArrayManager,

TickArrayManager)

########################################################################

class TickOneStrategy(CtaTemplate):

"""基于Tick的交易策略"""

className = 'TickOneStrategy'

author = u'BillyZhang'

# 策略参数

fixedSize = 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值