OrderType.SELL_TO_CLOSE after a certain profit/loss is hit?

H

hashy

Member
Hi. I'm working on my first Strategy to hopefully do some back testing. I have everything pretty much working except for the very end. I have what I'm calling signal1 defined and a order to buy:
AddOrder(OrderType.BUY_TO_OPEN, signal1, tickColor = GetColor(0), arrowColor = GetColor(0), name = "Long");

What I can't figure out is how to code a sell to close order after price hits my target or stop. For simplicity's sake let's say I want to sell to close once price is $1.00 (up or down) from my entry price.

AddOrder(OrderType.SELL_TO_CLOSE ???

I assume it's going to be something with entryprice, close, and/or ohlc, but I'm new to ThinkScript and can't figure it out. Any help is greatly appreciated. Thank you.
 
T

tomsk

Well-known member
VIP
Assuming you have a variable called entryPrice that calculates your entry price
You now define your sell condition in the variable sellCond as well as your sell order.
I prefer using BUY_AUTO and SELL_AUTO as it reverses each other

Code:
def sellCond = close crosses above entryPrice + 1;
AddOrder(OrderType.SELL_AUTO, sellCond, tickcolor = GetColor(1), arrowcolor = GetColor(1), name = "Sell");
 
H

hashy

Member
Thank you so much. Not only for answering my questions but all the other stuff you contribute on the site. Seriously, it is appreciated.
 
T

tomsk

Well-known member
VIP
Thank you so much. Not only for answering my questions but all the other stuff you contribute on the site. Seriously, it is appreciated.

Not at all, glad you found it useful. I try to help whenever I can
 
H

hashy

Member
Not at all, glad you found it useful. I try to help whenever I can

Is there a way to make it sell when price hits $1 instead of waiting for the bar to close? I've tried OHLC4 but that doesn't seem to do it? Thanks again
 
T

tomsk

Well-known member
VIP
Unfortunately no.
The strategy signal will always be on the bar following the condition regardless of what you do.
You're aware that the strategy is just simulated trade, it does not turn into a live trade.
 
H

hashy

Member
Okay, thanks. And yes I realize it's not a live trade. I'm just trying to automate some backtesting instead of manually crawling through charts for hours on end. Thanks again
 
T

tomsk

Well-known member
VIP
@hashy That's the spirit, start with simple tests and as you gain more experience you can tackle more complex tests
That's how I learnt
 
R

Raphaell22

New member
@tomsk can you change aggregation period so you can sell at lower timeframe?
 
R

Raphaell22

New member
Thanks tomsk. I will check that. Do you know if there is a way to get the barnumber() of the last entryprice(). Could we than reference from the barnumber from a different study?
 
T

tomsk

Well-known member
VIP
Presumably your entryPrice must be based on some condition, so one way of doing so is that once that condition is triggered you capture the bar number. That should theoretically work. Note that you cannot reference a custom study from another custom study, I suppose the same would apply for strategies.
 
R

Raphaell22

New member
Thank you Tomsk. I was reading what you wrote on the other thread and it is really helpful. thank you very much
 

Similar threads

Top