public void Invoke_OnInsertOrder(RecordTransItem item) { OrderArgs args = new OrderArgs(); args.order = item; OnInsertOrder?.Invoke(this, args); }
public void Invoke_OnRemoveWaitingOrder(RecordTransItem item) { OrderArgs args = new OrderArgs(); args.order = item; OnRemoveWaitingOrder?.Invoke(this, args); }
public void Invoke_OnRemovePosition(RecordTransItem item) { OrderArgs args = new OrderArgs(); args.order = item; OnRemovePosition?.Invoke(this, args); }
/// <summary> /// 已经成交了的订单 /// </summary> /// <param name="item"></param> public void _TradedOrder(RecordTransItem item) { List <RecordTransItem> removeItems = new List <RecordTransItem>(); foreach (var it in PositionRecords) { if (it.direction != item.direction) { removeItems.Add(it); break; } } if (removeItems.Count() > 0) { foreach (var it in removeItems) { Invoke_OnRemovePosition(it); PositionRecords.Remove(it); } } else { Invoke_OnInsertPosition(item); PositionRecords.Add(item); } Invoke_OnInsertOrder(item); HistoryRecords.Add(item); }
private void Sell_On_Sell1() { float price = mLatestQuote.ask_price1; RecordTransItem newItem = new RecordTransItem(); newItem.direction = TransDirection.Sell; newItem.price = price; newItem.volumn = 1; newItem.datetime = mLatestQuote.datetime; RecordTransService.Instance.InsertOrder(newItem); }
private void Buy_On_Buy1() { float price = mLatestQuote.bid_price1; RecordTransItem newItem = new RecordTransItem(); newItem.direction = TransDirection.Buy; newItem.price = price; newItem.volumn = 1; newItem.datetime = mLatestQuote.datetime; RecordTransService.Instance.InsertOrder(newItem); }
private void SetQuote(Quote qt) { if (RecordType != RecordListType.Position) { return; } foreach (var item in recordTransItemBindingSource) { RecordTransItem itemOrder = item as RecordTransItem; if (itemOrder.direction == TransDirection.Buy) { itemOrder.profit = qt.last_price - itemOrder.price; } else { itemOrder.profit = itemOrder.price - qt.last_price; } } dgvMain.Invalidate(); }
/// <summary> /// 插入队列等候成交 /// </summary> /// <param name="item"></param> public void InsertOrder(RecordTransItem item) { Invoke_OnInsertWaitingOrder(item); WaitingRecords.Enqueue(item); }