- BinaryRage DB 로그 추가
This commit is contained in:
64
MainForm.Designer.cs
generated
64
MainForm.Designer.cs
generated
@@ -51,18 +51,18 @@
|
|||||||
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer2 = new System.Windows.Forms.SplitContainer();
|
||||||
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
this.splitContainer3 = new System.Windows.Forms.SplitContainer();
|
||||||
this.btMATest = new System.Windows.Forms.Button();
|
this.btMATest = new System.Windows.Forms.Button();
|
||||||
this.button1 = new System.Windows.Forms.Button();
|
|
||||||
this.btTimeSync = new System.Windows.Forms.Button();
|
this.btTimeSync = new System.Windows.Forms.Button();
|
||||||
this.cbStart = new System.Windows.Forms.CheckBox();
|
this.cbStart = new System.Windows.Forms.CheckBox();
|
||||||
this.btCybosPlus = new System.Windows.Forms.Button();
|
this.btCybosPlus = new System.Windows.Forms.Button();
|
||||||
this.btCybos5 = new System.Windows.Forms.Button();
|
this.btCybos5 = new System.Windows.Forms.Button();
|
||||||
this.lbSBCnt = new System.Windows.Forms.Label();
|
this.lbSBCnt = new System.Windows.Forms.Label();
|
||||||
this.lbRQCnt = new System.Windows.Forms.Label();
|
this.lbRQCnt = new System.Windows.Forms.Label();
|
||||||
|
this.lbEvalProfit = new System.Windows.Forms.Label();
|
||||||
|
this.lbCacheBalance = new System.Windows.Forms.Label();
|
||||||
this.statusBar1 = new System.Windows.Forms.StatusBar();
|
this.statusBar1 = new System.Windows.Forms.StatusBar();
|
||||||
this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
|
this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
|
||||||
this.statusBarPanel2 = new System.Windows.Forms.StatusBarPanel();
|
this.statusBarPanel2 = new System.Windows.Forms.StatusBarPanel();
|
||||||
this.lbCacheBalance = new System.Windows.Forms.Label();
|
this.btLogDump = new System.Windows.Forms.Button();
|
||||||
this.lbEvalProfit = new System.Windows.Forms.Label();
|
|
||||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||||
this.splitContainer1.Panel1.SuspendLayout();
|
this.splitContainer1.Panel1.SuspendLayout();
|
||||||
this.splitContainer1.Panel2.SuspendLayout();
|
this.splitContainer1.Panel2.SuspendLayout();
|
||||||
@@ -288,8 +288,8 @@
|
|||||||
//
|
//
|
||||||
// splitContainer2.Panel2
|
// splitContainer2.Panel2
|
||||||
//
|
//
|
||||||
|
this.splitContainer2.Panel2.Controls.Add(this.btLogDump);
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.btMATest);
|
this.splitContainer2.Panel2.Controls.Add(this.btMATest);
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.button1);
|
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.btTimeSync);
|
this.splitContainer2.Panel2.Controls.Add(this.btTimeSync);
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.cbStart);
|
this.splitContainer2.Panel2.Controls.Add(this.cbStart);
|
||||||
this.splitContainer2.Panel2.Controls.Add(this.btCybosPlus);
|
this.splitContainer2.Panel2.Controls.Add(this.btCybosPlus);
|
||||||
@@ -332,7 +332,7 @@
|
|||||||
//
|
//
|
||||||
// btMATest
|
// btMATest
|
||||||
//
|
//
|
||||||
this.btMATest.Location = new System.Drawing.Point(138, 430);
|
this.btMATest.Location = new System.Drawing.Point(122, 421);
|
||||||
this.btMATest.Name = "btMATest";
|
this.btMATest.Name = "btMATest";
|
||||||
this.btMATest.Size = new System.Drawing.Size(75, 23);
|
this.btMATest.Size = new System.Drawing.Size(75, 23);
|
||||||
this.btMATest.TabIndex = 24;
|
this.btMATest.TabIndex = 24;
|
||||||
@@ -340,16 +340,6 @@
|
|||||||
this.btMATest.UseVisualStyleBackColor = true;
|
this.btMATest.UseVisualStyleBackColor = true;
|
||||||
this.btMATest.Click += new System.EventHandler(this.btMATest_Click);
|
this.btMATest.Click += new System.EventHandler(this.btMATest_Click);
|
||||||
//
|
//
|
||||||
// button1
|
|
||||||
//
|
|
||||||
this.button1.Location = new System.Drawing.Point(142, 371);
|
|
||||||
this.button1.Name = "button1";
|
|
||||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
|
||||||
this.button1.TabIndex = 23;
|
|
||||||
this.button1.Text = "button1";
|
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
|
||||||
this.button1.Click += new System.EventHandler(this.button1_Click);
|
|
||||||
//
|
|
||||||
// btTimeSync
|
// btTimeSync
|
||||||
//
|
//
|
||||||
this.btTimeSync.Location = new System.Drawing.Point(16, 341);
|
this.btTimeSync.Location = new System.Drawing.Point(16, 341);
|
||||||
@@ -411,6 +401,24 @@
|
|||||||
this.lbRQCnt.TabIndex = 18;
|
this.lbRQCnt.TabIndex = 18;
|
||||||
this.lbRQCnt.Text = "RQ Count : ";
|
this.lbRQCnt.Text = "RQ Count : ";
|
||||||
//
|
//
|
||||||
|
// lbEvalProfit
|
||||||
|
//
|
||||||
|
this.lbEvalProfit.AutoSize = true;
|
||||||
|
this.lbEvalProfit.Location = new System.Drawing.Point(38, 244);
|
||||||
|
this.lbEvalProfit.Name = "lbEvalProfit";
|
||||||
|
this.lbEvalProfit.Size = new System.Drawing.Size(53, 12);
|
||||||
|
this.lbEvalProfit.TabIndex = 13;
|
||||||
|
this.lbEvalProfit.Text = "평가손익";
|
||||||
|
//
|
||||||
|
// lbCacheBalance
|
||||||
|
//
|
||||||
|
this.lbCacheBalance.AutoSize = true;
|
||||||
|
this.lbCacheBalance.Location = new System.Drawing.Point(38, 222);
|
||||||
|
this.lbCacheBalance.Name = "lbCacheBalance";
|
||||||
|
this.lbCacheBalance.Size = new System.Drawing.Size(29, 12);
|
||||||
|
this.lbCacheBalance.TabIndex = 13;
|
||||||
|
this.lbCacheBalance.Text = "잔고";
|
||||||
|
//
|
||||||
// statusBar1
|
// statusBar1
|
||||||
//
|
//
|
||||||
this.statusBar1.Location = new System.Drawing.Point(0, 720);
|
this.statusBar1.Location = new System.Drawing.Point(0, 720);
|
||||||
@@ -435,23 +443,15 @@
|
|||||||
this.statusBarPanel2.Name = "statusBarPanel2";
|
this.statusBarPanel2.Name = "statusBarPanel2";
|
||||||
this.statusBarPanel2.Width = 120;
|
this.statusBarPanel2.Width = 120;
|
||||||
//
|
//
|
||||||
// lbCacheBalance
|
// btLogDump
|
||||||
//
|
//
|
||||||
this.lbCacheBalance.AutoSize = true;
|
this.btLogDump.Location = new System.Drawing.Point(22, 555);
|
||||||
this.lbCacheBalance.Location = new System.Drawing.Point(38, 222);
|
this.btLogDump.Name = "btLogDump";
|
||||||
this.lbCacheBalance.Name = "lbCacheBalance";
|
this.btLogDump.Size = new System.Drawing.Size(75, 23);
|
||||||
this.lbCacheBalance.Size = new System.Drawing.Size(29, 12);
|
this.btLogDump.TabIndex = 25;
|
||||||
this.lbCacheBalance.TabIndex = 13;
|
this.btLogDump.Text = "Dump Log";
|
||||||
this.lbCacheBalance.Text = "잔고";
|
this.btLogDump.UseVisualStyleBackColor = true;
|
||||||
//
|
this.btLogDump.Click += new System.EventHandler(this.btLogDump_Click);
|
||||||
// lbEvalProfit
|
|
||||||
//
|
|
||||||
this.lbEvalProfit.AutoSize = true;
|
|
||||||
this.lbEvalProfit.Location = new System.Drawing.Point(38, 244);
|
|
||||||
this.lbEvalProfit.Name = "lbEvalProfit";
|
|
||||||
this.lbEvalProfit.Size = new System.Drawing.Size(53, 12);
|
|
||||||
this.lbEvalProfit.TabIndex = 13;
|
|
||||||
this.lbEvalProfit.Text = "평가손익";
|
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
@@ -512,10 +512,10 @@
|
|||||||
private System.Windows.Forms.StatusBar statusBar1;
|
private System.Windows.Forms.StatusBar statusBar1;
|
||||||
private System.Windows.Forms.StatusBarPanel statusBarPanel1;
|
private System.Windows.Forms.StatusBarPanel statusBarPanel1;
|
||||||
private System.Windows.Forms.StatusBarPanel statusBarPanel2;
|
private System.Windows.Forms.StatusBarPanel statusBarPanel2;
|
||||||
private System.Windows.Forms.Button button1;
|
|
||||||
private System.Windows.Forms.Button btMATest;
|
private System.Windows.Forms.Button btMATest;
|
||||||
private System.Windows.Forms.Label lbCacheBalance;
|
private System.Windows.Forms.Label lbCacheBalance;
|
||||||
private System.Windows.Forms.Label lbEvalProfit;
|
private System.Windows.Forms.Label lbEvalProfit;
|
||||||
|
private System.Windows.Forms.Button btLogDump;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
89
MainForm.cs
89
MainForm.cs
@@ -212,54 +212,6 @@ namespace upper_limit_crawler
|
|||||||
ULUtil.SyncServerTime();
|
ULUtil.SyncServerTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
DSCBO1Lib.StockCur cur = new DSCBO1Lib.StockCur();
|
|
||||||
DSCBO1Lib.StockOutCur outCur = new DSCBO1Lib.StockOutCur();
|
|
||||||
string strCheckCode = "A004565";
|
|
||||||
|
|
||||||
private void button1_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
{
|
|
||||||
DSCBO1Lib.StockMst mst = new DSCBO1Lib.StockMst();
|
|
||||||
mst.SetInputValue(0, strCheckCode);
|
|
||||||
mst.BlockRequest();
|
|
||||||
short time = mst.GetHeaderValue(4);
|
|
||||||
Console.WriteLine("StockMst : {0}", time);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
DSCBO1Lib.StockMst2 mst2 = new DSCBO1Lib.StockMst2();
|
|
||||||
mst2.SetInputValue(0, strCheckCode);
|
|
||||||
mst2.BlockRequest();
|
|
||||||
long time = mst2.GetDataValue(2, 0);
|
|
||||||
Console.WriteLine("StockMst2 : {0}", time);
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
cur.SetInputValue(0, strCheckCode);
|
|
||||||
cur.Received += Cur_Received;
|
|
||||||
cur.SubscribeLatest();
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
outCur.SetInputValue(0, strCheckCode);
|
|
||||||
outCur.Received += OutCur_Received;
|
|
||||||
outCur.SubscribeLatest();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OutCur_Received()
|
|
||||||
{
|
|
||||||
long time = outCur.GetHeaderValue(1);
|
|
||||||
Console.WriteLine("StockOutCur : {0}", time);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Cur_Received()
|
|
||||||
{
|
|
||||||
long time = cur.GetHeaderValue(3);
|
|
||||||
long time2 = cur.GetHeaderValue(18);
|
|
||||||
Console.WriteLine("StockCur : {0} / {1}", time, time2);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chart_data
|
struct chart_data
|
||||||
{
|
{
|
||||||
public chart_data(int iTime, int iPrice)
|
public chart_data(int iTime, int iPrice)
|
||||||
@@ -280,10 +232,16 @@ namespace upper_limit_crawler
|
|||||||
Console.WriteLine("시뮬레이션 시작");
|
Console.WriteLine("시뮬레이션 시작");
|
||||||
|
|
||||||
|
|
||||||
List<string> aCodeList = new List<string> { "039230", "054620", "077970", "079950", "085370", "090470", "123010", "123860", "191420", "208860" };
|
List<string> aCodeList = new List<string> {
|
||||||
//List<string> aCodeList = new List<string> { "077970" };
|
"064240",
|
||||||
string strPrevDate = "20160728";
|
"090410",
|
||||||
string strDate = "20160729";
|
"208860",
|
||||||
|
"044180",
|
||||||
|
"127160",
|
||||||
|
"123570",
|
||||||
|
};
|
||||||
|
string strPrevDate = "20160729";
|
||||||
|
string strDate = "20160801";
|
||||||
int iTotalProfit = 0;
|
int iTotalProfit = 0;
|
||||||
|
|
||||||
foreach (string code in aCodeList)
|
foreach (string code in aCodeList)
|
||||||
@@ -371,6 +329,8 @@ namespace upper_limit_crawler
|
|||||||
float fCompRate = WatchItem.m_iCurPrice / (float)WatchItem.m_iPrevClosing - 1.0f;
|
float fCompRate = WatchItem.m_iCurPrice / (float)WatchItem.m_iPrevClosing - 1.0f;
|
||||||
if (fCompRate >= m_DataMgr.m_Setting.m_fBidMin && fCompRate <= m_DataMgr.m_Setting.m_fBidMax)
|
if (fCompRate >= m_DataMgr.m_Setting.m_fBidMin && fCompRate <= m_DataMgr.m_Setting.m_fBidMax)
|
||||||
{
|
{
|
||||||
|
m_DataMgr.AddAvailableItem(strCode);
|
||||||
|
|
||||||
if (m_DataMgr.IsInPostponeList(iTime, strCode) == true)
|
if (m_DataMgr.IsInPostponeList(iTime, strCode) == true)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("[{0}] 조건 매수 실패. black list {1}원 ({2})", item.m_strCodeName, item.m_iCurPrice, fCompRate.ToString("0.00%"));
|
//Console.WriteLine("[{0}] 조건 매수 실패. black list {1}원 ({2})", item.m_strCodeName, item.m_iCurPrice, fCompRate.ToString("0.00%"));
|
||||||
@@ -382,7 +342,7 @@ namespace upper_limit_crawler
|
|||||||
}
|
}
|
||||||
|
|
||||||
float f5MASlope = WatchItem.GetPrev5MASlope(iTime);
|
float f5MASlope = WatchItem.GetPrev5MASlope(iTime);
|
||||||
if (float.IsNaN(f5MASlope) || f5MASlope < 0.002f)
|
if(f5MASlope < 0.002f)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("[{0}] 조건 매수 실패. 5ma 상승하지 않음 {1}원 ({2})", item.m_strCodeName, item.m_iCurPrice, fCompRate.ToString("0.00%"));
|
//Console.WriteLine("[{0}] 조건 매수 실패. 5ma 상승하지 않음 {1}원 ({2})", item.m_strCodeName, item.m_iCurPrice, fCompRate.ToString("0.00%"));
|
||||||
continue;
|
continue;
|
||||||
@@ -392,6 +352,8 @@ namespace upper_limit_crawler
|
|||||||
Console.WriteLine("[{0}] [{1}] 조건 매수 {2}원 ({3}) (5MA slop:{4})", iTime, WatchItem.m_strCodeName, WatchItem.m_iCurPrice, fCompRate.ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
Console.WriteLine("[{0}] [{1}] 조건 매수 {2}원 ({3}) (5MA slop:{4})", iTime, WatchItem.m_strCodeName, WatchItem.m_iCurPrice, fCompRate.ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
||||||
ULUtil.TraceCSV(iTime, "[시뮬레이션] 조건 매수", WatchItem.m_strCodeName, WatchItem.m_iCurPrice, fCompRate.ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
ULUtil.TraceCSV(iTime, "[시뮬레이션] 조건 매수", WatchItem.m_strCodeName, WatchItem.m_iCurPrice, fCompRate.ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
||||||
|
|
||||||
|
m_DataMgr.AddBidLog(strCode, WatchItem.m_strCodeName, iTime, WatchItem.m_iCurPrice, f5MASlope);
|
||||||
|
|
||||||
int iBidCnt = (int)m_DataMgr.m_Setting.m_fBidAmount / iCurPrice;
|
int iBidCnt = (int)m_DataMgr.m_Setting.m_fBidAmount / iCurPrice;
|
||||||
|
|
||||||
iTotalBidPrice += iCurPrice* iBidCnt;
|
iTotalBidPrice += iCurPrice* iBidCnt;
|
||||||
@@ -412,8 +374,12 @@ namespace upper_limit_crawler
|
|||||||
{
|
{
|
||||||
m_DataMgr.AddLosscutItem(strCode);
|
m_DataMgr.AddLosscutItem(strCode);
|
||||||
|
|
||||||
Console.WriteLine("[{0}] [{1}] 손절 {2}원 ({3}:{4})", iTime, OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"));
|
int iProfit = iCurPrice - (int)OwnItem.m_iUnitBEP;
|
||||||
ULUtil.TraceCSV(iTime, "[시뮬레이션] 손절", OwnItem.m_strCodeName, iCurPrice, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"));
|
float fProfitRate = (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f);
|
||||||
|
|
||||||
|
Console.WriteLine("[{0}] [{1}] 손절 {2}원 ({3}:{4})", iTime, OwnItem.m_strCodeName, iCurPrice, iProfit, fProfitRate.ToString("0.00%"));
|
||||||
|
ULUtil.TraceCSV(iTime, "[시뮬레이션] 손절", OwnItem.m_strCodeName, iCurPrice, fProfitRate.ToString("0.00%"));
|
||||||
|
m_DataMgr.AddAskLog(strCode, WatchItem.m_strCodeName, iTime, iCurPrice, float.NaN, true, iProfit, fProfitRate);
|
||||||
|
|
||||||
iTotalAskPrice += iCurPrice * OwnItem.m_iConclusionBalanceCnt;
|
iTotalAskPrice += iCurPrice * OwnItem.m_iConclusionBalanceCnt;
|
||||||
OwnItem.m_iUnitBEP = 0;
|
OwnItem.m_iUnitBEP = 0;
|
||||||
@@ -437,8 +403,12 @@ namespace upper_limit_crawler
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine("[{0}] [{1}] 트레일링 매도 {2}원 ({3}:{4}) (5MA slop:{5})", iTime, OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
int iProfit = iCurPrice - (int)OwnItem.m_iUnitBEP;
|
||||||
ULUtil.TraceCSV(iTime, "[시뮬레이션] 트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f).ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
float fProfitRate = (iCurPrice / (float)OwnItem.m_iUnitBEP - 1.0f);
|
||||||
|
|
||||||
|
Console.WriteLine("[{0}] [{1}] 트레일링 매도 {2}원 ({3}:{4}) (5MA slop:{5})", iTime, OwnItem.m_strCodeName, iCurPrice, iProfit, fProfitRate.ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
||||||
|
ULUtil.TraceCSV(iTime, "[시뮬레이션] 트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iProfit, fProfitRate.ToString("0.00%"), f5MASlope.ToString("0.00%"));
|
||||||
|
m_DataMgr.AddAskLog(strCode, WatchItem.m_strCodeName, iTime, iCurPrice, f5MASlope, false, iProfit, fProfitRate);
|
||||||
|
|
||||||
iTotalAskPrice += iCurPrice * OwnItem.m_iConclusionBalanceCnt;
|
iTotalAskPrice += iCurPrice * OwnItem.m_iConclusionBalanceCnt;
|
||||||
OwnItem.m_iUnitBEP = 0;
|
OwnItem.m_iUnitBEP = 0;
|
||||||
@@ -489,5 +459,10 @@ namespace upper_limit_crawler
|
|||||||
Console.WriteLine("시뮬레이션 끝");
|
Console.WriteLine("시뮬레이션 끝");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void btLogDump_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
m_DataMgr.DumpLog();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
16
Program.cs
16
Program.cs
@@ -14,9 +14,17 @@ namespace upper_limit_crawler
|
|||||||
[STAThread]
|
[STAThread]
|
||||||
static void Main()
|
static void Main()
|
||||||
{
|
{
|
||||||
Application.EnableVisualStyles();
|
try
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
{
|
||||||
Application.Run(new MainForm());
|
Application.EnableVisualStyles();
|
||||||
}
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new MainForm());
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ namespace upper_limit_crawler
|
|||||||
f5MASlope.ToString("0.00%"),
|
f5MASlope.ToString("0.00%"),
|
||||||
WatchItem.m_iHighestPrice);
|
WatchItem.m_iHighestPrice);
|
||||||
ULUtil.TraceCSV("트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, fProfitRate.ToString("0.00%"), f5MASlope.ToString("0.00%"), WatchItem.m_iHighestPrice);
|
ULUtil.TraceCSV("트레일링 매도", OwnItem.m_strCodeName, iCurPrice, iCurPrice - OwnItem.m_iUnitBEP, fProfitRate.ToString("0.00%"), f5MASlope.ToString("0.00%"), WatchItem.m_iHighestPrice);
|
||||||
m_DataMgr.AddAskLog(strCode, WatchItem.m_strCodeName, iTime, iCurPrice, float.NaN, false, iProfit, fProfitRate);
|
m_DataMgr.AddAskLog(strCode, WatchItem.m_strCodeName, iTime, iCurPrice, f5MASlope, false, iProfit, fProfitRate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -322,6 +322,7 @@ namespace upper_limit_crawler
|
|||||||
foreach(ListViewItem item in lvBalance.SelectedItems)
|
foreach(ListViewItem item in lvBalance.SelectedItems)
|
||||||
{
|
{
|
||||||
ULUtil.Trace("[{0}] 수동 매도", item.SubItems[chName.Index].Text);
|
ULUtil.Trace("[{0}] 수동 매도", item.SubItems[chName.Index].Text);
|
||||||
|
ULUtil.TraceCSV(ULUtil.GetCurTimeInt(), "수동 매도", item.SubItems[chName.Index], item.SubItems[chCurPrice.Index], item.SubItems[chProfitRate.Index]);
|
||||||
|
|
||||||
string strCode = item.SubItems[chCode.Index].Text;
|
string strCode = item.SubItems[chCode.Index].Text;
|
||||||
int iCnt = int.Parse(item.SubItems[chBalance.Index].Text);
|
int iCnt = int.Parse(item.SubItems[chBalance.Index].Text);
|
||||||
@@ -334,6 +335,7 @@ namespace upper_limit_crawler
|
|||||||
foreach (ListViewItem item in lvBalance.Items)
|
foreach (ListViewItem item in lvBalance.Items)
|
||||||
{
|
{
|
||||||
ULUtil.Trace("[{0}] 모두 청산", item.SubItems[chName.Index].Text);
|
ULUtil.Trace("[{0}] 모두 청산", item.SubItems[chName.Index].Text);
|
||||||
|
ULUtil.TraceCSV(ULUtil.GetCurTimeInt(), "모두 청산", item.SubItems[chName.Index], item.SubItems[chCurPrice.Index], item.SubItems[chProfitRate.Index]);
|
||||||
|
|
||||||
string strCode = item.SubItems[chCode.Index].Text;
|
string strCode = item.SubItems[chCode.Index].Text;
|
||||||
int iCnt = int.Parse(item.SubItems[chBalance.Index].Text);
|
int iCnt = int.Parse(item.SubItems[chBalance.Index].Text);
|
||||||
|
|||||||
22
ULDB.cs
22
ULDB.cs
@@ -11,26 +11,24 @@ namespace upper_limit_crawler
|
|||||||
{
|
{
|
||||||
const string DBNAME = "DB";
|
const string DBNAME = "DB";
|
||||||
|
|
||||||
LevelDB.DB m_DB = null;
|
|
||||||
LevelDB.WriteOptions m_DefaultWriteOption = new LevelDB.WriteOptions();
|
|
||||||
LevelDB.ReadOptions m_DefaultReadOption = new LevelDB.ReadOptions();
|
|
||||||
|
|
||||||
public ULDB()
|
public ULDB()
|
||||||
{
|
{
|
||||||
LevelDB.Options OpenOption = new LevelDB.Options();
|
|
||||||
OpenOption.CreateIfMissing=true;
|
|
||||||
m_DB=LevelDB.DB.Open(DBNAME, OpenOption);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Put(string strKey, LevelDB.Slice Value)
|
public void Insert<T>(string strKey, T Value)
|
||||||
{
|
{
|
||||||
m_DB.Put(m_DefaultWriteOption, strKey, Value);
|
BinaryRage.DB.Insert(strKey, Value, DBNAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LevelDB.Slice Get(string strKey)
|
public T Get<T>(string strKey)
|
||||||
{
|
{
|
||||||
LevelDB.Slice Value = m_DB.Get(m_DefaultReadOption, strKey);
|
object data = BinaryRage.DB.Get<T>(strKey, DBNAME);
|
||||||
return Value;
|
return (T)data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsExist(string strKey)
|
||||||
|
{
|
||||||
|
return BinaryRage.DB.Exists(strKey, DBNAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
111
ULDataMgr.cs
111
ULDataMgr.cs
@@ -32,7 +32,30 @@ namespace upper_limit_crawler
|
|||||||
public int m_iTime;
|
public int m_iTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ULDataMgr
|
[Serializable]
|
||||||
|
struct BID_LOG
|
||||||
|
{
|
||||||
|
public string m_strCode { get; set; }
|
||||||
|
public string m_strCodeName { get; set; }
|
||||||
|
public int m_iTime { get; set; }
|
||||||
|
public int m_iBidPrice { get; set; }
|
||||||
|
public float m_f5MAslope { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
struct ASK_LOG
|
||||||
|
{
|
||||||
|
public string m_strCode { get; set; }
|
||||||
|
public string m_strCodeName { get; set; }
|
||||||
|
public int m_iTime { get; set; }
|
||||||
|
public int m_iAskPrice { get; set; }
|
||||||
|
public float m_f5MAslope { get; set; }
|
||||||
|
public bool m_bLosscut { get; set; }
|
||||||
|
public int m_iProfit { get; set; }
|
||||||
|
public float m_fProfitRate { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ULDataMgr
|
||||||
{
|
{
|
||||||
public SETTING m_Setting = new SETTING();
|
public SETTING m_Setting = new SETTING();
|
||||||
public ULDB m_DB = new ULDB();
|
public ULDB m_DB = new ULDB();
|
||||||
@@ -47,14 +70,24 @@ namespace upper_limit_crawler
|
|||||||
string m_AvailableListKey;
|
string m_AvailableListKey;
|
||||||
List<string> m_AvailableList = new List<string>();
|
List<string> m_AvailableList = new List<string>();
|
||||||
|
|
||||||
|
List<BID_LOG> m_BidLogs = new List<BID_LOG>();
|
||||||
|
List<ASK_LOG> m_AskLogs = new List<ASK_LOG>();
|
||||||
|
|
||||||
long m_iCacheBalance = 0;
|
long m_iCacheBalance = 0;
|
||||||
long m_iEvalProfit = 0;
|
long m_iEvalProfit = 0;
|
||||||
|
|
||||||
|
string m_strToday = ULUtil.GetCurTime().ToString("yyyy-MM-dd");
|
||||||
|
|
||||||
public ULDataMgr()
|
public ULDataMgr()
|
||||||
{
|
{
|
||||||
m_AvailableListKey= "available-"+ULUtil.GetCurTime().ToString("yyyy-MM-dd");
|
m_AvailableListKey= "available-"+m_strToday;
|
||||||
string strValue = m_DB.Get(m_AvailableListKey).ToString();
|
if(m_DB.IsExist(m_AvailableListKey) == true)
|
||||||
m_AvailableList=strValue.Split(',').ToList();
|
m_AvailableList = m_DB.Get<List<string>>(m_AvailableListKey);
|
||||||
|
else
|
||||||
|
m_AvailableList = new List<string>();
|
||||||
|
|
||||||
|
m_BidLogs = GetBidLog(m_strToday);
|
||||||
|
m_AskLogs = GetAskLog(m_strToday);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init()
|
public void Init()
|
||||||
@@ -186,22 +219,74 @@ namespace upper_limit_crawler
|
|||||||
if(m_AvailableList.Any(r => r==strCode)==false)
|
if(m_AvailableList.Any(r => r==strCode)==false)
|
||||||
{
|
{
|
||||||
m_AvailableList.Add(strCode);
|
m_AvailableList.Add(strCode);
|
||||||
m_DB.Put(m_AvailableListKey, string.Join(",", m_AvailableList));
|
m_DB.Insert(m_AvailableListKey, m_AvailableList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddBidLog(string strCode, string strCodeName, int iTime, int iBidPrice, float f5MAslope)
|
public void AddBidLog(string strCode, string strCodeName, int iTime, int iBidPrice, float f5MAslope)
|
||||||
{
|
{
|
||||||
string strKey = string.Format("bid-{0}-{1}-{2}", ULUtil.GetCurTime().ToString("yyyyMMdd"), iTime, strCodeName);
|
string strKey = "bid-"+m_strToday;
|
||||||
string strValue = string.Format("{0},{1},{2},{3},{4}", strCodeName, strCode, iTime, iBidPrice, f5MAslope);
|
|
||||||
m_DB.Put(strKey, strValue);
|
BID_LOG log = new BID_LOG();
|
||||||
|
log.m_strCode = strCode;
|
||||||
|
log.m_strCodeName = strCodeName;
|
||||||
|
log.m_iTime = iTime;
|
||||||
|
log.m_iBidPrice = iBidPrice;
|
||||||
|
log.m_f5MAslope = f5MAslope;
|
||||||
|
m_BidLogs.Add(log);
|
||||||
|
|
||||||
|
m_DB.Insert(strKey, m_BidLogs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddAskLog(string strCode, string strCodeName, int iTime, int iBidPrice, float f5MAslope, bool bLosscut, int iProfit, float fProfitRate)
|
List<BID_LOG> GetBidLog(string strDate)
|
||||||
|
{
|
||||||
|
string strKey = "bid-"+strDate;
|
||||||
|
if(m_DB.IsExist(strKey) == true)
|
||||||
|
return m_DB.Get<List<BID_LOG>>(strKey);
|
||||||
|
else
|
||||||
|
return new List<BID_LOG>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddAskLog(string strCode, string strCodeName, int iTime, int iAskPrice, float f5MAslope, bool bLosscut, int iProfit, float fProfitRate)
|
||||||
{
|
{
|
||||||
string strKey = string.Format("ask-{0}-{1}-{2}", ULUtil.GetCurTime().ToString("yyyyMMdd"), iTime, strCodeName);
|
string strKey = "ask-"+m_strToday;
|
||||||
string strValue = string.Format("{0},{1},{2},{3},{4},{5},{6},{7}", strCodeName, strCode, iTime, iBidPrice, f5MAslope, bLosscut?"Losscut":"Trailing", iProfit, fProfitRate);
|
|
||||||
m_DB.Put(strKey, strValue);
|
ASK_LOG log = new ASK_LOG();
|
||||||
|
log.m_strCode = strCode;
|
||||||
|
log.m_strCodeName = strCodeName;
|
||||||
|
log.m_iTime = iTime;
|
||||||
|
log.m_iAskPrice = iAskPrice;
|
||||||
|
log.m_f5MAslope = f5MAslope;
|
||||||
|
log.m_bLosscut = bLosscut;
|
||||||
|
log.m_iProfit = iProfit;
|
||||||
|
log.m_fProfitRate = fProfitRate;
|
||||||
|
m_AskLogs.Add(log);
|
||||||
|
|
||||||
|
m_DB.Insert(strKey, m_AskLogs);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
List<ASK_LOG> GetAskLog(string strDate)
|
||||||
|
{
|
||||||
|
string strKey = "ask-"+strDate;
|
||||||
|
if(m_DB.IsExist(strKey) == true)
|
||||||
|
return m_DB.Get<List<ASK_LOG>>(strKey);
|
||||||
|
else
|
||||||
|
return new List<ASK_LOG>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DumpLog()
|
||||||
|
{
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
foreach(string strCode in m_AvailableList)
|
||||||
|
sb.AppendLine(strCode+",");
|
||||||
|
|
||||||
|
foreach(BID_LOG log in m_BidLogs)
|
||||||
|
sb.AppendFormat("매수, {0}, {1}, {2}, {3}"+Environment.NewLine, log.m_iTime, log.m_strCodeName, log.m_iBidPrice, log.m_f5MAslope.ToString("0.00%"));
|
||||||
|
foreach(ASK_LOG log in m_AskLogs)
|
||||||
|
sb.AppendFormat("매도, {0}, {1}, {2}, {3}, {4}, {5}"+Environment.NewLine, log.m_iTime, log.m_strCodeName, log.m_iAskPrice, log.m_f5MAslope.ToString("0.00%"), log.m_iProfit, log.m_fProfitRate.ToString("0.00%"));
|
||||||
|
|
||||||
|
System.IO.File.WriteAllText(ULUtil.GetLogDir()+"dblog-"+m_strToday+".csv", sb.ToString(), Encoding.UTF8);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -172,8 +172,8 @@ namespace upper_limit_crawler
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
float f5MASlope = item.GetPrev5MASlope(iTime);
|
float f5MASlope = item.GetPrev5MASlope(item.m_iCurTime);
|
||||||
if(float.IsNaN(f5MASlope) == false && f5MASlope < 0.002f)
|
if(f5MASlope < 0.002f)
|
||||||
{
|
{
|
||||||
//ULUtil.Trace("[{0}] 조건 매수 실패. 5ma 상승하지 않음 {1}원 ({2})", item.m_strCodeName, item.m_iCurPrice, fCompRate.ToString("0.00%"));
|
//ULUtil.Trace("[{0}] 조건 매수 실패. 5ma 상승하지 않음 {1}원 ({2})", item.m_strCodeName, item.m_iCurPrice, fCompRate.ToString("0.00%"));
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ namespace upper_limit_crawler
|
|||||||
public string m_strCode;
|
public string m_strCode;
|
||||||
public string m_strCodeName;
|
public string m_strCodeName;
|
||||||
public DSCBO1Lib.StockCur m_StockCur = null;
|
public DSCBO1Lib.StockCur m_StockCur = null;
|
||||||
|
public int m_iCurTime;
|
||||||
public int m_iCurPrice;
|
public int m_iCurPrice;
|
||||||
public int m_iPrevClosing;
|
public int m_iPrevClosing;
|
||||||
public int m_iStartPrice;
|
public int m_iStartPrice;
|
||||||
@@ -94,6 +95,7 @@ namespace upper_limit_crawler
|
|||||||
int iTime = (int)m_StockCur.GetHeaderValue(18);
|
int iTime = (int)m_StockCur.GetHeaderValue(18);
|
||||||
int iTime2 = m_StockCur.GetHeaderValue(3);
|
int iTime2 = m_StockCur.GetHeaderValue(3);
|
||||||
|
|
||||||
|
m_iCurTime = iTime;
|
||||||
m_iCurPrice = m_StockCur.GetHeaderValue(13);
|
m_iCurPrice = m_StockCur.GetHeaderValue(13);
|
||||||
m_iPrevClosing = m_iCurPrice - m_StockCur.GetHeaderValue(2);
|
m_iPrevClosing = m_iCurPrice - m_StockCur.GetHeaderValue(2);
|
||||||
m_iStartPrice = m_StockCur.GetHeaderValue(4);
|
m_iStartPrice = m_StockCur.GetHeaderValue(4);
|
||||||
@@ -158,7 +160,6 @@ namespace upper_limit_crawler
|
|||||||
int iMin = GetMinute(iTime);
|
int iMin = GetMinute(iTime);
|
||||||
int iSec = GetSecond(iTime);
|
int iSec = GetSecond(iTime);
|
||||||
|
|
||||||
|
|
||||||
int iKey = GetTimeKey1Min(iHour, iMin, iSec);
|
int iKey = GetTimeKey1Min(iHour, iMin, iSec);
|
||||||
bool bMadeNew = false;
|
bool bMadeNew = false;
|
||||||
if (m_1MinChart.ContainsKey(iKey) == false)
|
if (m_1MinChart.ContainsKey(iKey) == false)
|
||||||
@@ -308,7 +309,8 @@ namespace upper_limit_crawler
|
|||||||
|
|
||||||
public float GetPrev5MASlope(int iTime)
|
public float GetPrev5MASlope(int iTime)
|
||||||
{
|
{
|
||||||
int iLastIdx = m_1MinChart.IndexOfKey(iTime)-1;
|
int iTimeKey = GetTimeKey1Min(GetHour(iTime), GetMinute(iTime), 0);
|
||||||
|
int iLastIdx = m_1MinChart.IndexOfKey(iTimeKey)-1;
|
||||||
if(iLastIdx <= 1 || iLastIdx >= m_5MAChart.Count)
|
if(iLastIdx <= 1 || iLastIdx >= m_5MAChart.Count)
|
||||||
return float.NaN;
|
return float.NaN;
|
||||||
|
|
||||||
|
|||||||
30
UlUtil.cs
30
UlUtil.cs
@@ -14,30 +14,29 @@ namespace upper_limit_crawler
|
|||||||
{
|
{
|
||||||
//static string m_strLogServer = "http://mjjo53.us.to:8000";
|
//static string m_strLogServer = "http://mjjo53.us.to:8000";
|
||||||
|
|
||||||
static CPUTILLib.CpCybos m_CPUtil = new CPUTILLib.CpCybos();
|
static CPUTILLib.CpCybos m_CPUtil = null;
|
||||||
static CPUTILLib.CpCodeMgr m_CPCodeMgr = new CPUTILLib.CpCodeMgr();
|
static CPUTILLib.CpCodeMgr m_CPCodeMgr = null;
|
||||||
static TextBox m_tbLog = null;
|
static TextBox m_tbLog = null;
|
||||||
|
static string m_strLogDir;
|
||||||
static string m_strLogFileName;
|
static string m_strLogFileName;
|
||||||
static string m_strCSVFileName;
|
static string m_strCSVFileName;
|
||||||
static TimeSpan m_TimeDiff = TimeSpan.Zero;
|
static TimeSpan m_TimeDiff = TimeSpan.Zero;
|
||||||
|
|
||||||
public static void Init(TextBox tbLog)
|
public static void Init(TextBox tbLog)
|
||||||
{
|
{
|
||||||
|
m_CPUtil = new CPUTILLib.CpCybos();
|
||||||
|
m_CPCodeMgr = new CPUTILLib.CpCodeMgr();
|
||||||
|
|
||||||
m_tbLog = tbLog;
|
m_tbLog = tbLog;
|
||||||
|
|
||||||
if (Debugger.IsAttached == true)
|
if (Debugger.IsAttached == true)
|
||||||
{
|
m_strLogDir = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "\\";
|
||||||
m_strLogFileName = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "\\";
|
m_strLogDir += "log\\";
|
||||||
m_strCSVFileName = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "\\";
|
if (Directory.Exists(m_strLogDir) == false)
|
||||||
}
|
Directory.CreateDirectory(m_strLogDir);
|
||||||
|
|
||||||
m_strLogFileName += "log\\";
|
m_strLogFileName = m_strLogDir + "log-" + GetCurTime().ToString("yyyy-MM-dd") + ".txt";
|
||||||
if (Directory.Exists(m_strLogFileName) == false)
|
m_strCSVFileName = m_strLogDir + "log-" + GetCurTime().ToString("yyyy-MM-dd") + ".csv";
|
||||||
Directory.CreateDirectory(m_strLogFileName);
|
|
||||||
m_strLogFileName += "log-" + GetCurTime().ToString("yyyy-MM-dd") + ".txt";
|
|
||||||
|
|
||||||
m_strCSVFileName += "log\\";
|
|
||||||
m_strCSVFileName += "log-" + GetCurTime().ToString("yyyy-MM-dd") + ".csv";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SyncServerTime()
|
public static void SyncServerTime()
|
||||||
@@ -197,6 +196,11 @@ namespace upper_limit_crawler
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetLogDir()
|
||||||
|
{
|
||||||
|
return m_strLogDir;
|
||||||
|
}
|
||||||
|
|
||||||
public static void Trace(string strMsg)
|
public static void Trace(string strMsg)
|
||||||
{
|
{
|
||||||
string strLog = "["+GetCurTimeString()+"] "+strMsg;
|
string strLog = "["+GetCurTimeString()+"] "+strMsg;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="BinaryRage" version="1.4.0.0" targetFramework="net45" />
|
||||||
<package id="LevelDB.Net" version="1.2.1" targetFramework="net45" />
|
<package id="LevelDB.Net" version="1.2.1" targetFramework="net45" />
|
||||||
</packages>
|
</packages>
|
||||||
BIN
packages/BinaryRage.1.4.0.0/BinaryRage.1.4.0.0.nupkg
vendored
Normal file
BIN
packages/BinaryRage.1.4.0.0/BinaryRage.1.4.0.0.nupkg
vendored
Normal file
Binary file not shown.
@@ -24,29 +24,30 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
|
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||||
<OutputPath>bin\x64\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||||
<Prefer32Bit>true</Prefer32Bit>
|
<Prefer32Bit>true</Prefer32Bit>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="LevelDB.Net">
|
<Reference Include="BinaryRage, Version=1.4.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>packages\LevelDB.Net.1.2.1\lib\net40\LevelDB.Net.dll</HintPath>
|
<HintPath>packages\BinaryRage.1.4.0.0\lib\net40\BinaryRage.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
@@ -105,6 +106,7 @@
|
|||||||
<EmbeddedResource Include="ULMonitorDlg.resx">
|
<EmbeddedResource Include="ULMonitorDlg.resx">
|
||||||
<DependentUpon>ULMonitorDlg.cs</DependentUpon>
|
<DependentUpon>ULMonitorDlg.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<None Include="packages.config" />
|
||||||
<None Include="Properties\app.manifest">
|
<None Include="Properties\app.manifest">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</None>
|
</None>
|
||||||
|
|||||||
@@ -7,14 +7,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "upper-limit-crawler", "uppe
|
|||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x64 = Debug|x64
|
Debug|Any CPU = Debug|Any CPU
|
||||||
Release|x64 = Release|x64
|
Release|Any CPU = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{591FA710-356A-498A-8133-7E9E60AB4E40}.Debug|x64.ActiveCfg = Debug|x64
|
{591FA710-356A-498A-8133-7E9E60AB4E40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{591FA710-356A-498A-8133-7E9E60AB4E40}.Debug|x64.Build.0 = Debug|x64
|
{591FA710-356A-498A-8133-7E9E60AB4E40}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{591FA710-356A-498A-8133-7E9E60AB4E40}.Release|x64.ActiveCfg = Release|x64
|
{591FA710-356A-498A-8133-7E9E60AB4E40}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{591FA710-356A-498A-8133-7E9E60AB4E40}.Release|x64.Build.0 = Release|x64
|
{591FA710-356A-498A-8133-7E9E60AB4E40}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
Reference in New Issue
Block a user