@@ -39,13 +39,16 @@ namespace DataSaver
|
||||
comboBoxEdit_PaymentType.Properties.Items.AddRange(Enum.GetNames(enumType: typeof(Million.CommonProperty.PaymentType)));
|
||||
comboBoxEdit_PaymentType.SelectedIndex = 0;
|
||||
|
||||
DBConnection.ConnectDatabase(comboBoxEdit_ExchangePlace.EditValue.ToString());
|
||||
// DB 서버 정보 생성
|
||||
var strConn = Million.CommonProperty.DbConnectionStr + comboBoxEdit_ExchangePlace.EditValue;
|
||||
Million.CommonProperty.ConDbConnectionStr = strConn;
|
||||
|
||||
// Market Table없으면 생성해주기
|
||||
foreach (var placeName in exchangePlaceNames)
|
||||
{
|
||||
var createTableSql = Million.DbManagement.DbServiceFunctions.CreateMarketTableQuery(placeName);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.CandleConn, createTableSql);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter
|
||||
(CommonProperty.DbConnectionMarket, createTableSql);
|
||||
}
|
||||
|
||||
/////TODO 임시로 Upbit 우선순위 설정
|
||||
@@ -64,10 +67,6 @@ namespace DataSaver
|
||||
/// <param name="e"></param>
|
||||
private void comboBoxEdit_ExchangePlace_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
//종목이 변경 될 수 있으므로 재 Connection 처리
|
||||
var marketStr = comboBoxEdit_ExchangePlace.SelectedItem.ToString();
|
||||
DBConnection.ConnectDatabase(marketStr);
|
||||
|
||||
// DB 종목(Market) 정보 가져오기
|
||||
Million.DbManagement.DbServiceFunctions.GetMarketTable_FromDB(comboBoxEdit_ExchangePlace.SelectedItem.ToString());
|
||||
updateMarketTableOfPlace();
|
||||
@@ -89,7 +88,7 @@ namespace DataSaver
|
||||
private void button_AllMarketDataAcc_Click(object sender, EventArgs e)
|
||||
{
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
SetCandleData(dbMarketDataList);
|
||||
SetCandleData(comboBoxEdit_ExchangePlace.SelectedItem.ToString(), dbMarketDataList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -109,7 +108,7 @@ namespace DataSaver
|
||||
var marketList = new List<MarketData>();
|
||||
marketList.Add(CommonProperty.selectedMarketOfPlaceList.FirstOrDefault(t => t.CodeFullName == market));
|
||||
|
||||
SetCandleData(marketList);
|
||||
SetCandleData(comboBoxEdit_ExchangePlace.SelectedItem.ToString(), marketList);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -117,11 +116,18 @@ namespace DataSaver
|
||||
}
|
||||
}
|
||||
|
||||
private void SetCandleData(List<MarketData> marketList)
|
||||
private void SetCandleData(string placeName, List<MarketData> marketList)
|
||||
{
|
||||
//Table생성
|
||||
CreateTableOfMarket();
|
||||
|
||||
CreateTableOfMarket(placeName);
|
||||
|
||||
//거래소 가져오기
|
||||
|
||||
var type = CommonProperty.ExchangeWebReqType.UpbitCandleStick;
|
||||
|
||||
if (placeName.Equals("Bithumb"))
|
||||
type = CommonProperty.ExchangeWebReqType.BithumbCandleTicker;
|
||||
|
||||
var list = new List<int>();
|
||||
foreach (var item in checkedListBox1.CheckedItems)
|
||||
{
|
||||
@@ -132,7 +138,7 @@ namespace DataSaver
|
||||
foreach (var item in list)
|
||||
{
|
||||
var recentlyDbDataList = Million.DbManagement.DbServiceFunctions.GetOldNewDataList_FromDB
|
||||
(marketList, (CommonProperty.MCandleTimeType)item);
|
||||
(marketList, placeName, (CommonProperty.MCandleTimeType)item);
|
||||
|
||||
//Million.DbManagement.DbServiceFunctions.SetCandleData(placeName, type, recentlyDbDataList, (CommonProperty.MCandleTimeType)item);
|
||||
}
|
||||
@@ -142,7 +148,7 @@ namespace DataSaver
|
||||
/// <summary>
|
||||
/// Market 별 Table 생성
|
||||
/// </summary>
|
||||
private void CreateTableOfMarket()
|
||||
private void CreateTableOfMarket(string placeName)
|
||||
{
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
|
||||
@@ -155,7 +161,7 @@ namespace DataSaver
|
||||
sqlQuery += Million.DbManagement.DbServiceFunctions.CreateMarketTable_ToDB(item);
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(sqlQuery))
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.CandleConn, sqlQuery);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
|
||||
}
|
||||
|
||||
@@ -213,7 +219,7 @@ namespace DataSaver
|
||||
data.CodeFullName);
|
||||
}
|
||||
if(!string.IsNullOrWhiteSpace(sqlQuery))
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.MarketConn, sqlQuery);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionMarket, sqlQuery);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
6
Million Prototype/Form1.Designer.cs
generated
6
Million Prototype/Form1.Designer.cs
generated
@@ -77,11 +77,11 @@
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.Location = new System.Drawing.Point(12, 156);
|
||||
this.button3.Location = new System.Drawing.Point(47, 203);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(148, 23);
|
||||
this.button3.Size = new System.Drawing.Size(75, 23);
|
||||
this.button3.TabIndex = 4;
|
||||
this.button3.Text = "실시간 데이터 구성하기";
|
||||
this.button3.Text = "button3";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
|
||||
@@ -29,7 +29,6 @@ namespace Million_Prototype
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
DBConnection.ConnectDatabase();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -134,7 +133,6 @@ namespace Million_Prototype
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
DataSettingManager dsm = new DataSettingManager(null, PaymentType.KRW);
|
||||
bool firstFlag = true;
|
||||
for(; ; )
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -159,13 +158,12 @@ namespace Million
|
||||
private const string DbServerUserPassword = "million!";
|
||||
public static string DbConnectionStr = $"Data Source={DbServerIp};uid={DbServerUserId};pwd={DbServerUserPassword};Database=";
|
||||
public static string DbConnectionMarket = DbConnectionStr + "Market";
|
||||
public static SqlConnection MarketConn = null;
|
||||
public static SqlConnection CandleConn = null;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region DataSaver 사용되는 공용 변수
|
||||
//현재 시점에서 사용되고 있는 DB Connection String
|
||||
public static string ConDbConnectionStr = DbConnectionStr;
|
||||
|
||||
// 현재 시점에서 사용되고 있는 Place의 Market List 정보
|
||||
public static List<MarketData> selectedMarketOfPlaceList = null;
|
||||
|
||||
@@ -14,206 +14,202 @@ namespace Million.DbManagement
|
||||
/// </summary>
|
||||
public class DBConnection
|
||||
{
|
||||
public static void ConnectDatabase(string excahngePlace = "Upbit")
|
||||
public static string GetConnectionString(string databaseName)
|
||||
{
|
||||
//candle data, market data
|
||||
var marketConStr = $"{CommonProperty.DbConnectionStr}Market";
|
||||
var candleConStr = CommonProperty.DbConnectionStr + excahngePlace;
|
||||
if (CommonProperty.MarketConn == null)
|
||||
{
|
||||
CommonProperty.MarketConn = new System.Data.SqlClient.SqlConnection(marketConStr);
|
||||
CommonProperty.MarketConn.Open();
|
||||
}
|
||||
|
||||
if (CommonProperty.CandleConn == null)
|
||||
{
|
||||
CommonProperty.CandleConn = new System.Data.SqlClient.SqlConnection(candleConStr);
|
||||
CommonProperty.CandleConn.Open();
|
||||
}
|
||||
else
|
||||
{
|
||||
CommonProperty.CandleConn.Close();
|
||||
CommonProperty.CandleConn = new System.Data.SqlClient.SqlConnection(candleConStr);
|
||||
CommonProperty.CandleConn.Open();
|
||||
}
|
||||
return CommonProperty.DbConnectionStr + databaseName;
|
||||
}
|
||||
|
||||
public static List<MarketData> QueryGetExcuter_Market(SqlConnection conn, string sqlQuery)
|
||||
public static List<MarketData> QueryGetExcuter_Market(string strDBCon, string sqlQuery)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(sqlQuery))
|
||||
return null;
|
||||
|
||||
List<MarketData> marketDatas = new List<MarketData>();
|
||||
|
||||
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
|
||||
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
try
|
||||
{
|
||||
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
using (conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
while (rdr.Read())
|
||||
{
|
||||
var marKetData = new MarketData();
|
||||
marKetData.CodeName = rdr["CodeName"].ToString();
|
||||
marKetData.CodeFullName = rdr["CodeFullName"].ToString();
|
||||
marKetData.ExchangePlace = rdr["ExchangePlace"].ToString();
|
||||
marKetData.Payment = rdr["Payment"].ToString();
|
||||
marKetData.KorName = rdr["KorName"].ToString();
|
||||
marKetData.IsValid = bool.Parse(rdr["IsValid"].ToString());
|
||||
marketDatas.Add(marKetData);
|
||||
}
|
||||
rdr.Close();
|
||||
cmd.Dispose();
|
||||
}
|
||||
catch (Exception ex)
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
marketDatas = null;
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (cmd != null)
|
||||
cmd.Dispose();
|
||||
}
|
||||
conn.Open();
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
|
||||
while (rdr.Read())
|
||||
{
|
||||
var marKetData = new MarketData();
|
||||
marKetData.CodeName = rdr["CodeName"].ToString();
|
||||
marKetData.CodeFullName = rdr["CodeFullName"].ToString();
|
||||
marKetData.ExchangePlace = rdr["ExchangePlace"].ToString();
|
||||
marKetData.Payment = rdr["Payment"].ToString();
|
||||
marKetData.KorName = rdr["KorName"].ToString();
|
||||
marKetData.IsValid = bool.Parse(rdr["IsValid"].ToString());
|
||||
marketDatas.Add(marKetData);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
marketDatas = null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (conn != null)
|
||||
conn.Close();
|
||||
}
|
||||
|
||||
|
||||
return marketDatas;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get Candle Data List
|
||||
/// </summary>
|
||||
/// <param name="strDBCon"></param>
|
||||
/// <param name="sqlQuery"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleData> QueryGetExcuter_Candle(SqlConnection conn, string sqlQuery)
|
||||
public static List<CandleData> QueryGetExcuter_Candle(string strDBCon, string sqlQuery)
|
||||
{
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(sqlQuery))
|
||||
return returnData;
|
||||
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
using (var conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
try
|
||||
{
|
||||
while (rdr.Read())
|
||||
conn.Open();
|
||||
//using (SqlDataAdapter sda = new SqlDataAdapter())
|
||||
//{
|
||||
// cmd.Connection = conn;
|
||||
// sda.SelectCommand = cmd;
|
||||
// using (DataSet ds = new DataSet())
|
||||
// {
|
||||
// sda.Fill(ds);
|
||||
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
{
|
||||
var dateTime = rdr["DateTime"]?.ToString();
|
||||
double.TryParse(rdr["StartValue"]?.ToString(), out var startValue);
|
||||
double.TryParse(rdr["EndValue"]?.ToString(), out var endValue);
|
||||
double.TryParse(rdr["HighValue"]?.ToString(), out var highValue);
|
||||
double.TryParse(rdr["LowValue"]?.ToString(), out var lowValue);
|
||||
double.TryParse(rdr["MoneyVolume"]?.ToString(), out var moneyVolume);
|
||||
int.TryParse(rdr["CandleTimeType"]?.ToString(), out var candleTimeType);
|
||||
while (rdr.Read())
|
||||
{
|
||||
var dateTime = rdr["DateTime"]?.ToString();
|
||||
double.TryParse(rdr["StartValue"]?.ToString(), out var startValue);
|
||||
double.TryParse(rdr["EndValue"]?.ToString(), out var endValue);
|
||||
double.TryParse(rdr["HighValue"]?.ToString(), out var highValue);
|
||||
double.TryParse(rdr["LowValue"]?.ToString(), out var lowValue);
|
||||
double.TryParse(rdr["MoneyVolume"]?.ToString(), out var moneyVolume);
|
||||
int.TryParse(rdr["CandleTimeType"]?.ToString(), out var candleTimeType);
|
||||
|
||||
var data = new CandleData();
|
||||
data.DateTime = Convert.ToDateTime(dateTime);
|
||||
data.StartValue = startValue;
|
||||
data.EndValue = endValue;
|
||||
data.HighValue = highValue;
|
||||
data.LowValue = lowValue;
|
||||
data.MoneyVolume = moneyVolume;
|
||||
data.CandleTimeType = candleTimeType;
|
||||
var data = new CandleData();
|
||||
data.DateTime = Convert.ToDateTime(dateTime);
|
||||
data.StartValue = startValue;
|
||||
data.EndValue = endValue;
|
||||
data.HighValue = highValue;
|
||||
data.LowValue = lowValue;
|
||||
data.MoneyVolume = moneyVolume;
|
||||
data.CandleTimeType = candleTimeType;
|
||||
|
||||
returnData.Add(data);
|
||||
returnData.Add(data);
|
||||
}
|
||||
}
|
||||
rdr.Close();
|
||||
cmd.Dispose();
|
||||
conn.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (cmd != null)
|
||||
cmd.Dispose();
|
||||
conn.Close();
|
||||
return returnData;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// Get Candle Data List
|
||||
///// </summary>
|
||||
///// <param name="strDBCon"></param>
|
||||
///// <param name="sqlQuery"></param>
|
||||
///// <returns></returns>
|
||||
//public static List<CandleData> QueryGetExcuterTest_Candle(SqlConnection conn, string sqlQuery)
|
||||
//{
|
||||
// var returnData = new List<CandleData>();
|
||||
/// <summary>
|
||||
/// Get Candle Data List
|
||||
/// </summary>
|
||||
/// <param name="strDBCon"></param>
|
||||
/// <param name="sqlQuery"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleData> QueryGetExcuterTest_Candle(string strDBCon, string sqlQuery)
|
||||
{
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
// if (string.IsNullOrWhiteSpace(sqlQuery))
|
||||
// return returnData;
|
||||
if (string.IsNullOrWhiteSpace(sqlQuery))
|
||||
return returnData;
|
||||
|
||||
using (var conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
using (SqlDataAdapter sda = new SqlDataAdapter())
|
||||
{
|
||||
cmd.Connection = conn;
|
||||
sda.SelectCommand = cmd;
|
||||
using (DataSet ds = new DataSet())
|
||||
{
|
||||
sda.Fill(ds);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
// {
|
||||
// using (SqlDataAdapter sda = new SqlDataAdapter())
|
||||
// {
|
||||
// cmd.Connection = conn;
|
||||
// sda.SelectCommand = cmd;
|
||||
// using (DataSet ds = new DataSet())
|
||||
// {
|
||||
// sda.Fill(ds);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// return returnData;
|
||||
//}
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create Market Table
|
||||
/// </summary>
|
||||
/// <param name="strDBCon">conn</param>
|
||||
/// <param name="sqlQuery">create table sql</param>
|
||||
public static void QueryUpdateExcuter(SqlConnection conn, string sqlQuery)
|
||||
public static void QueryUpdateExcuter(string strDBCon, string sqlQuery)
|
||||
{
|
||||
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
|
||||
try
|
||||
{
|
||||
try
|
||||
{
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
}
|
||||
rdr.Close();
|
||||
cmd.Dispose();
|
||||
}
|
||||
catch (Exception e)
|
||||
using (conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(e.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (cmd != null)
|
||||
cmd.Dispose();
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
conn.Open();
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(e.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (conn != null)
|
||||
conn.Close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,12 +9,8 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Million.DbManagement
|
||||
{
|
||||
/// <summary>
|
||||
/// DB 데이터 가져오는 Service Functions Class
|
||||
/// </summary>
|
||||
public static class DbServiceFunctions
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// DB Market 테이블 생성
|
||||
/// </summary>
|
||||
@@ -80,7 +76,9 @@ namespace Million.DbManagement
|
||||
/// <param name="tableName"></param>
|
||||
/// <returns></returns>
|
||||
public static List<MarketData> GetMarketDatas(string tableName, string payment = null)
|
||||
{
|
||||
{
|
||||
var strDbCon = $"{CommonProperty.DbConnectionStr}Market";
|
||||
|
||||
var subSql = "";
|
||||
if(payment != null)
|
||||
{
|
||||
@@ -90,7 +88,7 @@ namespace Million.DbManagement
|
||||
// Query문 만들기
|
||||
var sqlQuery = string.Format("select * from dbo.{0} where IsValid = 1 {1};", tableName, subSql);
|
||||
|
||||
return DBConnection.QueryGetExcuter_Market(CommonProperty.MarketConn, sqlQuery);
|
||||
return DBConnection.QueryGetExcuter_Market(strDbCon, sqlQuery);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -107,7 +105,8 @@ namespace Million.DbManagement
|
||||
{
|
||||
return returnData;
|
||||
}
|
||||
|
||||
var strDbCon = CommonProperty.DbConnectionStr + marketData.ExchangePlace;
|
||||
|
||||
if (candleTimeType == MCandleTimeType.M1 || candleTimeType == MCandleTimeType.M3 || candleTimeType == MCandleTimeType.M5 ||
|
||||
candleTimeType == MCandleTimeType.M10 | candleTimeType == MCandleTimeType.M15|| candleTimeType == MCandleTimeType.M30)
|
||||
startDate = startDate.AddMinutes(-72 * (int)candleTimeType);
|
||||
@@ -127,7 +126,7 @@ namespace Million.DbManagement
|
||||
|
||||
var sqlQuery = string.Format(@"SELECT [DateTime],[StartValue],[EndValue],[HighValue],[LowValue],[MoneyVolume],[CandleTimeType] FROM [{0}] WHERE [DateTime] >= '{1}' AND [DateTime] <= '{2}' AND [CandleTimeType] = {3} ORDER BY [DateTime] ASC", marketData.CodeFullName, startDate.ToString("yyyy-MM-dd HH:mm:ss"), endDate.ToString("yyyy-MM-dd HH:mm:ss"), candleTimeType);
|
||||
|
||||
var dataList = DBConnection.QueryGetExcuter_Candle(CommonProperty.CandleConn, sqlQuery);
|
||||
var dataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (dataList == null) return returnData;
|
||||
|
||||
@@ -150,7 +149,8 @@ namespace Million.DbManagement
|
||||
if (marketData == null)
|
||||
{
|
||||
return returnData;
|
||||
}
|
||||
}
|
||||
var strDbCon = CommonProperty.DbConnectionStr + marketData.ExchangePlace;
|
||||
|
||||
if (candleTimeType == MCandleTimeType.M1 || candleTimeType == MCandleTimeType.M3 || candleTimeType == MCandleTimeType.M5 ||
|
||||
candleTimeType == MCandleTimeType.M10 | candleTimeType == MCandleTimeType.M15 || candleTimeType == MCandleTimeType.M30)
|
||||
@@ -171,7 +171,7 @@ namespace Million.DbManagement
|
||||
|
||||
var sqlQuery = string.Format(@"SELECT TOP({0}) [DateTime],[StartValue],[EndValue],[HighValue],[LowValue],[MoneyVolume],[CandleTimeType] FROM [{1}] WHERE [DateTime] >= '{2}' AND [CandleTimeType] = {3} ORDER BY [DateTime] ASC", count, marketData.CodeFullName, startDate.ToString("yyyy-MM-dd HH:mm:ss"), ((int)candleTimeType).ToString());
|
||||
|
||||
var dataList = DBConnection.QueryGetExcuter_Candle(CommonProperty.CandleConn, sqlQuery);
|
||||
var dataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (dataList == null) return returnData;
|
||||
|
||||
@@ -187,10 +187,11 @@ namespace Million.DbManagement
|
||||
/// <param name="marketNameList"></param>
|
||||
/// <param name="databaseName"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleDataList> GetOldNewDataList_FromDB(List<MarketData> marketNameList, MCandleTimeType candleTimeType = MCandleTimeType.M1)
|
||||
public static List<CandleDataList> GetOldNewDataList_FromDB(List<MarketData> marketNameList, string databaseName, MCandleTimeType candleTimeType = MCandleTimeType.M1)
|
||||
|
||||
{
|
||||
var returnData = new List<CandleDataList>();
|
||||
var returnData = new List<CandleDataList>();
|
||||
var strDbCon = CommonProperty.DbConnectionStr + databaseName;
|
||||
|
||||
//최신 데이터
|
||||
foreach (var item in marketNameList)
|
||||
@@ -199,7 +200,7 @@ namespace Million.DbManagement
|
||||
data.ConGoodsData = item;
|
||||
|
||||
var sqlQuery = string.Format(@"SELECT TOP(1) [DateTime],[StartValue],[EndValue],[HighValue],[LowValue],[MoneyVolume],[CandleTimeType] FROM [{0}] WHERE [CandleTimeType] = {1} ORDER BY [DateTime] DESC", item.CodeFullName, ((int) candleTimeType).ToString());
|
||||
var recentlyDataList = DBConnection.QueryGetExcuter_Candle(CommonProperty.CandleConn, sqlQuery);
|
||||
var recentlyDataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (recentlyDataList.Count > 0)
|
||||
{
|
||||
@@ -222,7 +223,7 @@ namespace Million.DbManagement
|
||||
// 1개라도 있을 경우
|
||||
var sqlQuery = string.Format("SELECT TOP(1) [DateTime],[StartValue],[EndValue],[HighValue],[LowValue],[MoneyVolume],[CandleTimeType] FROM [{0}] WHERE [CandleTimeType] = {1} ORDER BY [DateTime] ASC", item.ConGoodsData.CodeFullName, ((int)candleTimeType).ToString());
|
||||
|
||||
var recentlyDataList = DBConnection.QueryGetExcuter_Candle(CommonProperty.CandleConn, sqlQuery);
|
||||
var recentlyDataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
if (recentlyDataList.Count > 0)
|
||||
{
|
||||
recentlyDataList[0].CandleType = CandleType.Old;
|
||||
@@ -241,7 +242,7 @@ namespace Million.DbManagement
|
||||
{
|
||||
var marketList = (List<MarketData>)marketObj;
|
||||
var recentlyDbDataList = GetOldNewDataList_FromDB
|
||||
(marketList, MCandleTimeType.M1);
|
||||
(marketList, "Upbit", (MCandleTimeType.M1));
|
||||
|
||||
//기존의 누락된 데이터 쌓기
|
||||
while (CommonProperty.RealTimeFlag)
|
||||
@@ -255,12 +256,12 @@ namespace Million.DbManagement
|
||||
{
|
||||
var temp = 60 - date.Second;
|
||||
Thread.Sleep(temp * 1000);
|
||||
recentlyDbDataList = GetOldNewDataList_FromDB(marketList, MCandleTimeType.M1);
|
||||
recentlyDbDataList = GetOldNewDataList_FromDB(marketList, "Upbit", (MCandleTimeType.M1));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
recentlyDbDataList = GetOldNewDataList_FromDB(marketList, MCandleTimeType.M1);
|
||||
recentlyDbDataList = GetOldNewDataList_FromDB(marketList, "Upbit", (MCandleTimeType.M1));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -369,7 +370,7 @@ namespace Million.DbManagement
|
||||
break;
|
||||
//초당 8회 이상안됨 (0.125초)
|
||||
if (!string.IsNullOrWhiteSpace(insertQuery))
|
||||
DBConnection.QueryUpdateExcuter(CommonProperty.CandleConn, insertQuery);
|
||||
DBConnection.QueryUpdateExcuter(DbConnectionStr + placeName, insertQuery);
|
||||
Thread.Sleep(60);
|
||||
insertQuery = "";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user