private static void GetStableCoin()
        {
            var stableCoinClient = new StableCointClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var result = stableCoinClient.GetStableCoinAsync("tusd", "1000", "sell").Result;

            _logger.StopAndLog();

            if (result != null)
            {
                switch (result.status)
                {
                case "ok":
                {
                    var d = result.data;
                    AppLogger.Info($"Get stable coin successfully, quoteId: {d.quoteId}, currency: {d.currency}, amount: {d.amount}, fee: {d.exchangeFee}");
                    break;
                }

                case "error":
                {
                    AppLogger.Info($"Get stable coin fail, error code: {result.errorCode}, error message: {result.errorMessage}");
                    break;
                }
                }
            }
        }
        public void CalculateMetricsTest()
        {
            var count  = 100;
            var logger = new PerformanceLogger();

            logger.Start();

            for (int i = 0; i < count; ++i)
            {
                logger.Start("Fast");
                logger.Stop("Fast");
                logger.Start("Slow");
                System.Threading.Thread.Sleep(1);
                logger.Stop("Slow");
            }
            logger.Stop();

            var metrics = logger.CalculateMetrics();

            Assert.AreEqual(2, metrics.Count);
            foreach (var m in metrics)
            {
                Assert.AreEqual(count, m.Value.Count);
                Assert.IsTrue(m.Value.PercentTotal >= 0);
                Assert.IsTrue(m.Value.PercentTotal <= 100);
            }
        }
        private static void GetStableCoin()
        {
            var stableCoinClient = new StableCointClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var response = stableCoinClient.GetStableCoinAsync("usdt", "10", "sell").Result;

            _logger.StopAndLog();

            if (response != null)
            {
                switch (response.status)
                {
                case "ok":
                {
                    AppLogger.Info($"Get stable coin successfully");
                    break;
                }

                case "error":
                {
                    AppLogger.Info($"Get stable coin fail, error code: {response.errorCode}, error message: {response.errorMessage}");
                    break;
                }
                }
            }
        }
        private static void PlaceOrder()
        {
            var tradeClient = new AlgoOrderClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var request = new PlaceOrderRequest
            {
                accountId     = 11136102,
                orderSide     = "buy",
                orderType     = "limit",
                symbol        = "htusdt",
                orderSize     = "5",
                orderPrice    = "2.1",
                stopPrice     = "2",
                clientOrderId = "0922T1753"
            };

            var response = tradeClient.PlaceOrderAsync(request).Result;

            _logger.StopAndLog();

            if (response.code == (int)ResponseCode.Success)
            {
                AppLogger.Info($"Place algo order successfully, client order id: {response.data.clientOrderId}");
            }
            else
            {
                AppLogger.Info($"Place algo order fail, error code: {response.code}, error message: {response.message}");
            }
        }
        /// <summary>
        /// 获取用户出入金记录
        /// </summary>
        private static void GetDepositWithdraw()
        {
            _logger.Start();
            var data = _walletClient.GetDepositWithdrawAsync(1, 10).Result;

            _logger.StopAndLog();

            AppLogger.Info($"get deposit withdraw record, data:{JsonConvert.SerializeObject(data)}");
        }
Esempio n. 6
0
        /// <summary>
        /// 获取成交量
        /// </summary>
        private static void GetIndexStatistics()
        {
            _logger.Start();
            var data = _homeClient.GetIndexStatisticsAsync().Result;

            _logger.StopAndLog();

            AppLogger.Info($"get index statistics, data:{JsonConvert.SerializeObject(data)}");
        }
Esempio n. 7
0
        /// <summary>
        /// 获取K线
        /// </summary>
        private static void GetKline()
        {
            _logger.Start();
            var data = _marketClient.GetKlineAsync("BTCUSDT", DateTimeUtil.GetTimestamps_seconds(DateTime.Now),
                                                   DateTimeUtil.GetTimestamps_seconds(DateTime.Now.AddDays(-1)), CandlestickInterval.HOUR1).Result;

            _logger.StopAndLog();

            AppLogger.Info($"get kline, data:{JsonConvert.SerializeObject(data)}");
        }
