!QCL Solutions

Scalable Solutions for Institutional-Level Trading

If logged into TradeStation with an account that has Strategy Network subscriptions or trials, there can be memory bloat with TradeStation applications like orchart. A simple example of this is to create a chart, then a second chart. Delete the second chart. Watch orchart in the Task Manager Processes tab. Notice that memory usage increases with each new chart window created, and this is often not reduced by deleting the secondary chart. While keeping the initial chart open, repeat the process of creating a secondary chart then deleting it. Notice with each repetition that orchart memory increases. This can increase until TradeStation crashes.

Links below contain videos of the phenomena in TradeStation 9.1 (Update 21)

with a login that has Strategy Network subscriptions:
2013-05-28_1030: orchart memory increases

with the same login, taken Offline:
2013-05-28_1036: orchart memory increases

with the platform restarted Offline:
2013-05-28_1040: orchart memory usage does not increase

with a login that has no history of Strategy Network subscriptions or trials:
2013-05-28_1054: orchart memory usage does not increase

with a login that has two expired Strategy Network trials:
2013-05-28_1126: orchart memory increases

And here on a client machine, running TradeStation 9.1 (Update 18), there is still memory bloat, but much less since the client has just one Exclusive Access / Strategy Network subscription:
Steadfast_TOA_2013-06-01_0024: orchart memory increases only 2,000K per 2nd chart, login has just one SN product


To test this on your own computer and TradeStation login, here is a standardized test bed in a zip folder: Test_MemoryBloat.zip

The folder contains an ELD and two workspaces for TradeStation 9.1 Update 13+. Install the ELD and put the workspaces in your TradeStation MyWork folder, which may be here: C:\Program Files (x86)\TradeStation 9.1\MyWork

Then open the Test_MemoryBloat_Start.tsw workspace file and follow steps as in the following two videos:

Example test using a login with Strategy Network subscriptions (significant memory bloat, watch orchart in the Processes tab):

Example test using a login with no Strategy Network history (resulting in no memory bloat, watch orchart):

The TradeStation TradingApp Store is a great system allowing you to have access to specialized products on any machines where you login. Download and installation processes are automatic, but occasionally there can be problems. If you have trouble with any TradingApp Store products to which you subscribe or apply for trial, first contact:

The TradeStation TradingApp Store Team
Local: 1-954-652-7900
Toll-Free: 1-800-822-0512
Fax: 1-954-652-7599
Email: [email protected]

At the very least, they need to be aware of issues you may be experiencing, in order to convey concerns to engineering and management.

Generally the TradingApp Store should run well for you, but when there are problems, the possibilities are numerous. Most of the time I find that it is related to applying a TradeStation update. Say a client was using TradingApp Store products in TradeStation 9.1 Update 24 then applies Update 29. After which TradingApp Store products no longer work or are available, and may appear as unverified. Unfortunately, running “Verify All” rarely resolves the issues, and it is necessary to force TradeStation to re-download and reapply your TradeStation TradingApp Store products as follows:

First, so that you are able to rollback any changes below, backup your current TradeStation platform:

  • File -> Backup/Restore TradeStation -> Backup TradeStation…
  • Choose a Backup configuration like the default “Monthly”
  • Start Backup

Secondly, after your backup is successfully completed, remove currently installed TradingApp Store products from your “work area”.

  1. Log out of TradeStation. (And preferably restart your machine to make sure all TradeStation processes have closed.)
  2. Then Open the TradeStation Development Environment, without logging into the Platform.
  3. File -> Open, Select Analysis Type “All”, click on “Name” to sort alphabetically if necessary.
  4. Click in the Name column and type “TA” quickly. This should take you to the first item starting with “TA”.
  5. Select all items starting with “TA_”, which you should recognize as TradingApp Store products, and press the Delete key.
  6. When prompted to Confirm file delete, click “Yes to all”.
  7. When complete, close the TradeStation Development Environment.

Thirdly, remove or rename the TSSN folder in your TradeStation program folder:

  1. For a 64-bit operating system, remove or rename the folder here (replace “C” with the name of your root drive):
    C:\Program Files (x86)\TradeStation 9.1\TSSN
  2. For a 32-bit operating system, remove or rename the folder here (replace “C” with the name of your root drive):
    C:\Program Files\TradeStation 9.1\TSSN

