Important changes in TradeStation 9.5 (Update 14)

Important changes in TradeStation 9.5 (Update 14)

The latest version of TradeStation stopped to send “Sell Short” and “Buy to Cover” e-mails. It sends just “Sell” and “Buy” e-mails.

This is a big problem for Collective2, because to be able to interpret “Buy” and “Sell” signals correctly, we need to know a TradeStation account state. (If a position is FLAT, LONG or SHORT). If the positon is FLAT, the “Sell” signal means “Sell Short” now. If the position is “LONG” the “Sell” signal means “Sell to Close”. It is understandable, but…

The problem is that the TradeStation account state is not 100% reliable info on the Collective2 side. If some software or internet transmission or human error occurs, we can miss an opening “Sell” signal (which means “Sell Short” if the position is FLAT).

If we miss it, the next “Buy” e-mail, which should be interpreted as “Buy to Cover”, will be interpreted like “Buy to Open” on Collective2 side, because the position is FLAT in the Collective2 strategy model.

TradeStation knows and uses its account state and it still uses info like “Sell Short” and “Buy to Cover” internally.

See this picture:

But it sends following “Sell” and “Buy” e-mails for signals shown on the above picture:

 TradeStation - Strategy Active Order for EURUSD
        Order: Sell 100,000 EURUSD @ Market
        Account: SIM
        Occurred: 06/28/16 09:51:02
        Signal: Custom_SE
        Interval: 1 min.
        Workspace: C:\Program Files (x86)\TradeStation 9.5\MyWork\bs_test_01a


TradeStation - Strategy Filled Order for EURUSD
        Order: Sell 100,000 EURUSD @ Market
        Account: SIM
        Occurred: 06/28/16 09:51:04
        Signal: Custom_SE
        Interval: 1 min.
        Workspace: C:\Program Files (x86)\TradeStation 9.5\MyWork\bs_test_01a


TradeStation - Strategy Active Order for EURUSD
        Order: Buy 100,000 EURUSD @ Market
        Account: SIM
        Occurred: 06/28/16 09:48:02
        Signal: Custom_Cover
        Interval: 1 min.
        Workspace: C:\Program Files (x86)\TradeStation 9.5\MyWork\bs_test_01a


TradeStation - Strategy Filled Order for EURUSD
        Order: Buy 100,000 EURUSD @ Market
        Account: SIM
        Occurred: 06/28/16 09:48:02
        Signal: Custom_Cover
        Interval: 1 min.
        Workspace: C:\Program Files (x86)\TradeStation 9.5\MyWork\bs_test_01a

What could happen using the new Update 14:

  • Say the Collective2 strategy is FLAT.
  • For some reasons we do not receive a “Sell” e-mail - which should mean “Sell Short” now.
  • Then, we receive a “Buy” e-mail from you - which means “Buy to Cover” on your side. But Collective2 will go LONG, because the strategy model is FLAT.

Until now, we received “Buy to Cover” and because your Collective2 strategy was FLAT, we knew something is wrong. We could wait if “Sell to Short” arrives within few seconds (which means signals were swapped because of some network transmit delays). If “Sell to Short” arrived, we swapped both signals to the correct order. If not, we could send an alert message to the user.

But we are lost receiving just “Buy” now.

Solution

You do not need to do anything if you are trading in the LONG direction only.

But we badly need the trade direction information for the SHORT direction.

Please add that information to the “Signal” field in the TradeStation e-mails.

It means: modify your EasyLanguage strategy code and add correct information about the trade direction.

EasyLanguage example:

inputs: SECondition( C < O ) ;

if SECondition then
	Sell Short ( "Short" ) next bar at market ;

if not SECondition then
	Buy Cover ( "Cover" ) next bar at market ;

Trade directions words and shortcuts

Sell Short:

  Short
  SE

Buy to Cover:

  Cover
  SX

Buy to Open

  Buy
  LE

