// Each instance is for one coin sclass G22DriftSystem extends MetaWithChangeListeners { settable S cryptoCoin; // Position currently taken on platform (in crypto coin units) // Positive for long position, negative for short position, // zero for no position. settable double driftOnPlatform; // Drift value we want to have settable double targetDrift; transient settable IFuturesMarket market; settableWithVar FutureCoinParameters coinParams; Set activeStrategies = syncLinkedHashSet(); double calculateTargetDrift() { double drift = 0; for (strat : cloneList(activeStrategies)) drift += strat.drift(); targetDrift(drift); ret drift; } }