TradeStation Add-Ons Developers Center    
 
   
Strategy Network Developers Open Platform Developers EasyLanguage Specialist
| | | |
 

TradeStation Open Platform

FREQUENTLY ASKED QUESTIONS

EasyLanguage Development
 
1.   How do I protect or save an encrypted copy of my EasyLanguage document?
   

EasyLanguage documents can be protected in two ways:

Developers can lock their proprietary documents by selecting the following menu sequence:

Select Tools Menu
Select Protect Document
Specify password

EasyLanguage documents may also be protected by exporting the document through the following method:

Select File Menu
Select Import/Export EasyLanguage
Highlight Export EasyLanguage Documents, file (ELD) protected
Choose Next button

Both protection techniques can be used together.
   

Top

 
2.   Why can't my EasyLanguage document find my DLL module?
   

During installation of TradeStation, a default directory is established for the storage of EasyLanguage documents and DLLs. EasyLanguage will automatically expect to access DLL files from the C:\Program Files\TradeStation\Program directory.

If the subscriber chooses a different installation path or if the DLL file needs to be in an alternative location, then changes are required to the External (or DefineDLLFunc ) statements to establish the proper path to the DLL function. If a DLL file has a dependency on any additional DLL files, the additional DLL files also need to be accessible via the Windows current path environment setting or located in the C:\Program Files\TradeStation\Program directory.

An additional explanation for this occurrence may be due to the bit architecture of our products. TradeStation 2000i and the TradeStation 8 platform only recognize 32-bit DLL modules.

   

Top

 
3.   How do I achieve compatibility for my EasyLanguage document with TradeStation 4.0, TradeStation 2000i or the current TradeStation platform?
   

EasyLanguage documents written in TradeStation 4.0 can be converted for use in TradeStation 2000i and TradeStation.

EasyLanguage documents written in TradeStation 2000i can be converted for use in TradeStation.

The conversion process is achieved by transferring or exporting the EasyLanguage document via the following process:

For TradeStation 4.0 to TradeStation 2000i conversion:

Go to Power Editor
Select File Menu
Select Open
Choose document type: Indicator, ShowMe, PaintBar, System or Function.
Highlight desired file for export
Select Transfer
Highlight EasyLanguage Archive File (.ELA)
Designate destination path and filename

For TradeStation 2000i to TradeStation 8 Platform conversion:

From within TradeStation, select File Menu.
Select Import/Export EasyLanguage
Highlight Import EasyLanguage File (.ELD, .ELS, or .ELA)
Type in origination path and filename of file to be imported
Click Next
Choose document type
Click Next
Choose document name
Click Finish

In migrating files from one version of TradeStation to another, it is important to note that each version of TradeStation recognizes different DLL types. It is recommended that the developer utilize the EasyLanguage Version function to identify the EasyLanguage version being used in advance of executing the remaining EasyLanguage code within the document. Doing so allows the developer to specify different paths and DLL names to be referenced by the EasyLanguage documents based on the current end user's EasyLanguage version.

   

Top

 
4.   How can I require a password in order to execute my EasyLanguage document?
   

Developers can add an input that requires the user to type in a text string, which is then tested against another text string built into the rules of the EasyLanguage document, allowing the document to work only if the two strings are equal.

Example
Input: Password(" ");
If UpperStr(Password) = "58926Bob" then begin
Plot1(Close,"Close");
End;

   

Top

 
5.   How do I restrict the use of my EasyLanguage document to a specific computer station?
   

EasyLanguage has a function called CustomerID which can be accessed to allow the use of an EasyLanguage document only by a specified end user.

Example
If CustomerID = 123456 then begin
Plot1(Close,"Close");
End;

   

Top

 
6.   How do I assign the operation of my EasyLanguage document to a specific symbol?
   

A developer might find it preferable to allow his EasyLanguage document to function only on a specific symbol by using the GetSymbolName function.

Example
If GetSymbolName = "ABCD" then begin
Plot1(Close,"Close");
End;

   

Top

 
7.   How do I establish a date limit for the operation of my EasyLanguage document?
   

The use of an EasyLanguage document can be date-limited by comparing the date of a bar against a date specified in the EasyLanguage code, demonstrated with the following example:

Example
{ Limited usage to December 31 of 2001 }
If Date <= 1011231 then begin
{ place date restricted code within the begin-end block }
Plot1(Close,"Close");
End;

   

