Merge branch 'feature/V1.1' of http://222.96.13.116/Million into feature/V1.1
This commit is contained in:
@@ -527,7 +527,7 @@ namespace Million_Buyer
|
||||
continue;
|
||||
}
|
||||
|
||||
if (StarValueLowOverlapUp)
|
||||
if (StarValueLowBuyValueUp)
|
||||
{
|
||||
if (recentlyData.StartValue < beforeData.HighValue)
|
||||
{
|
||||
|
||||
@@ -273,7 +273,7 @@ namespace Million
|
||||
// 조건 검색을 반영하여 데이터 계산
|
||||
private void simpleButton_CalcurateData_Click(object sender, EventArgs e)
|
||||
{
|
||||
CommonProperty.StarValueLowOverlapUp = cb_StarValueLowOverlapUp.Checked;
|
||||
CommonProperty.StarValueLowBuyValueUp = cb_StarValueLowOverlapUp.Checked;
|
||||
|
||||
// 계산 결과 데이터 관련 클래스에 값 채우기
|
||||
DeafultDataSet();
|
||||
@@ -617,7 +617,7 @@ namespace Million
|
||||
recentlyData.BuyValue = OrderbookManager.GetAskPrice(CalculateManager.GetConditionValue(buyScript.regularExpressionString, valDic, recentlyData.CalculateFlag));
|
||||
|
||||
// 이전 전봉(H1)의 고가가 사려는 가격보다 높을경우 pass
|
||||
if (StarValueLowOverlapUp)
|
||||
if (StarValueLowBuyValueUp)
|
||||
{
|
||||
if (recentlyData.StartValue < beforeData.HighValue)
|
||||
{
|
||||
@@ -1031,8 +1031,7 @@ namespace Million
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void bt_CalculateList_Click(object sender, EventArgs e)
|
||||
{
|
||||
CommonProperty.StarValueLowOverlapUp = cb_StarValueLowOverlapUp.Checked;
|
||||
{
|
||||
if (multiSavedResultDatas.Count > 0)
|
||||
{
|
||||
LogManager.WriteLog("헌터 리스트 계산 시작", "Hunter List 계산");
|
||||
@@ -1040,6 +1039,8 @@ namespace Million
|
||||
|
||||
foreach (var item in multiSavedResultDatas)
|
||||
{
|
||||
CommonProperty.StarValueLowBuyValueUp = item.StarValueLowOverlapUp;
|
||||
|
||||
CalculateDatas(item.SavedResultData, item.UpperMainIndicatorFlag, item.IncludeClearIndicator, item.DownBeforeValueFlag, item.HunterMode);
|
||||
LogManager.WriteLog("헌터 리스트 계산 완료. Name : " + item.SavedResultData.Name, "Hunter List 계산");
|
||||
|
||||
@@ -1086,6 +1087,7 @@ namespace Million
|
||||
data.HunterMode = rd_Hunter.Checked;
|
||||
data.IncludeClearIndicator = cb_IncludeClearIndicator.Checked;
|
||||
data.UpperMainIndicatorFlag = cb_UpperMainIndi.Checked;
|
||||
data.StarValueLowOverlapUp = cb_StarValueLowOverlapUp.Checked;
|
||||
multiSavedResultDatas.Add(data);
|
||||
|
||||
MessageBox.Show("추가 완료");
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace Million_Update_Server
|
||||
data += Encoding.UTF8.GetString(buffer, 0, bytesRead);
|
||||
} while (clientStream.DataAvailable);
|
||||
|
||||
var receivedPeople = JsonConvert.DeserializeObject<Million.SaveData.SavedResultData>(data);
|
||||
//var receivedPeople = JsonConvert.DeserializeObject<Million.SaveData.SavedResultData>(data);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -369,7 +369,7 @@ namespace Million
|
||||
|
||||
#region Realtime Hunter Flag
|
||||
public static bool RealtimeHunterMode = false;
|
||||
public static bool StarValueLowOverlapUp = false;
|
||||
public static bool StarValueLowBuyValueUp = false;
|
||||
#endregion
|
||||
|
||||
#region Realtime 관련 Sub data 사용하는 부분예외처리
|
||||
|
||||
@@ -19,6 +19,8 @@ namespace Million.Data.SaveData
|
||||
|
||||
public bool UpperMainIndicatorFlag { get; set; }
|
||||
|
||||
public bool StarValueLowOverlapUp { get; set; }
|
||||
|
||||
public bool IncludeClearIndicator { get; set; }
|
||||
|
||||
public bool DownBeforeValueFlag { get; set; }
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Million.Data;
|
||||
using Million.Data.Upbit;
|
||||
using Million.DbManagement;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using System;
|
||||
@@ -399,9 +400,49 @@ namespace Million.Manager
|
||||
recentlyData.HighValue = recentlyData.HighValue < candleData.HighValue ? candleData.HighValue : recentlyData.HighValue;
|
||||
recentlyData.LowValue = recentlyData.LowValue < candleData.LowValue ? recentlyData.LowValue : candleData.LowValue;
|
||||
recentlyData.EndValue = candleData.EndValue;
|
||||
recentlyData.RecentlyDataFlag = true;
|
||||
recentlyData.MoneyVolume += candleData.MoneyVolume;
|
||||
return recentlyData;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tick List를
|
||||
/// </summary>
|
||||
/// <param name="tickList"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleData> GetOneMinuteCandleDataFromTickList(List<Ticker> tickList)
|
||||
{
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
var dateTimeList = tickList.Select(t => t.DateTime.Minute).Distinct().ToList();
|
||||
|
||||
foreach (var item in dateTimeList)
|
||||
{
|
||||
var list = tickList.Where(t => t.DateTime.Minute == item).ToList();
|
||||
if (list.Count > 0)
|
||||
{
|
||||
var valueList = list.Select(t => t.TradePrice).ToList();
|
||||
var startValue = list[0].TradePrice;
|
||||
var endValue = list[list.Count - 1].TradePrice;
|
||||
var highValue = valueList.Max();
|
||||
var lowValue = valueList.Min();
|
||||
var candle = new CandleData();
|
||||
candle.DateTime = list[0].DateTime;
|
||||
candle.DateTime.AddSeconds(candle.DateTime.Second * -1);
|
||||
candle.CandleTimeType = 1;
|
||||
candle.StartValue = startValue;
|
||||
candle.HighValue = highValue;
|
||||
candle.LowValue = lowValue;
|
||||
candle.RecentlyDataFlag = true;
|
||||
candle.EndValue = endValue;
|
||||
|
||||
returnData.Add(candle);
|
||||
}
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,179 +234,210 @@ namespace Million.Manager
|
||||
|
||||
tickList = cloneTickList.Where(t => t.CoinFullName == coinFullName).OrderBy(t=>t.DateTime).ToList();
|
||||
|
||||
// 호출 당시 시, 분, 초
|
||||
var callH = basicDateTime.Hour;
|
||||
var callM = basicDateTime.Minute;
|
||||
var callS = basicDateTime.Second;
|
||||
try
|
||||
#region 여러 Type 다 호환 되도록 새로 구성
|
||||
/*
|
||||
* 1. Tick -> 1분봉으로 모두 변환(시가는 제일 작은거로 처리
|
||||
* 2. 기존에 가지고 있는 봉 마지막꺼를 포함한 모든 데이터를 가지고 GetConvertCandleDataList로 처리
|
||||
* 3. 마지막 봉삭제 후 모두 Addrange
|
||||
* 4. 이후 300개 이상일 경우 삭제 처리
|
||||
*/
|
||||
|
||||
var returnList = DataManager.GetOneMinuteCandleDataFromTickList(tickList);
|
||||
if(item.CandleDataLists_Im.Count > 0)
|
||||
{
|
||||
if (type == MCandleTimeType.M1)
|
||||
{
|
||||
var equalMinuteList = tickList.Where(t => t.DateTime.Minute == callM).ToList();
|
||||
|
||||
//해당 분 고가
|
||||
if (equalMinuteList.Count != 0)
|
||||
{
|
||||
var equalListM = equalMinuteList.Select(t => t.TradePrice).ToList();
|
||||
double equalListMax = 0;
|
||||
if (equalListM.Count != 0)
|
||||
{
|
||||
equalListMax = equalListM.Max();
|
||||
}
|
||||
|
||||
//해당 분 저가
|
||||
var equalListL = equalMinuteList.Select(t => t.TradePrice).ToList();
|
||||
|
||||
double equalListMin = 0;
|
||||
if (equalListL.Count != 0)
|
||||
{
|
||||
equalListMin = equalListL.Min();
|
||||
}
|
||||
if (item.CandleDataLists_Im.Count != 0)
|
||||
{
|
||||
if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue < equalListMax && equalListMax != 0)
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue = equalListMax;
|
||||
if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue > equalListMin && equalListMin != 0)
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue = equalListMin;
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].RecentlyDataFlag = true;
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].EndValue = equalMinuteList[equalMinuteList.Count - 1].TradePrice;
|
||||
}
|
||||
else
|
||||
{
|
||||
var candle = new CandleData();
|
||||
candle.CandleTimeType = (int)MCandleTimeType.M1;
|
||||
candle.StartValue = equalMinuteList[0].TradePrice;
|
||||
candle.HighValue = equalListMax;
|
||||
candle.LowValue = equalListMin;
|
||||
candle.RecentlyDataFlag = true;
|
||||
candle.EndValue = equalMinuteList[equalMinuteList.Count - 1].TradePrice;
|
||||
var date = basicDateTime.AddMinutes(1);
|
||||
date = date.AddSeconds(-1 * callS);
|
||||
candle.DateTime = date;
|
||||
if (item.CandleDataLists_Im.Count > 300)
|
||||
item.CandleDataLists_Im.RemoveRange(0, item.CandleDataLists_Im.Count - 300);
|
||||
item.CandleDataLists_Im.Add(candle);
|
||||
}
|
||||
}
|
||||
|
||||
var list = tickList.Where(t => t.DateTime > basicDateTime && t.DateTime.Minute != basicDateTime.Minute).ToList();
|
||||
|
||||
if (list.Count > 0)
|
||||
{
|
||||
// 데이터 가져올떄 1분 이상 걸릴 시 처리할 데이터
|
||||
var minList = list.Select(t => t.DateTime.Minute).Distinct().ToList();
|
||||
minList.Sort();
|
||||
|
||||
foreach (var min in minList)
|
||||
{
|
||||
var equalList = list.Where(t => t.DateTime.Minute == min).OrderBy(t => t.DateTime).ToList();
|
||||
|
||||
//해당 분 고가
|
||||
var max = equalList.Select(t => t.TradePrice).ToList().Max();
|
||||
//해당 분 저가
|
||||
var low = equalList.Select(t => t.TradePrice).ToList().Min();
|
||||
|
||||
var candle = new CandleData();
|
||||
candle.CandleTimeType = (int)MCandleTimeType.M1;
|
||||
candle.StartValue = equalList[0].TradePrice;
|
||||
candle.HighValue = max;
|
||||
candle.LowValue = low;
|
||||
candle.RecentlyDataFlag = true;
|
||||
candle.EndValue = equalList[equalList.Count - 1].TradePrice;
|
||||
|
||||
var intervalMin = min - callM;
|
||||
|
||||
var date = basicDateTime.AddMinutes(intervalMin);
|
||||
if(intervalMin < 0) date = date.AddHours(1);
|
||||
|
||||
date = date.AddSeconds(-1 * callS);
|
||||
candle.DateTime = date;
|
||||
if (item.CandleDataLists_Im.Count > 300)
|
||||
item.CandleDataLists_Im.RemoveRange(0, item.CandleDataLists_Im.Count - 300);
|
||||
item.CandleDataLists_Im.Add(candle);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (type == MCandleTimeType.H1)
|
||||
{
|
||||
var equalHourList = tickList.Where(t => t.DateTime.Hour == callH).ToList();
|
||||
if (equalHourList.Count != 0)
|
||||
{
|
||||
var equalListM = equalHourList.Select(t => t.TradePrice).ToList();
|
||||
double equalListMax = 0;
|
||||
if (equalListM.Count != 0)
|
||||
{
|
||||
equalListMax = equalListM.Max();
|
||||
}
|
||||
|
||||
//해당 분 저가
|
||||
var equalListL = equalHourList.Select(t => t.TradePrice).ToList();
|
||||
double equalListMin = 0;
|
||||
if (equalListL.Count != 0)
|
||||
{
|
||||
equalListMin = equalListL.Min();
|
||||
}
|
||||
if (item.CandleDataLists_Im.Count > 0)
|
||||
{
|
||||
if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue < equalListMax && equalListMax != 0)
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue = equalListMax;
|
||||
if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue > equalListMin && equalListMin != 0)
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue = equalListMin;
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].RecentlyDataFlag = true;
|
||||
item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].EndValue = equalHourList[equalHourList.Count - 1].TradePrice;
|
||||
}
|
||||
else
|
||||
{
|
||||
var candle = new CandleData();
|
||||
candle.CandleTimeType = (int)MCandleTimeType.H1;
|
||||
candle.StartValue = equalHourList[0].TradePrice;
|
||||
candle.HighValue = equalListMax;
|
||||
candle.LowValue = equalListMin;
|
||||
candle.RecentlyDataFlag = true;
|
||||
candle.EndValue = equalHourList[equalHourList.Count - 1].TradePrice;
|
||||
|
||||
var date = basicDateTime.AddHours(1);
|
||||
date = date.AddMinutes(-1 * callM);
|
||||
date = date.AddSeconds(-1 * callS);
|
||||
candle.DateTime = date;
|
||||
if (item.CandleDataLists_Im.Count > 300)
|
||||
item.CandleDataLists_Im.RemoveRange(0, 100);
|
||||
item.CandleDataLists_Im.Add(candle);
|
||||
}
|
||||
}
|
||||
|
||||
var list = tickList.Where(t => t.DateTime > basicDateTime && t.DateTime.Hour != basicDateTime.Hour).ToList();
|
||||
if (list.Count > 0)
|
||||
{
|
||||
//해당 분 고가
|
||||
var max = list.Select(t => t.TradePrice).ToList().Max();
|
||||
//해당 분 저가
|
||||
var low = list.Select(t => t.TradePrice).ToList().Min();
|
||||
|
||||
var candle = new CandleData();
|
||||
candle.CandleTimeType = (int)MCandleTimeType.H1;
|
||||
candle.StartValue = list[0].TradePrice;
|
||||
candle.HighValue = max;
|
||||
candle.LowValue = low;
|
||||
candle.RecentlyDataFlag = true;
|
||||
candle.EndValue = list[list.Count - 1].TradePrice;
|
||||
|
||||
var date = basicDateTime.AddHours(1);
|
||||
date = date.AddMinutes(-1 * callM);
|
||||
date = date.AddSeconds(-1 * callS);
|
||||
|
||||
candle.DateTime = date;
|
||||
if (item.CandleDataLists_Im.Count > 300)
|
||||
item.CandleDataLists_Im.RemoveRange(0, 100);
|
||||
item.CandleDataLists_Im.Add(candle);
|
||||
}
|
||||
}
|
||||
var lastData = item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1];
|
||||
returnList.Insert(0, lastData);
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
var dataList = DataManager.GetConvertCandleDataList(returnList, type);
|
||||
|
||||
if (item.CandleDataLists_Im.Count > 0)
|
||||
{
|
||||
throw;
|
||||
item.CandleDataLists_Im.Remove(item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1]);
|
||||
}
|
||||
|
||||
item.CandleDataLists_Im.AddRange(dataList);
|
||||
if(item.CandleDataLists_Im.Count > 150)
|
||||
{
|
||||
item.CandleDataLists_Im.RemoveRange(0, item.CandleDataLists_Im.Count - 150);
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region 옛날 소스
|
||||
//// 호출 당시 시, 분, 초
|
||||
//var callH = basicDateTime.Hour;
|
||||
//var callM = basicDateTime.Minute;
|
||||
//var callS = basicDateTime.Second;
|
||||
//try
|
||||
//{
|
||||
// if (type == MCandleTimeType.M1)
|
||||
// {
|
||||
// var equalMinuteList = tickList.Where(t => t.DateTime.Minute == callM).ToList();
|
||||
|
||||
// //해당 분 고가
|
||||
// if (equalMinuteList.Count != 0)
|
||||
// {
|
||||
// var equalListM = equalMinuteList.Select(t => t.TradePrice).ToList();
|
||||
// double equalListMax = 0;
|
||||
// if (equalListM.Count != 0)
|
||||
// {
|
||||
// equalListMax = equalListM.Max();
|
||||
// }
|
||||
|
||||
// //해당 분 저가
|
||||
// var equalListL = equalMinuteList.Select(t => t.TradePrice).ToList();
|
||||
|
||||
// double equalListMin = 0;
|
||||
// if (equalListL.Count != 0)
|
||||
// {
|
||||
// equalListMin = equalListL.Min();
|
||||
// }
|
||||
// if (item.CandleDataLists_Im.Count != 0)
|
||||
// {
|
||||
// if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue < equalListMax && equalListMax != 0)
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue = equalListMax;
|
||||
// if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue > equalListMin && equalListMin != 0)
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue = equalListMin;
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].RecentlyDataFlag = true;
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].EndValue = equalMinuteList[equalMinuteList.Count - 1].TradePrice;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// var candle = new CandleData();
|
||||
// candle.CandleTimeType = (int)MCandleTimeType.M1;
|
||||
// candle.StartValue = equalMinuteList[0].TradePrice;
|
||||
// candle.HighValue = equalListMax;
|
||||
// candle.LowValue = equalListMin;
|
||||
// candle.RecentlyDataFlag = true;
|
||||
// candle.EndValue = equalMinuteList[equalMinuteList.Count - 1].TradePrice;
|
||||
// var date = basicDateTime.AddMinutes(1);
|
||||
// date = date.AddSeconds(-1 * callS);
|
||||
// candle.DateTime = date;
|
||||
// if (item.CandleDataLists_Im.Count > 300)
|
||||
// item.CandleDataLists_Im.RemoveRange(0, item.CandleDataLists_Im.Count - 300);
|
||||
// item.CandleDataLists_Im.Add(candle);
|
||||
// }
|
||||
// }
|
||||
|
||||
// var list = tickList.Where(t => t.DateTime > basicDateTime && t.DateTime.Minute != basicDateTime.Minute).ToList();
|
||||
|
||||
// if (list.Count > 0)
|
||||
// {
|
||||
// // 데이터 가져올떄 1분 이상 걸릴 시 처리할 데이터
|
||||
// var minList = list.Select(t => t.DateTime.Minute).Distinct().ToList();
|
||||
// minList.Sort();
|
||||
|
||||
// foreach (var min in minList)
|
||||
// {
|
||||
// var equalList = list.Where(t => t.DateTime.Minute == min).OrderBy(t => t.DateTime).ToList();
|
||||
|
||||
// //해당 분 고가
|
||||
// var max = equalList.Select(t => t.TradePrice).ToList().Max();
|
||||
// //해당 분 저가
|
||||
// var low = equalList.Select(t => t.TradePrice).ToList().Min();
|
||||
|
||||
// var candle = new CandleData();
|
||||
// candle.CandleTimeType = (int)MCandleTimeType.M1;
|
||||
// candle.StartValue = equalList[0].TradePrice;
|
||||
// candle.HighValue = max;
|
||||
// candle.LowValue = low;
|
||||
// candle.RecentlyDataFlag = true;
|
||||
// candle.EndValue = equalList[equalList.Count - 1].TradePrice;
|
||||
|
||||
// var intervalMin = min - callM;
|
||||
|
||||
// var date = basicDateTime.AddMinutes(intervalMin);
|
||||
// if(intervalMin < 0) date = date.AddHours(1);
|
||||
|
||||
// date = date.AddSeconds(-1 * callS);
|
||||
// candle.DateTime = date;
|
||||
// if (item.CandleDataLists_Im.Count > 300)
|
||||
// item.CandleDataLists_Im.RemoveRange(0, item.CandleDataLists_Im.Count - 300);
|
||||
// item.CandleDataLists_Im.Add(candle);
|
||||
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else if (type == MCandleTimeType.H1)
|
||||
// {
|
||||
// var equalHourList = tickList.Where(t => t.DateTime.Hour == callH).ToList();
|
||||
// if (equalHourList.Count != 0)
|
||||
// {
|
||||
// var equalListM = equalHourList.Select(t => t.TradePrice).ToList();
|
||||
// double equalListMax = 0;
|
||||
// if (equalListM.Count != 0)
|
||||
// {
|
||||
// equalListMax = equalListM.Max();
|
||||
// }
|
||||
|
||||
// //해당 분 저가
|
||||
// var equalListL = equalHourList.Select(t => t.TradePrice).ToList();
|
||||
// double equalListMin = 0;
|
||||
// if (equalListL.Count != 0)
|
||||
// {
|
||||
// equalListMin = equalListL.Min();
|
||||
// }
|
||||
// if (item.CandleDataLists_Im.Count > 0)
|
||||
// {
|
||||
// if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue < equalListMax && equalListMax != 0)
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].HighValue = equalListMax;
|
||||
// if (item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue > equalListMin && equalListMin != 0)
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].LowValue = equalListMin;
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].RecentlyDataFlag = true;
|
||||
// item.CandleDataLists_Im[item.CandleDataLists_Im.Count - 1].EndValue = equalHourList[equalHourList.Count - 1].TradePrice;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// var candle = new CandleData();
|
||||
// candle.CandleTimeType = (int)MCandleTimeType.H1;
|
||||
// candle.StartValue = equalHourList[0].TradePrice;
|
||||
// candle.HighValue = equalListMax;
|
||||
// candle.LowValue = equalListMin;
|
||||
// candle.RecentlyDataFlag = true;
|
||||
// candle.EndValue = equalHourList[equalHourList.Count - 1].TradePrice;
|
||||
|
||||
// var date = basicDateTime.AddHours(1);
|
||||
// date = date.AddMinutes(-1 * callM);
|
||||
// date = date.AddSeconds(-1 * callS);
|
||||
// candle.DateTime = date;
|
||||
// if (item.CandleDataLists_Im.Count > 300)
|
||||
// item.CandleDataLists_Im.RemoveRange(0, 100);
|
||||
// item.CandleDataLists_Im.Add(candle);
|
||||
// }
|
||||
// }
|
||||
|
||||
// var list = tickList.Where(t => t.DateTime > basicDateTime && t.DateTime.Hour != basicDateTime.Hour).ToList();
|
||||
// if (list.Count > 0)
|
||||
// {
|
||||
// //해당 분 고가
|
||||
// var max = list.Select(t => t.TradePrice).ToList().Max();
|
||||
// //해당 분 저가
|
||||
// var low = list.Select(t => t.TradePrice).ToList().Min();
|
||||
|
||||
// var candle = new CandleData();
|
||||
// candle.CandleTimeType = (int)MCandleTimeType.H1;
|
||||
// candle.StartValue = list[0].TradePrice;
|
||||
// candle.HighValue = max;
|
||||
// candle.LowValue = low;
|
||||
// candle.RecentlyDataFlag = true;
|
||||
// candle.EndValue = list[list.Count - 1].TradePrice;
|
||||
|
||||
// var date = basicDateTime.AddHours(1);
|
||||
// date = date.AddMinutes(-1 * callM);
|
||||
// date = date.AddSeconds(-1 * callS);
|
||||
|
||||
// candle.DateTime = date;
|
||||
// if (item.CandleDataLists_Im.Count > 300)
|
||||
// item.CandleDataLists_Im.RemoveRange(0, 100);
|
||||
// item.CandleDataLists_Im.Add(candle);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//catch (Exception e)
|
||||
//{
|
||||
// throw;
|
||||
//}
|
||||
#endregion
|
||||
}
|
||||
//});
|
||||
}
|
||||
@@ -457,3 +488,4 @@ namespace Million.Manager
|
||||
}
|
||||
}
|
||||
}
|
||||
;
|
||||
Reference in New Issue
Block a user