Fourthly, remove your TradeStation ini file, which will be automatically recreated on next login, here:

  1. For a 64-bit operating system, remove the file here (replace “C” with the name of your root drive):
    C:\Program Files (x86)\Common Files\TradeStation Technologies\TradeStation\tsconfig.ini
  2. For a 32-bit operating system, remove the file here (replace “C” with the name of your root drive):
    C:\Program Files\Common Files\TradeStation Technologies\TradeStation\tsconfig.ini

Now, click on TradeStation to reopen the platform.

  • You should see an activation process started as follows:
  • Click Yes:
  • Then login to your TradeStation account with TradingApp Store subscriptions and trials, when complete.
  • Give it a few minutes and TradingApp Store processes should re-download and apply all the TradingApp Store products to which you are subscribed or have in trial.

When the TradingApp Store Subscriptions and Updates window appears, we recommend waiting an additional minute before trying any of the “Launch” buttons.

In a recent TradeStation hosted webinar, the question was raised (paraphrased) “How much RAM does a computer need to run TradeStation well?”

I prefer to let TradeStation answer such questions, but the easy answer is that more is better.

Of course it is true the TradeStation platform is 32-bit software. And a 32-bit process is generally limited to referencing 2 GB. Referencing up to 4 GB is possible. But that does not mean that you should get a machine with no more than 4 GB of RAM.

TradeStation is composed of multiple applications, and numerous processes run whenever you open the TradeStation platform. Simply open TradeStation then open Windows Task Manager and view the Processes tab for Image Names starting with “TS” and “or”, among others belonging to TradeStation.

For instance open a chart in TradeStation. You should see “orchart” in the Windows Task Manager Processes tab. And if you have not already enabled multi-core processing for charting, do the following:
1) Click on a chart
2) View -> Chart Analysis Preferences…
3) Click on the General tab
4) Check the box for “Enable use of multiple CPU cores”
5) Then close and reopen the TradeStation platform

Now open several charts. If you have more than a single core machine, you should see multiple “orchart” processes in Windows Task Manager Processes tab.

As an example of how more than 4 GB can be useful with TradeStation, on a 4-core machine, I open several charts. There are 4 processes visible in Task Manager. Loading the charts, I can get each process to reach and even exceed 2 GB of memory usage, for a total of more than 8 GB… Point being that more than 4 GB can definitely be used by the TradeStation platform.

Note, I don’t recommend loading charts in TradeStation to the extent that any charting process exceeds 1 GB of memory usage. If that level of memory usage occurs, I recommend restarting TradeStation (and avoid saving workspaces). The reasons for this go beyond simply how much memory can be addresses; long story short, memory usage of charting processes can grow over time. Closing TradeStation, or at least closing all workspaces with charts, then reopening is a good way to reduce memory usage of chart processes.

Below you can download a TradeStation ELD and workspace for a demonstration trading system that can be easily automated with the leverage of options. This is made possible with OptionsX on the TradeStation Strategy Network, using the included opMPTrader system. With opMPTrader, options contracts are automatically located relative to the underlying symbol.

The demonstration shows how you can functionalize your own strategy signals for use with opMPTrader. The possibilities are vast. And with the leverage of options, multi-symbol trading in RadarScreen and ease of automation, OptionsX enables you to trade at a level that even hedge funds rarely reach.

Click on the image to download the zipped demonstration files:

opMPTrader_MovAvg2LineCross_Demo

OptionsX opMPTrader_MovAvg2LineCross Demonstration

Let us know if you have any questions. We are eager to help you develop your own systems with OptionsX with included systems like opMPTrader. We look forward to hearing from you. Contact us at [email protected]. We want to help your business grow.

