代碼架構
以自己的回測框架為例。主要包含下面兩個文件

backtest/
backtest.py
broker.py
backtest.py主要提供BackTest這個類用于提供回測框架,暴露以下鉤子函數.

            
              def initialize(self):
    """在回測開始前的初始化"""
    pass

def before_on_tick(self, tick):
    pass

def after_on_tick(self, tick):
    pass

def before_trade(self, order):
    """在交易之前會調用此函數

    可以在此放置資金管理及風險管理的代碼
    如果返回True就允許交易,否則放棄交易
    """
    return True

def on_order_ok(self, order):
    """當訂單執行成功后調用"""
    pass

def on_order_timeout(self, order):
    """當訂單超時后調用"""
    pass

def finish(self):
    """在回測結束后調用"""
    pass

@abstractmethod
def on_tick(self, bar):
    """
    回測實例必須實現的方法,并編寫自己的交易邏輯
    """
    pass