This commit is contained in:
DESKTOP-1A3P75F\lee
2022-04-06 11:19:20 +09:00
parent 1043fb26e8
commit 7f8b791a74
3 changed files with 90 additions and 3 deletions

View File

@@ -10,6 +10,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static Million.CommonProperty;
namespace Million_Prototype
{
@@ -36,10 +37,44 @@ namespace Million_Prototype
sw.Restart();
var data = uApi.GetMarketDatas(); //전체 목록
var krwList = data.FindAll(x => x.Payment.Contains("KRW")); //한화 목록
List<List<CandleData>> candledataList = new List<List<CandleData>>();
List<CandleDataList> dataList = new List<CandleDataList>();
setCandleDataList(dataList, krwList);
//최초 데이터 전체 저장
//4시간, 1분
var dateTime = DateTime.Now;
//4시간 가져오기
foreach(var krw in dataList)
{
krw.CandleDataLists_Im= uApi.GetCandleStics(krw.ConGoodsData.CodeFullName, MCandleTimeType.H4, dateTime);
}
/*
//1분 가져오기
foreach (var krw in dataList)
{
var startDateTime = dateTime;
var endDateTime = krw.CandleDataLists_4H.Last().DateTime;
do
{
krw.CandleDataLists_Im.AddRange(uApi.GetCandleStics(krw.ConGoodsData.CodeFullName, MCandleTimeType.M1, dateTime));
dateTime = krw.CandleDataLists_Im.Last().DateTime;
}
while (endDateTime < dateTime);
}*/
//볼린저 계산
//일목균형표 계산
var test = krwList.Select(t => t.CodeFullName).ToList();
//var 현재가 = uApi.GetOrderBookList(test);GetTickerList
var 현재가 = uApi.GetTickerList(test);
@@ -55,5 +90,17 @@ namespace Million_Prototype
현재가.ToString();
}
public void setCandleDataList(List<CandleDataList> dataList, List<MarketData> marketDataList)
{
foreach(var marketData in marketDataList)
{
dataList.Add(new CandleDataList()
{
ConGoodsData = marketData,
});
}
}
}
}

View File

@@ -20,6 +20,17 @@ namespace Million.Data
public int CandleTimeType { get; set; }
//이평선 40, 지수 5,10
public double MovingAverage40;
//볼 40-2, 40-1
public double Bol40_2;
public double Bol40_1;
//일목 선행1,2
public double ichi1;
public double ichi2;
public CandleType CandleType { get; set; } = CandleType.None;
/// <summary>

View File

@@ -1,4 +1,5 @@
using System;
using Million.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -41,5 +42,33 @@ namespace Million.Indicators
}
}
}
public static void AddMovingAndBollingerBands(List<CandleData> data, int period, int factor,bool mAverAdd = false)
{
double total_average = 0;
for (int i = 0; i < data.Count(); i++)
{
total_average += data[i].EndValue;
if (i >= period - 1)
{
double total_bollinger = 0;
double average = total_average / period;
if (mAverAdd)
{
data[i].MovingAverage40 = average;
}
for (int x = i; x > (i - period); x--)
{
total_bollinger += Math.Pow(data[x].EndValue - average, 2);
}
double stdev = Math.Sqrt(total_bollinger / period);
data[i].Bol40_2 = average + factor * stdev;
total_average -= data[i - period + 1].EndValue;
}
}
}
}
}