스레드 재실행 수정중!!

This commit is contained in:
jwlee
2024-06-10 23:22:01 +09:00
parent dba228b6dd
commit 43148b773a
2 changed files with 112 additions and 16 deletions

View File

@@ -16,6 +16,7 @@ using BitgetApi.Data;
using Newtonsoft.Json.Linq;
using DevExpress.Utils.Extensions;
using static BitgetAPI.CommonProperty;
using DateTime = System.DateTime;
namespace BitgetAPI.WebService
{
@@ -157,21 +158,75 @@ namespace BitgetAPI.WebService
candleData.Vol_USD = Convert.ToDouble(item[6]);
// 같은 시간이 존재하면 업데이트 : 1개밖에 없음
var sameCandleData_WebService = candleDataList.Find(i => i.Argument.Minute == candleData.Argument.Minute &&
i.Argument.Hour == candleData.Argument.Hour && i.WebSocketUpdate == true);
// 마지막 시간 데이터는 불완전 > 웹소켓 데이터와 합체
if(item == datas.Last())
{
var timespan_add = new System.TimeSpan(0,0,0);
switch (interval)
{
case CommonProperty.MCandleTimeType.M1:
// 같은 분이면 무조건 업데이트
timespan_add = new System.TimeSpan(0, 1, 0);
break;
case CommonProperty.MCandleTimeType.M3:
// 같은 분이면 무조건 업데이트
timespan_add = new System.TimeSpan(0, 3, 0);
break;
case CommonProperty.MCandleTimeType.M5:
timespan_add = new System.TimeSpan(0, 5, 0);
break;
case CommonProperty.MCandleTimeType.M15:
timespan_add = new System.TimeSpan(0, 15, 0);
break;
case CommonProperty.MCandleTimeType.M30:
timespan_add = new System.TimeSpan(0, 30, 0);
break;
case CommonProperty.MCandleTimeType.H1:
timespan_add = new System.TimeSpan(1, 0, 0);
break;
case CommonProperty.MCandleTimeType.H4:
timespan_add = new System.TimeSpan(4, 0, 0);
break;
case CommonProperty.MCandleTimeType.H6:
timespan_add = new System.TimeSpan(6, 0, 0);
break;
case CommonProperty.MCandleTimeType.H12:
timespan_add = new System.TimeSpan(12, 0, 0);
break;
}
var sameCandleData_WebService = candleDataList.Find(i => candleData.Argument <= i.Argument &&
i.Argument < (candleData.Argument + timespan_add) && i.WebSocketUpdate == true);
if(sameCandleData_WebService != null)
{
// 종가 => 웹소켓 데이터 사용 (웹 서비스 호출 데이터 중 마지막 데이터는 캔들이 완성되지 않음)
// 시가 => 웹 서비스 데이터 사용
sameCandleData_WebService.Open = candleData.Open;
// 저가, 고가 => 비교해서 사용
sameCandleData_WebService.Low = Math.Min(sameCandleData_WebService.Low, candleData.Low);
sameCandleData_WebService.High = Math.Max(sameCandleData_WebService.High, candleData.High);
sameCandleData_WebService.WebServiceUpdate = true;
}
else
{
candleDataList.Add(candleData);
candleData.WebServiceUpdate = true;
}
}
/*
//var sameCandleData_WebService = candleDataList.Find(i => i.Argument.Minute == candleData.Argument.Minute &&
//i.Argument.Hour == candleData.Argument.Hour && i.WebSocketUpdate == true);
// 기존 웹소켓으로 부터 받은 데이터에 수정 등록
if (sameCandleData_WebService != null)
{
// 종가 => 웹소켓 데이터 사용 (웹 서비스 호출 데이터 중 마지막 데이터는 캔들이 완성되지 않음)
// 시가 => 웹 서비스 데이터 사용
sameCandleData_WebService.Open = candleData.Open;
// 저가, 고가 => 비교해서 사용
sameCandleData_WebService.Low = Math.Min(sameCandleData_WebService.Low, candleData.Low);
sameCandleData_WebService.High = Math.Max(sameCandleData_WebService.High, candleData.High);
sameCandleData_WebService.WebServiceUpdate = true;
}
}*/
// 웹 서비스로 받은 데이터를 새로 추가
else
{
@@ -283,7 +338,8 @@ namespace BitgetAPI.WebService
DateTime dt = new DateTime(1970, 01, 01);
tickerList.reciveTime = dt.AddMilliseconds(Convert.ToDouble(tickerList.ts)).ToLocalTime();
// 웹소켓 티커 리스트에 추가
// 웹소켓 티커 리스트에 추가 (사용 안함)
/*
var searchIndex = commonProperty.webSocketCandles.IndexOf(i => i.instId == tickerList.instId);
if (searchIndex < 0)
commonProperty.webSocketCandles.Add(tickerList);
@@ -291,6 +347,7 @@ namespace BitgetAPI.WebService
{
commonProperty.webSocketCandles[searchIndex] = tickerList;
}
*/
// 캔들 리스트에서 해당 데이터 찾기
var searchIndex_c = commonProperty.candleDataLists.IndexOf(i => i.ConGoodsData.MarketName == tickerList.instId);
@@ -305,8 +362,6 @@ namespace BitgetAPI.WebService
candleData.Argument = tickerList.reciveTime;
candleData.Close = tickerList.lastPr;
if (interval == MCandleTimeType.H1) { }
// 캔들 리스트가 없으면 추가
if (candleDataList.Count == 0)
candleDataList.Add(candleData);