Ejemplo n.º 1
0
 protected override void OnConnectionStatusUpdate(Cbi.ConnectionStatusEventArgs connectionStatusUpdate)
 {
     if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Connected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Connecting)
     {
         lock (connectionStatusUpdate.Connection.Accounts)
         {
             Cbi.Account account = connectionStatusUpdate.Connection.Accounts.FirstOrDefault(o => o.Name == AccountName);
             if (account != null)
             {
                 CurrentValue = 0;
                 foreach (Cbi.Execution execution in account.Executions)
                 {
                     if (execution.Instrument == Instrument)
                     {
                         CurrentValue += execution.Quantity;
                     }
                 }
             }
         }
     }
     else if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Disconnected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Disconnecting)
     {
         lock (connectionStatusUpdate.Connection.Accounts)
             if (connectionStatusUpdate.Connection.Accounts.FirstOrDefault(o => o.Name == AccountName) != null)
             {
                 CurrentValue = 0;
             }
     }
 }
Ejemplo n.º 2
0
 protected override void OnConnectionStatusUpdate(Cbi.ConnectionStatusEventArgs connectionStatusUpdate)
 {
     if (connectionStatusUpdate.PriceStatus == Cbi.ConnectionStatus.Connected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Connecting &&
         connectionStatusUpdate.Connection.Accounts.Count > 0 && account == null)
     {
         account = connectionStatusUpdate.Connection.Accounts[0];
     }
     else if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Disconnected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Disconnecting &&
              account != null && account.Connection == connectionStatusUpdate.Connection)
     {
         account = null;
     }
 }
Ejemplo n.º 3
0
        protected override void OnConnectionStatusUpdate(Cbi.ConnectionStatusEventArgs connectionStatusUpdate)
        {
            BackColor    = null;                                                        // reset color
            CurrentValue = 0;

            Cbi.Account  account  = null;
            Cbi.Position position = null;
            lock (Cbi.Account.All)
                account = Cbi.Account.All.FirstOrDefault(o => o.Name == AccountName);

            if (account != null)
            {
                lock (account.Positions)
                    position = account.Positions.FirstOrDefault(o => o.Instrument.FullName == Instrument.FullName);
            }

            if (position != null)
            {
                CurrentValue = (position.MarketPosition == Cbi.MarketPosition.Long ? 1 : -1) * position.Quantity;
            }
        }
        protected override void OnConnectionStatusUpdate(Cbi.ConnectionStatusEventArgs connectionStatusUpdate)
        {
            if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Connected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Connecting)
            {
                Cbi.Account account = null;
                lock (connectionStatusUpdate.Connection.Accounts)
                    account = connectionStatusUpdate.Connection.Accounts.FirstOrDefault(o => o.Name == AccountName);

                if (account != null)
                {
                    lock (account.Positions)
                        position = account.Positions.FirstOrDefault(o => o.Instrument.FullName == Instrument.FullName);
                }
            }
            else if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Disconnected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Disconnecting)
            {
                if (position != null && position.Account.Connection == connectionStatusUpdate.Connection)
                {
                    CurrentValue = 0;
                    position     = null;
                }
            }
        }
Ejemplo n.º 5
0
        protected override void OnConnectionStatusUpdate(Cbi.ConnectionStatusEventArgs connectionStatusUpdate)
        {
            if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Connected || connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.ConnectionLost)
            {
                Cbi.Account account;
                lock (connectionStatusUpdate.Connection.Accounts)
                    account = connectionStatusUpdate.Connection.Accounts.FirstOrDefault(o => o.Name == AccountName);

                if (account != null)
                {
                    accountDenomination = account.Denomination;
                    executions.Clear();
                    foreach (Cbi.Execution execution in account.Executions)
                    {
                        if (execution.Instrument == Instrument || (execution.Instrument.MasterInstrument.InstrumentType == InstrumentType.Stock && execution.Instrument.FullName == Instrument.FullName))
                        {
                            executions.Add(execution);
                        }
                    }
                    CurrentValue = Cbi.SystemPerformance.Calculate(executions).AllTrades.TradesPerformance.Currency.CumProfit;
                }
            }
        }
Ejemplo n.º 6
0
        protected override void OnConnectionStatusUpdate(Cbi.ConnectionStatusEventArgs connectionStatusUpdate)
        {
            if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Connected || connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Connecting)
            {
                Cbi.Account account;
                lock (connectionStatusUpdate.Connection.Accounts)
                    account = connectionStatusUpdate.Connection.Accounts.FirstOrDefault(o => o.Name == AccountName);

                if (account != null)
                {
                    lock (account.Positions)
                        position = account.Positions.FirstOrDefault(o => o.Instrument.FullName == Instrument.FullName);

                    accountDenomination = account.Denomination;
                    executions.Clear();
                    foreach (Cbi.Execution execution in account.Executions)
                    {
                        if (execution.Instrument == Instrument)
                        {
                            executions.Add(execution);
                        }
                    }
                    realizedPL = Cbi.SystemPerformance.Calculate(executions).AllTrades.TradesPerformance.Currency.CumProfit;
                }
            }
            else if (connectionStatusUpdate.Status == Cbi.ConnectionStatus.Disconnected && connectionStatusUpdate.PreviousStatus == Cbi.ConnectionStatus.Disconnecting)
            {
                if (position != null && position.Account.Connection == connectionStatusUpdate.Connection)
                {
                    CurrentValue = 0;
                    position     = null;
                    realizedPL   = 0;
                }
            }

            CurrentValue = realizedPL + (position == null ? 0 : position.GetUnrealizedProfitLoss(Cbi.PerformanceUnit.Currency));
        }