# Put any initialization logic here. The context object will be passed to
# the other methods in your algorithm.
def initialize(context):
schedule_function(buy, date_rules.every_day(), time_rules.market_open(minutes=30))
schedule_function(sell, date_rules.every_day(), time_rules.market_open(hours=1))
context.security=symbol('AAPL')
def buy(context, data):
current_price=data[context.security].price
cash=context.portfolio.cash
shares=int(cash/current_price)
order(context.security, shares)
def sell(context, data):
current_shares=context.portfolio.positions[context.security].amount
order(context.security, (current_shares*-1))
# Will be called on every trade event for the securities you specify.
def handle_data(context, data):
# Implement your algorithm logic here.
# data[sid(X)] holds the trade event data for that security.
# context.portfolio holds the current portfolio state.
# Place orders with the order(SID, amount) method.
# TODO: implement your own logic here.
#order(sid(24), 50)
pass
Over 4.5 years, this algorithm tested daily made 75%, tested minute by minute lost 71%. I was using this algorithm to learn the schedule_function. I tried to buy AAPL every day at 9:30 and sell it at 10:30. The minute data worked as expected. Please help me understand why the day data worked so differently. I have attached that backtest.