/// <summary> /// загрузить трейд в хранилище /// </summary> public void SetNewTrade(MyTrade trade) { if (_deals == null) { return; } for (int i = _deals.Count - 1; i > _deals.Count - 150 && i > -1; i--) { bool isCloseOrder = false; if (_deals[i].CloseOrders != null) { for (int indexCloseOrd = 0; indexCloseOrd < _deals[i].CloseOrders.Count; indexCloseOrd++) { if (_deals[i].CloseOrders[indexCloseOrd].NumberMarket == trade.NumberOrderParent || _deals[i].CloseOrders[indexCloseOrd].NumberUser.ToString() == trade.NumberOrderParent) { isCloseOrder = true; break; } } } bool isOpenOrder = false; if (isCloseOrder == false || _deals[i].OpenOrders != null && _deals[i].OpenOrders.Count > 0) { for (int indOpenOrd = 0; indOpenOrd < _deals[i].OpenOrders.Count; indOpenOrd++) { if (_deals[i].OpenOrders[indOpenOrd].NumberMarket == trade.NumberOrderParent || _deals[i].OpenOrders[indOpenOrd].NumberUser.ToString() == trade.NumberOrderParent) { isOpenOrder = true; break; } } } if (isOpenOrder || isCloseOrder) { PositionStateType positionState = _deals[i].State; _deals[i].SetTrade(trade); if (positionState != _deals[i].State) { UpdeteOpenPositionArray(_deals[i]); _openLongChanged = true; _openShortChanged = true; _closePositionChanged = true; _closeShortChanged = true; _closeLongChanged = true; } if (positionState != _deals[i].State && PositionChangeEvent != null) { PositionChangeEvent(_deals[i]); } ProcesPosition(_deals[i]); } } _neadToSave = true; }
/// <summary> /// загрузить ордер в хранилище /// </summary> public void SetUpdateOrderInPositions(Order updateOrder) { if (_deals == null) { return; } for (int i = _deals.Count - 1; i > _deals.Count - 150 && i > -1; i--) { bool isCloseOrder = false; if (_deals[i].CloseOrders != null && _deals[i].CloseOrders.Count > 0) { for (int indexCloseOrders = 0; indexCloseOrders < _deals[i].CloseOrders.Count; indexCloseOrders++) { if (_deals[i].CloseOrders[indexCloseOrders].NumberUser == updateOrder.NumberUser) { isCloseOrder = true; break; } } } bool isOpenOrder = false; if (isCloseOrder == false || _deals[i].OpenOrders != null && _deals[i].OpenOrders.Count > 0) { for (int indexOpenOrd = 0; indexOpenOrd < _deals[i].OpenOrders.Count; indexOpenOrd++) { if (_deals[i].OpenOrders[indexOpenOrd].NumberUser == updateOrder.NumberUser) { isOpenOrder = true; break; } } } if (isOpenOrder || isCloseOrder) { PositionStateType positionState = _deals[i].State; _deals[i].SetOrder(updateOrder); if (positionState != _deals[i].State) { _openPositionChanged = true; _openLongChanged = true; _openShortChanged = true; _closePositionChanged = true; _closeShortChanged = true; _closeLongChanged = true; } if (positionState != _deals[i].State && PositionChangeEvent != null) { // AlertMessageManager.ThrowAlert(null, "было " + positionState + "стало" + _deals[i].State, ""); PositionChangeEvent(_deals[i]); } PaintPosition(_deals[i]); break; } } _neadToSave = true; }
/// <summary> /// загрузить трейд в хранилище /// </summary> public void SetNewTrade(MyTrade trade) { if (_deals == null) { return; } for (int i = _deals.Count - 1; i > _deals.Count - 150 && i > -1; i--) { bool isCloseOrder = false; if (_deals[i].CloseOrders != null) { for (int indexCloseOrd = 0; indexCloseOrd < _deals[i].CloseOrders.Count; indexCloseOrd++) { if (_deals[i].CloseOrders[indexCloseOrd].NumberMarket == trade.NumberOrderParent) { isCloseOrder = true; break; } } } bool isOpenOrder = false; if (isCloseOrder == false || _deals[i].OpenOrders != null && _deals[i].OpenOrders.Count > 0) { for (int indOpenOrd = 0; indOpenOrd < _deals[i].OpenOrders.Count; indOpenOrd++) { if (_deals[i].OpenOrders[indOpenOrd].NumberMarket == trade.NumberOrderParent) { isOpenOrder = true; break; } } } if (isOpenOrder || isCloseOrder) { PositionStateType positionState = _deals[i].State; _deals[i].SetTrade(trade); if (_typeWork == ConnectorWorkType.Real) { Save(); } if (positionState != _deals[i].State) { _openPositionChanged = true; _openLongChanged = true; _openShortChanged = true; _closePositionChanged = true; _closeShortChanged = true; _closeLongChanged = true; } if (positionState != _deals[i].State && PositionChangeEvent != null) { PositionChangeEvent(_deals[i]); } PaintPosition(_deals[i]); } } }