Esempio n. 8
0
        private static void GetSystemStatus()
        {
            var client = new CommonClient();

            _logger.Start();
            string result = client.GetSystemStatus().Result;

            _logger.StopAndLog();

            AppLogger.Info($"Get system status: {result}");
        }
        public void EfficientFrontierPerformanceTest()
        {
            // Create new portfolio
            var portf = new Portfolio("TestPortfolio");

            // Create instruments from data
            var instruments = from k in cov.Keys
                              select new Instrument(k, mean[k], cov[k]);

            portf.AddRange(instruments);

            // Add portfolio constraints
            portf.AddAllInvestedConstraint();
            portf.AddLongOnlyConstraint();
            double rf = 0.05;

            int runs = 100;

            for (int c = 0; c < runs; c++)
            {
                PerformanceLogger.Start("EfficientFrontierTests", "EfficientFrontierPerformanceTest", "Optimization.CalcEfficientFrontier");
                var res = PortfolioOptimizer.CalcEfficientFrontier(portf, rf, 50);
                Console.WriteLine(c);
                PerformanceLogger.Stop("EfficientFrontierTests", "EfficientFrontierPerformanceTest", "Optimization.CalcEfficientFrontier");
            }
            PerformanceLogger.WriteToCSV("performancedata.csv");
        }
Esempio n. 10
0
        private static void TransferIn()
        {
            var marginClient = new IsolatedMarginClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var response = marginClient.TransferInAsync("eosht", "eos", "0.01").Result;

            _logger.StopAndLog();

            if (response != null)
            {
                switch (response.status)
                {
                case "ok":
                {
                    AppLogger.Info($"Transfer successfully, transfer id: {response.data}");
                    break;
                }

                case "error":
                {
                    AppLogger.Info($"Transfer fail, error code: {response.errorCode}, error message: {response.errorMessage}");
                    break;
                }
                }
            }
        }
        /// <summary>
        /// 获取用户信息
        /// </summary>
        private static void GetUserInfo()
        {
            _logger.Start();
            var data = _accountClient.GetUserInfoAsync().Result;

            _logger.StopAndLog();

            AppLogger.Info($"get user info, data:{JsonConvert.SerializeObject(data)}");
        }
        private static void GetETFInfo()
        {
            var etfClient = new ETFClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var response = etfClient.GetETFInfoAsync().Result;

            _logger.StopAndLog();

            if (response != null && response.data != null)
            {
                AppLogger.Info($"ETF name: {response.data.etfName}, purchase min amount: {response.data.purchaseMinAmount}");
                if (response.data.unitPrice != null)
                {
                    foreach (var p in response.data.unitPrice)
                    {
                        AppLogger.Info($"Currency: {p.currency}, amount: {p.amount}");
                    }
                }
            }
        }
