internal void Init(BitmexUser account) { var obj = Controller.GetPositionState(account, _instrument); if (obj != null) { if (obj.Opened == 1) { var msg = String.Format("The application has been launched on the '{0}'", obj.HostName); throw new InvalidOperationException(msg); } else { var type = Assembly.GetExecutingAssembly().GetType(obj.StateName); PositionState = (IPositionState)Activator.CreateInstance(type, this, obj.Instrument); PositionState.Init(obj); _stopObj = obj; StartWatchingPrice = obj.StartWatchPrice; StopPrice = obj.StopPrice; } } else { ResetState(); } }
private void OnPositionClosed(BitmexPositionData pos) { if (!pos.Leverage.HasValue) { ResetState(); Controller.CancelAllOrders(pos.Symbol); } _stopObj = null; }
public void Init(DbPositionState state) { _isLongPosition = state.LongPosition == 1; _startWatchPrice = state.StartWatchPrice.Value; _stopPrice = state.StopPrice.Value; _qty = state.OrderQty.Value; _watcher.SendWatcherEvent(() => GetFormatedPrices()); }
public void Copy(DbPositionState state1, DbPositionState state2) { if (state1 == null) { return; } state1.StopOrderId = state2.StopOrderId; state1.StopLoss = state2.StopLoss; state1.StopSlip = state2.StopSlip; }
public void BeginOpenPosition(string symbol, string side, int qty, double stopLoss, double priceSlip, double stopSlip) { Lock(() => { _stopObj = new DbPositionState { StopLoss = stopLoss, StopSlip = stopSlip }; CreateLimitState(symbol, side, qty, priceSlip); StartTimer(); }); }
public void Copy(DbPositionState state1, DbPositionState state2) { }
public void Init(DbPositionState state) { }
public virtual void Init(DbPositionState state) { }