public void TestEnumToInt() { TradeActionBuySell enum1 = TradeActionBuySell.Buy; PositionDirection enum2 = PositionDirection.LongPosition; Assert.AreEqual(enum1.ToInt(), enum2.ToInt()); }
/// <summary> /// Constructor /// </summary> /// <param name="security"></param> /// <param name="tradeAction"></param> /// <param name="quantity"></param> /// <param name="tradeType"></param> /// <param name="limitOrStopPrice"></param> public Trade(Security security, TradeActionBuySell tradeAction, int quantity, TradeType tradeType, decimal limitOrStopPrice = 0, bool apiTrade = true, bool IgnoreTradeId = false) { Security = security; TradeActionBuySell = tradeAction; Quantity = quantity; TradeType = tradeType; switch (tradeType) { case TradeType.Market: break; case TradeType.Limit: LimitPrice = limitOrStopPrice; break; case TradeType.Stop: StopPrice = limitOrStopPrice; break; case TradeType.StopLimit: LimitPrice = limitOrStopPrice; StopPrice = limitOrStopPrice; break; default: break; } LimitPrice = limitOrStopPrice; ApiTrade = apiTrade; TradeStatus = TradeStatus.NotSet; TradePriority = TradePriority.NotSet; if (!IgnoreTradeId) { TradeId = NextTradeId; } }
public decimal SlippageAdjustedPrice(decimal Price, TradeActionBuySell tradeAction) { return(Math.Round((Price + ((int)tradeAction) * Slippage(Price)), 3)); }