!QCL Solutions

Scalable Solutions for Institutional-Level Trading

If you are a TradeStation client or planning to become one, and you need to place lists of orders, take a look at TradeAssistant or TradeAssistant Pro. Both are available on the TradeStation TradingApp Store (previously known as the “Strategy Network”).

The !QCL.TradeAssistant indicator of the TradeAssistant products is a powerful and flexible order placement tool. It allows you to create long lists of orders, such as for every stock in the S&P 500, with complex triggers, activation times and prices, OSO and OCO associations, from RadarScreen or Charts. You can place in moments what could take hours to enter manually.

Note that OCO grouping enables you to place multiple orders for the buying power of only one. You could place 100’s of orders to buy the first stock in a group that drops by say 5% from the daily open, and it doesn’t consume your buying power. For example, if you had $50k in buying power you could place multiple orders, in the same OCO group, each for a buying power cost of $50k rather than having to seriously divide your buying power. It allows you to widen your net and reduces the need to bend your trading criteria in getting orders filled.

Below is a demonstration video and TradeStation workspace that you can use with a trial or subscription to the TradeAssistant product.


TradeAssistant OCAgroups

Download the TradeStation workspace file here: TradeAssistant_OCAgroups.tsw

We hope that you enjoy the presentation.

We often receive emails about general TradeStation strategy automation problems from users running TradeStation around the clock. Common problems include overnight disconnections from the order execution network that cause missed trades, leading to automation halts. There are also, often related, overnight issues caused by data ranges of automated charts. This happens when charts begin processing new days. Then upon any manual or automatic data refreshing, old data may roll off. This results in updated historical strategy simulations with likely new starting points, leading to different real-time expected positions.

Even more fundamental problems with running TradeStation for long periods without restarts, is that there are eventual stability problems caused by application memory overruns, bad data, corrupted files, etc. Thus for any robust trading operation using the TradeStation platform, there is daily system maintenance including restarts. Clients generally restart between sessions, making sure all TradeStation processes close. Most institutional clients also clear TradeStation Cache and TCACHE folders. Then, after successfully restarting, they setup and save their workspaces; not saving them later, so as to avoid possibilities of saving corrupted workspace files.

As a solution, our TicketManager product is intended to make continuous trading operations more manageable and scalable, so that your business can grow. First, TicketManager is designed to handle mismatch problems, pursuing whatever target positions to which strategies change.

Please note that we do not eliminate needs for regular system maintenance, with restarts. This is essential. But TicketManager does have numerous built-in failsafe mechanisms to manage your data and order execution network connections, which becomes increasingly important when running the TradeStation platform for extended periods. TicketManager also has many features supporting portfolio managers, such as algorithmic trading to control slippage and/or pursue price improvement. There is aggregation, automatically combining signals of multiple charts, which eliminates boxing limitations and needs for short and long accounts. Aggregation can further protect clients from unnecessary trades as when charts produce offsetting signals.

TicketManager has been enhanced for professional needs, over years of active trading. Follow the link to try TicketManager. It is a professional tool with many more features than can be covered briefly. So we stand ready to support our clients. Note that there is a new version of TicketManager to be released soon. If you are interested in a trial, and/or in the coming release, let us know and we can expedite availability for you.

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:


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;

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


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:


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:


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 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.