public void Stop() { lock (locker) { tradeTerminal.ClosePosition(); tradeTerminal.isReal = false; } }
public static bool ClosePosition(bool fast_exit, List <Position> Position, ModelsAT.BrokerMT tradeTerminal, bool LongShort, double price, ref double all_profit, object locker, ILogger logger, DateTime time, string name, bool LoggNeeded) { if (Position.Count > 0) { lock (locker) { if (LoggNeeded && fast_exit) { logger.LogEvent(time, name + " Аварийный выход с рынка"); } tradeTerminal.ClosePosition(Position[0].index); foreach (var item in Position) { string order; double profit = 0; if (!LongShort) { profit = item.value - price; order = "buy"; } else { profit = price - item.value; order = "sell"; } all_profit += profit; if (LoggNeeded) { logger.LogEvent(time, name + " send " + order + " order " + item.index + " req price : " + price + " Profit: " + profit); } } } Position.Clear(); return(true); } return(false); }