sclass MPM { new Set imaginaryPositions; new Set realPositions; Position newShort() { ret new Position().direction(-1); } Position newLong() { ret new Position().direction(1); } abstract class CloseReason {} class LossClose > CloseReason {} class HappyClose > CloseReason {} class RegularClose > CloseReason {} // pullback close class Position { settable bool real; // -1 (short) or 1 (long) settable int direction; settable double relativeValue; settable double maxRelativeValue; settable CloseReason closeReason; } }