All I am trying to do is grab the open -> submit a limit order -> set a take profit and stop loss.
But for some reason this thing ends up short?
def initialize(context):
context.stock = symbol('AA')
context.TP = 1.02
context.SL = .90
schedule_function(record_first_bar, date_rules.week_start(), time_rules.market_open())
schedule_function(long_entry, date_rules.week_start(), time_rules.market_open())
set_commission(commission.PerTrade(cost=0))
#set_slippage(slippage.FixedSlippage(spread=0))
def record_first_bar(context, data):
context.first_min_close = data.current(context.stock, 'open')
def long_entry(context, data):
order_target_percent(context.stock, .33, style=LimitOrder(context.first_min_close))
def close_profitable_longs(context, data):
is_long = (context.portfolio.positions[context.stock].amount > 0)
if (is_long):
profit = (context.first_min_close * context.TP)
stop = (context.first_min_close * context.SL)
if (profit <= data.current(context.stock,'price')):
order_target_percent(context.stock, 0)
if (stop >= data.current(context.stock,'price')):
order_target_percent(context.stock, 0)
def handle_data(context, data):
close_profitable_longs(context, data)