TradeStation Add-On Developer Center
Develop for the Premier Strategy Trading Platform - TradeStation
Contact Us - TradeStation Developer Center CONTACT US
 
Support & Downloads: Developer Frequently Asked Questions

TradeStation Developer FAQs

 

 
EasyLanguage Development
1.

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

2. Why can’t my EasyLanguage document find my DLL module?
3. How do I achieve compatibility for my EasyLanguage document with TradeStation 4.0, TradeStation 2000i or the TradeStation Platform?
4. How can I establish a password entry for execution of my EasyLanguage document?
5. How do I restrict the use of my EasyLanguage document to a specific computer station?
6. How do I assign the operation of my EasyLanguage document to a specific symbol?
7. How do I establish a date limit for the operation of my EasyLanguage document?
8. How do I permit the operation of my EasyLanguage document for a specified data compression (Bar Interval)?
Technical Documentation
9. Is there a separate Developer’s Guide for TradeStation?
10. How do I resolve Block ID incompatibilities with TradeStation?
11. Which language compilers can I use to design DLLs (Dynamic Link Library) functions for use with EasyLanguage and do you have any DLL examples?
Licensing Issues
12. What are the differences between the Standard and Exclusivity License?
13. How do I obtain a development subscription to TradeStation once I’ve submitted an online registration?
14. I have filed my registration. What is the next step?
15. I’ve submitted my product for compatibility testing but the results indicate that my product did not pass. What do I do?
16. Is compatibility testing required of every product I wish to license?

 
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 TradeStation?

   

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 establish a password entry for execution of 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 2 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;

   

Top


 
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. From within TradeStation choose Help and then TradeStation User Guide. To access the EasyLanguage documentation available in the Support Center, 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 at (954) 652-7675 and request that his customer files be merged. He should also specify the block id # that he is currently using to operate your add-on 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 and 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 which 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.

   

Top


12.  

What are the differences between the Standard and Exclusivity License?

    While both provide authorization to reference our trademarks, service marks, the TradeStation Open Platform compatibility logo and support resources, only the Exclusivity license provides for a developer’s participation in the TradeStation Add-ons Discussion forum hosted by our affiliate, TradeStation Securities, Inc. The benefits offered in exchange for exclusivity may change from time to time. They currently include product listings within the TradeStation Add-ons Discussion forum and being eligible for interviews and article submissions.
     
   

Top


13.  

How do I obtain a development subscription to TradeStation once I’ve submitted an online registration?

    Details for establishing a development subscription to TradeStation will be sent to you via email as an acknowledgement of your online registration. Please allow 3-5 business days for processing. If you do not receive an email acknowledgement, please email us at to let us know. If you have an existing subscription to TradeStation, the subscription rate will be adjusted when your products have cleared compatibility testing.
   

Top


14.  

I have filed my registration. What is the next step?

    Proceed with development of your compatible add-on product. If you are not already subscribing to TradeStation, a development subscription may be requested by emailing . Within 90 days of the issuance of your development subscription, send your finished product to TradeStation Technologies for compatibility testing. Instructions for compatibility testing may be found at: https://www.TradeStationDeveloper.com/CompatabilityVerification/compat_form.aspx. 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


15.  

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 name 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, TradeStation Product Management recommends 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


16.  

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
 

 
 
© 2002 - 2007 TradeStation® and EasyLanguage® are registered trademarks of TradeStation Technologies, Inc.