Here is a first installment in “How to trade with OptionsX”:

  1. OptionsX is easiest to use with opMPTrader to leverage the buying power of options in running your TradeStation Strategies.
  2. To do so, setup one or more strategy-signal functions (e.g. MyLongSignalFunction and/or MyShortSignalFunction) that product +1, 0, -1 market-position signals.
  3. In the opMPTrader indicator, where the signal functions are to be plugged in, first determine a name for your system like “MySystem”+NumToStr(CurrentDate,0). This enables opMPTrader to keep track of trading information allowing only one of each symbol and account combination for that name. (Note the name can be used with 100’s of unique symbols & account combinations, and if you need/want overlap just setup another opMPTrader instance with a different CustomID. Also note that the NumToStr(CurrentDate,0) component of the name is suggested for day trading systems, so that trading records are separate for each day, forgetting positions from the prior day that should have been closed automatically or manually.)
  4. Then input the account number to be used, which is obviously important for trading. If “” is used, then the default account is located and used. Note that the TakeOwnershipOnce input is not typically necessary. It is only there if you need to assert that current trading records for the CustomID by Symbol and Account need to be owned by the current instance.
  5. Input your CallMarketPositionFunction, then specify whether it can automatically trade calls and if selling calls is allowed. (If automatic trading is not enabled, you still get Alerts for trades as long as alerts are enabled.)
  6. Input your PutMarketPositionFunction, then specify whether it can automatically trade puts and if selling puts is allowed. (If automatic trading is not enabled, you still get Alerts for trades as long as alerts are enabled.)
  7. Trade size relative to +/- 1 signals is determined by TradePositionDollars & MaxPositionContracts.
  8. Trading times are set by StartTime, EndOfDay_Entries and EndOfDay_Exits. (Since opMPTrader is intended for use with options for leverage, and since time values decay, opMPTrader is setup for day trading. It closes positions at the EndOfDay_Exits time if not already closed due to signals. It reinitiates positions on the next day if there are signals to do so.)
  9. For price limits used with orders, setup Entries_SpreadCross_0to100 and Exits_SpreadCross_0to100. 50 is for orders to be placed with limit prices half way between the inside bid and ask. 100 crosses the spread. 0 stays on the buyer or sellers side. -100 places an order away by an amount equal to the spread.
  10. For end-of-day orders, set ExitEOD_MaxSlipPercent. This is to place a limit order to close open positions at a price that limits the maximum slippage from the last price. For options to be highly likely to close at the end of the day, this number may need to be large, like 25 percent or even more.
  11. TargetPriceIncrementMin if set to 0 is set as the minmove of the underlying. For some options, the minimum price increment is larger than the minmove of the underlying, so it can be set manually to avoid the possibility of an order rejections due an invalid limit price.
  12. Set display colors as you prefer.
  13. With ShowFlagsOnClick set whether or not you want a Tip window to display trade signal information (i.e. flags) when you click on the window where opMPTrader is applied.
  14. For traditional TradeStation bar-by-bar and intrabar tick processing (per indicator settings), leave PerTickProcessingOnly = True. Otherwise to force more active code processing (to avoid possible downsides of infrequent underlying ticks), set PerTickProcessingOnly = False. This causes at least one processing cycle per second.

A simple signal function is as follows, to buy if bar close is under bar open or sell short if bar close is over bar open:

{ MyLongSignalFunction }
Switch(Close) Begin
     Case < Open: MyLongSignalFunction = 1;
     Case > Open: MyLongSignalFunction = -1;
     Default: MyLongSignalFunction = 0;
End;

Let us know if we can help put together an OptionsX system for you. Contact us at [email protected].

0_SNLaunch_888

TicketManager webinar


Download the PowerPoint slide-show with narration, here or by clicking on the image above

There are 5 videos used in the slide show which you may also view here:

Additional videos that we did not get to during the webcast are as follows:

Here are images showing trades placed by TicketManager using Countdown functionality:

And a TicketManager setup trading IWM as a proxy for strategy signals generated from SPY charts:

Try or subscribe to TicketManager on the Strategy Network

MDVelocity focuses on newest indications of buy and sell interest available in the market, so that trading systems can gauge where future trades may happen. Current inside bid and ask quotes can be old and misrepresent trading interests. Rolling period volume weighted averages of incoming quotes better indicate supply demand forces. Go beyond last prices, quantities and levels, with rate and recency of incoming quotes fully considered. Find value in market depth.

MDVelocity is available on the TradeStation Strategy Network. Here is the demonstration workspace provided with the product:

0_SNLaunch_888

MDVelocity on the TradeStation Strategy Network

MDVelocity is based on the award winning Market Depth Velocity indicator and concepts of “Trade in the Now”.

The MDVelocity suite of indicators and functions puts the power in your hands. You have access to all data sources and calculations through functions. There is even the mdvPublisher indicator and mdvReader function for platform efficiency, letting your calculations be made once per symbol and passed through the reader function where needed.

Use MDVelocity or MDVelocityPro in your own indicators and strategies. Go beyond pretty-picture indicators, and put the power of market depth velocity to work in your own systems.

If you are a TicketManager client, you can take advantage of MDVelocity in your trading now. With a MDVelocity subscription, TicketManager algorithmic trading can be enhanced with truer evaluations of supply-demand forces and effective spreads.

Contact us through the developer link, which is provided when you subscribe, and we will help you get started.

