コード例 #1
0
ファイル: ConnectionReplay.cs プロジェクト: w1r2p1/MiDax
 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);
     }
 }
コード例 #2
0
ファイル: ConnectionReplay.cs プロジェクト: w1r2p1/MiDax
 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);
     }
 }
コード例 #3
0
ファイル: ConnectionReplay.cs プロジェクト: w1r2p1/MiDax
 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));
     }
 }
コード例 #4
0
ファイル: ConnectionReplay.cs プロジェクト: w1r2p1/MiDax
 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));
     }
 }
コード例 #5
0
ファイル: ConnectionIG.cs プロジェクト: w1r2p1/MiDax
 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);
 }
コード例 #6
0
ファイル: ConnectionReplay.cs プロジェクト: w1r2p1/MiDax
 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);
     }
 }
コード例 #7
0
ファイル: ConnectionIG.cs プロジェクト: w1r2p1/MiDax
        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);
                }
            }
        }
コード例 #8
0
 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");
 }