예제 #1
0
        private string CloseTrade()
        {
            if (_account == null)
            {
                return("Account information is not avaliable!");
            }
            if (_account.AccountingType != TTAccountingTypes.Gross)
            {
                return("Close trade operation is only avaliable for Gross accounts!");
            }
            if (_tradesMarket.Count == 0)
            {
                return("There is no active market trades");
            }

            TTTrade trade = _tradesMarket.ElementAt(_random.Next(_tradesMarket.Count)).Value;

            using (_statistic.Benchmark("Close Position Trade"))
            {
                WebClient.CloseTrade(trade.Id, null);
            }

            _tradesAll.Remove(trade.Id);
            _tradesMarket.Remove(trade.Id);
            return(trade.Type + " " + trade.Side + " trade with Id = " + trade.Id + " was closed");
        }
예제 #2
0
        public async Task GetTrades()
        {
            // Account trades
            List <TTTrade> trades = null;

            if (string.IsNullOrEmpty(TradeId))
            {
                trades = await _client.GetAllTradesAsync();
            }
            else
            {
                long tradeId;
                if (long.TryParse(TradeId, out tradeId))
                {
                    try
                    {
                        TTTrade trade = await _client.GetTradeAsync(tradeId);

                        trades = new List <TTTrade>(new[] { trade });
                    }
                    catch (Exception)
                    {
                    }
                }
            }

            Trades = trades != null ? new ObservableCollection <TTTrade>(trades) : null;
        }
예제 #3
0
        public static void GetTrades(TickTraderWebClient client)
        {
            // Account trades
            List <TTTrade> trades = client.GetAllTrades();

            foreach (var t in trades)
            {
                Console.WriteLine("{0} trade with type {1} by symbol {2}: {3}", t.Id, t.Type, t.Symbol, t.Amount);
            }

            if (trades.Count > 0)
            {
                TTTrade trade = client.GetTrade(trades[0].Id);
                Console.WriteLine("{0} trade with type {1} by symbol {2}: {3}", trade.Id, trade.Type, trade.Symbol, trade.Amount);
            }
        }
예제 #4
0
        private string CancelTrade()
        {
            if (_tradesPending.Count == 0)
            {
                return("There is no active pending trades");
            }

            TTTrade trade = _tradesPending.ElementAt(_random.Next(_tradesPending.Count)).Value;

            using (_statistic.Benchmark("Cancel Pending Trade"))
            {
                WebClient.CancelTrade(trade.Id);
            }

            _tradesAll.Remove(trade.Id);
            _tradesPending.Remove(trade.Id);
            return(trade.Type + " " + trade.Side + " trade with Id = " + trade.Id + " was canceled");
        }