Table of Contents

Struct PositionSize

Namespace
Virtufin.Base
Assembly
Virtufin.Base.dll

A position size expressed as a rational Quote × Multiplier / Divisor so positions in different units (e.g. lots vs. shares) can be combined without losing precision.

public readonly record struct PositionSize : IEquatable<PositionSize>
Implements
Inherited Members

Constructors

PositionSize(long, ulong, ulong)

A position size expressed as a rational Quote × Multiplier / Divisor so positions in different units (e.g. lots vs. shares) can be combined without losing precision.

public PositionSize(long Quote, ulong Multiplier, ulong Divisor)

Parameters

Quote long

Numerator of the position size.

Multiplier ulong

Multiplier applied to Quote.

Divisor ulong

Divisor applied to Quote × Multiplier.

Properties

Divisor

Divisor applied to Quote × Multiplier.

public ulong Divisor { get; init; }

Property Value

ulong

Multiplier

Multiplier applied to Quote.

public ulong Multiplier { get; init; }

Property Value

ulong

Quote

Numerator of the position size.

public long Quote { get; init; }

Property Value

long

Value

Return the size as a double (lossy).

public double Value { get; }

Property Value

double

Methods

Add(PositionSize)

Add two positions, rescaling to a common denominator.

public PositionSize Add(PositionSize other)

Parameters

other PositionSize

Returns

PositionSize

Of(long)

Construct a size of 1 unit (or N units if positionSize ≠ 1).

public static PositionSize Of(long positionSize)

Parameters

positionSize long

Initial quantity.

Returns

PositionSize