vnpy记录日志

def cross_limit_order(self) -> None:

    # 处理限价单逻辑pass

def cross_stop_order(self) -> None:

    # 处理止损单逻辑pass

逐日盈亏:计算每日的盯市盈亏。

统计指标:计算策略的性能指标和风险指标。

def calculate_result(self) -> DataFrame:

    # 计算逐日盯市盈亏pass

def calculate_statistics(self, df: DataFrame = None, output=True) -> dict:

    # 计算策略统计指标    pass


CtaTemplate 是所有 CTA 策略的基类,你需要继承它来创建自己的策略。StopOrder 用于管理止损订单,TickData 和 BarData 分别表示 tick 数据和 K 线数据,TradeData 和 OrderData 分别表示成交数据和委托数据。BarGenerator 用于生成不同周期的 K 线数据,ArrayManager 用于管理 K 线数据的数组

on_bar()方法在每根新的分钟线数据生成时被触发。具体来说,当回测引擎或实盘交易接口接收到足够的 Tick 数据以生成一根新的分钟线数据时,会调用on_bar()方法,并将这根新的分钟线数据作为参数传递给该方法

on_bar()方法适用于基于分钟线数据的策略,例如移动平均线策略、布林带策略等。这些策略通常需要在每根新的分钟线数据生成时进行计算和决策

on_tick()方法在每次收到新的 Tick 数据时被触发。Tick 数据是交易所实时推送的行情数据,包含最新的成交价、买卖盘口等信息。在实盘交易中,on_tick()方法会频繁地被调用,因为市场数据是实时更新的

on_tick()方法适用于需要实时处理市场数据的策略,例如高频交易策略、套利策略等。这些策略需要在市场数据发生变化时立即做出反应

on_tick:新的 tick 数据更新时调用,将 tick 数据传递给 BarGenerator。

on_bar:新的 K 线数据更新时调用,将 K 线数据传递给 BarGenerator。

BacktestingEngine 类的 add_strategy 方法用于添加策略,load_data 方法用于加载历史数据,run_backtesting 方法用于运行回测,calculate_result 方法用于计算回测结果,calculate_statistics 方法用于计算回测的统计指标,show_chart 方法用于显示回测的图表。



1数据接收:网关接收到交易所的Tick数据,通过 EventEngine 推送 EVENT_TICK 事件

2策略处理:CTA策略的 on_tick 方法被触发,调用 BarGenerator 合成K线

3信号生成:合成K线触发 on_xxx_bar,计算指标并发出交易信号

4订单执行:调用 buy()/sell() 方法,通过 MainEngine 发送订单到网关

5回报处理:网关返回订单状态(成交、撤单等),触发 on_order/on_trade 回调

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。