Esempio n. 13
0
        private static void GetAccountInfo()
        {
            var accountClient = new AccountClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var result = accountClient.GetAccountInfoAsync().Result;

            _logger.StopAndLog();

            if (result != null && result.data != null)
            {
                AppLogger.Info($"Get account info, count={result.data.Length}");
                foreach (var a in result.data)
                {
                    AppLogger.Info($"account id: {a.id}, type: {a.type}, state: {a.state}");
                }
            }
        }
        private List <LineSpanChunk> GetLineSpans(IList <LineInfo[]> chunkInfo, CancellationToken cancel)
        {
#if PERFORMANCE
            object cookie = null;
            try {
                PerformanceLogger.Start(ref cookie);
                return(GetLineSpans_Performance(chunkInfo, cancel));
            } catch (OperationCanceledException) {
                PerformanceLogger.Mark("Cancel");
                throw;
            } finally {
                PerformanceLogger.End(cookie);
            }
        }
        private static HashSet <LineSpan> LinkedLinesInternal(LineSpan line, CancellationToken cancel)
        {
#if PERFORMANCE
            object cookie = null;
            try {
                PerformanceLogger.Start(ref cookie);
                return(LinkedLinesInternal_Performance(line, cancel));
            } catch (OperationCanceledException) {
                PerformanceLogger.Mark("Cancel");
                throw;
            } finally {
                PerformanceLogger.End(cookie);
            }
        }
        private void FindLongestLine(
            ITextSnapshot snapshot,
            CancellationToken cancel
            )
        {
#if PERFORMANCE
            object cookie = null;
            try {
                PerformanceLogger.Start(ref cookie);
                FindLongestLine_Performance(snapshot, cancel);
            } catch (OperationCanceledException) {
                PerformanceLogger.Mark("Cancel");
                throw;
            } finally {
                PerformanceLogger.End(cookie);
            }
        }
        private static void LockSubUser()
        {
            var accountClient = new SubUserClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var result = accountClient.LockSubUserAsync(Config.SubUserId).Result;

            _logger.StopAndLog();

            if (result != null)
            {
                if (result.code == (int)ResponseCode.Success && result.data != null)
                {
                    AppLogger.Info($"Lock sub user {result.data.subUid} result: {result.data.userState}");
                }
                else
                {
                    AppLogger.Info($"Lock sub user error: {result.code}");
                }
            }
        }
        private void SetLineInfo(
            LineInfo[] lineInfo,
            ITextSnapshot snapshot,
            int firstLine,
            int lastLine,
            CancellationToken cancel
            )
        {
#if PERFORMANCE
            object cookie = null;
            try {
                PerformanceLogger.Start(ref cookie);
                SetLineInfo_Performance(lineInfo, snapshot, firstLine, lastLine, cancel);
            } catch (OperationCanceledException) {
                PerformanceLogger.Mark("Cancel");
                throw;
            } finally {
                PerformanceLogger.End(cookie);
            }
        }
Esempio n. 19
0
        private static void GetDepoistAddress()
        {
            var walletClient = new WalletClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var request = new GetRequest()
                          .AddParam("currency", "btc");

            var result = walletClient.GetDepositAddressAsync(request).Result;

            _logger.StopAndLog();

            if (result != null && result.data != null)
            {
                AppLogger.Info($"Get deposit address, id={result.data.Length}");
                foreach (var a in result.data)
                {
                    AppLogger.Info($"currency: {a.currency}, addr: {a.address}, chain: {a.chain}");
                }
            }
        }
        public void CanLoadTileDynamically()
        {
            // ARRANGE
            var logger = new PerformanceLogger();

            logger.Start();
            var componentRoot = TestHelper.GetGameRunner(_container);


            // ACT
            componentRoot.RunGame(TestHelper.BerlinTestFilePoint);
            logger.Stop();

            // ASSERT
            var tileLoader = _container.Resolve <ITileController>() as TileController;

            Assert.IsNotNull(tileLoader);
            Assert.AreEqual(1, GetSceneTileCount(tileLoader));

            Assert.Less(logger.Seconds, 3, "Loading took too long");
            // NOTE Actual value should be close to expected consumption for test data
            Assert.Less(logger.Memory, 100, "Memory consumption is too high!");
        }
Esempio n. 21
0
        private static void GetCandlestick()
        {
            var marketClient = new MarketClient();

            _logger.Start();
            var request = new GetRequest()
                          .AddParam("symbol", "btcusdt")
                          .AddParam("period", "1min")
                          .AddParam("size", "10");
            var result = marketClient.GetCandlestickAsync(request).Result;

            _logger.StopAndLog();

            if (result != null && result.data != null)
            {
                foreach (var c in result.data)
                {
                    AppLogger.Info($"local time: {Timestamp.SToLocal(c.id)}, count: {c.count}, amount: {c.amount}, volume: {c.vol}");
                }
                AppLogger.Info($"there are total {result.data.Length} candlesticks");
            }
        }
Esempio n. 22
0
        private static void PlaceOrder()
        {
            var tradeClient = new OrderClient(Config.AccessKey, Config.SecretKey);

            _logger.Start();
            var request = new PlaceOrderRequest
            {
                AccountId = Config.AccountId,
                type      = "buy-limit",
                symbol    = "btcusdt",
                source    = "spot-api",
                amount    = "1",
                price     = "1.1"
            };

            var response = tradeClient.PlaceOrderAsync(request).Result;

            _logger.StopAndLog();

            switch (response.status)
            {
            case "ok":
            {
                AppLogger.Info($"Place order successfully, order id: {response.data}");
                break;
            }

            case "error":
            {
                AppLogger.Info($"Place order fail, error code: {response.errorCode}, error message: {response.errorMessage}");
                break;
            }
            }
        }