Top

 
8.   How do I permit the operation of my EasyLanguage document for a specified data compression (bar interval)?
   

The effectiveness of an EasyLanguage document can depend on the data compression being used by the chart to which it is applied. BarType and BarInterval are EasyLanguage functions available for this very purpose.

The following restricts processing of the EasyLanguage document to a daily chart.

Example
If BarType = 2 then begin
Plot1(Close,"Close");
End;

The following restricts processing of the EasyLanguage document to a 5-minute chart.

If BarType = 1 and BarInterval = 5 then begin
Plot1(Close,"Close");
End;

 
 
Technical Documentation
9.   Is there a separate Developer's Guide for TradeStation?
   

Yes. You can download the EasyLanguage Extension Software Development Kit (SDK) documentation from this site. The Software Development Kit documentation contains detailed information about integrating TradeStation with external programming languages.

There is also extensive EasyLanguage documentation that can be accessed from TradeStation and within the TradeStation Support Center offered by our affiliate, TradeStation Securities. From within TradeStation, choose Help and then TradeStation User Guide. To access EasyLanguage documentation available in the Support Center offered by our affiliate, TradeStation Securities, select the link below:

https://www.tradestation.com/support/books/default.aspx

   

Top

 
10.   How do I resolve Block ID incompatibilities with TradeStation?
   

If during the signup process, your customer specifies contact information that differs from what TradeStation Technologies already has on file, TradeStation will not find an existing record match that will provide for the assignment of any existing registered block id. Instead, it will assign a new Customer # and/or Block ID # to the customer.

To correct this, you can either:

  1. Advise the customer to contact TradeStation Technologies' Customer Support and request that his customer files be merged. He should also specify the Block ID # that he is currently using to operate your Open Platform product.
  2. Ask the customer to check the Help/About menu within TradeStation and provide you with the Customer ID # that is displayed. Change your source code to reference the Customer ID function, and assign the function to the value that the customer provides.
  3. Request the "Identify Block ID" indicator by posting a message at the TradeStation and EasyLanguage Support Forum. By providing this indicator to your customer, TradeStation will report the value that EasyLanguage is storing for the Block ID function. This will allow you to compare the value of this indicator with the value you have hard-coded into your product for a particular customer.
   

Top

 
11.   Which language compilers can I use to design dynamic-link library (DLL) functions for use with EasyLanguage? Do you have any DLL examples?
   

EasyLanguage supports DLL's meant for calculation enhancements or simple decrypting. Do not use EasyLanguage to call DLL's that use Windows functions to create user interfaces because crashes may occur. In general, DLL functions should not attempt to interrupt the processing of EasyLanguage while, for example, awaiting user input.

Documentation of the EasyLanguage Extension Software Development Kit (SDK) is available through the TradeStation help menu, and from the link provided in the answer to Question 9 above. This documentation contains sample DLL code. Additionally, complete demonstration projects are available through the EasyLanguage-DLL category of the support forums, at the following link.

https://www.tradestation.com/Discussions/forum.aspx?Forum_ID=213&selCategory=1853&subCategory=EasyLanguage-DLL

Click on the link that says "New Topic" at the page to which the link above takes you. Complete the New Topic form, being sure to type your request for demonstration code in the "Message" box. Of course, should you have other questions about creation of TradeStation-compatible DLL's, you may post those also. (The support forums are open to all TradeStation clients, who may view and reply to your posted questions. For this reason, you may wish to remove any proprietary calculations from posted code.)

Any compiler that can export functions with a "standard C" (__stdcall) interface can be used. Developers have created TradeStation-compatible DLL's using Visual C++, Delphi, and PowerBASIC. If you have additional questions about supported compilers, please post in the support forum at the link just provided.

 
Licensing Issues
12.   How do I obtain a development subscription to TradeStation?
    Details for establishing a development subscription to TradeStation will be made available on your online registration. If you have an existing subscription to TradeStation, the subscription rate will be adjusted when your products have cleared compatibility testing.
   

Top

13.   I have filed my registration. What is the next step?
    Proceed with development of your compatible Open Platform product. If you are not already subscribing to TradeStation, a development subscription may be requested by emailing OpenPlatform@TradeStation.com . Within 90 days of the issuance of your development subscription, send your finished product to TradeStation Technologies for compatibility testing. Instructions for submitting a product for compatibility testing may be found here. Once your product has passed compatibility testing, the license agreement will be forwarded to you for review and signature. Once these documents have been returned to TradeStation Technologies and an officer’s counter-signature has been obtained, the registration process is complete.
   

