To deploy ForeStock on TradeStation, please follow these steps:
- Install TradeStation 2000i or above
- Install ForeStock
- Enter license keys for all components
- Run ForeStock setup for Trade Station
Programs > StockFusion > StockFusion for Trade Station - There will appear import wizard screen. Select all objects for import and confirm.
Watch imported functions in Easy Language editor. Use provided functions as templates for your own functions and strategies.
Below there is full Easy Language code of Aura Forecast Engine call.
{*******************************************************************Description: Aura Forecast Engine ExtendedProvided By: Boris Zinchenko (c) Copyright 2008********************************************************************}DefineDLLFunc: "EEOmegaX.dll", float, "AURA_ENGINE_EX", LPSTR, DWORD, DWORD, LPLONG, LPINT, LPLONG, LPLONG, LPLONG, LPLONG, LPLONG, LPLONG, LPSTR, LPSTR, DWORD;{ Inputs }Inputs:AlgorithmName(String),InputLength(Numeric),SeriesNames(String),Parameters(String),ForecastLength(Numeric),Forecast(NumericRef);{ Inner variables }Variables: Dummy(0), Counter(0);{ Reserve arrays for data }Dummy = Date[InputLength];Dummy = Time[InputLength];Dummy = Open[InputLength];Dummy = High[InputLength];Dummy = Low[InputLength];Dummy = Close[InputLength];Dummy = Volume[InputLength];Dummy = OpenInt[InputLength];{ Call solver }Forecast = AURA_ENGINE_EX((LPSTR)AlgorithmName, (DWORD)MaxBarsBack, (DWORD)PriceScale, (LPLONG)&Date, (LPINT)&Time, (LPLONG)&Open, (LPLONG)&High, (LPLONG)&Low, (LPLONG)&Close, (LPLONG)&Volume, (LPLONG)&OpenInt, (LPSTR)SeriesNames, (LPSTR)Parameters, (DWORD)ForecastLength);AuraEngineExt = Forecast;
Short description of input parameters:
Parameter | Description |
AlgorithmName | Name of indicator. It must exactly coinside with the names of algorithms given in algorithm table in this manual. Any misprint, wrong case or white space will result in error. |
InputLenght | Desirable input length of symbol history for calculation. Please carefully observe minimum input length limitations in the last section of this manual. If input is too short, no calculation will take place and indicator will stay void. Typically, minimal limitations are just barely enough to run algorith at all. User must expect that good results will require much longer series. It is advised to have at least 500 historical points provided. Best results are expected with several thousands historical points. Note however that the increase of history dramatically increases required computational resources. |
SeriesNames | Comma delimited list of input series for calculation. Allowed names include |
- Open
- High
- Low
- Close
- Volume
- OI
For example: SeriesNames(“Open,High,Low,Close,Volume,OI”). Names are case sensitive. No whitespaces allowed. User can rearrange names to combine different input sequences to the algorithm. There is no sense to pass several series into algorithms, which are univariate. Please consult algorithm table in the last chapter on allowed number of inputs for each algorithm.ParametersReserved for future usage and complex use cases. Please ignore in current release.ForecastLenghtNumber of forward steps, for which forecast is calculated and returned as function output. Please consult algorithm table in the last chapter on supported forecast lenghts for each specific algorithm. Indicators support only zero forecast length. Predictors support one or more forward steps.
This is very simple example of calling engine in trading strategy.
{*******************************************************************Description: StockFusion Universal Signal
Provided By: Boris Zinchenko (c) Copyright 2008
********************************************************************}
Inputs: AlgorithmName(“Linear Regression”), InputLength(500), SeriesNames(“Close”),
Parameters(“”), ForecastLength(1);
Variables: Forecast(0);
Value1 = QB_AuraEngineExt(AlgorithmName, InputLength, SeriesNames,
Parameters, ForecastLength, Forecast);
If (Forecast < Close) AND (Close > Close[1]) Then Sell This Bar at Close;
If (Forecast > Close) AND (Close < Close[1]) Then Buy This Bar at Close;
Of course, real strategies are typically more complex and realistic .