public override void ClosePosition(Trade closingTrade, DateTime time, Portfolio.TradeBookedEvent onTradeBooked, Portfolio.TradeBookedEvent onBookingFailed) { if (closingTrade != null) { closingTrade.Reference = "###CLOSE_DUMMY_TRADE_REF" + _numRef++ + "###"; closingTrade.ConfirmationTime = time; onTradeBooked(closingTrade); onClosePositionNotification(closingTrade); } }
public override void BookTrade(Trade trade, Portfolio.TradeBookedEvent onTradeBooked, Portfolio.TradeBookedEvent onBookingFailed) { if (trade != null) { trade.Reference = "###DUMMY_TRADE_REF" + _numRef++ + "###"; trade.ConfirmationTime = trade.TradingTime; onTradeBooked(trade); onCreateTradeNotification(trade); } }
public virtual void ClosePosition(Trade closingTrade, DateTime time, Portfolio.TradeBookedEvent onTradeBooked, Portfolio.TradeBookedEvent onBookingFailed) { if (closingTrade != null) { closingTrade.Reference = "###CLOSE_DUMMY_TRADE_REF" + _numRef++ + "###"; closingTrade.ConfirmationTime = time; onTradeBooked(closingTrade); TradeBookingEvent bookingEvent = new TradeBookingEvent(closingTrade); _bookingTimers.Add(new System.Threading.Timer(onClosePositionNotification, bookingEvent, 10, Timeout.Infinite)); } }
public virtual void BookTrade(Trade trade, Portfolio.TradeBookedEvent onTradeBooked, Portfolio.TradeBookedEvent onBookingFailed) { if (trade != null) { trade.Reference = "###DUMMY_TRADE_REF" + _numRef++ + "###"; trade.ConfirmationTime = trade.TradingTime; onTradeBooked(trade); var bookingEvent = new TradeBookingEvent(trade); _bookingTimers.Add(new System.Threading.Timer(onCreateTradeNotification, bookingEvent, 10, Timeout.Infinite)); } }
public void ClosePosition(Trade trade, DateTime time, Portfolio.TradeBookedEvent onTradeClosed, Portfolio.TradeBookedEvent onBookingFailed) { if (trade == null) { Log.Instance.WriteEntry("Cannot close trade", EventLogEntryType.Error); return; } else { Log.Instance.WriteEntry("Closing trade id " + (trade.Id == null ? "null" : trade.Id) + " ref " + (trade.Reference == null ? "null" : trade.Reference) + "..."); } BookTrade(trade, onTradeClosed, onBookingFailed); }
public override void BookTrade(Trade trade, Portfolio.TradeBookedEvent onTradeBooked, Portfolio.TradeBookedEvent onBookingFailed) { if (trade.Direction == SIGNAL_CODE.BUY) { trade.Id = "###DUMMY_TRADE_ID" + _numId++ + "###"; trade.Reference = "###DUMMY_TRADE_REF" + _numRef++ + "###"; trade.ConfirmationTime = trade.TradingTime; onBookingFailed(trade); } else { base.BookTrade(trade, onTradeBooked, onBookingFailed); } }
public async void BookTrade(Trade trade, Portfolio.TradeBookedEvent onTradeBooked, Portfolio.TradeBookedEvent onBookingFailed) { if (_closing.Signaled) { Log.Instance.WriteEntry("Application is stopping: cannot book trade", EventLogEntryType.Warning); return; } CreatePositionRequest cpr = new CreatePositionRequest(); cpr.epic = trade.Epic; cpr.expiry = "DFB"; cpr.direction = trade.Direction.ToString(); cpr.size = trade.Size; cpr.orderType = "MARKET"; cpr.guaranteedStop = false; cpr.forceOpen = false; cpr.currencyCode = Config.Settings["TRADING_CURRENCY"]; if (onTradeBooked != null) { onTradeBooked(trade); } var createPositionResponse = await _igRestApiClient.createPositionV2(cpr); if (createPositionResponse && (createPositionResponse.Response != null) && (createPositionResponse.Response.dealReference != null)) { Log.Instance.WriteEntry("New trade booked successfully : " + createPositionResponse.Response.dealReference, EventLogEntryType.Information); trade.Reference = createPositionResponse.Response.dealReference; trade.ConfirmationTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local); } else { Log.Instance.WriteEntry("Trade booking failed : " + createPositionResponse.StatusCode, EventLogEntryType.Error); if (onBookingFailed != null) { onBookingFailed(trade); } } }
void IAbstractStreamingClient.ClosePosition(Trade trade, DateTime time, Portfolio.TradeBookedEvent onTradeClosed, Portfolio.TradeBookedEvent onBookingFailed) { throw new ApplicationException("ActiveTick API is not for trading, only for market data"); }