Skip to content

Commit 3f221eb

Browse files
committedJun 14, 2017
add sell bracket
1 parent bdfe35a commit 3f221eb

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed
 

‎bt_with_prediction_lstm_bracket_order.py

+28-7
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ def log(self, txt, dt=None):
3636
print('%s, %s' % (dt.isoformat(), txt))
3737

3838
def notify_order(self, order):
39-
print('{}: Order ref: {} / Type {} / Status {}'.format(
40-
self.data.datetime.date(0),
41-
order.ref, 'Buy' * order.isbuy() or 'Sell',
42-
order.getstatusname()))
43-
44-
if order.status == order.Completed:
45-
self.holdstart = len(self)
39+
if order.getstatusname() not in ['Accepted', 'Submitted']:
40+
print('{}: Order ref: {} / Type: {} / Status: {} / Price: {:.4f}'.format(
41+
self.data.datetime.date(0),
42+
order.ref, 'Buy' * order.isbuy() or 'Sell',
43+
order.getstatusname(),
44+
order.price
45+
))
4646

4747
if not order.alive() and order.ref in self.orefs:
4848
self.orefs.remove(order.ref)
@@ -85,6 +85,27 @@ def next(self):
8585

8686
self.orefs = [o.ref for o in os]
8787

88+
if predicted_close < prev_predicted_close:
89+
close = self.data.close[0]
90+
p1 = close * (1.0 + self.p.limit)
91+
p2 = p1 + 0.02 * close
92+
p3 = p1 - 0.06 * close
93+
print('p1: {:.4f}, p2: {:.4f}, p3: {:.4f}'.format(
94+
p1,
95+
p2,
96+
p3
97+
))
98+
99+
valid1 = timedelta(self.p.limdays)
100+
valid2 = valid3 = timedelta(self.p.limdays2)
101+
102+
os = self.sell_bracket(
103+
price=p1, valid=valid1,
104+
stopprice=p2, stopargs=dict(valid=valid2),
105+
limitprice=p3, limitargs=dict(valid=valid3), )
106+
107+
self.orefs = [o.ref for o in os]
108+
88109
# if not self.position:
89110
# if predicted_close > prev_predicted_close:
90111
# self.order = self.buy()

0 commit comments

Comments
 (0)
Please sign in to comment.