Skip to content

Conversation

@Bosma
Copy link

@Bosma Bosma commented Nov 30, 2016

Previously:
at line 376 a new order replaces the previous trailstop order with order price
new.order.price - order.threshold
since the order is being replaced, we can say
new.order.price != orderPrice
and in the long case, this means
new.order.price = previous_bar_high + order.threshold
therefore, the new order price on line 380 is:

price = new.order.price - order.threshold
      = previous_bar_high + order.threshold - order.threshold
      = previous_bar_high

Since, in the long case, the next bar is most likely under
the high of the previous bar, the order is fired and you sell
the top of the previous bar.
analogous for the short case.

So, the order.threshold subtraction on line 380 was removed, since
the threshold is already considered in line 366 and 368.

it would sell [buy] at the high [low] of a bar.

Previously:
at line 376 a new order replaces the previous trailstop order with order price
new.order.price - order.threshold
since the order is being replaced, we can say
new.order.price != orderPrice,
and in the long case, this means
new.order.price = previous_bar_high + order.threshold
therefore, the new order price on line 380 is:
price = new.order.price - order.threshold
      = previous_bar_high + order.threshold - order.threshold
      = previous_bar_high
Since, in the long case, the next bar is most likely under
the high of the previous bar, the order is fired and you sell
the top of the previous bar.
analogolous for the short case.

So, the order.threshold subtraction on line 380 was removed, since
the threshold is already considered in line 366 and 368.
@joshuaulrich
Copy link
Collaborator

If this corrects the OHLC case, it seems like it should also be applied to the BBO case. We currently subtract orderThreshold in L328, even though it's been accounted for in new.order.price in lines 300 and 314. Thoughts?

@Bosma
Copy link
Author

Bosma commented Dec 18, 2016

It looks like it also needs the change I submitted. I don't understand why lines 301 and 315 aren't uncommented, since if mvstop is true, new.order.price is always set to mktPrice - absThreshold. It would only be set to orderPrice is mvstop is false, but nothing happens in that case.

added commit to change that, too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants