/// <summary> /// Регистрация нового аккаунта в песочнице /// </summary> /// <returns></returns> private async Task RegisterSandboxAccount() { var sandboxAccount = await _context.RegisterAsync(BrokerAccountType.Tinkoff); _accountId = sandboxAccount.BrokerAccountId; Console.WriteLine($"AccauntId:{_accountId}"); }
public async Task RegisterTest() { _handler.Expect(HttpMethod.Post, $"{BaseUri}sandbox/register") .WithJsonContentFromFile("sandbox-register-request") .RespondJsonFromFile("sandbox-register-response"); var response = await _context.RegisterAsync(BrokerAccountType.Tinkoff); var expectedResponse = new SandboxAccount(BrokerAccountType.Tinkoff, BrokerAccountId); response.Should().BeEquivalentTo(expectedResponse); }
public async Task StartAsync() { // register new sandbox account var sandboxAccount = await _context.RegisterAsync(BrokerAccountType.Tinkoff); _accountId = sandboxAccount.BrokerAccountId; // set balance foreach (var currency in new[] { Currency.Rub, Currency.Usd, Currency.Eur }) { await _context.SetCurrencyBalanceAsync(currency, Random.Next(1, 10) * 100_000, sandboxAccount.BrokerAccountId); } await CheckBalanceAsync(); // select random instrument var instrumentList = await _context.MarketStocksAsync(); var randomInstrumentIndex = Random.Next(instrumentList.Total); var randomInstrument = instrumentList.Instruments[randomInstrumentIndex]; Console.WriteLine($"Selected Instrument:\n{randomInstrument.ToString().Replace(", ", "\n")}"); Console.WriteLine(); // get candles var now = DateTime.Now; var candleList = await _context.MarketCandlesAsync(randomInstrument.Figi, now.AddMinutes(-5), now, CandleInterval.Minute); foreach (var candle in candleList.Candles) { Console.WriteLine(candle); } Console.WriteLine(); Console.WriteLine("Buy 1 lot"); await _context.PlaceMarketOrderAsync(new MarketOrder(randomInstrument.Figi, 1, OperationType.Buy, _accountId)); await CheckBalanceAsync(); await Task.Delay(1000); Console.WriteLine("Sell 1 lot"); await _context.PlaceMarketOrderAsync(new MarketOrder(randomInstrument.Figi, 1, OperationType.Sell, _accountId)); await CheckBalanceAsync(); }
private async void Init() { await _context.RegisterAsync(BrokerAccountType.Tinkoff); var balance = await Do(ctx => ctx.PortfolioCurrenciesAsync()); foreach (var currency in balance.Currencies) { if (currency.Balance > 0) { continue; } await Do(_ => _context.SetCurrencyBalanceAsync(currency.Currency, 1_000_000)); } }
public async Task Init() { _sandbox = _broker.SandboxConnection.Context; var account = await _sandbox.RegisterAsync(BrokerAccountType.Tinkoff); _accountId = account.BrokerAccountId; //await _sandbox.ClearAsync(_accountId); // set balance //foreach (var currency in new[] { Currency.Rub, Currency.Usd }) // await _sandbox.SetCurrencyBalanceAsync(currency, // currency == Currency.Rub ? 100_000 : 10_000, _accountId); _currencies["USD"] = new CurrencyInfo { Balance = 2000, Currency = Currency.Usd }; _currencies["RUB"] = new CurrencyInfo { Balance = 100000, Currency = Currency.Rub }; _telegram.PostMessage($"Аккаунт песочницы создан. Id {_accountId}.", null); await ReportBalances(); }