이치모쿠 추가 수정

This commit is contained in:
jwlee
2024-05-30 00:35:38 +09:00
parent 3ae06053ae
commit 1f3db07e76
3 changed files with 56 additions and 19 deletions

View File

@@ -52,24 +52,28 @@ namespace BitgetAPI.IndicatorConditionSetup
선행스팬2 : (과거 k일간의 최고가 + 과거 k일간의 최저가) /2한 값을 ℓ일 후에 기입
*/
foreach (var data in )
// 현재 시간 캔들
var nowCandle = candleDatas.Last();
// 현재 종가
var endValue = nowCandle.Close;
// 현재 종가 인덱스
var endIndex = candleDatas.Count - 1;
var 한봉전까지Index = endIndex - 1;
// 전봉까지 만듬
var datas = candleDatas.FindAll(i =>
candleDatas.IndexOf(i) >= 한봉전까지Index -ConversionPeriod &&
candleDatas.IndexOf(i) <= 한봉전까지Index);
// 현재 시간 캔들
var nowCandle = candleDatas[endIndex];
// Ichimok 없으면 생성
if (nowCandle.IchimokData == null) nowCandle.IchimokData = new IchimokData();
// 현재 종가
var endValue = nowCandle.Close;
// 전봉까지 만듬
var datas = candleDatas.FindAll(i =>
candleDatas.IndexOf(i) >= 한봉전까지Index - ConversionPeriod &&
candleDatas.IndexOf(i) <= 한봉전까지Index);
if (datas == null) return;
// 전환선
nowCandle.IchimokData.전환선 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2;
@@ -81,17 +85,50 @@ namespace BitgetAPI.IndicatorConditionSetup
nowCandle.IchimokData.기준선 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2;
// 후행스팬
if (candleDatas.Count - Displacement >= 0)
if (endIndex - Displacement >= 0)
{
if(candleDatas[candleDatas.Count - Displacement].IchimokData == null)
{
candleDatas[candleDatas.Count - Displacement].IchimokData = new IchimokData();
}
candleDatas[candleDatas.Count - Displacement].IchimokData.후행스팬 = endValue;
if(Displacement + )
// 선행스팬 1
nowCandle.IchimokData.선행스팬1 =
(nowCandle.IchimokData.전환선 + nowCandle.IchimokData.기준선) / 2
// 선행스팬 2
}
// Displacement : 26 일전봉 데이터 가져오기
endIndex = endIndex - Displacement;
한봉전까지Index = 한봉전까지Index - Displacement;
datas = candleDatas.FindAll(i =>
candleDatas.IndexOf(i) >= 한봉전까지Index - ConversionPeriod &&
candleDatas.IndexOf(i) <= 한봉전까지Index);
if (datas == null) return;
// 전환선
var displacement_전환선 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2;
datas = candleDatas.FindAll(i =>
candleDatas.IndexOf(i) >= 한봉전까지Index - BaselinePeriod &&
candleDatas.IndexOf(i) <= 한봉전까지Index);
if (datas == null) return;
// 기준선
var displacement_기준선 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2;
nowCandle.IchimokData.선행스팬1 =
(displacement_전환선 + displacement_기준선) / 2;
// 선행스팬 2
datas = candleDatas.FindAll(i =>
candleDatas.IndexOf(i) >= 한봉전까지Index - LaggingSpan2Period &&
candleDatas.IndexOf(i) <= 한봉전까지Index);
nowCandle.IchimokData.선행스팬2 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2;
}