Skip to main content
Skip to main navigation
Client Center Login
Call TradeStation 800.808.9336
View the list below to learn about what's new in this version. Click on the What's New item to view the details.
Traders in today's volatile markets demand access to information and the ability to act on it instantly. Imagine being able to automatically monitor market depth and be alerted, or even place a trade, the moment your rule or trigger is met. Or having your trading platform monitor your open positions and continuously perform risk assessments, so that in a fast market downturn or upturn, the appropriate action will automatically be executed. How about having multiple data streams in RadarScreen®, the ability to execute code on a fixed time interval, and access to all of the details for your orders and positions, just to name a few. TradeStation 9.0 includes all of this, plus dozens of other popular enhancement requests for EasyLanguage® and the TradeStation Development Environment.
TradeStation 9.0 also has a new look and feel. We have improved the icons, enhanced some of the graphics and colors, and added a Quick Start to help new TradeStation users create an optimal workspace.
As if all that were not enough, our Options Development Team has been hard at work and has included another set of enhancements to OptionStation® in TradeStation 9.0.
We hope you enjoy the exciting new features as much as we've enjoyed building them. Please don't hesitate to contact us if you have any questions or feedback.
The TradeStation Development Team
TradeStation Quick Start
TradeStation Quick Start is an interactive interface designed to get new TradeStation users started with the platform faster. First, you choose a market. Then select a task based on the approach you feel most comfortable starting with. Whether you're focused on technical analysis using the chart analysis window, researching potential trading opportunities or just want to jump in and start trading, we have the right starting point for you.
In addition, you can also find useful links to our Support and Client Training & Education resources right from the Quick Start window.
We've added a set of powerful components that enable you to monitor and act on important trading and market data information. The ToolBox, Properties Editor, and Component Tray described in this section allow you to easily set up these components without having to write code in EasyLanguage®.
The Dictionary and Autocomplete have been enhanced to integrate seamlessly with new syntax and library enhancements that have been added to the latest version of EasyLanguage®. These tools are designed to provide assistance during the development of your EasyLanguage® analysis techniques.
You can insert a component into an analysis technique by either double–clicking on it or dragging it from the ToolBox into an open analysis technique window. The TradeStation Development Environment (TDE) then creates the EasyLanguage® code needed to declare and initialize the component, allowing you to focus on the trading logic of your analysis technique.
AccountsProvider – Gives you access to TradeManager balance information and other trading account attributes.
FundamentalQuotesProvider – Allows you to access fundamental values, both real time and historical, for one or more symbols.
MarketDepthProvider – Everything you can see in a market depth window can now be accessed and monitored, in real time, using this component.
OrdersProvider – Accesses information about individual or multiple orders, and monitors order status in real time.
PositionsProvider – Position information, such as average price and p ⁄ l values, can be accessed using this component.
PriceSeriesProvider – This component is used to request bar data for one or more symbols.
QuotesProvider – Access real–time quotes for any symbol.
StrategyHost – This component allows your strategy to "peek into" the inner workings of TradeStation's back–testing engine. You can now override the default fill prices and quantities, and access more detailed information about strategy orders as they are filled.
OrderTicket Components – Create and send simple or complex orders from your EasyLanguage® code. These orders can be monitored using the OrdersProvider component.
Timer – Use the Timer component to execute your code at predefined time intervals.
Workbook – Easily write to and read from cells in Microsoft Excel.
The Properties Editor is where you set up the components that you've added to your code.
The Properties Editor
There's no EasyLanguage® coding required on your part. You simply enter the appropriate values, and the TradeStation Development Environment automatically generates the code for you.
As a quick example, take a look at the following Properties Editor image where a QuotesProvider is being set up.
You simply fill in the properties, and the TradeStation Development Environment takes care of the rest.
Note that while you don't see the generated code by default in your analysis technique, it can be viewed by selecting the Designer Generated Code menu item from the View menu.
The Properties Editor is also where you will tell the component which events you want to handle in your analysis technique. Events are how components communicate with your code and are described in more detail in the Enhancements to EasyLanguage® section.
Clicking the lightning bolt icon at the top of the Properties Editor will switch to the events view. In the following screenshot, the Properties Editor property view and event view are displayed for a Timer component.
In this case, the Timer component has only one event, Elapsed.
Simply double–clicking on the event will create a method in your analysis technique that will be called with the frequency specified by the Timer's Interval property. You place EasyLanguage® code that you want to have executed when the Timer goes off inside of the automatically created Timer_Elapsed method, as shown in the following image.
Once applied to a chart or RadarScreen, this analysis technique will print the message "Time's Up!" every second.
One more item of note in the new Properties Editor is the Input icon, identified by a capital I. When a property is selected, clicking this icon will automatically add an input to your analysis technique based on the selected property. Selecting the Interval property and clicking the Input icon will prompt you to create an input.
If you select "Yes," an input declaration will automatically be added to your code. The Timer's Interval can now be changed when formatting the analysis technique.
The Component Tray is attached to the bottom of the EasyLanguage® analysis technique window. It shows you which components are currently added to an analysis technique.
The Component Tray
Components can be selected with a left mouse click. If the Properties Editor window is open, the selected component appears in the window. You can easily delete the selected component, and all of the designer–generated code associated with it, by pressing the delete key.
Dictionary and Autocomplete
The Dictionary now includes reference information for every namespace, class, property, method, operator and event in the EasyLanguage® Class Library.
This will be described in more detail in the EasyLanguage® Class Library section that follows.
Autocomplete has also been enhanced to show object members. You can now quickly access properties and methods as you type, without the need to memorize the entire class library.
EasyLanguage® 9.0 embraces features and syntax found in many object–oriented programming languages. These enhancements will be very familiar if you have programmed in other object–oriented languages, and minimal effort should be needed to take full advantage of this new functionality.
For those who have little programming experience outside of EasyLanguage®, there's no need to worry. EasyLanguage® 9.0 is completely backward–compatible with prior versions, and all of your existing code will continue to work with no changes. Should you choose to not immediately explore any of the new functionality, you can continue to create new analysis techniques in the same way you did in prior versions.
We do, however, encourage you to explore what EasyLanguage® 9.0 has to offer. We recommend you start by experimenting with some of the new ToolBox components.
All of the new language enhancements will be described in greater detail in a separate document called "The EasyLanguage® 9.0 Language Reference," which we expect to make available in the next few weeks. We've listed some of the highlights along with brief descriptions below. Don't worry if you don't understand every item. You can learn about the new syntax and features, and integrate them into your code, at your own pace.
In ⁄ Out – Used in local methods to pass parameters by reference or value.
Method – Declares local method in an analysis technique.
Return – Used to return a value from a local method.
Try ⁄ Catch ⁄ Finally ⁄ Throw –Used to handle and generate exceptions from within an analysis technique.
Using – Identifies a namespace to be used in the analysis technique.
New– Creates a new instance of a reference type.
Accessor (.) operator– Used to access a property or method in an object.
ObjectSimple ⁄ ObjectRef– Used when passing objects to EasyLanguage® functions.
Prior to EasyLanguage® 9.0, all variables were based on simple data types such as strings or numbers, known as value types. We've introduced a new category, reference types, in 9.0. These new types, also known as classes, are described the EasyLanguage® Class Library section.
To aid in the organization of the EasyLanguage® Class Library, related types are grouped together into constructs known as namespaces. When referencing a type in EasyLanguage®, you can either prefix the type with the name of the namespace where the type is located, or you can add a declaration at the top of your analysis technique and specify the namespace that will be used.
EasyLanguage® 9.0 now supports local methods. Similar to EasyLanguage® Functions, they can be used to improve code readability and simplify code structure. Additionally, local methods execute faster than existing EasyLanguage® Functions, and support recursive calling.
Many of the components described in the ToolBox section can provide information the instant that it becomes available. You can choose to have a method called by the component with every new update. The OrdersProvider, for example, can notify your code the moment an order is filled.
As described in the Properties Editor section above, "event handler" methods are automatically created for you when you double–click on an event name. When a component broadcasts an event, any method that has subscribed to that event will be called.
EasyLanguage® 9.0 provides a new mechanism for detecting and handling run–time errors. These errors may occur as a result of programming errors, but may also result from unexpected conditions that may occur during the execution of an analysis technique. Unhandled run–time errors will appear in the TradeStation Events Log, causing the analysis technique where the error occurred to be disabled.
You can now monitor and react to these exceptions using the new try, catch, and finally keywords.
The EasyLanguage® Class Library (ECL) contains over 100 classes designed to help you create powerful trading solutions. It is with these classes that the vast majority of EasyLanguage®'s new capabilities reside. The ToolBox components described in Enhancements to the TradeStation Development Environment are part of the ECL.
While it is understandable to feel overwhelmed by the sheer volume of information in the ECL, it is important to remember that the actual additions to EasyLanguage®'s syntax are relatively few. In fact, the classes in the ECL can be used with only two new language elements: the new operator, which is used to create an object based on an ECL class, and the accessor (.) operator, which is used to reference an object's properties and methods. These elements, partnered with an understanding of the basic patterns needed to access a class's functionality, will enable you to take advantage of many of the capabilities the ECL has to offer.
The ECL groups related classes into constructs called namespaces. In the TDE's Dictionary, they are identified by curly braces. Clicking on a namespace's plus sign will show all classes contained in that namespace. Selecting an individual class will display all of the members contained in that class. Clicking on the plus sign next to a class will show the class from which it was derived. The following image shows the members of the elsystem.collections queue class.
Contains classes used to retrieve fundamental, quote, bar and market depth data.
Contains classes used to retrieve and monitor account, position and trade information. In addition, single– and multi–leg order classes are located here.
Contains ECL utility and base classes. These include exception classes, base classes for value types, the object base class, event and event argument classes, date– and time–related classes, timer and stopwatch, and environment classes.
The elsystem.collections namespace contains classes used to create, store, retrieve and manipulate sets of objects. These classes include implementations of common data structures such as dictionary, queue, stack and vector.
Contains classes used to interact with Microsoft Excel. Classes in this namespace provide functionality for reading to and writing from cells in a spreadsheet and for opening, closing, activating and saving workbooks.
These classes allow you to create, read, write, parse, manipulate and save documents in the Extensible Markup Language (XML) format.
Contains classes that allow you to view new order and order–filled events as they occur during a strategy back–test. This allows you to override the assumptions with regard to price when orders are historically filled. You can also view more detailed order information, such as order type or signal name.
The following is the TradeStation Class Library reference. Click here to view the full image.
TradeStation 9.0 includes many new analysis techniques and functions that demonstrate this new functionality.
Spread RS - This RadarScreen ⁄ OptionStation® indicator plots the spread between two user–specified symbols as both a difference and a ratio.
Custom Quote - This indicator plots the value of a user–specified quote field for a user–specified symbol. It uses the new function QuoteFieldValue and serves as an illustration of the use of that function.
Relative Strength (One Day) - This RadarScreen ⁄ OptionStation® indicator plots the daily percentage change, since the previous day's close, of two user–specified symbols and the difference in percentage change of the two symbols.
Market Depth - Price Levels - This indicator plots dots on price bars on a chart (real–time only). The dots are six different colors and are plotted at the three inside bid levels and at the three inside offer levels. The sizes of the dots reflect the relative size that is offered or bid at the price at which the dot is plotted, as compared to the sizes offered at the other five levels that are plotted. For example, if the size offered at the second offer level is the largest size of the three inside bids and three inside offers, then the dot plotted at that level will be the largest of the six dots. The level at which the next most size is bid or offered will have the next largest dot, etc.
Bracket Orders - Entry OCO Breakout with Exit Bracket - This RadarScreen ⁄ OptionStation® indicator places bracket orders, based on user inputs, after the user input Start is set to true. An entry OCO bracket is issued first. After one side or the other of the entry bracket is filled, an OCO exit bracket consisting of a stop–loss and profit target is issued. This completes the issuance of orders unless the value of an input is changed or the code reruns for some other reason (like a refresh, etc.). The code plots a variety of information concerning order and position status in RadarScreen, so that the operation of the brackets can be tracked.
Open Order Information - This RadarScreen ⁄ OptionStation® indicator plots the details of up to two open orders in RadarScreen or OptionStation® (Asset pane).
Position P ⁄ L Auto - This RadarScreen ⁄ OptionStation® indicator plots the profit and loss of any position in the symbol to which it is applied in the user–specified account(s). It automatically determines whether a position exists and, if one does, plots the appropriate values. The indicator updates automatically if the position size changes (for example, if the user adds to the position through the order bar) and as the price of the security changes. If there are open exit stop or stop–limit order(s), the price(s) of such orders will be plotted also.
Relative Strength - This indicator plots difference in percentage change of two symbols over a user–specified number of bars. It can be applied to any asset type, in Charting, RadarScreen or OptionStation® (Asset pane only). However, it can be applied only to daily, weekly or monthly bars. Application to intraday bars is not currently possible because the PriceSeriesProvider does not align correctly if the user has a custom session applied to the symbol. Since daily, weekly and monthly bars do not allow the setting of custom sessions, the indicator is limited to these bar intervals.
Fundamental to Avg Fundamental - This RadarScreen ⁄ OptionStation® indicator uses fundamental data. It determines the value of a user–specified fundamental field (like P ⁄ E ratio or earnings) for the symbol to which the study is applied. It determines the same value also for all of the symbols in a user–specified list of symbols. It then calculates and plots the ratio of the fundamental value for the specific symbol to the average of the fundamental values for the group of symbols.
Level II to Excel - This RadarScreen ⁄ OptionStation® indicator shows how many shares are bid or offered at the inside 5 bid and offer levels. It can export this information to an Excel file at user–specified intervals, if desired. This feature is controlled by a series of inputs.
Subsession Hi–Lo Lines - This indicator plots the highest high and lowest low that occurred during a user–specified period of time. The hi and low are extracted from a "subsession" specified by StartTime and EndTime inputs. The indicator illustrates the use of OHLCVCollection with user–specified conditions for ResetTrigger and IncludeThisBar inputs to the function.
Day or Session Hi–Lo Lines - This indicator plots the highest high and lowest low that occurs over a user–specified number of days or sessions. It is intended to illustrate use of the vectors created and returned by OHLCVCollection.
Prior to opening the WFO, you should perform an optimization, set the optimization Type to Walk Forward and supply a strategy group name.
Optionable - The "Optionable" indicator was removed from the work area. Reuters no longer supports the fundamental data field which this study used.
Fundamntl Date, Fundamntl Custom, and Fundamntl TTM - These analysis techniques have been enabled for application to the Asset pane in OptionStation®.
Floor Trader Pivots and OHLC Yesterday - Added an input to each of these analysis techniques to allow users to indicate whether price levels should be calculated based on session data or 24–hour daily data. Added code to raise a run–time error if either of these studies is applied to a bar type other than intraday, tick, volume or daily. Also, created a short name for the Floor Trader Pivots study (set the short name property of this study).
Custom 1 Line, Custom 2 Lines, Custom 3 Lines, and Custom 4 Lines - Added inputs to each of these analysis techniques to allow users to displace the indicator plots and to specify a custom string to be displayed when alerts are triggered.
Custom PaintBar and Custom ShowMe - Added inputs to each of these studies to allow users to specify a custom string to be displayed when alerts are triggered. Enabled Custom PaintBar to paint intrabar (update intrabar). Added NoPlot( 2 ) statement to ensure complete unpainting intrabar.
Volume, Spread - Ratio, Spread - Diff, Position P ⁄ L, Position P ⁄ L %, and Position P ⁄ L % Grad - Added inputs to each of these analysis techniques to allow the user to set two alert levels: a high alert level, which triggers an alert when the plotted value moves above it, and a low alert level, which triggers an alert when the plotted value moves below it.
QuoteFieldValue - This function returns the value of a user–specified quote field for a user–specified symbol. It allows the user to obtain the value of a quote field, like "Bid" or "Last," for a symbol that is not on the chart or that is not the symbol on which the code is running in RadarScreen or OptionStation®.
OHLCVCollection and associated wrapper functions (listed below) - This function is intended to serve four purposes:
The OHLCVCollection function returns five vectors (by reference). The vectors contain Open, High, Low, Close and Volume data for a symbol for a user–specified period (daily, weekly, monthly, yearly or session).
Wrapper functions are provided to simplify access to commonly requested values. The provided wrapper functions are:
CloseSession() - Returns the closing price N sessions ago. An input is used to specify whether all sessions are counted or only regular sessions.
HighSession() - Returns the highest high that occurred during the session N sessions ago. An input is used to specify whether all sessions are counted or only regular sessions.
LowSession() - Returns the lowest low that occurred during the session N sessions ago. An input is used to specify whether all sessions are counted or only regular sessions.
OpenSession() - Returns the opening price of the session N sessions ago. An input is used to specify whether all sessions are counted or only regular sessions.
VolumeDay() - Returns the total volume for the day N days ago. (Similar to CloseD(), HighD(), etc.)
VolumeMonth() - Returns the total volume for the month N months ago. (Similar to CloseM(), LowM(), etc.)
VolumeSession() - Returns the total volume for the session N sessions ago. An input is used to specify whether all sessions are counted or only regular sessions.
VolumeWeek() - Returns the total volume for the week N weeks ago. (Similar to CloseW(), HighW(), etc.)
VolumeYear() - Returns the total volume for the year N years ago. (Similar to HighY(), LowY(), etc.)
Average and AverageFC - Added code to these functions to raise a run–time error in the event that the function is called with a Length input value of zero.
In TradeStation 9.0, we added a new "Implied on Mid" volatility model.
This model calculates the implied volatility using the option mid price via the following: (option ask + option bid) ⁄ 2. The maximum calculated implied volatility is set to 999.
In TradeStation 9.0, we have enhanced the OptionStation® Option Pane in several areas:
MIV on MID Inputs
The indicator includes two inputs:
In TradeStation 9.0, the OptionStation® pricing models have been enhanced, as follows:
In TradeStation 9.0, we introduced a few EasyLanguage keywords useful to OptionStation®
All support, education and training services and materials on the TradeStation Securities Web site are for informational purposes and to help customers learn more about how to use the power of TradeStation software and services and to help provide other customer support. No type of trading or investment recommendation, advice or strategy is being made, given or in any manner provided by TradeStation Securities or its affiliates.
Call a TradeStation Specialist 800.808.9336
No offer or solicitation to buy or sell securities, securities derivative, futures products or off-exchange foreign currency (forex) transactions of any kind, or any type of trading or investment advice, recommendation or strategy, is made, given or in any manner endorsed by any TradeStation affiliate and the information made available on this Website is not an offer or solicitation of any kind in any jurisdiction where any TradeStation affiliate is not authorized to do business, including but not limited to Japan.
Past performance, whether actual or indicated by historical tests of strategies, is no guarantee of future performance or success. There is a possibility that you may sustain a loss equal to or greater than your entire investment regardless of which asset class you trade (equities, options futures or forex); therefore, you should not invest or risk money that you cannot afford to lose. Options trading is not suitable for all investors. Your account application to trade options will be considered and approved or disapproved based on all relevant factors, including your trading experience. Please click here to view the document titled Characteristics and Risks of Standardized Options. Before trading any asset class, customers must read the relevant risk disclosure statements on our Other Information page. System access and trade placement and execution may be delayed or fail due to market volatility and volume, quote delays, system and software errors, Internet traffic, outages and other factors.
TradeStation Group, Inc. Affiliates: All proprietary technology in TradeStation is owned by TradeStation Technologies, Inc. Equities, equities options, and commodity futures products and services are offered by TradeStation Securities, Inc. (Member NYSE, FINRA, NFA and SIPC). TradeStation Securities, Inc.’s SIPC coverage is available only for equities and equities options accounts. Forex products and services are offered by the TradeStation Forex divisions of IBFX, Inc. (Member NFA) and IBFX Australia Pty Ltd, ABN 84 142 210 179, holder of AFSL #363972.
Copyright © 2001-2016 TradeStation Group, Inc.