private bool RunDecision(SimplePosition position, ref StrategyData strategyData, StrategyDecision decision, RobotInput robotInput) { if (!DecisionSet.Contains(decision.ToString())) { return(false); } if (decision == StrategyDecision.Open) { return(OpenPosition(position, ref strategyData)); } else if (decision == StrategyDecision.OpenMissed) { return(OpenMissedPosition(position, ref strategyData)); } else if (decision == StrategyDecision.ExitHeavy) { return(ExitPositionHeavyLoss(position, ref strategyData)); } else if (decision == StrategyDecision.Exit) { return(ExitPosition(position, ref strategyData, robotInput.risk)); } else if (decision == StrategyDecision.TakeProfit) { return(TakeProfit(position, ref strategyData, robotInput.reward)); } else if (decision == StrategyDecision.Escape) { return(EscapeTrap(position, ref strategyData)); } else { return(false); } }