Esempio n. 23
0
        /// <summary>
        /// 获取活跃委托
        /// </summary>
        /// <param name="contractCode"></param>
        private static void GetOpenOrders(string contractCode)
        {
            _logger.Start();
            var data = _tradeClient.GetOpenOrdersAsync(contractCode).Result;

            _logger.StopAndLog();

            AppLogger.Info($"get open orders, data:{JsonConvert.SerializeObject(data)}");
        }
Esempio n. 24
0
 private static void Main()
 {
     //Starts monitoring
     PerformanceLogger.Start();
 }
Esempio n. 25
0
        void UpdateAdornmentsWorker()
        {
            //var analysisLines = Analysis.Lines;
            //if (Analysis.Snapshot != View.TextSnapshot) {
            //    var task = Analysis.Update();
            //    if (task != null) {
            //        UpdateAdornments(task);
            //    }
            //    return;
            //} else if (analysisLines == null) {
            //    UpdateAdornments(Analysis.Reset());
            //    return;
            //}

            if (!GlobalVisible)
            {
                Canvas.Visibility = Visibility.Collapsed;
                return;
            }
            Canvas.Visibility = Visibility.Visible;

            var snapshot  = View.TextSnapshot;
            var viewModel = View.TextViewModel;

            if (snapshot == null || viewModel == null)
            {
                return;
            }

            var firstVisibleLine = View.TextViewLines.FirstOrDefault(line => line.IsFirstTextViewLineForSnapshotLine);

            if (firstVisibleLine == null)
            {
                return;
            }
            var lastVisibleLine = View.TextViewLines.LastOrDefault(line => line.IsLastTextViewLineForSnapshotLine);

            if (lastVisibleLine == null)
            {
                return;
            }

            var analysisLines = Analysis.GetLines(
                firstVisibleLine.Start.GetContainingLine().LineNumber,
                lastVisibleLine.Start.GetContainingLine().LineNumber
                );

            if (!analysisLines.Any())
            {
                return;
            }


#if PERFORMANCE
            object cookie = null;
            try {
                PerformanceLogger.Start(ref cookie);
                UpdateAdornments_Performance(
                    snapshot,
                    viewModel,
                    firstVisibleLine,
                    analysisLines
                    );
            } catch (OperationCanceledException) {
                PerformanceLogger.Mark("Cancel");
                throw;
            } finally {
                PerformanceLogger.End(cookie);
            }
        }
