왜값이이렇지
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user