Example #1
0
        private void UpdateStrategyAdjustment(ContractKeyVM contract, StrategyVM.Model model, double adjust)
        {
            var strategy = _otcOptionHandler.StrategyVMCollection.FirstOrDefault(s => s.Equals(contract));

            if (strategy != null)
            {
                PricingContractParamVM pricingContract = null;
                switch (model)
                {
                case StrategyVM.Model.PM:
                    pricingContract = strategy.PricingContractParams.FirstOrDefault();
                    break;

                case StrategyVM.Model.IVM:
                    pricingContract = strategy.IVMContractParams.FirstOrDefault();
                    break;

                case StrategyVM.Model.VM:
                    pricingContract = strategy.VMContractParams.FirstOrDefault();
                    break;
                }

                if (pricingContract != null)
                {
                    pricingContract.Adjust = adjust;
                    _otcOptionHandler.UpdateStrategyPricingContracts(strategy, model);
                }
            }
        }
        public ContractKeyVM FindTradingDeskData(ContractKeyVM contract)
        {
            WeakReference <ContractKeyVM> tdVMRef;
            ContractKeyVM tdVM = null;

            if (TradingDeskDataMap.TryGetValue(contract, out tdVMRef))
            {
                tdVMRef.TryGetTarget(out tdVM);
            }

            return(tdVM);
        }
        protected IList <ContractKeyVM> SubTDSuccessAction(PBInstrumentList instList)
        {
            var ret = new List <ContractKeyVM>();

            foreach (var contract in instList.Instrument)
            {
                var contractKey = new ContractKeyVM(contract.Exchange, contract.Contract);
                var tdVM        = FindTradingDeskData(contractKey);
                if (tdVM == null)
                {
                    tdVM = contractKey;
                    TradingDeskDataMap[contractKey] = new WeakReference <ContractKeyVM>(tdVM);
                }

                ret.Add(tdVM);
            }

            return(ret);
        }
        public async Task <ContractKeyVM> SubTradingDeskDataAsync(ContractKeyVM contractKey)
        {
            var tdDataList = await SubTradingDeskDataAsync(new[] { contractKey });

            return(tdDataList?.FirstOrDefault());
        }