Как правильно сделать запрос gPRC Tinkoff.InvestApi методу GetTechAnalysis?
Здравствуйте.
Пробую отправить запрос к методу GetTechAnalysis, но получаю ошибку
Unhandled exception. System.ArgumentException: Conversion from DateTime to Timestamp requires the DateTime kind to be Utc (Parameter 'dateTime') at Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(DateTime dateTime) at Program.Main(String[] args) in C:C#_DEVTestTinkofTestProgram.cs:line 14 |
Unhandled exception. System.ArgumentException: Conversion from DateTime to Timestamp requires the DateTime kind to be Utc (Parameter 'dateTime') at Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(DateTime dateTime) at Program.Main(String[] args) in C:C#_DEVTestTinkofTestProgram.cs:line 14
Что не так с Timestamp, не ка не пойму,
Сам код:
using Google.Protobuf.WellKnownTypes; internal class Program { private static void Main(string[] args) { var settings = new Tinkoff.InvestApi.InvestApiSettings() { AccessToken = "token" }; var client = Tinkoff.InvestApi.InvestApiClientFactory.Create(settings); var getTechAnalysis = client.MarketData.GetTechAnalysis(new Tinkoff.InvestApi.V1.GetTechAnalysisRequest { IndicatorType = Tinkoff.InvestApi.V1.GetTechAnalysisRequest.Types.IndicatorType.Rsi, InstrumentUid = "a22a1263-8e1b-4546-a1aa-416463f104d3", From = Timestamp.FromDateTimeOffset(new DateTime(2023,12,31)), To = Timestamp.FromDateTime(DateTime.Now), Interval = Tinkoff.InvestApi.V1.GetTechAnalysisRequest.Types.IndicatorInterval.OneDay, TypeOfPrice = Tinkoff.InvestApi.V1.GetTechAnalysisRequest.Types.TypeOfPrice.High, Length = 96, //Deviation = //{ // DeviationMultiplier = // { // Units = 266, // Nano= 905 // } //} }); ; foreach (var techAnalysis in getTechAnalysis.TechnicalIndicators) { Console.WriteLine( $"{techAnalysis.Timestamp} {techAnalysis.MiddleBand}"); } } } |
using Google.Protobuf.WellKnownTypes; internal class Program { private static void Main(string[] args) { var settings = new Tinkoff.InvestApi.InvestApiSettings() { AccessToken = "token" }; var client = Tinkoff.InvestApi.InvestApiClientFactory.Create(settings); var getTechAnalysis = client.MarketData.GetTechAnalysis(new Tinkoff.InvestApi.V1.GetTechAnalysisRequest { IndicatorType = Tinkoff.InvestApi.V1.GetTechAnalysisRequest.Types.IndicatorType.Rsi, InstrumentUid = "a22a1263-8e1b-4546-a1aa-416463f104d3", From = Timestamp.FromDateTimeOffset(new DateTime(2023,12,31)), To = Timestamp.FromDateTime(DateTime.Now), Interval = Tinkoff.InvestApi.V1.GetTechAnalysisRequest.Types.IndicatorInterval.OneDay, TypeOfPrice = Tinkoff.InvestApi.V1.GetTechAnalysisRequest.Types.TypeOfPrice.High, Length = 96, //Deviation = //{ // DeviationMultiplier = // { // Units = 266, // Nano= 905 // } //} }); ; foreach (var techAnalysis in getTechAnalysis.TechnicalIndicators) { Console.WriteLine( $"{techAnalysis.Timestamp} {techAnalysis.MiddleBand}"); } } }
Deviation
закомментировал, по причине возврата NULL.
Подскажите пожалуйста.
Дополнительно:
Ответы:
Вроде же чёрным по белому написно:
Conversion from DateTime to Timestamp requires the DateTime kind to be Utc (Parameter 'dateTime')
Timestamp.FromDateTime(DateTime.Now)
Вот тут надо UtcNow
Timestamp.FromDateTimeOffset(new DateTime(2023,12,31)), |
Timestamp.FromDateTimeOffset(new DateTime(2023,12,31)),
и вот тут явно указать kind
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы правильно сделать запрос к методу GetTechAnalysis API Tinkoff.InvestApi через gRPC, необходимо следовать определенным шагам.
1. Подготовьте необходимые данные для запроса, такие как API ключ, тикер инструмента, интересующий вас интервал времени и другие параметры, если они требуются.
2. Определите структуру запроса к методу GetTechAnalysis. Возможно, вам потребуется создать объект запроса с определенными параметрами.
3. Установите соединение с сервером Tinkoff.InvestApi через gRPC. Для этого используйте соответствующий клиент для языка программирования, который вы используете.
4. Отправьте запрос к методу GetTechAnalysis с помощью клиента gRPC, передавая необходимые данные в соответствии с API документацией Tinkoff.InvestApi.
Пример запроса к методу GetTechAnalysis на PHP с использованием gRPC:
$request = new GetTechAnalysisRequest(); $request->setFigi('AAPL'); $request->setInterval('day'); list($response, $status) = $client->GetTechAnalysis($request)->wait();
Помните, что для успешного выполнения запроса необходимо убедиться, что все данные переданы корректно и в соответствии с требованиями API. После получения ответа от сервера, обработайте его в соответствии с вашей логикой приложения.
Надеюсь, данная информация поможет вам успешно выполнить запрос к методу GetTechAnalysis API Tinkoff.InvestApi через gRPC. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их. Удачи!