Beispiel #1
0
 public void closePosition(Position pos, DateTime time, TradeBookedEvent onTradeBooked, TradeBookedEvent onBookingFailed, int idxPlaceHolder = 0, decimal stockValue = 0m)
 {
     if (pos.Quantity != 0)
     {
         var positionClose = new Trade(time, pos.Epic, pos.Quantity > 0 ? SIGNAL_CODE.SELL : SIGNAL_CODE.BUY, Math.Abs(pos.Quantity), stockValue, idxPlaceHolder);
         closePosition(positionClose, time, onTradeBooked, onBookingFailed);
     }
 }
Beispiel #2
0
 public void ClosePosition(Position pos, DateTime closing_time, TradeBookedEvent onTradeBooked = null, TradeBookedEvent onBookingFailed = null, decimal stockValue = 0m)
 {
     if (onTradeBooked == null)
     {
         onTradeBooked = new TradeBookedEvent(OnTradeBooked);
     }
     if (onBookingFailed == null)
     {
         onBookingFailed = new TradeBookedEvent(OnBookingFailed);
     }
     closePosition(pos, closing_time, onTradeBooked, onBookingFailed, 0, stockValue);
 }
Beispiel #3
0
 public void ClosePosition(Trade trade, DateTime closing_time, TradeBookedEvent onTradeBooked = null, TradeBookedEvent onBookingFailed = null)
 {
     if (trade == null)
     {
         return;
     }
     if (onTradeBooked == null)
     {
         onTradeBooked = new TradeBookedEvent(OnTradeBooked);
     }
     if (onBookingFailed == null)
     {
         onBookingFailed = new TradeBookedEvent(OnBookingFailed);
     }
     closePosition(new Trade(trade, true, closing_time), closing_time, onTradeBooked, onBookingFailed);
 }
Beispiel #4
0
 void closePosition(Trade trade, DateTime time, TradeBookedEvent onTradeBooked, TradeBookedEvent onBookingFailed)
 {
     _igStreamApiClient.ClosePosition(trade, time, onTradeBooked, onBookingFailed);
     Log.Instance.WriteEntry(string.Format("Forcefully closed a position, Epic: {0}, Size: {1}, Value: {2}", trade.Epic, trade.Size, trade.Price), System.Diagnostics.EventLogEntryType.Warning);
 }