private Core() { m_SQL = new SQLTool(Utility.Load <string>("SQL", "IP"), Utility.Load <string>("SQL", "DB"), Utility.Load <string>("SQL", "ID"), Utility.Load <string>("SQL", "PASSWORD")); m_Price = new CapitalProcessor(); m_Price.OnOverseaProduct += new OnOverseaProductDelegate(OverseaProduct); m_Price.OnPriceChange += new OnPriceChangeDelegate(PriceChange); m_Price.OnError += OnError; m_Order = new OrderProcessor.Capital.CapitalProcessor(); m_Order.OnMatchReply += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnMatchReply); m_Order.OnOverseaOpenInterest += new OrderProcessor.Capital.CapitalProcessor.OnOverseaOpenInterestDelegate(OnOverseaOpenInterest); }
public Tick(short pageno, string account, string exchange, string pid, string orderhead, string ym, string ym2, int tickCount, bool extend, bool isascending) { m_PageNo = pageno; Account = account; Exchange = exchange; OrderHead = orderhead; YM = ym; YM2 = ym2; PID = pid; TickCount = tickCount; m_isAscending = isascending; m_Extend = extend; InitCell(); Core.Instance.Order.OnOrderReply += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnOrderReply); Core.Instance.Order.OnMatchReply += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnOrderReply); Core.Instance.Order.OnCancelReply += new OrderProcessor.Capital.CapitalProcessor.OnReplyDelegate(OnOrderReply); Core.Instance.OnPriceChange += new CapitalProcessor.OnPriceChangeDelegate(OnPriceChange); OnPriceChange(pid, CapitalProcessor.TickName($"{Exchange},{OrderHead}"), Core.Instance.Price[PID]); }
private void ChangeProduct(Notification n) { m_Tick = (Tick)n.Sender; nudManualPrice.Value = 0M; if (m_Tick == null) { txtOrderHead.Text = string.Empty; txtOrderYM.Text = string.Empty; txtExchange.Text = string.Empty; txtAccount.Text = string.Empty; lblLots.Text = "0"; btnBuy.Enabled = btnSell.Enabled = false; } else { txtOrderHead.Text = m_Tick.OrderHead; txtOrderYM.Text = m_Tick.OrderPID?.Replace(m_Tick.OrderHead, string.Empty); txtExchange.Text = m_Tick.Exchange; txtAccount.Text = m_Tick.Account; cboAccount.Items.Clear(); cboAccount.Items.AddRange(Core.Instance.Order.Accounts.Select(E => E.BrokerID + E.CustNo).ToArray()); _SetAutoLots(); btnBuy.Enabled = btnSell.Enabled = true; //m_WaitForUpdateTick = true; decimal inTick, deTick; string tickname = CapitalProcessor.TickName($"{m_Tick.Exchange},{m_Tick.OrderHead}"); decimal mp; decimal.TryParse(m_Tick.cMP.Value.ToString(), out mp); PriceProcessor.Processor.Tick(tickname, mp, out inTick, out deTick); string numStr = inTick.ToString(); int Dot = numStr.IndexOf('.'); nudManualPrice.DecimalPlaces = numStr.Length - (Dot < 0 ? 0 : Dot) - 1; nudManualPrice.Increment = inTick; nudManualPrice.Value = mp; } }