Sell to Close

  Sell
  LX

You can use also EXIT or CLOSE words in the “Sell” and “Buy” signals. Such signals will be recognized as “Sell to Close” and “Buy to Close”.

You can use also ENTRY, ENTER or OPEN words in the “Sell” and “Buy” signals. Such signals will be recognized as “Sell to Open” and “Buy to Open”.

IMPORTANT: If there are two or more words in your text, then the first is valid.

Example: The text: “A BUY signal for my previous SELL - CLOSE SHORT position” means “Buy”.

Examples

Following texts will be recognized as “Sell Short”:

Short
SHORT
Sell to Open
Sell to Entry
Sell to Enter
This is my Short signal
Entering Short
Closing Signal Short
SE
This is my SE signal
SE to entry
Custom-SE
SE-Custom

Following texts will NOT be recognized as “Sell Short”:

MyShort
ShortStock
OpenShort
SellShortOpen
ShortSignal
SESignal
CustomSE
ShortEnter

Following texts will be recognized as “Buy to Cover”:

Buy to Cover
Buy to Close
Buy to Exit
Cover
COVER
Cover Signal
This is my Cover signal
Cover a position
SX
Custom SX
Custom-SX
Custom_SX
This is my SX signal

Remark: Full descriptive texts “Buy to Cover”, “Buy to Close” and “Buy to Exit” are exceptions from the rule “If there are two or more words in your text, then the first is valid.”.

Following texts will NOT be recognized as “Buy to Cover”:

MyCover
CoverMyPosition
CustomSX
ShortExit

Following texts will be recognized as “Buy to Open”:

Buy
BUY
BUY TO OPEN
Buy to Enter
Buy to Entry
Buy Signal
This is my Buy signal
Buy to enter position
LE
Custom LE
Custom-LE
Custom_LE
This is my LE signal

Following texts will NOT be recognized as “Buy to Open”:

MyBuy
BuyStock
BuyToOpen
SignalBuy
BuyForProfit
LESignal
CustomLE

Following texts will be recognized as “Sell to Close”:

Sell
SELL
Sell to Close
Sell to Exit
This is my Sell signal
ClosingSignal_Sell
Closing Signal Sell
Sell - Closing Signal
LX
This is my LX signal
ClosingSignal_LX
Closing Signal LX
Custom-LX
LX Custom

Following texts will NOT be recognized as “Sell to Close”:

MySell
SellExit
SellStock
SellToClose
SignalSell
SellForProfit
LXSignal
CustomLX

Please check your current strategies code and make sure your signal names are in accordance with this Collective2 TradeStation Interface update.

Thank you.

3 Likes

Thanks for this. regards

For those using Tradestation to emit signals into C2 this represents a major change due to the fact that no version of Tradestation by default allows naming closing position signals in circumstances where positions are being automatically reversed. This could be the case for all those types of systems that are always in the market and never flat and likely impacts all versions including prior to Tradestation 9.5

Standard Tradestation Easy Language reversing positions sample code:

if (mvavg1 crosses over mvavg2) then buy (“Buy”) this bar on close;
if (mvavg1 crosses under mvavg2) then sellshort (“Short”) this bar on close;

Code such as the above reversing of positions will likely have problems with the new C2 interface requirements, however revising to something like the following appears to be working:

if (mvavg1 crosses over mvavg2) then begin
if marketposition < 0 then buytocover (“Cover”) this bar on close;
buy (“Buy”) next bar on open;
end;
if (mvavg1 crosses under mvavg2) then begin
if marketposition > 0 then sell (“Sell”) this bar on close;
sellshort (“Short”) next bar on open;
end;

The difference is to add an explicit closing sell and buytocover lines, and to differentiate the orders with “next bar on open” forces Tradestion to include an explict closing order signal and open new positions in the next bar, thereby fullfilling C2 interface expectations of the incoming Tradestation signal characteristics.