왜값이이렇지

This commit is contained in:
kyh
2024-07-12 17:25:58 +09:00
parent 7ccfc740a6
commit 435a8b182f
2 changed files with 40 additions and 14 deletions

View File

@@ -767,6 +767,13 @@ namespace BitgetAPI.WebService
var dataList = cloneList.Where(t => t.ContainsKey("data")).Select(t => t["data"]);
var list = JsonConvert.DeserializeObject<List<List<WebSocketTickerInfo>>>(JsonConvert.SerializeObject(dataList));
var calList = new List<WebSocketTickerInfo>();
foreach(var item in list)
{
calList.Add(item[0]);
}
var stringList = list.Select(t => t[0].instId).Distinct().ToList();
list = list.OrderBy(t => t[0].ts).ToList();
@@ -779,28 +786,31 @@ namespace BitgetAPI.WebService
foreach (var item in stringList)
{
var temp = list.Where(t => item == t[0].instId);
var temp = calList.Where(t => item == t.instId);
if (temp.Count() > 0)
{
minList.Add(item, new List<CandleData>());
foreach (var t in temp)
{
var tickerList = t[0];
var tickerList = t;
DateTime dt = new DateTime(1970, 01, 01);
tickerList.reciveTime = dt.AddMilliseconds(Convert.ToDouble(tickerList.ts)).ToLocalTime();
}
var timeList = temp.Select(t => t[0].reciveTime.Minute);
var timeList = temp.Select(t => t.reciveTime.Minute).OrderBy(t=>t).ToList();
foreach (var min in timeList)
{
var minDataList = temp.Where(t => t[0].reciveTime.Minute == min);
var candleData = new CandleData();
var minDataList = temp.Where(t => t.reciveTime.Minute == min).OrderBy(t=>t.reciveTime).ToList();
candleData.Argument = minDataList.Last()[0].reciveTime;
candleData.Close = minDataList.Last()[0].lastPr;
candleData.Open = minDataList.First()[0].lastPr;
candleData.Low = minDataList.Min(t => t[0].lastPr);
candleData.High = minDataList.Max(t => t[0].lastPr);
var candleData = new CandleData();
var dt = minDataList[minDataList.Count -1].reciveTime;
candleData.Argument = dt;
candleData.Close = minDataList.Last().lastPr;
candleData.Open = minDataList.First().lastPr;
candleData.Low = minDataList.Min(t => t.lastPr);
candleData.High = minDataList.Max(t => t.lastPr);
minList[item].Add(candleData);
}
@@ -877,11 +887,27 @@ namespace BitgetAPI.WebService
candleDataList.Add(candleData);
else
{
var lastCandleData_Edit = candleDataList.OrderBy(t => t.Argument).ToList();
var lastCandleData_Edit = candleDataList;
// 마지막 시간 데이터 가져오기
var lastCandleData = lastCandleData_Edit.Find(j => j.Argument == lastCandleData_Edit.Max(i => i.Argument));
if (lastCandleData == null || lastCandleData.Argument > candleData.Argument) return;
if (lastCandleData == null || lastCandleData.Argument > candleData.Argument)
{
if (lastCandleData != null)
{
var beforeList = candleDataList.OrderByDescending(t => t.Argument).ToList();
var before = beforeList.FirstOrDefault(t => t.Argument < candleData.Argument);
if (before != null)
{
lastCandleData = lastCandleData_Edit.Find(t => t.Argument == before.Argument);
}
else
continue;
}
else
continue;
}
// 업데이트 or 추가
bool updateFlag = false;