Esempio n. 26
0
        void UpdateAdornments_Performance(
            ITextSnapshot snapshot,
            ITextViewModel viewModel,
            ITextViewLine firstVisibleLine,
            IEnumerable <LineSpan> analysisLines
            )
        {
#endif
            double spaceWidth = firstVisibleLine.VirtualSpaceWidth;
            if (spaceWidth <= 0.0)
            {
                return;
            }
            double horizontalOffset = firstVisibleLine.TextLeft;

            var unusedLines = new HashSet <LineSpan>(Lines.Keys);

            var caret = CaretHandlerBase.FromName(Theme.CaretHandler, View.Caret.Position.VirtualBufferPosition, Analysis.TabSize);

            object perfCookie = null;
            PerformanceLogger.Start(ref perfCookie);
#if DEBUG
            var initialCount = Lines.Count;
#endif
            foreach (var line in analysisLines.Concat(GetPageWidthLines()))
            {
                double top    = View.ViewportTop;
                double bottom = View.ViewportBottom;
                double left   = line.Indent * spaceWidth + horizontalOffset;

                Line adornment;
                unusedLines.Remove(line);

                if (line.Type == LineSpanType.PageWidthMarker)
                {
                    line.Highlight = (Analysis.LongestLine > line.Indent);
                    if (!Lines.TryGetValue(line, out adornment))
                    {
                        Lines[line] = adornment = CreateGuide(Canvas);
                    }
                    UpdateGuide(line, adornment, left, top, bottom);
                    continue;
                }

                if (Lines.TryGetValue(line, out adornment))
                {
                    adornment.Visibility = Visibility.Hidden;
                }

                caret.AddLine(line, willUpdateImmediately: true);

                if (line.FirstLine >= 0 && line.LastLine < int.MaxValue)
                {
                    var firstLineNumber = line.FirstLine;
                    var lastLineNumber = line.LastLine;
                    ITextSnapshotLine firstLine, lastLine;
                    try
                    {
                        firstLine = snapshot.GetLineFromLineNumber(firstLineNumber);
                        lastLine  = snapshot.GetLineFromLineNumber(lastLineNumber);
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceError("In GetLineFromLineNumber:\n{0}", ex);
                        continue;
                    }

                    if (firstLine.Start > View.TextViewLines.LastVisibleLine.Start ||
                        lastLine.Start < View.TextViewLines.FirstVisibleLine.Start)
                    {
                        continue;
                    }

                    while (
                        !viewModel.IsPointInVisualBuffer(firstLine.Start, PositionAffinity.Successor) &&
                        ++firstLineNumber < lastLineNumber
                        )
                    {
                        try
                        {
                            firstLine = snapshot.GetLineFromLineNumber(firstLineNumber);
                        }
                        catch (Exception ex)
                        {
                            Trace.TraceError("In GetLineFromLineNumber:\n{0}", ex);
                            firstLine = null;
                            break;
                        }
                    }

                    while (
                        !viewModel.IsPointInVisualBuffer(lastLine.Start, PositionAffinity.Predecessor) &&
                        --lastLineNumber > firstLineNumber
                        )
                    {
                        try
                        {
                            lastLine = snapshot.GetLineFromLineNumber(lastLineNumber);
                        }
                        catch (Exception ex)
                        {
                            Trace.TraceError("In GetLineFromLineNumber:\n{0}", ex);
                            lastLine = null;
                            break;
                        }
                    }
                    if (firstLine == null || lastLine == null || firstLineNumber > lastLineNumber)
                    {
                        continue;
                    }


                    IWpfTextViewLine firstView, lastView;
                    try
                    {
                        firstView = View.GetTextViewLineContainingBufferPosition(firstLine.Start);
                        lastView  = View.GetTextViewLineContainingBufferPosition(lastLine.End);
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceError("UpdateAdornments GetTextViewLineContainingBufferPosition failed\n{0}", ex);
                        continue;
                    }

                    string extentText;
                    if (!string.IsNullOrWhiteSpace((extentText = firstView.Extent.GetText())) &&
                        line.Indent > extentText.LeadingWhitespace(Analysis.TabSize)
                        )
                    {
                        continue;
                    }

                    if (firstView.VisibilityState != VisibilityState.Unattached)
                    {
                        top = firstView.Top;
                    }
                    if (lastView.VisibilityState != VisibilityState.Unattached)
                    {
                        bottom = lastView.Bottom;
                    }
                }

                if (!Lines.TryGetValue(line, out adornment))
                {
                    Lines[line] = adornment = CreateGuide(Canvas);
                }
                UpdateGuide(line, adornment, left, top, bottom);
            }

            PerformanceLogger.End(perfCookie);
#if DEBUG
            Debug.WriteLine("Added {0} guides", Lines.Count - initialCount);
            Debug.WriteLine("Removed {0} guides", unusedLines.Count);
            Debug.WriteLine("{0} guides active", Lines.Count - unusedLines.Count);
            Debug.WriteLine("");
#endif

            foreach (var line in unusedLines)
            {
                Line adornment;
                if (Lines.TryGetValue(line, out adornment))
                {
                    Canvas.Children.Remove(adornment);
                    Lines.Remove(line);
                }
            }
            foreach (var line in caret.GetModified())
            {
                Line adornment;
                if (Lines.TryGetValue(line, out adornment))
                {
                    UpdateGuide(line, adornment);
                }
            }
        }