Поиск предыдущей свечи не работает из-за DateTime.AddSeconds - PullRequest
0 голосов
/ 12 февраля 2020

Я использую Binance. Net в качестве оболочки API Binance, и недавно я столкнулся с проблемой с DateTime.AddSeconds.

Следующий код должен найти свечу перед последним заказом.

// OpenTime and CloseTime are both DateTime
var openTime = lastOrder.OpenTime; // 10:50:00
var closeTime = lastOrder.CloseTime; // 10:54:59

// It should return 10:55:00 - 10:50:00 = 5 minutes
// The reason I'm doing this is because I don't know the exact interval my bot is working with.
// What I know is the OpenTime (begin) and CloseTime (end).
var difference = closeTime.AddSeconds(1) - openTime; // closeTime.AddSeconds(1) doesn't work

var dateTime = openTime - difference; // 10:50:00 - 00:05:00.9990000 = 10:39:99

// 10:39:99 is an invalid startTime/endTime
var kline = _client.GetKlines(symbol, interval, startTime: dateTime, endTime: dateTime, limit: 1).Data;

Проблема:

Проблема в том, что .AddSeconds(1) на самом деле не добавляет эту секунду и в результате _client.GetKlines завершается неудачей.

Я не знаю, есть ли лучший способ получить предыдущую свечу в API Binance, но если есть, я бы принял это как решение.

Проблема визуального представления:

enter image description here

Редактировать:

Исправлено! Когда я проверил свойства DateTime, я понял, что пропустил миллисекунды в свойстве CloseTime. Так что в итоге это был неверный расчет. Вместо .AddSeconds(1) я сделал это .AddMiliseconds(1).

...