public static Option <Money> StopLossAmount(Option <Money> entryPrice, Option <Money> stopLossPrice, Option <int> lots) => from e in entryPrice from sl in stopLossPrice from l in lots select PositionCalculatorExtensions.StopLossAmount(e, sl, l.Lots());
public static Option <decimal> RiskReward(Option <Money> entryPrice, Option <Money> stopLossPrice, Option <Money> targetPrice) => flatten(from e in entryPrice from sl in stopLossPrice from t in targetPrice select PositionCalculatorExtensions.RiskReward(e, sl, t));
public static Option <int> Shares(Option <Money> entryPrice, Option <Money> stopLossPrice, Option <Money> accountRisk) => from shares in flatten(from e in entryPrice from sl in stopLossPrice from ar in accountRisk select PositionCalculatorExtensions.Shares(e, sl, ar)) select shares.Shares;
public static bool IsValidEntryPriceStopLossPrice(Option <Money> entryPrice, Option <Money> stopLossPrice) => (from e in entryPrice from sl in stopLossPrice let isEntryPriceGreaterThanZero = IsGreaterThanZero(e) let isStopLossPriceGreaterThanZero = IsGreaterThanZero(sl) let isEntryPriceGreaterThanStopLoss = PositionCalculatorExtensions.IsValidStopLossPrice(e, sl) select isEntryPriceGreaterThanZero&& isStopLossPriceGreaterThanZero && isEntryPriceGreaterThanStopLoss) .IfNone(() => false);
public static bool IsValidTargetPrice(Option <Money> entryPrice, Option <Money> targetPrice) => (from e in entryPrice from sl in targetPrice select PositionCalculatorExtensions.IsValidTargetPrice(e, sl)) .IfNone(() => false);
public static Option <Tick> TargetTick(Option <Money> entryPrice, Option <Money> targetPrice) => from e in entryPrice from t in targetPrice select PositionCalculatorExtensions.TargetTick(e, t);
public static Option <Money> EntryAmount(Option <Money> entryPrice, Option <int> lots) => from e in entryPrice from l in lots select PositionCalculatorExtensions.EntryAmount(e, l.Lots());
public static Option <Money> CalculateAccountRisk(Option <Money> capital, Option <Percent> risk) => from c in capital from r in risk select PositionCalculatorExtensions.AccountRisk(c, r);
public static Option <Percent> TargetPercentage(Option <Money> entryPice, Option <Money> targetPrice) => flatten(from e in entryPice from t in targetPrice select PositionCalculatorExtensions.TargetPercentage(e, t));
TargetAmount(Option <Money> entryPrice, Option <Money> targetPrice, Option <int> lots) => from e in entryPrice from t in targetPrice from l in lots select PositionCalculatorExtensions.TargetAmount(e, t, l.Lots());
public static Option <Tick> StopLossTick(Option <Money> entryPrice, Option <Money> stopLossPrice) => from e in entryPrice from sl in stopLossPrice select PositionCalculatorExtensions.StopLossTick(e, sl);
public static Option <Percent> StopLossPercentage(Option <Money> entryPice, Option <Money> stopLossPrice) => flatten(from e in entryPice from sl in stopLossPrice select PositionCalculatorExtensions.StopLossPercentage(e, sl));