OptionsX is a tool set for automated options trading relative to underlying symbols in TradeStation Charts and RadarScreen. It is designed for traders looking to enhance the buying power and profit potential of their strategies through Options.

OptionsX is available on the TradeStation TradingApp Store. The demonstration workspace provided with the product is as follows:

0_SNLaunch_888

OptionsX on the TradeStation TradingApp Store

The workspace demonstrates options location and data provision features. Automated trading can be accomplished with the opTrader and opTraderEX functions. And there are over 40 additional tools for storing and retrieving your important strategy data (as with opGetSetRecord, opGetSetRecords and opGetSetRecordsEX), accessing marketdata (as with opData, opDataHiDayVol, opChain, opChainData), etc.

For plug-n-play system trading, simply functionalize your EasyLanguage strategy and use it with opMPTrader. As an example of using opMPTrader, the opMPT_RSI_Signal function, opMPT_RSI_Signal indicator and opMPT_RSI_Signal strategy are provided with OptionsX. The strategy is available for optimization of inputs to the opMPT_RSI_Signal function. The indicator is for viewing the opMPT_RSI_Signal signals. The signal function can be plugged into the opMPTrader CallMarketPositionFunction and/or PutMarketPositionFunction inputs to trade options as proxies for the symbol on which the indicator is based. For OptionsX subscribers, with the release of Version 9, the opMPTrader workspace automating opMPT_RSI_Signal in RadarScreen, or with charts, is available here:

opMPTrader(opMPT_RSI_Signal)

opMPTrader system running with opMPT_RSI_Signals provided with OptionsX on the TradeStation TradingApp Store

(Note, if you apply the opMPTrader indicator to a window yourself, the default inputs for CallMarketPositionFunction and PutMarketPositionFunction are 0 and 0, but can be used with your own functions or ones like opMPT_RSI_Signal. To used the built-in opMPT_RSI_Signal function of OptionsX, apply the TradingApp Store function prefix, TA_OptionsX_, for the function to be named as follows: TA_OptionsX_opMPT_RSI_Signal.)

With just a few steps, OptionsX subscribers can turn on automated trading. Contact us through the developer link, which is provided when you subscribe, and we will help you get started.

The TicketManager system available through the TradeStation Strategy Network is provided with the EquityCurveOptimizer. It is a tool that can both apply and be used to optimize equity-curve trading rules.

For instance, maybe you want a TradeStation strategy to stop trading once it has broken its lowest equity level of the most recent 5 equity points (recorded bar-by-bar, per exit trade, or for each trade). Then you want it to start trading again once its simulated performance has made a new high for the most recent 3 recorded equity points. This can be accomplished with the EquityCurveOptimizer without any special modifications of strategy code (EquityCurveOptimizer is a companion strategy that runs side-by-side with your strategies). EquityCurveOptimizer can be further used with the TradeStation strategy optimizing utility to find ideal equity-curve settings. Perhaps instead of the 5 and 3 settings example above, 10 and 7 would perform better. EquityCurveOptimizer can pinpoint such settings.

A classic automation problem for good systems is to know when to stop trading, since losing periods can be protracted. It may be that a systems stops working for a while, or that it stops working permanently. This can happen when the reasons that once made a strategy work, are overwhelmed by other forces, cease to exist or cease to impact markets as they once did.

Take a look at the video by clicking on the image below, to see how the EquityCurveOptimizer can be used to cease trading in a system that has continued to make equity lows. The demonstration explains how a strategy can be operated in a long-history chart, to disable trading based on equity performance. Then this equity performance history can be extended into a short-history chart that would not have enough history on its own to disabled trading.

So in addition to illustrating equity-curve rules disabling a strategy, we also illustrate a technical feature of EquityCurveOptimizer that allows you to run your strategies with minimal cpu and memory resources, which can be important to power users.

EquityCurveOptimizer EqCrvExtending

EquityCurveOptimizer Equity Curve Extending

EquityCurveOptimizer Equity Curve Extending

Please let us know if you have any questions by contacting us at [email protected].

New with TicketManager ( Version 27 ) is enhanced functionality for the EnforceStratStartDT strategy utility. In addition to having it trigger recalculations as necessary, protecting clients from data reloading events that lead to Strategies not running over the intended data set, there is now:

  • An optional input for clients to specify the first date of the chart/strategy symbol
  • The option to mark the strategy start calculation bar
  • The option to display in screen text, the first chart bar date & time and the strategy start calculation bar date & time

See the following demonstration video:

EnforceStratStartDT new features with TicketManager ( Version 27 )