에러 수정 및 로그 시스템 도입

This commit is contained in:
kyh
2022-10-27 13:14:42 +09:00
parent 535927cb3c
commit 2881a7f2a9
6 changed files with 144 additions and 44 deletions

View File

@@ -36,6 +36,8 @@ namespace Million_Buyer
bool SetIndicator = false;
bool ThreadFlag = false;
bool AliveCheckor = false;
private Thread thread = null;
private Thread orderThread = null;
private List<Account> accounts = null;
@@ -188,8 +190,8 @@ namespace Million_Buyer
private void bt_Stop_Click(object sender, EventArgs e)
{
ThreadFlag = false;
if (!RealTimeMode && thread != null) thread.Abort();
if (!RealTimeMode && orderThread != null) orderThread.Abort();
//if (!RealTimeMode && thread != null) thread.Abort();
//if (!RealTimeMode && orderThread != null) orderThread.Abort();
bt_Start.Enabled = true;
rd_buyer.Enabled = true;
@@ -284,9 +286,9 @@ namespace Million_Buyer
var buyRex = _saveResultData.BuyRegularExpression;
var sellRex = _saveResultData.SellRegularExpression;
var buyScript = new InteratorScripter();
var buyScript = new InteratorScripter("Buy Script");
buyScript.regularExpressionString = buyRex;
var sellScript = new InteratorScripter();
var sellScript = new InteratorScripter("Sell Script");
sellScript.regularExpressionString = sellRex;
var scriptDic = new Dictionary<string, bool>();
@@ -294,11 +296,7 @@ namespace Million_Buyer
//TODO 모든 조건 데이터 미리 계산 필요
//save 데이터
_saveResultData.StartDateTime = DateTime.Now;
//구매 데이터
var saveFlag = true;
_saveResultData.StartDateTime = DateTime.Now;
//구매 후 데이터 여러개 계속 겹치는 경우 제외하기 위한 List
var overlapBuyManagementList = new Dictionary<string, bool>();
@@ -327,6 +325,13 @@ namespace Million_Buyer
{
try
{
if (AliveCheckor)
{
AliveCheckor = false;
InsertLog("Alive");
}
#region 기본 데이터 Setting
if (firstFlag == 0)
{
@@ -352,15 +357,23 @@ namespace Million_Buyer
dic[codeFullname] = true;
}
CommonProperty.subIndicatorStateManagement[item.IndexString] = dic;
}
#region TODO 이미 구매되어 있는 종목에 대한 기본 데이터 Setting 필요
if (RealTimeMode)
{
}
else
{
// TODO 이미 구매되어 있는 종목에 대한 기본 데이터 Setting 필요
}
#endregion
firstFlag = 1;
InsertLog("Deafult Data Setting 완료..");
sw.Stop();
InsertLog("Default 계산 시간 : " + sw.Elapsed.ToString());
LogManager.WriteLog("Default 계산 시간 : " + sw.Elapsed.ToString());
}
else
{
@@ -373,14 +386,7 @@ namespace Million_Buyer
InsertLog("Ticker 계산 시간 : " + sw.Elapsed.ToString());
}
}
#endregion
//Ticker 초기화
if (DateTime.Now.Minute == 0 && saveFlag)
{
saveFlag = false;
}
else if (DateTime.Now.Minute > 1) saveFlag = true;
#endregion
foreach (var item in realTimeMsg.coinFullNameList)
{
@@ -468,6 +474,10 @@ namespace Million_Buyer
}
buyList.Add(buyData);
string str = "Buy : " + item + ",\r\n Buy Candle Data : " + JsonConvert.SerializeObject(recentlyData) + "\r\n";
LogManager.WriteLog(str, item);
overlapBuyManagementList[item] = false;
InsertLog(buyData.ConGoodsData.CoinFullName + " Market Data 구입 DateTime : " + time.ToString("yyyy-MM-dd HH:mm:ss"));
//grid 처리 구매항목, 구매 가격, 구매 개수, 구매시점
@@ -531,10 +541,9 @@ namespace Million_Buyer
result.WinCount = rate > 0 ? 1 : 0;
result.LoseCount = rate < 0 ? 1 : 0;
result.FirstWinFlag = rate > 0 ? true : false;
result.BuyCount = buyItem.CandleDataLists_Im[0].BuyCount;
result.SellCount = buyItem.CandleDataLists_Im[0].BuyCount;
result.SellCount = sellItem.BuyCount;
// buycount 에서 sell count를 제외한 양이 미체결 량
if (!RealTimeMode)
@@ -545,6 +554,10 @@ namespace Million_Buyer
}
resultDataList.Add(result);
string str = "Sell : " + item + ",\r\n Sell Candle Data : " + JsonConvert.SerializeObject(recentlyData) + "\r\n";
LogManager.WriteLog(str, item);
//처리한 buyList는 삭제
buyList.Remove(buyItem);
InsertLog(buyItem.ConGoodsData.CoinFullName + " Market Data 판매 DateTime : " + time.ToString("yyyy-MM-dd HH:mm:ss"));
@@ -743,6 +756,8 @@ namespace Million_Buyer
InsertLog("Order List Thread Alive.");
else
InsertLog("Order List Thread Death.");
AliveCheckor = true;
}
/// <summary>