corePositionSizeValidators top-level property

List<MatexStateValidator> corePositionSizeValidators
final

Implementation

final List<MatexStateValidator> corePositionSizeValidators = [
  (MatexBaseCoreState state) =>
      (state.amountAtRisk != null) ||
      (state.riskRatio != null && state.accountSize != null),
  (MatexBaseCoreState state) =>
      (state.amountAtRisk! > 0) ||
      (state.riskRatio! > 0 && state.accountSize! > 0),
  (MatexBaseCoreState state) {
    final amountAtRisk = state.amountAtRisk;
    final accountSize = state.accountSize;
    final riskRatio = state.riskRatio;
    var isValid = true;

    if (riskRatio != null && riskRatio > 0) {
      isValid = riskRatio > 0 && riskRatio <= 100;
    }

    if (amountAtRisk != null && amountAtRisk > 0) {
      isValid = amountAtRisk > 0;

      if (isValid && accountSize != null && accountSize > 0) {
        isValid = amountAtRisk <= accountSize;
      }
    }

    return isValid;
  },
];