ㅁㅁ
This commit is contained in:
@@ -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,
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user