Начало
Напишем простой алгоритм. Чтобы понять какие методы в какой последовательности вызываются
def initialize(context):
log.info("initialize run")
schedule_function(rebalance,
date_rule=date_rules.month_start(),
time_rule=time_rules.market_open())
def rebalance(context, data):
log.info("rebalance run")
def before_trading_start(context, data):
log.info("before_trading_start run")
def handle_data(context, data):
log.info("handle_data run")
order(sid(24), 5)
Итак, один раз в начале вызовется метод initialize. Затем, каждый рабочий(торговый) день будут вызываться
- before_trading_start
- handle_data
А благодаря тому, что в методе initialize, мы специальной функцией schedule_function указали, что метод rebalance должен вызываться раз в месяц в начале месяца и в начале торгового дня. Поэтому в каждый первый торговый день месяца последовательность вызовов методов будет следующей:
- before_trading_start
- handle_data
- rebalance