protected void OnQueryStrategySuccessAction(PBStrategyList PB)
        {
            foreach (var strategy in PB.Strategy)
            {
                var strategyVM = StrategyVMCollection.FindContract(strategy.Exchange, strategy.Contract);
                if (strategyVM == null)
                {
                    strategyVM = new StrategyVM(this);
                    StrategyVMCollection.Add(strategyVM);
                }

                strategyVM.Exchange     = strategy.Exchange;
                strategyVM.Contract     = strategy.Contract;
                strategyVM.Hedging      = strategy.Hedging;
                strategyVM.Underlying   = strategy.Underlying;
                strategyVM.StrategySym  = strategy.Symbol;
                strategyVM.Depth        = strategy.Depth;
                strategyVM.AskEnabled   = strategy.AskEnabled;
                strategyVM.BidEnabled   = strategy.BidEnabled;
                strategyVM.BidQV        = strategy.BidQV;
                strategyVM.AskQV        = strategy.AskQV;
                strategyVM.IVModel      = strategy.IvModel;
                strategyVM.VolModel     = strategy.VolModel;
                strategyVM.PricingModel = strategy.PricingModel;
                strategyVM.BaseContract = strategy.BaseContract;
                strategyVM.Portfolio    = strategy.Portfolio;
                strategyVM.MaxAutoTrade = strategy.MaxAutoTrade;
                strategyVM.BidNotCross  = strategy.BidNotCross;
                strategyVM.AskCounter   = strategy.AskCounter;
                strategyVM.BidCounter   = strategy.BidCounter;
                strategyVM.CloseMode    = strategy.CloseMode;
                strategyVM.TickSize     = strategy.TickSizeMult;
                strategyVM.OrderCounter = strategy.LimitOrderCounter;
                strategyVM.PricingContractParams.Clear();

                foreach (var wtContract in strategy.PricingContracts)
                {
                    strategyVM.PricingContractParams.Add(
                        new PricingContractParamVM()
                    {
                        Exchange = wtContract.Exchange,
                        Contract = wtContract.Contract,
                        Adjust   = wtContract.Adjust,
                        Weight   = wtContract.Weight
                    });
                }

                strategyVM.IVMContractParams.Clear();
                foreach (var wtContract in strategy.IvmContracts)
                {
                    strategyVM.IVMContractParams.Add(
                        new PricingContractParamVM()
                    {
                        Exchange = wtContract.Exchange,
                        Contract = wtContract.Contract,
                        Adjust   = wtContract.Adjust,
                        Weight   = wtContract.Weight
                    });
                }

                strategyVM.VMContractParams.Clear();
                foreach (var wtContract in strategy.VolContracts)
                {
                    strategyVM.VMContractParams.Add(
                        new PricingContractParamVM()
                    {
                        Exchange = wtContract.Exchange,
                        Contract = wtContract.Contract,
                        Adjust   = wtContract.Adjust,
                        Weight   = wtContract.Weight
                    });
                }
            }
        }