rationalPipValue method
Implementation
Rational rationalPipValue(MatexBaseCoreState state) {
final counterAccountCurrencyPairExchangeRate =
state.counterAccountCurrencyPairExchangeRate;
final baseListedSecond = state.baseListedSecond!;
final pipPrecision = state.pipPrecision!;
final positionSize = state.positionSize;
final tradingPairExchangeRate = state.tradingPairExchangeRate;
final decimalMultiplicator = pow(10, pipPrecision);
final decimalPip = Decimal.one / toDecimal(decimalMultiplicator);
final pipValue = toDecimal(positionSize).toRational() * decimalPip;
if (baseListedSecond) {
return pipValue;
} else if (counterAccountCurrencyPairExchangeRate == 0) {
return (pipValue / toDecimal(tradingPairExchangeRate).toRational());
}
return pipValue *
toDecimal(counterAccountCurrencyPairExchangeRate!).toRational();
}