Use Case 8

Goal

Implement the equivalent of Wealth-Lab synchronization logic explained here.

Solution

C# equivalent to default wealth-lab behavior:

Timeseries primary = ...; // Get Primary Timeseries
Timeseries external = ...; // Get the external Timeseries

// Mimic Wealth-Lab synchronization logic.
external.Interpolation = OldestNeighbor;
Timeseries::Sync( primary, external, SyncMode.Mode5 );

// Calculate the Sma after the synchronization.
external["Sma5"] = external.Sma(5);

Console.WriteLine( "Default Wealth-Lab example: {0}", external["Sma5"] );
 

Same as previous, but use the capability of a time series to automatically synchronize newly added variables.

Timeseries primary = ...; // Get Primary Timeseries
Timeseries external = ...; // Get the external Timeseries

// Mimic Wealth-Lab synchronization logic for newly added variable.
primary.Interpolation = OldestNeighbor;
primary.SyncMode = SyncMode.Mode5;

// Calculate the Sma. Synchronization occur when the variable is added
// to primary.
primary["Sma5"] = external.Sma(5);

WriteConsole( "Default Wealth-Lab example: {0}", primary["Sma5"] );
 

C# equivalent to the non-default wealth-lab example:

Timeseries primary = ...; // Get Primary Timeseries
Timeseries external = ...; // Get the external Timeseries

// Calculate first the Sma.
external["Sma5"] = external.Sma(5);

// Mimic Wealth-Lab synchronization logic.
external.Interpolation = OldestNeighbor;
Timeseries::Sync( primary, external, SyncMode.Mode5 );

WriteConsole( "Non-Default Wealth-Lab example: {0}", external["Sma5"] );
 

WARNING: Work in progress.