AlgoVar .. AlgoVar,
AlgoVar2 .. AlgoVar2
16 general purpose variables for storing values specific to the current asset/algo combination. Every strategy component has its own set of AlgoVar variables; the sets are automatically switched with any algo or asset
call. The variables are stored in STATUS structs and can be used in portfolio strategies for values that are common to the algorithm, but different for every component of the strategy. They can also be used to pass asset/algorithm specific parameters to a TMF, or for storing parameters when a system is stopped and restarted.
AssetVar .. AssetVar
AssetStr .. AssetStr
16 general purpose locations for storing either numeric values, or strings specific to the current asset. Every asset has its own set of AssetVar/AssetStr variables; the sets are automatically switched with any asset call.
The locations are shared, i.e. either AssetVar[N] or
AssetStr[N] can be used, but not both with the same index N. The
first 8 variables or strings can be read at start from the asset list and stored in the ASSET structs. They can be used in portfolio strategies for parameters that are common to the algorithms, but different for every asset. AssetStr can only be modified with strcpy and has a maximum length of 7 characters.
Use double quotes for strings in the asset list for distinguishing
them from numbers.
AssetInt .. AssetInt
AssetFloat .. AssetFloat
32 general purpose int or float variables
specific to the current asset, as above. They are shared with
AssetVar/AssetStr at twice the index, i.e. AssetVar[N]
is shared with AssetInt[2*N] and AssetInt[2*N+1].
AssetInt can also store asset-specific series
pointers for using them in a tmf or tick
AssetO, AssetH, AssetL, AssetC, AssetP
of size NumBars in ascending order (no
series), containing the open, high, low, close, and
mean prices of the current asset for direct access. AssetC[Bar]
is the current close price. In portfolio strategies with assets of different
history lengths, not all elements of the arrays are filled. Unfilled elements
- Dependent on the SAV_ALGOVARS
flag, the AlgoVar and AlgoVar2 variables of
all algo/asset components are automatically saved and loaded at the end and
after the initial run of
a trading session. This way their values are preserved when a trading system is interrupted or restarted.
Otherwise AlgoVars and AssetVars are reset to
0 at the begin of a simulation.
- When training or predicting with an R machine learning algorithm, AlgoVar..AlgoVar are
automatically sent over to R and can there be used for setting up parameters to the learning process.
- If saving, loading, or reading from the asset list are not necessary, or
if more than 16 variables per component are needed, static series (with negative length
for not shifting) can be used alternatively to AlgoVars or
- The #define statement can be used for giving AlgoVars or AssetVars meaningful names, like #define MyVar AlgoVar.
To store a pointer instead of a var, use the as_int() macro, like #define MyPtr as_int(AlgoVar).
// in the run function
AlgoVar = 123;
// in the TMF
var MySpecificValue = AlgoVar;
algo, asset, TradeVar, SAV_ALGOVARS
► latest version online