Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

clbradley

EL End of Day Exit Problem

Recommended Posts

Hey. I have a code which works fairly well in backtesting, but there are bugs in most end of day exit strategy codes at Tradestation, and have noticed recently that SetExitOnClose just works in backtesting. What do I need to do to make sure I'm out by the end of the day or just before? Here's what I have so far:

 

Inputs:

FastLength(10), SlowLength(20), StartTime(0930),EndTime(1600);

 

Vars:

FastAvg(0),SlowAvg(0);

 

FastAvg = xaverage(Close,FastLength);

SlowAvg = xaverage(Close,SlowLength);

 

If Time > StartTime and Time < EndTime then begin

 

If FastAvg crosses above SlowAvg then

buy 100 shares next bar at market;

 

If FastAvg crosses below SlowAvg then

sellshort 100 shares next bar at market;

 

end;

 

 

SetProfitTarget(1000);

SetStopLoss( 100);

 

SetExitOnClose;

 

Except that now I'll leave the last line out since it only works for backtesting, not in real time. Wondering if I need to put the times at the top (EST?), the time zone I'm in, or New York Time (NYT?), and if it should be changed to 1558 or 1559 end time EST or NYT to be sure and be out before 4 PM (1600 EST), and if it should be stated to sell if long or cover if short at 1558 or 1559 EST near the end of the code. Have seen that there are lots of bugs in most exit end of day codes at TS and they don't stop the trade at the end of the day, and not sure what really works. Thanks for any help and hope you're having a great weekend.

 

Curtis

Share this post


Link to post
Share on other sites
.........and if it should be changed to 1558 or 1559 end time EST or NYT to be sure and be out before 4 PM (1600 EST), and if it should be stated to sell if long or cover if short at 1558 or 1559 EST near the end of the code. Have seen that there are lots of bugs in most exit end of day codes at TS ..........
You are right in calling them bugs if you indeed expect the back-testing engine to perfectly extrapolates real life trades - but that is almost never the case. As it was pointed out on the TS forum, if you are using 1 minute charts, as the bar closes at 1600, it is already too late in real life to place a trade at the equities exchange at NYSE; if you use a tick chart or 3 minute chart, the bar may never close at 1600. SetExitonClose is a short hand for the best case scenario for getting out at the exchange close, it doesn't guarantees it.

 

This is comparable to a discretionary trader who predicted the exact highs or lows and place a trade there and never got filled, it is something to be expected and planned for.

 

You can use MarketPosition to find out if you are short or long and close out the trade that way by selling or buy to cover. The following will get you out at market at 1559, one minute before the market closes. TS does not have sub-minute resolution, so that is as close you can get unless you write a lot of code to use the PC's clock:

 

if time >= Endtime then begin // Endtime = 1558; 1 min chart only

if Marketposition > 0 then sell next bar market;

if Marketposition < 0 then buytocover next bar market;

end;

 

There is a lot of information on the TS forum on this and there are many other solutions that is posted by the staff and users, for example here:

https://www.tradestation.com/Discussions/Topic.aspx?Topic_ID=81611&SearchTerm=1558&txtExactMatch=

Share this post


Link to post
Share on other sites

I have been having the best results and not that many trades or commissions/slippage when I test the 20-60 min. or greater timeframes. So instead of "1 min chart only", could I instead state "30 min chart only", when run on a 30 min. timeframe, or are you saying that code is good only for 1 min. charts? Thanks for your help, thrunner.

Share this post


Link to post
Share on other sites

Checked out your link, and it looks like I could exit before the end of each day, and still use the "SetExitOnClose", which will work with Custom Sessions, as described in the TS thread link above. Thanks again, that may work.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.