public void UpdateStrategy(StrategyVM sVM, bool resetCounter = false) { var strategy = new PBStrategy(); strategy.Exchange = sVM.Exchange; strategy.Contract = sVM.Contract; strategy.Symbol = sVM.StrategySym; strategy.Depth = sVM.Depth; strategy.BidQV = sVM.BidQV; strategy.AskQV = sVM.AskQV; strategy.Hedging = sVM.Hedging; strategy.AskEnabled = sVM.AskEnabled; strategy.BidEnabled = sVM.BidEnabled; strategy.MaxAutoTrade = sVM.MaxAutoTrade; strategy.BidNotCross = sVM.BidNotCross; strategy.CloseMode = sVM.CloseMode; strategy.Tif = (int)sVM.TIF; strategy.VolCond = (int)sVM.VolCondition; strategy.TickSizeMult = sVM.TickSize; if (resetCounter) { strategy.BidCounter = -1; strategy.AskCounter = -1; } MessageWrapper.SendMessage((uint)BusinessMessageID.MSG_ID_MODIFY_STRATEGY, strategy); }
public void UpdateStrategyModel(StrategyVM sVM, StrategyVM.Model model) { var strategy = new PBStrategy(); strategy.Exchange = sVM.Exchange; strategy.Contract = sVM.Contract; strategy.Symbol = sVM.StrategySym; strategy.BaseContract = sVM.BaseContract; if (model == StrategyVM.Model.PM) { strategy.PricingModel = sVM.PricingModel; } if (model == StrategyVM.Model.IVM) { strategy.IvModel = sVM.IVModel; } if (model == StrategyVM.Model.VM) { strategy.VolModel = sVM.VolModel; } MessageWrapper.SendMessage((uint)BusinessMessageID.MSG_ID_MODIFY_PRICING_CONTRACT, strategy); }
protected void OnUpdateStrategySuccessAction(PBStrategy strategy) { var strategyVM = StrategyVMCollection.FindContract(strategy.Exchange, strategy.Contract); if (strategyVM != null) { strategyVM.Hedging = strategy.Hedging; strategyVM.Depth = strategy.Depth; strategyVM.BidEnabled = strategy.BidEnabled; strategyVM.AskEnabled = strategy.AskEnabled; strategyVM.BidQV = strategy.BidQV; strategyVM.AskQV = strategy.AskQV; strategyVM.MaxAutoTrade = strategy.MaxAutoTrade; strategyVM.BidNotCross = strategy.BidNotCross; strategyVM.BidCounter = strategy.BidCounter; strategyVM.AskCounter = strategy.AskCounter; strategyVM.OrderCounter = strategy.LimitOrderCounter; strategyVM.CloseMode = strategy.CloseMode; strategyVM.TickSize = strategy.TickSizeMult; if (strategyVM.AskCounter >= strategyVM.MaxAutoTrade) { strategyVM.CounterAskDirection = 1; } else { strategyVM.CounterAskDirection = -1; } if (strategyVM.BidCounter >= strategyVM.MaxAutoTrade) { strategyVM.CounterBidDirection = 1; } else { strategyVM.CounterBidDirection = -1; } if (strategyVM.OrderCounter >= StrategyVM.MaxLimitOrder && strategyVM.TIF == OrderTIFType.GFD && strategy.VolCond == (int)OrderVolType.ANYVOLUME) { strategyVM.OrderCounterDirection = 1; } else { strategyVM.OrderCounterDirection = -1; } OnStrategyUpdated?.Invoke(strategyVM); } }
public void UpdateStrategyPricingContracts(StrategyVM sVM, StrategyVM.Model model) { var strategy = new PBStrategy(); strategy.Exchange = sVM.Exchange; strategy.Contract = sVM.Contract; strategy.Symbol = sVM.StrategySym; if (model == StrategyVM.Model.PM) { foreach (var pc in sVM.PricingContractParams) { strategy.PricingContracts.Add(new PBPricingContract() { Exchange = pc.Exchange, Contract = pc.Contract, Adjust = pc.Adjust, Weight = pc.Weight }); } } if (model == StrategyVM.Model.IVM) { foreach (var pc in sVM.IVMContractParams) { strategy.IvmContracts.Add(new PBPricingContract() { Exchange = pc.Exchange, Contract = pc.Contract, Adjust = pc.Adjust, Weight = pc.Weight }); } } if (model == StrategyVM.Model.VM) { foreach (var pc in sVM.VMContractParams) { strategy.VolContracts.Add(new PBPricingContract() { Exchange = pc.Exchange, Contract = pc.Contract, Adjust = pc.Adjust, Weight = pc.Weight }); } } MessageWrapper.SendMessage((uint)BusinessMessageID.MSG_ID_MODIFY_PRICING_CONTRACT, strategy); }