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

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

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
股票回测是量化交易非常重要的一环,它可以通过历史数据对交易策略进行模拟和评估,从而评估策略可行性和优劣性。在Python,有很多开源的量化交易框架可以用来进行股票回测,如zipline、backtrader等。 下面是一个使用zipline框架进行简单交易策略回测的例子: 1. 安装zipline ```python pip install zipline ``` 2. 编写交易策略代码 ```python from zipline.api import order_target_percent, record, symbol def initialize(context): context.asset = symbol('AAPL') def handle_data(context, data): # 获取过去10天的收盘价 prices = data.history(context.asset, 'price', 10, '1d') # 计算平均价 mean_price = prices.mean() # 如果当前价格低于平均价,则买入 if data.current(context.asset, 'price') < mean_price: # 调整持仓比例至100% order_target_percent(context.asset, 1.0) # 则卖出 else: # 调整持仓比例至0% order_target_percent(context.asset, 0.0) # 记录当前持仓比例 record(position=context.portfolio.positions[context.asset].amount) ``` 3. 运行回测 ```python from zipline import run_algorithm from zipline.api import symbol from datetime import datetime start = datetime(2016, 1, 1) end = datetime(2017, 1, 1) result = run_algorithm( start=start, end=end, initialize=initialize, capital_base=10000, handle_data=handle_data, bundle='quandl' ) ``` 在上述代码,我们定义了一个简单的交易策略,即如果当前价格低于过去10天的平均价,则买入,则卖出。然后我们使用zipline框架进行回测,设定回测开始和结束时间、初始资本、数据来源等参数,最终得到回测结果。 需要注意的是,这只是一个简单的例子,实际的交易策略可能会更加复杂,需要考虑更多的因素。另外,在进行股票回测时,也需要注意避免过度拟合或过度优化,以免出现回测虚高的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值