VeighNa量化社区
你的开源社区量化交易平台
snail's Avatar
Member
离线
6 帖子
声望: 4

我直接在rqdata.py改了下面内容,假装rqdata就是jqdata,避免其他地方代码可能的代码修改。还没有全面考虑,上期的合约在回测中试过是OK的

def to_rq_symbol(self, symbol: str, exchange: Exchange):
    """
    CZCE product of RQData has symbol like "TA1905" while
    vt symbol is "TA905.CZCE" so need to add "1" in symbol.
    """
    exchanges = {Exchange.CFFEX: 'CCFX',
                 Exchange.INE: 'XINE',
                 Exchange.SHFE: 'XSGE',
                 Exchange.CZCE: 'XZCE',
                 Exchange.DCE: 'XDCE',
                 Exchange.SZSE: 'XSHE',
                 Exchange.SSE: 'XSHG'}

    if exchange is Exchange.CZCE:
        for count, word in enumerate(symbol):
            if word.isdigit():
                break

        # Check for index symbol
        time_str = symbol[count:]
        if time_str in ["88", "888", "99", '9999']:
            return symbol

        # noinspection PyUnboundLocalVariable
        product = symbol[:count]
        year = symbol[count]
        month = symbol[count + 1:]

        if year == "9":
            year = "1" + year
        else:
            year = "2" + year

        rq_symbol = f"{product}{year}{month}".upper()
    else:
        rq_symbol = symbol.upper()

    return f"{rq_symbol}.{exchanges[exchange]}"

VNTrader wrote:

非常感谢分享精神,非常谢谢。
客气,VNPY这么多代码都分享了!

发现一些错误,再次更新链接: https://pan.baidu.com/s/1vbMBfxxHMZqkIyM80vZCNA 提取码: cdce

原来策略中的cta_engine在回测时就是backtesting_engine,望文生义怪不得总有些地方看不明白。不过现在也没有100%看明白,靠不停在代码中加打印验证自己的理解[捂脸] 但是回测流程应该是画(懵)对了哈哈

用Python的交易员 wrote:

哈哈哈,不容易啊,给你加个精华

一星期不看代码,脑袋里几乎又一瓶浆糊。错综复杂的关系,大神还在各种扩展、调整、优化,佩服!

囫囵吞枣大概梳理完了回测部分,接下来结合实例认真过一遍:

链接: https://pan.baidu.com/s/1p7876XHLscvKwlDVYFLCQA 提取码: fwdu

思维导图文件,有兴趣的下载后继续: https://pan.baidu.com/s/1Mj9LP8i4dTG0RfXTFAuKAg 提取码: hfxv

画了一个周末,头晕了,简直就是个迷宫,放一放先...
description

from vnpy.trader.app.ctaStrategy.ctaBacktesting import BacktestingEngine

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】