Top

14.   I’ve submitted my product for compatibility testing but the results indicate that my product did not pass. What do I do?
   

The most common reason for a product failing compatibility testing is due to the use of a built-in function such as ‘LastBarOnChart.’

Part of our compatibility testing guidelines checks that the submission does not have the possibility of overwriting elements in the default work area. This has the potential to cause two problems.

  1. If a developer exports the ELD as source-protected, the user could inadvertently overwrite their existing built-in function with a source-protected version that he/she will no longer be able to open.

  2. If TradeStation make changes to the formula for a function for any reason in the future, the user could overwrite the updated version of a function with the older one in the ELD that they import.

Most developers find the best solution is to save a duplicate copy of the built-in functions they use under a different name and change their code to reference the new function. This way, when the ELD is exported, it transfers a uniquely named version of the function and prevents any conflicts.

For example, if the function TL_Exist is used, just open the function and select File – Save EasyLanguage Document As and name it something different such as MyTL_Exist. This will result in two differently named copies of the function file. After creating the unique copy, you would simply replace any references in the ELD code that uses TL_Exist to MyTL_Exist. Subsequently, when you export the ELD, it will transfer MyTL_Exist rather than the built-in function, TL_Exist. This will help to avoid any conflicts.

While this same procedure could be applied for LastBarOnChart, we recommend that developers start modernizing their code to use the reserved word GetAppInfo with the parameter aiRealTimeCalc to determine the status of the calculation (historical or real-time) wherever possible.

   

Top

15.   Is compatibility testing required of every product I wish to license?
    Yes. All new products and updates of existing products must be submitted for compatibility testing prior to licensing. Additionally, a Compatibility Verification Submission Form must be submitted for each product individually.
    Top
16.   When I register as a licensed Open Platform developer, will the exchanges (market data services) consider me a "professional"?
   

All licensed TradeStation Open Platform product developers, regardless of whether you register as an individual or type of legal entity (corporation, partnership or limited liability company), will be deemed a “professional” as defined by the exchanges.

You have the option to choose not to receive any real-time market data services. If you choose not to receive any real-time data, you will receive any delayed data that is offered at no charge by the various exchanges that offer such data. If you do choose to receive real-time market data from an exchange, you will also receive any free delayed data from all other exchanges that offer such data.

During the registration process, you will not be required to select which data services you wish to receive. This can be done during the TradeStation download process, when you will be prompted to select which market data services you wish to receive, and when you will also have time to review the complete list of such services along with their pricing.

Please note that if you wish to qualify for special NASDAQ data services pricing, you must call 954.652.7016 and speak with the TradeStation Add-ons Administrative Assistant.

    Top
 
 
 
 
 
 
This is a TradeStation Technologies, Inc. website. Neither TradeStation Technologies, Inc. nor any of its affiliates has reviewed, certified, endorsed, approved, disapproved or recommended, and neither does or will review, certify, endorse, approve, disapprove or recommend, any product or service that offers training, education or consulting regarding the use of EasyLanguage.

Neither TradeStation Technologies, Inc. nor any of its affiliates has reviewed, certified, endorsed, approved, disapproved or recommended, and neither does or will review, certify, endorse, approve, disapprove or recommend, any trading software tool that is designed to be compatible with the TradeStation Open Platform or any developer of, or company that may offer, any such trading tool. Developers of trading tools designed for the TradeStation Open Platform are independent persons or companies that are in no manner affiliated with TradeStation Technologies, Inc. or any of its affiliates, and neither TradeStation Technologies, Inc. nor any of its affiliates receives any compensation, direct or indirect, relating to the sale or use of any such trading tools. No offer or solicitation to buy or sell securities or securities derivative products of any kind, or any type of trading or investment advice, recommendation or strategy, is made, given or in any manner endorsed by TradeStation Technologies, Inc. or any of its affiliates. Past performance, whether actual or indicated by historical tests of strategy trading products, is no guarantee of future performance or success.

© 2002 - 2008. All rights reserved. TradeStation® and EasyLanguage® are registered trademarks of TradeStation Technologies, Inc.