using BitgetAPI.Data; using BitgetAPI.Data.IndicatorData; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BitgetAPI.IndicatorConditionSetup { [Serializable] public class MovingAverageConditionSetup { // 지표 기본 값 설정 // 이동 평균선 종류 public CommonProperty.MovingAverageType MovingAverageType { get; set; } // 기간 public int CandleLegnth24 { get; set; } = 24; // 기간 public int CandleLegnth4 { get; set; } = 4; // 기간 public int CandleLegnth72 { get; set; } = 72; // 가격 public CommonProperty.CandlePriceType MACandlePriceType { get; set; } // 추후 업데이트 된것을 계산 안하는거 고려 !!!! public void Cal_YHK_Downpublic(List candleDatas, CandleData candleData) { // 현재 종가 인덱스 var endIndex = candleDatas.Count() - 1; if (candleData == null) return; // Moving 없으면 생성 if (candleData.movingAverageDataList == null) { candleData.movingAverageDataList = new Dictionary(); candleData.movingAverageDataList.Add(CandleLegnth4, new MovingAverageData()); candleData.movingAverageDataList.Add(CandleLegnth24, new MovingAverageData()); candleData.movingAverageDataList.Add(CandleLegnth72, new MovingAverageData()); } foreach(var item in candleData.movingAverageDataList.ToList()) { // 전봉까지 만듬 var datas = candleDatas.FindAll(i => candleDatas.IndexOf(i) > endIndex - item.Key && candleDatas.IndexOf(i) <= endIndex); candleData.movingAverageDataList[item.Key] = new MovingAverageData(); candleData.movingAverageDataList[item.Key].Value = datas.Sum(i => i.Close) / item.Key; } } } }