protected override void CloseLongPosition(OpenPositionInfo info) { TradingResult res = MarketSell(Ticker.OrderBook.Bids[0].Value, info.Amount); if (res != null) { double earned = res.Total - CalcFee(res.Total); MaxAllowedDeposit += earned; info.UpdateCurrentValue(DataProvider.CurrentTime, res.Value); info.Earned += earned; info.Amount -= res.Amount; info.Total -= res.Total; info.CloseValue = res.Value; CombinedStrategyDataItem item = (CombinedStrategyDataItem)StrategyData.FirstOrDefault(i => ((CombinedStrategyDataItem)i).Time == info.CandlestickTime); if (item != null) { item.Closed = true; item.CloseLength = ((CombinedStrategyDataItem)StrategyData.Last()).Index - item.Index; } CombinedStrategyDataItem last = (CombinedStrategyDataItem)StrategyData.Last(); if (info.Amount < 0.000001) { OpenedOrders.Remove(info); last.ClosedPositions.Add(info); info.CloseTime = DataProvider.CurrentTime; Earned += info.Earned - info.Spent; } last.ClosedOrder = true; last.Value = Ticker.OrderBook.Bids[0].Value; if (item != null) { item.Profit = earned - info.Spent; } last.AddMark("Close " + info.Mark); } }