from vnpy.app.cta_strategy.backtesting import BacktestingEngine
from vnpy.app.cta_strategy.strategies.boll_channel_strategy import BollChannelStrategy
from vnpy.trader.constant import Interval
from datetime import datetime

if __name__ == '__main__':

    # 回测引擎初始化
    engine = BacktestingEngine()

    # 设置交易对产品的参数
    engine.set_parameters(
    vt_symbol="XBTUSD.BITMEX",  #交易的标的
    interval=Interval.MINUTE,
    start=datetime(2018, 1, 1),  # 开始时间
    rate=7.5/10000,  # 手续费
    slippage=0.5,  #交易滑点
    size=1,  # 合约乘数
    pricetick=0.5,  # 8500.5 8500.01
    capital= 100000,  # 初始资金
    end=datetime(2018, 6, 1)  # 结束时间
    )

    # 添加策略
    engine.add_strategy(BollChannelStrategy, {})

    # 加载
    engine.load_data()

    # 运行回测
    engine.run_backtesting()

    # 统计结果
    engine.calculate_result()

    # 计算策略的统计指标 Sharp ratio, drawdown
    engine.calculate_statistics()

    # 绘制图表
    engine.show_chart()