Exemple #1
0
 public void Stop()
 {
     lock (locker)
     {
         tradeTerminal.ClosePosition();
         tradeTerminal.isReal = false;
     }
 }
Exemple #2
0
        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);
        }