Compare commits
252 Commits
V1.0
...
feature/V1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2fd3e0e440 | ||
|
|
11f3f76632 | ||
|
|
339aadb539 | ||
|
|
81c301b6a7 | ||
|
|
80acc7b62c | ||
|
|
c1e6aafac4 | ||
|
|
3b681659dd | ||
|
|
11f52637a5 | ||
|
|
13ec7ba124 | ||
|
|
892aad131a | ||
|
|
d5abadae19 | ||
|
|
2d4791596b | ||
|
|
d632fa85f7 | ||
|
|
9592ff3bac | ||
|
|
88ff08b535 | ||
|
|
3b497108f0 | ||
|
|
1e2f3d3f96 | ||
|
|
2db5a4519d | ||
|
|
46b7fcfd5b | ||
|
|
8bdafc5b25 | ||
|
|
c51d6edcbd | ||
|
|
88d7b14b11 | ||
|
|
570f4c6630 | ||
|
|
d9f8efec2d | ||
|
|
332f0a5c7b | ||
|
|
f9923155a8 | ||
|
|
05b6522e94 | ||
|
|
a2bf4afe44 | ||
|
|
b9d773d134 | ||
|
|
6ef71c45ab | ||
|
|
02c3fbbbb0 | ||
|
|
b08d763dd4 | ||
|
|
f04a2fcd45 | ||
|
|
e4bcceb715 | ||
|
|
d79fac132e | ||
|
|
fef8038520 | ||
|
|
3db4a833ac | ||
|
|
aaa3d47a2b | ||
|
|
3424cba6a8 | ||
|
|
e5eda18189 | ||
|
|
577fc893f7 | ||
|
|
b2a685d9e2 | ||
|
|
1e4c4f09bb | ||
|
|
fc9115fbf1 | ||
|
|
5e476c22a1 | ||
|
|
c45276378b | ||
|
|
83d3bba8ac | ||
|
|
9df8324d48 | ||
|
|
38a907ed15 | ||
|
|
75f4152c02 | ||
|
|
7919ce25e2 | ||
|
|
a0412c2c91 | ||
|
|
131b45c476 | ||
|
|
62801ed8ac | ||
|
|
3d074df5d9 | ||
|
|
cd0a9789ac | ||
|
|
660579891c | ||
|
|
96ee504102 | ||
|
|
b6cb826214 | ||
|
|
b7dbefad16 | ||
|
|
7151fdc5b8 | ||
|
|
b1f6b01484 | ||
|
|
8e84429145 | ||
|
|
faa2c8b7e2 | ||
|
|
4558712a89 | ||
|
|
e9005de5ef | ||
|
|
a75e360e26 | ||
|
|
14e3b2e533 | ||
|
|
e0c78445f3 | ||
|
|
891f37c5dd | ||
|
|
e11d796642 | ||
|
|
1df326e9ea | ||
|
|
8de7d981eb | ||
|
|
fe065dbb45 | ||
|
|
a6c58ad133 | ||
|
|
04c73b08f9 | ||
|
|
d9e439cf27 | ||
|
|
6974dbdc23 | ||
|
|
7e0ef8142b | ||
|
|
818cfb4974 | ||
|
|
791d88ded2 | ||
|
|
999eaad9e6 | ||
|
|
8579c58833 | ||
|
|
2c4ab25ee3 | ||
|
|
0f480a2e7f | ||
|
|
7aec686051 | ||
|
|
6b39303095 | ||
|
|
1506e62f8c | ||
|
|
67e03bab27 | ||
|
|
e0e46a087e | ||
|
|
d38bb3d3ca | ||
|
|
5166359e18 | ||
|
|
fcebfbcb70 | ||
|
|
dbfbb49540 | ||
|
|
3b42a0fd4a | ||
|
|
0bcc8b1694 | ||
|
|
37c9e9ad27 | ||
|
|
07568b3d4c | ||
|
|
2ee428ee23 | ||
|
|
566509b93a | ||
|
|
10c95ba0a0 | ||
|
|
1cefd84298 | ||
|
|
fdbe0fcd1c | ||
|
|
f23c464362 | ||
|
|
6a95cdfb14 | ||
|
|
0f20d55d3f | ||
|
|
1a4cd1f61a | ||
|
|
41b38948a0 | ||
|
|
2d0355a5cb | ||
|
|
2c300a5608 | ||
|
|
437f66957f | ||
|
|
54c78cf09e | ||
|
|
16e4b6d820 | ||
|
|
eee350d247 | ||
|
|
09d8ea63fb | ||
|
|
dd264b0cc5 | ||
|
|
365aad2cc4 | ||
|
|
3749475412 | ||
|
|
3f000635f5 | ||
|
|
7115197522 | ||
|
|
f29aba7e7f | ||
|
|
514b95abca | ||
|
|
ddc32903b9 | ||
|
|
5e868ae373 | ||
|
|
e25a29d06d | ||
|
|
b614d31df9 | ||
|
|
42ed896ca3 | ||
|
|
b1ece22258 | ||
|
|
1d3929b84d | ||
|
|
7ed733e57b | ||
|
|
fb52c11b03 | ||
|
|
acba3c9201 | ||
|
|
66dc372af2 | ||
|
|
251650488c | ||
|
|
b2a9b9a535 | ||
|
|
c065695136 | ||
|
|
ea950e0508 | ||
|
|
1fb5d2aeb4 | ||
|
|
14712fcf1e | ||
|
|
4820f5016e | ||
|
|
b01f9d2a7f | ||
|
|
8908ed4264 | ||
|
|
2df140ccab | ||
|
|
d2691a8ff1 | ||
|
|
f6b69c2c6b | ||
|
|
eb99c5a8ad | ||
|
|
679e923ba1 | ||
|
|
0df8d12580 | ||
|
|
78cd321aea | ||
|
|
37b116177f | ||
|
|
fc2b118c6c | ||
|
|
94ddacf08a | ||
|
|
b94b026a71 | ||
|
|
f7491b426a | ||
|
|
7b4ba65d6a | ||
|
|
c132d34e2b | ||
|
|
5e0832a7cc | ||
|
|
4a3d918b86 | ||
|
|
ec5cfc4109 | ||
|
|
8f1bcd521b | ||
|
|
22fbf2e5b5 | ||
|
|
00e19d9c61 | ||
|
|
572391837e | ||
|
|
c16a6e154a | ||
|
|
0cb7b8f2b3 | ||
|
|
7c90109652 | ||
|
|
fa5aa8e9ef | ||
|
|
5b57bb3188 | ||
|
|
da32875c48 | ||
|
|
31eb068a1b | ||
|
|
c4d1f6a30d | ||
|
|
99ccac6231 | ||
|
|
9f1e551e9d | ||
|
|
b2c7669408 | ||
|
|
475d5be8a9 | ||
|
|
d57fd0268d | ||
|
|
1bd0f1143c | ||
|
|
78dcb1f27d | ||
|
|
2f1b424aa4 | ||
|
|
98bc353f46 | ||
|
|
60d5f0a35f | ||
|
|
a4120ea088 | ||
|
|
cb42a14c82 | ||
|
|
10e7533398 | ||
|
|
07673899be | ||
|
|
ea4f373818 | ||
|
|
0ce9a2b040 | ||
|
|
09a9ac5352 | ||
|
|
10653f4b7e | ||
|
|
9a9ab785bc | ||
|
|
96768aa238 | ||
|
|
9958586239 | ||
|
|
0105c8ae6c | ||
|
|
7d8d7de779 | ||
|
|
cc345b30b4 | ||
|
|
aa7e7f7226 | ||
|
|
9e8af26afa | ||
|
|
fa2468126c | ||
|
|
011ade764d | ||
|
|
f37a843e29 | ||
|
|
4b0f5560c1 | ||
|
|
64fa1cbd62 | ||
|
|
adf2f8dbee | ||
|
|
4987bce5d3 | ||
|
|
f7e1efe47b | ||
|
|
30f14f462e | ||
|
|
03a5fac675 | ||
|
|
fd36ae9418 | ||
|
|
ca9935e2b8 | ||
|
|
791e85bcf2 | ||
|
|
493db793fb | ||
|
|
1f847ba9ce | ||
|
|
154427f6f1 | ||
|
|
40af036a55 | ||
|
|
460fc40ccd | ||
|
|
b7f35ea1ef | ||
|
|
0cf3bd3aa0 | ||
|
|
a083ba92fd | ||
|
|
15c4ab5e5b | ||
|
|
98732038c1 | ||
|
|
23f7f40e39 | ||
|
|
28d554eac8 | ||
|
|
aa9263216f | ||
|
|
d69e6310a3 | ||
|
|
33a840069a | ||
|
|
6587e61312 | ||
|
|
4b4c1d3a67 | ||
|
|
85412ef4a3 | ||
|
|
5d838a04f2 | ||
|
|
0af9f7c502 | ||
|
|
538ee16f98 | ||
|
|
40d8e80011 | ||
|
|
a4afb09cd6 | ||
|
|
5b609d34cd | ||
|
|
353268e828 | ||
|
|
77aa5d21f6 | ||
|
|
6a192b4121 | ||
|
|
aaa6163459 | ||
|
|
ba228385a2 | ||
|
|
5c072a1a2f | ||
|
|
a9e35b958c | ||
|
|
fbfe9c715b | ||
|
|
337aa33cc5 | ||
|
|
f7f65a1cdb | ||
|
|
448b167b88 | ||
|
|
c988236c55 | ||
|
|
d9076e4046 | ||
|
|
5026e2c732 | ||
|
|
335fde4cde | ||
|
|
76532e1cd5 | ||
|
|
856adf9043 | ||
|
|
b961c71eba |
4
.editorconfig
Normal file
4
.editorconfig
Normal file
@@ -0,0 +1,4 @@
|
||||
[*.cs]
|
||||
|
||||
# SYSLIB0011: 형식 또는 멤버는 사용되지 않습니다.
|
||||
dotnet_diagnostic.SYSLIB0011.severity = warning
|
||||
1
DataSaver/.vs/Million Saver.csproj.dtbcache.json
Normal file
1
DataSaver/.vs/Million Saver.csproj.dtbcache.json
Normal file
File diff suppressed because one or more lines are too long
121
DataSaver/MainForm.Designer.cs
generated
121
DataSaver/MainForm.Designer.cs
generated
@@ -31,6 +31,12 @@
|
||||
this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
|
||||
this.listBoxControl_logViewer = new DevExpress.XtraEditors.ListBoxControl();
|
||||
this.panelControl2 = new DevExpress.XtraEditors.PanelControl();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.bt_ScheduleStop = new System.Windows.Forms.Button();
|
||||
this.bt_ScheduleStart = new System.Windows.Forms.Button();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.deletebtn = new System.Windows.Forms.Button();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
@@ -49,14 +55,13 @@
|
||||
this.comboBoxEdit_MarketInfo = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||
this.button_AllMarketDataAcc = new System.Windows.Forms.Button();
|
||||
this.button_SelectedMarketDataAcc = new System.Windows.Forms.Button();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.button2 = new System.Windows.Forms.Button();
|
||||
this.button3 = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
|
||||
this.panelControl1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.listBoxControl_logViewer)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl2)).BeginInit();
|
||||
this.panelControl2.SuspendLayout();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.de_end.Properties.CalendarTimeProperties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.de_end.Properties)).BeginInit();
|
||||
@@ -67,7 +72,6 @@
|
||||
this.groupBox_데이터누적.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_PaymentType.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_MarketInfo.Properties)).BeginInit();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panelControl1
|
||||
@@ -76,7 +80,7 @@
|
||||
this.panelControl1.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.panelControl1.Location = new System.Drawing.Point(253, 0);
|
||||
this.panelControl1.Name = "panelControl1";
|
||||
this.panelControl1.Size = new System.Drawing.Size(227, 520);
|
||||
this.panelControl1.Size = new System.Drawing.Size(227, 595);
|
||||
this.panelControl1.TabIndex = 0;
|
||||
//
|
||||
// listBoxControl_logViewer
|
||||
@@ -84,11 +88,12 @@
|
||||
this.listBoxControl_logViewer.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.listBoxControl_logViewer.Location = new System.Drawing.Point(2, 2);
|
||||
this.listBoxControl_logViewer.Name = "listBoxControl_logViewer";
|
||||
this.listBoxControl_logViewer.Size = new System.Drawing.Size(223, 516);
|
||||
this.listBoxControl_logViewer.Size = new System.Drawing.Size(223, 591);
|
||||
this.listBoxControl_logViewer.TabIndex = 0;
|
||||
//
|
||||
// panelControl2
|
||||
//
|
||||
this.panelControl2.Controls.Add(this.groupBox3);
|
||||
this.panelControl2.Controls.Add(this.groupBox2);
|
||||
this.panelControl2.Controls.Add(this.groupBox1);
|
||||
this.panelControl2.Controls.Add(this.groupBox_DB접속);
|
||||
@@ -96,9 +101,72 @@
|
||||
this.panelControl2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panelControl2.Location = new System.Drawing.Point(0, 0);
|
||||
this.panelControl2.Name = "panelControl2";
|
||||
this.panelControl2.Size = new System.Drawing.Size(253, 520);
|
||||
this.panelControl2.Size = new System.Drawing.Size(253, 595);
|
||||
this.panelControl2.TabIndex = 1;
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.bt_ScheduleStop);
|
||||
this.groupBox3.Controls.Add(this.bt_ScheduleStart);
|
||||
this.groupBox3.Location = new System.Drawing.Point(13, 526);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(231, 57);
|
||||
this.groupBox3.TabIndex = 5;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "전체 데이터 스케쥴러";
|
||||
//
|
||||
// bt_ScheduleStop
|
||||
//
|
||||
this.bt_ScheduleStop.Enabled = false;
|
||||
this.bt_ScheduleStop.Location = new System.Drawing.Point(120, 21);
|
||||
this.bt_ScheduleStop.Name = "bt_ScheduleStop";
|
||||
this.bt_ScheduleStop.Size = new System.Drawing.Size(93, 23);
|
||||
this.bt_ScheduleStop.TabIndex = 4;
|
||||
this.bt_ScheduleStop.Text = "중지";
|
||||
this.bt_ScheduleStop.UseVisualStyleBackColor = true;
|
||||
this.bt_ScheduleStop.Click += new System.EventHandler(this.bt_ScheduleStop_Click);
|
||||
//
|
||||
// bt_ScheduleStart
|
||||
//
|
||||
this.bt_ScheduleStart.Location = new System.Drawing.Point(17, 21);
|
||||
this.bt_ScheduleStart.Name = "bt_ScheduleStart";
|
||||
this.bt_ScheduleStart.Size = new System.Drawing.Size(97, 23);
|
||||
this.bt_ScheduleStart.TabIndex = 3;
|
||||
this.bt_ScheduleStart.Text = "시작";
|
||||
this.bt_ScheduleStart.UseVisualStyleBackColor = true;
|
||||
this.bt_ScheduleStart.Click += new System.EventHandler(this.bt_ScheduleStart_Click);
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.button3);
|
||||
this.groupBox2.Controls.Add(this.button2);
|
||||
this.groupBox2.Location = new System.Drawing.Point(13, 458);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(231, 57);
|
||||
this.groupBox2.TabIndex = 4;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Ticker 저장";
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.Location = new System.Drawing.Point(120, 21);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(93, 23);
|
||||
this.button3.TabIndex = 4;
|
||||
this.button3.Text = "중지";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(17, 21);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(97, 23);
|
||||
this.button2.TabIndex = 3;
|
||||
this.button2.Text = "시작";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.deletebtn);
|
||||
@@ -298,42 +366,11 @@
|
||||
this.button_SelectedMarketDataAcc.UseVisualStyleBackColor = true;
|
||||
this.button_SelectedMarketDataAcc.Click += new System.EventHandler(this.button_SelectedMarketDataAcc_Click);
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.button3);
|
||||
this.groupBox2.Controls.Add(this.button2);
|
||||
this.groupBox2.Location = new System.Drawing.Point(13, 458);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(231, 57);
|
||||
this.groupBox2.TabIndex = 4;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Ticker 저장";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.Location = new System.Drawing.Point(17, 21);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.Size = new System.Drawing.Size(97, 23);
|
||||
this.button2.TabIndex = 3;
|
||||
this.button2.Text = "시작";
|
||||
this.button2.UseVisualStyleBackColor = true;
|
||||
this.button2.Click += new System.EventHandler(this.button2_Click);
|
||||
//
|
||||
// button3
|
||||
//
|
||||
this.button3.Location = new System.Drawing.Point(120, 21);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.Size = new System.Drawing.Size(93, 23);
|
||||
this.button3.TabIndex = 4;
|
||||
this.button3.Text = "중지";
|
||||
this.button3.UseVisualStyleBackColor = true;
|
||||
this.button3.Click += new System.EventHandler(this.button3_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(480, 520);
|
||||
this.ClientSize = new System.Drawing.Size(480, 595);
|
||||
this.Controls.Add(this.panelControl2);
|
||||
this.Controls.Add(this.panelControl1);
|
||||
this.Name = "MainForm";
|
||||
@@ -343,6 +380,8 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.listBoxControl_logViewer)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl2)).EndInit();
|
||||
this.panelControl2.ResumeLayout(false);
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.de_end.Properties.CalendarTimeProperties)).EndInit();
|
||||
@@ -356,7 +395,6 @@
|
||||
this.groupBox_데이터누적.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_PaymentType.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_MarketInfo.Properties)).EndInit();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@@ -386,6 +424,9 @@
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.Button button3;
|
||||
private System.Windows.Forms.Button button2;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private System.Windows.Forms.Button bt_ScheduleStop;
|
||||
private System.Windows.Forms.Button bt_ScheduleStart;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using Million;
|
||||
using Million.Data;
|
||||
using Million.DbManagement;
|
||||
using Million.Manager;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
@@ -16,14 +17,19 @@ namespace DataSaver
|
||||
//public static string accessKey = "4jfMUL3lpwJ5GQSszm3rPp5M47tD8ssfIGew2dDb";
|
||||
//public static string secretKey = "iAasVxQt8CyADjzXaAZiF5VZXTZPdElJOP4m97Bz";
|
||||
bool flag = false;
|
||||
int hours = 0;
|
||||
Thread tickThread;
|
||||
System.Timers.Timer timer = null;
|
||||
string exchangedData = "";
|
||||
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//CommonProperty.UpbitApi = new Million.WebMangement.Upbit.UpbitAPI(accessKey, secretKey);
|
||||
|
||||
InitForm();
|
||||
InitForm();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -34,32 +40,22 @@ namespace DataSaver
|
||||
// 거래소 정보 콤보박스 초기화
|
||||
comboBoxEdit_ExchangePlace.Properties.Items.Clear();
|
||||
// Million으로부터 거래소 정보 가져오기
|
||||
var exchangePlaceNames = Enum.GetNames(enumType: typeof(Million.CommonProperty.ExchangePlace));
|
||||
comboBoxEdit_ExchangePlace.Properties.Items.AddRange(exchangePlaceNames);
|
||||
|
||||
|
||||
comboBoxEdit_ExchangePlace.Properties.Items.AddRange(InitManager.GetMarketList());
|
||||
|
||||
// 종목 타입 설정
|
||||
comboBoxEdit_PaymentType.Properties.Items.AddRange(Enum.GetNames(enumType: typeof(Million.CommonProperty.PaymentType)));
|
||||
comboBoxEdit_PaymentType.Properties.Items.AddRange(InitManager.GetPaymentList());
|
||||
comboBoxEdit_PaymentType.SelectedIndex = 0;
|
||||
|
||||
// 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.DbConnectionMarket, createTableSql);
|
||||
}
|
||||
|
||||
/////TODO 임시로 Upbit 우선순위 설정
|
||||
comboBoxEdit_ExchangePlace.SelectedIndex = 0;
|
||||
|
||||
InitManager.InitFunc(comboBoxEdit_ExchangePlace.Text, Million.CommonProperty.PaymentType.KRW);
|
||||
|
||||
for (int i = 0; i < checkedListBox1.Items.Count; i++)
|
||||
{
|
||||
checkedListBox1.SetItemChecked(i, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -71,15 +67,18 @@ namespace DataSaver
|
||||
{
|
||||
// DB 종목(Market) 정보 가져오기
|
||||
Million.DbManagement.DbServiceFunctions.GetMarketTable_FromDB(comboBoxEdit_ExchangePlace.SelectedItem.ToString());
|
||||
updateMarketTableOfPlace();
|
||||
|
||||
var placeType = (CommonProperty.ExchangePlace)Enum.Parse(typeof(CommonProperty.ExchangePlace), comboBoxEdit_ExchangePlace.SelectedItem.ToString());
|
||||
var paymentType = (CommonProperty.PaymentType)Enum.Parse(typeof(CommonProperty.PaymentType), comboBoxEdit_PaymentType.SelectedItem.ToString());
|
||||
InitManager.UpdateMarketTableOfPlace(placeType, paymentType);
|
||||
|
||||
//초창기 생성시에 데이터가 없음으로 Update이 후 재 처리
|
||||
if(CommonProperty.selectedMarketOfPlaceList == null || CommonProperty.selectedMarketOfPlaceList.Count == 0)
|
||||
if (CommonProperty.selectedMarketOfPlaceList == null || CommonProperty.selectedMarketOfPlaceList.Count == 0)
|
||||
Million.DbManagement.DbServiceFunctions.GetMarketTable_FromDB(comboBoxEdit_ExchangePlace.SelectedItem.ToString());
|
||||
|
||||
// 데이터 입력
|
||||
var marketList = CommonProperty.selectedMarketOfPlaceList;
|
||||
comboBoxEdit_MarketInfo.Properties.Items.AddRange(marketList.Select(t => t.CoinName).ToList());
|
||||
comboBoxEdit_MarketInfo.Properties.Items.AddRange(marketList.Select(t => t.CoinName).ToList());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -89,8 +88,9 @@ namespace DataSaver
|
||||
/// <param name="e"></param>
|
||||
private void button_AllMarketDataAcc_Click(object sender, EventArgs e)
|
||||
{
|
||||
exchangedData = comboBoxEdit_ExchangePlace.SelectedItem.ToString();
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
SetCandleData(comboBoxEdit_ExchangePlace.SelectedItem.ToString(), dbMarketDataList);
|
||||
SetCandleData(exchangedData, dbMarketDataList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -101,7 +101,7 @@ namespace DataSaver
|
||||
private void button_SelectedMarketDataAcc_Click(object sender, EventArgs e)
|
||||
{
|
||||
//Create
|
||||
if(!string.IsNullOrWhiteSpace(comboBoxEdit_PaymentType.SelectedItem?.ToString()) &&
|
||||
if (!string.IsNullOrWhiteSpace(comboBoxEdit_PaymentType.SelectedItem?.ToString()) &&
|
||||
!string.IsNullOrWhiteSpace(comboBoxEdit_MarketInfo.SelectedItem?.ToString())
|
||||
)
|
||||
{
|
||||
@@ -137,6 +137,7 @@ namespace DataSaver
|
||||
list.Add((int)data);
|
||||
}
|
||||
|
||||
// 거래량 제외 Hunter
|
||||
foreach (var item in list)
|
||||
{
|
||||
var recentlyDbDataList = Million.DbManagement.DbServiceFunctions.GetOldNewDataList_FromDB
|
||||
@@ -144,6 +145,17 @@ namespace DataSaver
|
||||
|
||||
Million.DbManagement.DbServiceFunctions.SetCandleData(placeName, type, recentlyDbDataList, (CommonProperty.MCandleTimeType)item);
|
||||
}
|
||||
|
||||
//거래량 포함 Hunter
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
var recentlyDbDataList = Million.DbManagement.DbServiceFunctions.GetOldNewDataList_FromDB_All
|
||||
(marketList, placeName, (CommonProperty.MCandleTimeType)item);
|
||||
|
||||
Million.DbManagement.DbServiceFunctions.SetCandleData_All(placeName, type, recentlyDbDataList, (CommonProperty.MCandleTimeType)item);
|
||||
}
|
||||
|
||||
MessageBox.Show("Completed Set Candle Data");
|
||||
}
|
||||
|
||||
@@ -162,67 +174,17 @@ namespace DataSaver
|
||||
foreach (var item in marketNameList)
|
||||
sqlQuery += Million.DbManagement.DbServiceFunctions.CreateMarketTable_ToDB(item);
|
||||
|
||||
sqlQuery += Million.DbManagement.DbServiceFunctions.CreateMarketTable_ToDB_All();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(sqlQuery))
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 선택한 거래소의 종목(Market) 업데이트
|
||||
/// </summary>
|
||||
private void updateMarketTableOfPlace()
|
||||
{
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
|
||||
//거래소 가져오기
|
||||
var placeIndex = comboBoxEdit_ExchangePlace.SelectedIndex;
|
||||
CommonProperty.recentlyMarketOfPlaceList = new List<MarketData>();
|
||||
|
||||
switch (placeIndex)
|
||||
{
|
||||
case (int)CommonProperty.ExchangePlace.Upbit:
|
||||
CommonProperty.recentlyMarketOfPlaceList = CommonProperty.UpbitApi.GetMarketDatas();
|
||||
|
||||
break;
|
||||
//case (int)CommonProperty.ExchangePlace.Bithumb:
|
||||
// marketList = Million.DbManagement.DbServiceFunctions.GetMarketTable_FromDB(
|
||||
// comboBoxEdit_ExchangePlace.SelectedItem.ToString());
|
||||
// break;
|
||||
}
|
||||
|
||||
// 비교
|
||||
// insert (신규)
|
||||
var insertData = new List<MarketData>();
|
||||
|
||||
var sqlQuery = "";
|
||||
|
||||
var insertDatasss = CommonProperty.recentlyMarketOfPlaceList
|
||||
.Where(x => dbMarketDataList.Count(s => x.CoinFullName == s.CoinFullName) == 0).ToList();
|
||||
|
||||
|
||||
//var insertDatas = CommonProperty.recentlyMarketOfPlaceList.Except(dbMarketDataList).ToList();
|
||||
|
||||
|
||||
foreach (var data in CommonProperty.recentlyMarketOfPlaceList)
|
||||
{
|
||||
if (!dbMarketDataList.Any(t => t.CoinFullName == data.CoinFullName))
|
||||
sqlQuery += string.Format(
|
||||
"INSERT INTO [dbo].[{0}]([CoinFullName], [ExchangePlace], [KorName], [CoinName], [Payment], [IsValid]) VALUES ('{1}','{2}','{3}','{4}','{5}',{6})",
|
||||
comboBoxEdit_ExchangePlace.SelectedItem, data.CoinFullName,
|
||||
data.ExchangePlace, data.KorName, data.CoinName, data.Payment, 1);
|
||||
}
|
||||
|
||||
foreach (var data in dbMarketDataList)
|
||||
{
|
||||
if (!CommonProperty.recentlyMarketOfPlaceList.Any(t => t.CoinFullName == data.CoinFullName) && data.IsValid)
|
||||
sqlQuery += string.Format(
|
||||
"UPDATE [dbo].[{0}] SET IsValid = 0 WHERE [CoinFullName] = '{1}'",
|
||||
comboBoxEdit_ExchangePlace.SelectedItem,
|
||||
data.CoinFullName);
|
||||
}
|
||||
if(!string.IsNullOrWhiteSpace(sqlQuery))
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionMarket, sqlQuery);
|
||||
}
|
||||
/// <summary>
|
||||
/// Delete 기능 추가
|
||||
/// </summary>
|
||||
@@ -233,7 +195,7 @@ namespace DataSaver
|
||||
var placeName = comboBoxEdit_ExchangePlace.SelectedItem.ToString();
|
||||
CreateTableOfMarket(placeName);
|
||||
Million.DbManagement.DbServiceFunctions.GetMarketTable_FromDB(placeName);
|
||||
|
||||
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(de_start.Text))
|
||||
@@ -245,21 +207,21 @@ namespace DataSaver
|
||||
|
||||
var startDateTime = Convert.ToDateTime(de_start.Text).ToString("yyyy-MM-dd 00:00:00");
|
||||
var endDateTime = Convert.ToDateTime(de_end.Text).ToString("yyyy-MM-dd 00:00:00");
|
||||
|
||||
|
||||
var sqlQuery = "";
|
||||
var count = 0;
|
||||
foreach (var item in dbMarketDataList)
|
||||
{
|
||||
{
|
||||
sqlQuery += string.Format("DELETE FROM [{0}].[dbo].[{1}] WHERE [DateTime] >= '{2}' AND [DateTime] <= '{3}';", placeName, item.CoinFullName, startDateTime, endDateTime);
|
||||
count++;
|
||||
if (count % 50 == 0)
|
||||
{
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
sqlQuery = "";
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(sqlQuery)) Million.DbManagement.DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
if (!string.IsNullOrWhiteSpace(sqlQuery)) Million.DbManagement.DBConnection.QueryUpdateExecuter(CommonProperty.DbConnectionStr + placeName, sqlQuery);
|
||||
|
||||
|
||||
MessageBox.Show("기간 삭제 완료");
|
||||
@@ -296,7 +258,7 @@ namespace DataSaver
|
||||
DbServiceFunctions.GetMarketTable_FromDB("Upbit", "KRW");
|
||||
|
||||
// Result Data DB에 생성
|
||||
Million.DbManagement.DBConnection.QueryUpdateExcuter
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionResultData, DbServiceFunctions.CreateVerifyTickerDataTableQuery());
|
||||
|
||||
//market List
|
||||
@@ -306,50 +268,46 @@ namespace DataSaver
|
||||
|
||||
//var date = DateTime.Now;
|
||||
//var hour = date.Hour;
|
||||
|
||||
|
||||
var list = new List<Dictionary<string, object>>();
|
||||
var saveFlag = true;
|
||||
while (flag)
|
||||
{
|
||||
var date = DateTime.Now;
|
||||
var tickerList = CommonProperty.UpbitApi.GetTickerList(coinFullNameList);
|
||||
var dic = new Dictionary<string, object>();
|
||||
var dateData = tickerList[0].DateTime;
|
||||
|
||||
foreach (var item in coinFullNameList)
|
||||
{
|
||||
dic[item] = 0;
|
||||
}
|
||||
|
||||
if (tickerList.Count != 0)
|
||||
{
|
||||
foreach (var item in tickerList)
|
||||
{
|
||||
dic["CoinFullName"] = item.CoinFullName;
|
||||
dic["Price"] = item.TradePrice;
|
||||
dic["DateTime"] = item.DateTime;
|
||||
}
|
||||
var dic = new Dictionary<string, object>();
|
||||
var ticker = tickerList.FirstOrDefault(t => t.CoinFullName == item);
|
||||
dic["CoinFullName"] = item;
|
||||
dic["EndValue"] = ticker.TradePrice;
|
||||
dic["DateTime"] = ticker.DateTime;
|
||||
list.Add(dic);
|
||||
}
|
||||
|
||||
if(date.Minute == 0 && saveFlag)
|
||||
if (date.Minute % 10 == 0 && saveFlag)
|
||||
{
|
||||
list = list.OrderBy(t => ((DateTime)t["DateTime"])).ToList();
|
||||
|
||||
var beforeDate = date.AddHours(-1);
|
||||
beforeDate = beforeDate.AddMinutes(-1 * beforeDate.Minute);
|
||||
var beforeDate = date.AddMinutes(-10);
|
||||
beforeDate = beforeDate.AddSeconds(-1 * beforeDate.Second);
|
||||
beforeDate = beforeDate.AddMilliseconds(-1 * beforeDate.Millisecond);
|
||||
|
||||
var recentlyDate = date.AddMinutes(-1 * date.Minute);
|
||||
recentlyDate = recentlyDate.AddSeconds(-1 * date.Second);
|
||||
var recentlyDate = date.AddSeconds(-1 * date.Second);
|
||||
recentlyDate = recentlyDate.AddMilliseconds(-1 * date.Millisecond);
|
||||
|
||||
|
||||
var dicList = list.Where(t => ((DateTime)t["DateTime"]) >= beforeDate && ((DateTime)t["DateTime"]) < recentlyDate).ToList();
|
||||
DBConnection.QueryInsertExcuter_VerifyTickerData(dicList, beforeDate);
|
||||
list.RemoveRange(0, dicList.Count);
|
||||
DBConnection.QueryInsertExecuter_VerifyTickerData(dicList, beforeDate);
|
||||
|
||||
foreach (var item in dicList)
|
||||
{
|
||||
list.Remove(item);
|
||||
}
|
||||
saveFlag = false;
|
||||
}
|
||||
else if(date.Minute == 1)
|
||||
else if (date.Minute % 10 != 0)
|
||||
{
|
||||
saveFlag = true;
|
||||
}
|
||||
@@ -361,18 +319,18 @@ namespace DataSaver
|
||||
// //insertDateTime = insertDateTime.AddSeconds(-1 * insertDateTime.Second);
|
||||
// //insertDateTime = insertDateTime.AddMilliseconds(-1 * insertDateTime.Millisecond);
|
||||
// //var dicList = list.Where(t => ((DateTime)t["DateTime"]).Hour == hour).ToList();
|
||||
// //DBConnection.QueryInsertExcuter_VerifyTickerData(dicList, insertDateTime);
|
||||
// //DBConnection.QueryInsertExecuter_VerifyTickerData(dicList, insertDateTime);
|
||||
// ////clear 작업
|
||||
// //list = list.OrderBy(t => t["DateTime"]).ToList();
|
||||
// //var index = list.FindLastIndex(t => ((DateTime)t["DateTime"]).Hour == hour);
|
||||
|
||||
// //list.RemoveRange(0, index + 1);
|
||||
|
||||
|
||||
// //date = DateTime.Now;
|
||||
// //hour = date.Hour;
|
||||
//}
|
||||
|
||||
Thread.Sleep(500);
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -389,5 +347,64 @@ namespace DataSaver
|
||||
if (tickThread.IsAlive) tickThread.Abort();
|
||||
MessageBox.Show("Ticker Thread Stop 성공");
|
||||
}
|
||||
|
||||
private void bt_ScheduleStart_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (timer != null) return;
|
||||
//시작 시 button 모두 disabled
|
||||
button1.Enabled = false;
|
||||
button2.Enabled = false;
|
||||
button3.Enabled = false;
|
||||
bt_ScheduleStart.Enabled = false;
|
||||
bt_ScheduleStop.Enabled = true;
|
||||
button_AllMarketDataAcc.Enabled = false;
|
||||
button_SelectedMarketDataAcc.Enabled = false;
|
||||
deletebtn.Enabled = false;
|
||||
|
||||
exchangedData = comboBoxEdit_ExchangePlace.SelectedItem.ToString();
|
||||
|
||||
var runAt = 1;
|
||||
var min = 60 - DateTime.Now.Minute;
|
||||
var sec = 60 - DateTime.Now.Second;
|
||||
hours = (24 - (+1)) + runAt;
|
||||
var interval = ((hours * 60 * 60) + (min * 60) + sec) * 1000;
|
||||
timer = new System.Timers.Timer();
|
||||
timer.Interval = interval;
|
||||
timer.Elapsed += new System.Timers.ElapsedEventHandler(ScheduleFun);
|
||||
timer.Start();
|
||||
}
|
||||
|
||||
private void bt_ScheduleStop_Click(object sender, EventArgs e)
|
||||
{
|
||||
//멈춤 시 button 모두 enabled
|
||||
button1.Enabled = true;
|
||||
button2.Enabled = true;
|
||||
button3.Enabled = true;
|
||||
bt_ScheduleStart.Enabled = true;
|
||||
bt_ScheduleStop.Enabled = false;
|
||||
button_AllMarketDataAcc.Enabled = true;
|
||||
button_SelectedMarketDataAcc.Enabled = true;
|
||||
deletebtn.Enabled = true;
|
||||
|
||||
timer.Stop();
|
||||
timer.Dispose();
|
||||
timer = null;
|
||||
}
|
||||
/// <summary>
|
||||
/// Timer 함수
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ScheduleFun(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
if (hours != 24)
|
||||
{
|
||||
hours = 24;
|
||||
timer.Interval = hours * 60 * 60 * 1000;
|
||||
}
|
||||
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
SetCandleData(exchangedData, dbMarketDataList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,111 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{D9DE0F1B-BA15-421E-A263-6859F3D5A3BC}</ProjectGuid>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>DataSaver</RootNamespace>
|
||||
<AssemblyName>DataSaver</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<UseWPF>true</UseWPF>
|
||||
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="DevExpress.Drawing.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v22.2.Core, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v22.2.Core, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.Linq" />
|
||||
<Reference Include="System.Runtime.Remoting" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="UIAutomationClient" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
<None Include="..\.editorconfig">
|
||||
<Link>.editorconfig</Link>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="FileManagerment\" />
|
||||
<Folder Include="SaveData\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="log4net" Version="2.0.12" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Remove="SaverMainForm.cs" />
|
||||
<Compile Remove="SaverMainForm.Designer.cs" />
|
||||
<EmbeddedResource Remove="SaverMainForm.resx" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
112
DataSaver/Million Saver.csproj.bak
Normal file
112
DataSaver/Million Saver.csproj.bak
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{D9DE0F1B-BA15-421E-A263-6859F3D5A3BC}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>DataSaver</RootNamespace>
|
||||
<AssemblyName>DataSaver</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.Linq" />
|
||||
<Reference Include="System.Runtime.Remoting" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="UIAutomationClient" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="FileManagerment\" />
|
||||
<Folder Include="SaveData\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
9
DataSaver/Million Saver.csproj.user
Normal file
9
DataSaver/Million Saver.csproj.user
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
<ItemGroup>
|
||||
<Compile Update="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||
// 이러한 특성 값을 변경하세요.
|
||||
[assembly: AssemblyTitle("DataSaver")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("DataSaver")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
[assembly: Guid("d9de0f1b-ba15-421e-a263-6859f3d5a3bc")]
|
||||
|
||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
//
|
||||
// 주 버전
|
||||
// 부 버전
|
||||
// 빌드 번호
|
||||
// 수정 버전
|
||||
//
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||
// 기본값으로 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,3 +0,0 @@
|
||||
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
|
||||
3
DataSaver/Properties/licenses.licx.bak
Normal file
3
DataSaver/Properties/licenses.licx.bak
Normal file
@@ -0,0 +1,3 @@
|
||||
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="log4net" version="2.0.12" targetFramework="net48" />
|
||||
</packages>
|
||||
1
Million Buyer/.vs/Million Buyer.csproj.dtbcache.json
Normal file
1
Million Buyer/.vs/Million Buyer.csproj.dtbcache.json
Normal file
File diff suppressed because one or more lines are too long
1571
Million Buyer/MainForm.Designer.cs
generated
1571
Million Buyer/MainForm.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@@ -26,36 +26,36 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
@@ -120,4 +120,7 @@
|
||||
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>32</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -1,180 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{7C6E28D6-A9CA-465B-88F2-1C3BA33B74BE}</ProjectGuid>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million_Buyer</RootNamespace>
|
||||
<AssemblyName>Million Buyer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraLayout.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.6.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.6.0.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SubForm\IndicatorLoad.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorLoad.Designer.cs">
|
||||
<DependentUpon>IndicatorLoad.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="SubForm\IndicatorLoad.resx">
|
||||
<DependentUpon>IndicatorLoad.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.3.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.3.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.3.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.3.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="6.12.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Logging" Version="6.12.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.12.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.12.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="System.Collections.Immutable" Version="7.0.0" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="7.0.2" />
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
181
Million Buyer/Million Buyer.csproj.bak
Normal file
181
Million Buyer/Million Buyer.csproj.bak
Normal file
@@ -0,0 +1,181 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{7C6E28D6-A9CA-465B-88F2-1C3BA33B74BE}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million_Buyer</RootNamespace>
|
||||
<AssemblyName>Million Buyer</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraLayout.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.3.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.6.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.6.0.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SubForm\IndicatorLoad.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorLoad.Designer.cs">
|
||||
<DependentUpon>IndicatorLoad.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="SubForm\IndicatorLoad.resx">
|
||||
<DependentUpon>IndicatorLoad.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
</Project>
|
||||
12
Million Buyer/Million Buyer.csproj.user
Normal file
12
Million Buyer/Million Buyer.csproj.user
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
<ItemGroup>
|
||||
<Compile Update="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorLoad.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||
// 이러한 특성 값을 변경하세요.
|
||||
[assembly: AssemblyTitle("Million Buyer")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Million Buyer")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
[assembly: Guid("7c6e28d6-a9ca-465b-88f2-1c3ba33b74be")]
|
||||
|
||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
//
|
||||
// 주 버전
|
||||
// 부 버전
|
||||
// 빌드 번호
|
||||
// 수정 버전
|
||||
//
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||
// 기본값으로 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
2
Million Buyer/Properties/licenses.licx.bak
Normal file
2
Million Buyer/Properties/licenses.licx.bak
Normal file
@@ -0,0 +1,2 @@
|
||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
14
Million Buyer/SubForm/IndicatorLoad.Designer.cs
generated
14
Million Buyer/SubForm/IndicatorLoad.Designer.cs
generated
@@ -35,6 +35,7 @@ namespace Million_Buyer.SubForm
|
||||
this.SavedDateTime = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.BuyRegularExpression = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.SellRegularExpression = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.SellExceptionRegularExpression = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.bt_Cancel = new System.Windows.Forms.Button();
|
||||
this.bt_Ok = new System.Windows.Forms.Button();
|
||||
this.bt_Delete = new System.Windows.Forms.Button();
|
||||
@@ -49,7 +50,8 @@ namespace Million_Buyer.SubForm
|
||||
this.NameField,
|
||||
this.SavedDateTime,
|
||||
this.BuyRegularExpression,
|
||||
this.SellRegularExpression});
|
||||
this.SellRegularExpression,
|
||||
this.SellExceptionRegularExpression});
|
||||
this.tl_Indicator.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.tl_Indicator.Location = new System.Drawing.Point(12, 12);
|
||||
this.tl_Indicator.Name = "tl_Indicator";
|
||||
@@ -103,6 +105,14 @@ namespace Million_Buyer.SubForm
|
||||
this.SellRegularExpression.Visible = true;
|
||||
this.SellRegularExpression.VisibleIndex = 4;
|
||||
//
|
||||
// SellExceptionRegularExpression
|
||||
//
|
||||
this.SellExceptionRegularExpression.Caption = "SellExceptionReg";
|
||||
this.SellExceptionRegularExpression.FieldName = "SellExceptionRegularExpression";
|
||||
this.SellExceptionRegularExpression.Name = "SellExceptionRegularExpression";
|
||||
this.SellExceptionRegularExpression.Visible = true;
|
||||
this.SellExceptionRegularExpression.VisibleIndex = 5;
|
||||
//
|
||||
// bt_Cancel
|
||||
//
|
||||
this.bt_Cancel.Location = new System.Drawing.Point(655, 415);
|
||||
@@ -141,6 +151,7 @@ namespace Million_Buyer.SubForm
|
||||
this.bt_Modify.TabIndex = 16;
|
||||
this.bt_Modify.Text = "Modify";
|
||||
this.bt_Modify.UseVisualStyleBackColor = true;
|
||||
this.bt_Modify.Click += new System.EventHandler(this.bt_Modify_Click);
|
||||
//
|
||||
// IndicatorLoadForm
|
||||
//
|
||||
@@ -171,5 +182,6 @@ namespace Million_Buyer.SubForm
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn SellRegularExpression;
|
||||
private System.Windows.Forms.Button bt_Delete;
|
||||
private System.Windows.Forms.Button bt_Modify;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn SellExceptionRegularExpression;
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ namespace Million_Buyer.SubForm
|
||||
{
|
||||
tl_Indicator.ClearNodes();
|
||||
|
||||
datas = DBConnection.QueryGetExcuter_RealTimeIndicator();
|
||||
datas = DBConnection.QueryGetExecuter_RealTimeIndicator();
|
||||
|
||||
if (datas.Count > 0)
|
||||
{
|
||||
@@ -41,7 +41,8 @@ namespace Million_Buyer.SubForm
|
||||
item["Name"],
|
||||
((DateTime)item["SavedDateTime"]).ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
item["BuyRegularExpression"],
|
||||
item["SellRegularExpression"]
|
||||
item["SellRegularExpression"],
|
||||
item["SellExceptionRegularExpression"]
|
||||
}, null);
|
||||
}
|
||||
tl_Indicator.EndUnboundLoad();
|
||||
@@ -85,9 +86,14 @@ namespace Million_Buyer.SubForm
|
||||
private void bt_Delete_Click(object sender, EventArgs e)
|
||||
{
|
||||
var strId = tl_Indicator.Selection.First()["Id"].ToString();
|
||||
DBConnection.QueryUpdateExcuter(CommonProperty.DbConnectionResultData,
|
||||
DBConnection.QueryUpdateExecuter(CommonProperty.DbConnectionResultData,
|
||||
"DELETE FROM [ResultData].[dbo].[RealTimeIndicator] WHERE Id = " + strId);
|
||||
Init();
|
||||
}
|
||||
|
||||
private void bt_Modify_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.CodeAnalysis.Analyzers" version="3.3.3" targetFramework="net48" developmentDependency="true" />
|
||||
<package id="Microsoft.CodeAnalysis.Common" version="4.3.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp" version="4.3.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp.Scripting" version="4.3.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.Scripting.Common" version="4.3.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.JsonWebTokens" version="6.12.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.Logging" version="6.12.0" targetFramework="net48" />
|
||||
<package id="Microsoft.IdentityModel.Tokens" version="6.12.0" targetFramework="net48" />
|
||||
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Collections.Immutable" version="6.0.0" targetFramework="net48" />
|
||||
<package id="System.IdentityModel.Tokens.Jwt" version="6.12.0" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Reflection.Metadata" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
|
||||
<package id="System.Text.Encoding.CodePages" version="6.0.0" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
</packages>
|
||||
1
Million Hunter/.vs/Million Hunter.csproj.dtbcache.json
Normal file
1
Million Hunter/.vs/Million Hunter.csproj.dtbcache.json
Normal file
File diff suppressed because one or more lines are too long
370
Million Hunter/HunterMainForm.Designer.cs
generated
370
Million Hunter/HunterMainForm.Designer.cs
generated
@@ -32,9 +32,15 @@ namespace Million
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.comboBoxEdit_IndicatorSelection = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox11 = new System.Windows.Forms.GroupBox();
|
||||
this.tb_SearchResultDataName = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.bt_InsertList = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.bt_CheckedList = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.bt_CalculateList = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_ToSellList = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_SetupEdit = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton1 = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.bt_AllClear = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_SetupRefresh = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_SetupDelete = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_TobuyList = new DevExpress.XtraEditors.SimpleButton();
|
||||
@@ -54,6 +60,8 @@ namespace Million
|
||||
this.treeListColumn2 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.treeListColumn3 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.groupBox6 = new System.Windows.Forms.GroupBox();
|
||||
this.rd_RealtimeHunter = new System.Windows.Forms.RadioButton();
|
||||
this.rd_Hunter = new System.Windows.Forms.RadioButton();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tb_BuyerIndicatorName = new System.Windows.Forms.TextBox();
|
||||
this.bt_InsertBuyerIndicator = new DevExpress.XtraEditors.SimpleButton();
|
||||
@@ -68,10 +76,25 @@ namespace Million
|
||||
this.splitContainer_RegularExpression = new System.Windows.Forms.SplitContainer();
|
||||
this.groupBox8 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox9 = new System.Windows.Forms.GroupBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.textEdit_SellExceptionRegularExpression = new DevExpress.XtraEditors.TextEdit();
|
||||
this.groupBox10 = new System.Windows.Forms.GroupBox();
|
||||
this.cb_StarValueLowOverlapUp = new System.Windows.Forms.CheckBox();
|
||||
this.cb_DownBeforeValueFlag = new System.Windows.Forms.CheckBox();
|
||||
this.cb_IncludeClearIndicator = new System.Windows.Forms.CheckBox();
|
||||
this.cb_UpperMainIndi = new System.Windows.Forms.CheckBox();
|
||||
this.tb_MoneyVolCnt = new System.Windows.Forms.TextBox();
|
||||
this.groupBox12 = new System.Windows.Forms.GroupBox();
|
||||
this.tb_BigMoneyVolCnt = new System.Windows.Forms.TextBox();
|
||||
this.cb_BuyBigthanHighType = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||
this.cb_BigMoneyVolType = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||
this.ck_BigMoneyVol = new System.Windows.Forms.CheckBox();
|
||||
this.ck_BuyBigthanHighVal = new System.Windows.Forms.CheckBox();
|
||||
this.groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_IndicatorSelection.Properties)).BeginInit();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.groupBox11.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorSetup)).BeginInit();
|
||||
this.groupBox5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateEdit_EndDateTime.Properties.CalendarTimeProperties)).BeginInit();
|
||||
@@ -96,6 +119,11 @@ namespace Million
|
||||
this.splitContainer_RegularExpression.SuspendLayout();
|
||||
this.groupBox8.SuspendLayout();
|
||||
this.groupBox9.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellExceptionRegularExpression.Properties)).BeginInit();
|
||||
this.groupBox10.SuspendLayout();
|
||||
this.groupBox12.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.cb_BuyBigthanHighType.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.cb_BigMoneyVolType.Properties)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox1
|
||||
@@ -122,27 +150,83 @@ namespace Million
|
||||
//
|
||||
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox2.Controls.Add(this.groupBox11);
|
||||
this.groupBox2.Controls.Add(this.simpleButton_ToSellList);
|
||||
this.groupBox2.Controls.Add(this.simpleButton_SetupEdit);
|
||||
this.groupBox2.Controls.Add(this.simpleButton1);
|
||||
this.groupBox2.Controls.Add(this.simpleButton_SetupRefresh);
|
||||
this.groupBox2.Controls.Add(this.simpleButton_SetupDelete);
|
||||
this.groupBox2.Controls.Add(this.simpleButton_TobuyList);
|
||||
this.groupBox2.Controls.Add(this.panelControl_IndicatorSetup);
|
||||
this.groupBox2.Controls.Add(this.groupBox1);
|
||||
this.groupBox2.Location = new System.Drawing.Point(12, 91);
|
||||
this.groupBox2.Location = new System.Drawing.Point(12, 139);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(913, 393);
|
||||
this.groupBox2.Size = new System.Drawing.Size(913, 345);
|
||||
this.groupBox2.TabIndex = 0;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "조건 설정";
|
||||
//
|
||||
// groupBox11
|
||||
//
|
||||
this.groupBox11.Controls.Add(this.tb_SearchResultDataName);
|
||||
this.groupBox11.Controls.Add(this.label4);
|
||||
this.groupBox11.Controls.Add(this.bt_InsertList);
|
||||
this.groupBox11.Controls.Add(this.bt_CheckedList);
|
||||
this.groupBox11.Controls.Add(this.bt_CalculateList);
|
||||
this.groupBox11.Location = new System.Drawing.Point(226, 25);
|
||||
this.groupBox11.Name = "groupBox11";
|
||||
this.groupBox11.Size = new System.Drawing.Size(457, 53);
|
||||
this.groupBox11.TabIndex = 1;
|
||||
this.groupBox11.TabStop = false;
|
||||
this.groupBox11.Text = "List 계산";
|
||||
//
|
||||
// tb_SearchResultDataName
|
||||
//
|
||||
this.tb_SearchResultDataName.Location = new System.Drawing.Point(59, 23);
|
||||
this.tb_SearchResultDataName.Name = "tb_SearchResultDataName";
|
||||
this.tb_SearchResultDataName.Size = new System.Drawing.Size(105, 21);
|
||||
this.tb_SearchResultDataName.TabIndex = 6;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(13, 26);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(47, 12);
|
||||
this.label4.TabIndex = 7;
|
||||
this.label4.Text = "Name :";
|
||||
//
|
||||
// bt_InsertList
|
||||
//
|
||||
this.bt_InsertList.Location = new System.Drawing.Point(170, 16);
|
||||
this.bt_InsertList.Name = "bt_InsertList";
|
||||
this.bt_InsertList.Size = new System.Drawing.Size(89, 31);
|
||||
this.bt_InsertList.TabIndex = 3;
|
||||
this.bt_InsertList.Text = "List에 추가";
|
||||
this.bt_InsertList.Click += new System.EventHandler(this.bt_InsertList_Click);
|
||||
//
|
||||
// bt_CheckedList
|
||||
//
|
||||
this.bt_CheckedList.Location = new System.Drawing.Point(265, 16);
|
||||
this.bt_CheckedList.Name = "bt_CheckedList";
|
||||
this.bt_CheckedList.Size = new System.Drawing.Size(89, 31);
|
||||
this.bt_CheckedList.TabIndex = 4;
|
||||
this.bt_CheckedList.Text = "List 확인";
|
||||
this.bt_CheckedList.Click += new System.EventHandler(this.bt_CheckedList_Click);
|
||||
//
|
||||
// bt_CalculateList
|
||||
//
|
||||
this.bt_CalculateList.Location = new System.Drawing.Point(360, 16);
|
||||
this.bt_CalculateList.Name = "bt_CalculateList";
|
||||
this.bt_CalculateList.Size = new System.Drawing.Size(89, 31);
|
||||
this.bt_CalculateList.TabIndex = 5;
|
||||
this.bt_CalculateList.Text = "List 계산하기";
|
||||
this.bt_CalculateList.Click += new System.EventHandler(this.bt_CalculateList_Click);
|
||||
//
|
||||
// simpleButton_ToSellList
|
||||
//
|
||||
this.simpleButton_ToSellList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.simpleButton_ToSellList.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
|
||||
this.simpleButton_ToSellList.Appearance.Options.UseBackColor = true;
|
||||
this.simpleButton_ToSellList.Location = new System.Drawing.Point(807, 352);
|
||||
this.simpleButton_ToSellList.Location = new System.Drawing.Point(807, 304);
|
||||
this.simpleButton_ToSellList.Name = "simpleButton_ToSellList";
|
||||
this.simpleButton_ToSellList.Size = new System.Drawing.Size(97, 31);
|
||||
this.simpleButton_ToSellList.TabIndex = 2;
|
||||
@@ -154,35 +238,35 @@ namespace Million
|
||||
this.simpleButton_SetupEdit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.simpleButton_SetupEdit.Appearance.ForeColor = System.Drawing.Color.Blue;
|
||||
this.simpleButton_SetupEdit.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton_SetupEdit.Location = new System.Drawing.Point(469, 352);
|
||||
this.simpleButton_SetupEdit.Location = new System.Drawing.Point(469, 304);
|
||||
this.simpleButton_SetupEdit.Name = "simpleButton_SetupEdit";
|
||||
this.simpleButton_SetupEdit.Size = new System.Drawing.Size(97, 31);
|
||||
this.simpleButton_SetupEdit.TabIndex = 2;
|
||||
this.simpleButton_SetupEdit.Text = "수정";
|
||||
this.simpleButton_SetupEdit.Click += new System.EventHandler(this.simpleButton_SetupEdit_Click);
|
||||
//
|
||||
// simpleButton1
|
||||
// bt_AllClear
|
||||
//
|
||||
this.simpleButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.simpleButton1.Appearance.ForeColor = System.Drawing.Color.IndianRed;
|
||||
this.simpleButton1.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton1.Location = new System.Drawing.Point(469, 41);
|
||||
this.simpleButton1.Name = "simpleButton1";
|
||||
this.simpleButton1.Size = new System.Drawing.Size(97, 31);
|
||||
this.simpleButton1.TabIndex = 2;
|
||||
this.simpleButton1.Text = "테스트";
|
||||
this.simpleButton1.Click += new System.EventHandler(this.simpleButton1_Click);
|
||||
this.bt_AllClear.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.bt_AllClear.Appearance.ForeColor = System.Drawing.Color.Black;
|
||||
this.bt_AllClear.Appearance.Options.UseForeColor = true;
|
||||
this.bt_AllClear.Location = new System.Drawing.Point(340, 95);
|
||||
this.bt_AllClear.Name = "bt_AllClear";
|
||||
this.bt_AllClear.Size = new System.Drawing.Size(97, 31);
|
||||
this.bt_AllClear.TabIndex = 2;
|
||||
this.bt_AllClear.Text = "전체 초기화";
|
||||
this.bt_AllClear.Click += new System.EventHandler(this.simpleButton1_Click);
|
||||
//
|
||||
// simpleButton_SetupRefresh
|
||||
//
|
||||
this.simpleButton_SetupRefresh.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.simpleButton_SetupRefresh.Appearance.ForeColor = System.Drawing.Color.Teal;
|
||||
this.simpleButton_SetupRefresh.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton_SetupRefresh.Location = new System.Drawing.Point(801, 41);
|
||||
this.simpleButton_SetupRefresh.Location = new System.Drawing.Point(237, 95);
|
||||
this.simpleButton_SetupRefresh.Name = "simpleButton_SetupRefresh";
|
||||
this.simpleButton_SetupRefresh.Size = new System.Drawing.Size(97, 31);
|
||||
this.simpleButton_SetupRefresh.TabIndex = 2;
|
||||
this.simpleButton_SetupRefresh.Text = "초기화";
|
||||
this.simpleButton_SetupRefresh.Text = "조건 초기화";
|
||||
this.simpleButton_SetupRefresh.Click += new System.EventHandler(this.simpleButton_SetupRefresh_Click);
|
||||
//
|
||||
// simpleButton_SetupDelete
|
||||
@@ -190,7 +274,7 @@ namespace Million
|
||||
this.simpleButton_SetupDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.simpleButton_SetupDelete.Appearance.ForeColor = System.Drawing.Color.Red;
|
||||
this.simpleButton_SetupDelete.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton_SetupDelete.Location = new System.Drawing.Point(572, 352);
|
||||
this.simpleButton_SetupDelete.Location = new System.Drawing.Point(572, 304);
|
||||
this.simpleButton_SetupDelete.Name = "simpleButton_SetupDelete";
|
||||
this.simpleButton_SetupDelete.Size = new System.Drawing.Size(97, 31);
|
||||
this.simpleButton_SetupDelete.TabIndex = 2;
|
||||
@@ -202,7 +286,7 @@ namespace Million
|
||||
this.simpleButton_TobuyList.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.simpleButton_TobuyList.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128)))));
|
||||
this.simpleButton_TobuyList.Appearance.Options.UseBackColor = true;
|
||||
this.simpleButton_TobuyList.Location = new System.Drawing.Point(704, 352);
|
||||
this.simpleButton_TobuyList.Location = new System.Drawing.Point(704, 304);
|
||||
this.simpleButton_TobuyList.Name = "simpleButton_TobuyList";
|
||||
this.simpleButton_TobuyList.Size = new System.Drawing.Size(97, 31);
|
||||
this.simpleButton_TobuyList.TabIndex = 2;
|
||||
@@ -217,7 +301,7 @@ namespace Million
|
||||
this.panelControl_IndicatorSetup.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Flat;
|
||||
this.panelControl_IndicatorSetup.Location = new System.Drawing.Point(19, 83);
|
||||
this.panelControl_IndicatorSetup.Name = "panelControl_IndicatorSetup";
|
||||
this.panelControl_IndicatorSetup.Size = new System.Drawing.Size(885, 263);
|
||||
this.panelControl_IndicatorSetup.Size = new System.Drawing.Size(885, 215);
|
||||
this.panelControl_IndicatorSetup.TabIndex = 1;
|
||||
//
|
||||
// groupBox5
|
||||
@@ -279,7 +363,7 @@ namespace Million
|
||||
this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox3.Location = new System.Drawing.Point(0, 0);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(482, 217);
|
||||
this.groupBox3.Size = new System.Drawing.Size(482, 187);
|
||||
this.groupBox3.TabIndex = 0;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "구매 조건 조합";
|
||||
@@ -297,7 +381,7 @@ namespace Million
|
||||
this.treeList_BuySetupList.OptionsBehavior.Editable = false;
|
||||
this.treeList_BuySetupList.OptionsView.ShowIndicator = false;
|
||||
this.treeList_BuySetupList.OptionsView.ShowRoot = false;
|
||||
this.treeList_BuySetupList.Size = new System.Drawing.Size(476, 197);
|
||||
this.treeList_BuySetupList.Size = new System.Drawing.Size(476, 167);
|
||||
this.treeList_BuySetupList.TabIndex = 1;
|
||||
this.treeList_BuySetupList.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.treeList_BuySetupList_MouseDoubleClick);
|
||||
//
|
||||
@@ -336,7 +420,7 @@ namespace Million
|
||||
this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox4.Location = new System.Drawing.Point(0, 0);
|
||||
this.groupBox4.Name = "groupBox4";
|
||||
this.groupBox4.Size = new System.Drawing.Size(426, 217);
|
||||
this.groupBox4.Size = new System.Drawing.Size(426, 187);
|
||||
this.groupBox4.TabIndex = 0;
|
||||
this.groupBox4.TabStop = false;
|
||||
this.groupBox4.Text = "판매 조건 조합";
|
||||
@@ -354,7 +438,7 @@ namespace Million
|
||||
this.treeList_SellSetupList.OptionsBehavior.Editable = false;
|
||||
this.treeList_SellSetupList.OptionsView.ShowIndicator = false;
|
||||
this.treeList_SellSetupList.OptionsView.ShowRoot = false;
|
||||
this.treeList_SellSetupList.Size = new System.Drawing.Size(420, 197);
|
||||
this.treeList_SellSetupList.Size = new System.Drawing.Size(420, 167);
|
||||
this.treeList_SellSetupList.TabIndex = 2;
|
||||
this.treeList_SellSetupList.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.treeList_BuySetupList_MouseDoubleClick);
|
||||
//
|
||||
@@ -391,18 +475,42 @@ namespace Million
|
||||
//
|
||||
this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox6.Controls.Add(this.rd_RealtimeHunter);
|
||||
this.groupBox6.Controls.Add(this.rd_Hunter);
|
||||
this.groupBox6.Controls.Add(this.label1);
|
||||
this.groupBox6.Controls.Add(this.tb_BuyerIndicatorName);
|
||||
this.groupBox6.Controls.Add(this.bt_InsertBuyerIndicator);
|
||||
this.groupBox6.Controls.Add(this.simpleButton_SaveTest);
|
||||
this.groupBox6.Controls.Add(this.simpleButton_CalcurateData);
|
||||
this.groupBox6.Controls.Add(this.simpleButton_ViewResultData);
|
||||
this.groupBox6.Location = new System.Drawing.Point(12, 765);
|
||||
this.groupBox6.Location = new System.Drawing.Point(12, 735);
|
||||
this.groupBox6.Name = "groupBox6";
|
||||
this.groupBox6.Size = new System.Drawing.Size(913, 62);
|
||||
this.groupBox6.TabIndex = 0;
|
||||
this.groupBox6.TabStop = false;
|
||||
this.groupBox6.Text = "결과 보기";
|
||||
this.groupBox6.Text = "ETC";
|
||||
//
|
||||
// rd_RealtimeHunter
|
||||
//
|
||||
this.rd_RealtimeHunter.AutoSize = true;
|
||||
this.rd_RealtimeHunter.Checked = true;
|
||||
this.rd_RealtimeHunter.Location = new System.Drawing.Point(84, 28);
|
||||
this.rd_RealtimeHunter.Name = "rd_RealtimeHunter";
|
||||
this.rd_RealtimeHunter.Size = new System.Drawing.Size(112, 16);
|
||||
this.rd_RealtimeHunter.TabIndex = 12;
|
||||
this.rd_RealtimeHunter.TabStop = true;
|
||||
this.rd_RealtimeHunter.Text = "Realtime Hunter";
|
||||
this.rd_RealtimeHunter.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rd_Hunter
|
||||
//
|
||||
this.rd_Hunter.AutoSize = true;
|
||||
this.rd_Hunter.Location = new System.Drawing.Point(19, 28);
|
||||
this.rd_Hunter.Name = "rd_Hunter";
|
||||
this.rd_Hunter.Size = new System.Drawing.Size(59, 16);
|
||||
this.rd_Hunter.TabIndex = 11;
|
||||
this.rd_Hunter.Text = "Hunter";
|
||||
this.rd_Hunter.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
@@ -464,7 +572,7 @@ namespace Million
|
||||
//
|
||||
this.groupBox7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox7.Controls.Add(this.simpleButton_SavedResultViewer);
|
||||
this.groupBox7.Location = new System.Drawing.Point(741, 23);
|
||||
this.groupBox7.Location = new System.Drawing.Point(12, 81);
|
||||
this.groupBox7.Name = "groupBox7";
|
||||
this.groupBox7.Size = new System.Drawing.Size(181, 52);
|
||||
this.groupBox7.TabIndex = 0;
|
||||
@@ -496,16 +604,16 @@ namespace Million
|
||||
// splitContainer_SetupPanel.Panel2
|
||||
//
|
||||
this.splitContainer_SetupPanel.Panel2.Controls.Add(this.groupBox4);
|
||||
this.splitContainer_SetupPanel.Size = new System.Drawing.Size(912, 217);
|
||||
this.splitContainer_SetupPanel.Size = new System.Drawing.Size(912, 187);
|
||||
this.splitContainer_SetupPanel.SplitterDistance = 482;
|
||||
this.splitContainer_SetupPanel.TabIndex = 1;
|
||||
//
|
||||
// textEdit_SellRegularExpression
|
||||
//
|
||||
this.textEdit_SellRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textEdit_SellRegularExpression.Location = new System.Drawing.Point(3, 17);
|
||||
this.textEdit_SellRegularExpression.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.textEdit_SellRegularExpression.Location = new System.Drawing.Point(54, 17);
|
||||
this.textEdit_SellRegularExpression.Name = "textEdit_SellRegularExpression";
|
||||
this.textEdit_SellRegularExpression.Size = new System.Drawing.Size(420, 20);
|
||||
this.textEdit_SellRegularExpression.Size = new System.Drawing.Size(137, 20);
|
||||
this.textEdit_SellRegularExpression.TabIndex = 0;
|
||||
//
|
||||
// textEdit_BuyRegularExpression
|
||||
@@ -520,7 +628,7 @@ namespace Million
|
||||
//
|
||||
this.splitContainer_RegularExpression.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.splitContainer_RegularExpression.Location = new System.Drawing.Point(10, 714);
|
||||
this.splitContainer_RegularExpression.Location = new System.Drawing.Point(10, 684);
|
||||
this.splitContainer_RegularExpression.Name = "splitContainer_RegularExpression";
|
||||
//
|
||||
// splitContainer_RegularExpression.Panel1
|
||||
@@ -547,6 +655,9 @@ namespace Million
|
||||
//
|
||||
// groupBox9
|
||||
//
|
||||
this.groupBox9.Controls.Add(this.label3);
|
||||
this.groupBox9.Controls.Add(this.label2);
|
||||
this.groupBox9.Controls.Add(this.textEdit_SellExceptionRegularExpression);
|
||||
this.groupBox9.Controls.Add(this.textEdit_SellRegularExpression);
|
||||
this.groupBox9.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.groupBox9.Location = new System.Drawing.Point(0, 0);
|
||||
@@ -556,27 +667,171 @@ namespace Million
|
||||
this.groupBox9.TabStop = false;
|
||||
this.groupBox9.Text = "판매 조건 조합";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(215, 22);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(57, 12);
|
||||
this.label3.TabIndex = 3;
|
||||
this.label3.Text = "손절 조건";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(19, 20);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(29, 12);
|
||||
this.label2.TabIndex = 2;
|
||||
this.label2.Text = "메인";
|
||||
//
|
||||
// textEdit_SellExceptionRegularExpression
|
||||
//
|
||||
this.textEdit_SellExceptionRegularExpression.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.textEdit_SellExceptionRegularExpression.Location = new System.Drawing.Point(278, 17);
|
||||
this.textEdit_SellExceptionRegularExpression.Name = "textEdit_SellExceptionRegularExpression";
|
||||
this.textEdit_SellExceptionRegularExpression.Size = new System.Drawing.Size(137, 20);
|
||||
this.textEdit_SellExceptionRegularExpression.TabIndex = 1;
|
||||
//
|
||||
// groupBox10
|
||||
//
|
||||
this.groupBox10.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox10.Controls.Add(this.tb_MoneyVolCnt);
|
||||
this.groupBox10.Controls.Add(this.cb_StarValueLowOverlapUp);
|
||||
this.groupBox10.Controls.Add(this.cb_DownBeforeValueFlag);
|
||||
this.groupBox10.Controls.Add(this.cb_IncludeClearIndicator);
|
||||
this.groupBox10.Controls.Add(this.cb_UpperMainIndi);
|
||||
this.groupBox10.Location = new System.Drawing.Point(466, 13);
|
||||
this.groupBox10.Name = "groupBox10";
|
||||
this.groupBox10.Size = new System.Drawing.Size(215, 113);
|
||||
this.groupBox10.TabIndex = 4;
|
||||
this.groupBox10.TabStop = false;
|
||||
this.groupBox10.Text = "Data Setting";
|
||||
//
|
||||
// cb_StarValueLowOverlapUp
|
||||
//
|
||||
this.cb_StarValueLowOverlapUp.AutoSize = true;
|
||||
this.cb_StarValueLowOverlapUp.Location = new System.Drawing.Point(6, 84);
|
||||
this.cb_StarValueLowOverlapUp.Name = "cb_StarValueLowOverlapUp";
|
||||
this.cb_StarValueLowOverlapUp.Size = new System.Drawing.Size(164, 16);
|
||||
this.cb_StarValueLowOverlapUp.TabIndex = 14;
|
||||
this.cb_StarValueLowOverlapUp.Text = "사는시점 전 고가<현 시가";
|
||||
this.cb_StarValueLowOverlapUp.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cb_DownBeforeValueFlag
|
||||
//
|
||||
this.cb_DownBeforeValueFlag.AutoSize = true;
|
||||
this.cb_DownBeforeValueFlag.Location = new System.Drawing.Point(6, 62);
|
||||
this.cb_DownBeforeValueFlag.Name = "cb_DownBeforeValueFlag";
|
||||
this.cb_DownBeforeValueFlag.Size = new System.Drawing.Size(196, 16);
|
||||
this.cb_DownBeforeValueFlag.TabIndex = 13;
|
||||
this.cb_DownBeforeValueFlag.Text = "최초돌파 시 메인조건>사전조건";
|
||||
this.cb_DownBeforeValueFlag.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cb_IncludeClearIndicator
|
||||
//
|
||||
this.cb_IncludeClearIndicator.AutoSize = true;
|
||||
this.cb_IncludeClearIndicator.Checked = true;
|
||||
this.cb_IncludeClearIndicator.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cb_IncludeClearIndicator.Location = new System.Drawing.Point(6, 40);
|
||||
this.cb_IncludeClearIndicator.Name = "cb_IncludeClearIndicator";
|
||||
this.cb_IncludeClearIndicator.Size = new System.Drawing.Size(170, 16);
|
||||
this.cb_IncludeClearIndicator.TabIndex = 12;
|
||||
this.cb_IncludeClearIndicator.Text = "판매 완료 조건으로 Setting";
|
||||
this.cb_IncludeClearIndicator.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cb_UpperMainIndi
|
||||
//
|
||||
this.cb_UpperMainIndi.AutoSize = true;
|
||||
this.cb_UpperMainIndi.Checked = true;
|
||||
this.cb_UpperMainIndi.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cb_UpperMainIndi.Location = new System.Drawing.Point(481, 46);
|
||||
this.cb_UpperMainIndi.Location = new System.Drawing.Point(6, 20);
|
||||
this.cb_UpperMainIndi.Name = "cb_UpperMainIndi";
|
||||
this.cb_UpperMainIndi.Size = new System.Drawing.Size(212, 16);
|
||||
this.cb_UpperMainIndi.TabIndex = 10;
|
||||
this.cb_UpperMainIndi.Text = "메인조건이 사전조건보다 높아야함";
|
||||
this.cb_UpperMainIndi.Size = new System.Drawing.Size(128, 16);
|
||||
this.cb_UpperMainIndi.TabIndex = 11;
|
||||
this.cb_UpperMainIndi.Text = "메인조건>사전조건";
|
||||
this.cb_UpperMainIndi.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tb_MoneyVolCnt
|
||||
//
|
||||
this.tb_MoneyVolCnt.Location = new System.Drawing.Point(308, 80);
|
||||
this.tb_MoneyVolCnt.Name = "tb_MoneyVolCnt";
|
||||
this.tb_MoneyVolCnt.Size = new System.Drawing.Size(105, 21);
|
||||
this.tb_MoneyVolCnt.TabIndex = 8;
|
||||
//
|
||||
// groupBox12
|
||||
//
|
||||
this.groupBox12.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox12.Controls.Add(this.tb_BigMoneyVolCnt);
|
||||
this.groupBox12.Controls.Add(this.cb_BuyBigthanHighType);
|
||||
this.groupBox12.Controls.Add(this.cb_BigMoneyVolType);
|
||||
this.groupBox12.Controls.Add(this.ck_BigMoneyVol);
|
||||
this.groupBox12.Controls.Add(this.ck_BuyBigthanHighVal);
|
||||
this.groupBox12.Location = new System.Drawing.Point(687, 14);
|
||||
this.groupBox12.Name = "groupBox12";
|
||||
this.groupBox12.Size = new System.Drawing.Size(238, 113);
|
||||
this.groupBox12.TabIndex = 19;
|
||||
this.groupBox12.TabStop = false;
|
||||
this.groupBox12.Text = "Filter Setting";
|
||||
//
|
||||
// tb_BigMoneyVolCnt
|
||||
//
|
||||
this.tb_BigMoneyVolCnt.Location = new System.Drawing.Point(97, 81);
|
||||
this.tb_BigMoneyVolCnt.Name = "tb_BigMoneyVolCnt";
|
||||
this.tb_BigMoneyVolCnt.Size = new System.Drawing.Size(105, 21);
|
||||
this.tb_BigMoneyVolCnt.TabIndex = 8;
|
||||
this.tb_BigMoneyVolCnt.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tb_BigMoneyVolCnt_KeyPress);
|
||||
//
|
||||
// cb_BuyBigthanHighType
|
||||
//
|
||||
this.cb_BuyBigthanHighType.Location = new System.Drawing.Point(6, 36);
|
||||
this.cb_BuyBigthanHighType.Name = "cb_BuyBigthanHighType";
|
||||
this.cb_BuyBigthanHighType.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||
this.cb_BuyBigthanHighType.Size = new System.Drawing.Size(85, 20);
|
||||
this.cb_BuyBigthanHighType.TabIndex = 17;
|
||||
//
|
||||
// cb_BigMoneyVolType
|
||||
//
|
||||
this.cb_BigMoneyVolType.Location = new System.Drawing.Point(6, 80);
|
||||
this.cb_BigMoneyVolType.Name = "cb_BigMoneyVolType";
|
||||
this.cb_BigMoneyVolType.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||
this.cb_BigMoneyVolType.Size = new System.Drawing.Size(85, 20);
|
||||
this.cb_BigMoneyVolType.TabIndex = 1;
|
||||
//
|
||||
// ck_BigMoneyVol
|
||||
//
|
||||
this.ck_BigMoneyVol.AutoSize = true;
|
||||
this.ck_BigMoneyVol.Location = new System.Drawing.Point(6, 61);
|
||||
this.ck_BigMoneyVol.Name = "ck_BigMoneyVol";
|
||||
this.ck_BigMoneyVol.Size = new System.Drawing.Size(132, 16);
|
||||
this.ck_BigMoneyVol.TabIndex = 16;
|
||||
this.ck_BigMoneyVol.Text = "거래량 가장 많을 떄";
|
||||
this.ck_BigMoneyVol.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ck_BuyBigthanHighVal
|
||||
//
|
||||
this.ck_BuyBigthanHighVal.AutoSize = true;
|
||||
this.ck_BuyBigthanHighVal.Location = new System.Drawing.Point(6, 19);
|
||||
this.ck_BuyBigthanHighVal.Name = "ck_BuyBigthanHighVal";
|
||||
this.ck_BuyBigthanHighVal.Size = new System.Drawing.Size(102, 16);
|
||||
this.ck_BuyBigthanHighVal.TabIndex = 15;
|
||||
this.ck_BuyBigthanHighVal.Text = "Buy가격>고가";
|
||||
this.ck_BuyBigthanHighVal.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(937, 832);
|
||||
this.Controls.Add(this.cb_UpperMainIndi);
|
||||
this.ClientSize = new System.Drawing.Size(937, 802);
|
||||
this.Controls.Add(this.groupBox12);
|
||||
this.Controls.Add(this.groupBox10);
|
||||
this.Controls.Add(this.splitContainer_RegularExpression);
|
||||
this.Controls.Add(this.splitContainer_SetupPanel);
|
||||
this.Controls.Add(this.bt_AllClear);
|
||||
this.Controls.Add(this.groupBox6);
|
||||
this.Controls.Add(this.simpleButton_SetupRefresh);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.groupBox7);
|
||||
this.Controls.Add(this.groupBox5);
|
||||
@@ -585,6 +840,8 @@ namespace Million
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_IndicatorSelection.Properties)).EndInit();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox11.ResumeLayout(false);
|
||||
this.groupBox11.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorSetup)).EndInit();
|
||||
this.groupBox5.ResumeLayout(false);
|
||||
this.groupBox5.PerformLayout();
|
||||
@@ -611,8 +868,15 @@ namespace Million
|
||||
this.splitContainer_RegularExpression.ResumeLayout(false);
|
||||
this.groupBox8.ResumeLayout(false);
|
||||
this.groupBox9.ResumeLayout(false);
|
||||
this.groupBox9.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellExceptionRegularExpression.Properties)).EndInit();
|
||||
this.groupBox10.ResumeLayout(false);
|
||||
this.groupBox10.PerformLayout();
|
||||
this.groupBox12.ResumeLayout(false);
|
||||
this.groupBox12.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.cb_BuyBigthanHighType.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.cb_BigMoneyVolType.Properties)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@@ -643,7 +907,7 @@ namespace Million
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton_SetupRefresh;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_IndexString;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_BuyRegularExpression;
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton1;
|
||||
private DevExpress.XtraEditors.SimpleButton bt_AllClear;
|
||||
private DevExpress.XtraTreeList.TreeList treeList_SellSetupList;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn2;
|
||||
@@ -657,7 +921,29 @@ namespace Million
|
||||
private DevExpress.XtraEditors.SimpleButton bt_InsertBuyerIndicator;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox tb_BuyerIndicatorName;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_SellExceptionRegularExpression;
|
||||
private System.Windows.Forms.RadioButton rd_RealtimeHunter;
|
||||
private System.Windows.Forms.RadioButton rd_Hunter;
|
||||
private System.Windows.Forms.GroupBox groupBox10;
|
||||
private System.Windows.Forms.CheckBox cb_UpperMainIndi;
|
||||
private System.Windows.Forms.CheckBox cb_DownBeforeValueFlag;
|
||||
private System.Windows.Forms.CheckBox cb_IncludeClearIndicator;
|
||||
private DevExpress.XtraEditors.SimpleButton bt_CalculateList;
|
||||
private DevExpress.XtraEditors.SimpleButton bt_CheckedList;
|
||||
private DevExpress.XtraEditors.SimpleButton bt_InsertList;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.TextBox tb_SearchResultDataName;
|
||||
private System.Windows.Forms.GroupBox groupBox11;
|
||||
private System.Windows.Forms.CheckBox cb_StarValueLowOverlapUp;
|
||||
private System.Windows.Forms.TextBox tb_MoneyVolCnt;
|
||||
private System.Windows.Forms.GroupBox groupBox12;
|
||||
private System.Windows.Forms.TextBox tb_BigMoneyVolCnt;
|
||||
private DevExpress.XtraEditors.ComboBoxEdit cb_BuyBigthanHighType;
|
||||
private DevExpress.XtraEditors.ComboBoxEdit cb_BigMoneyVolType;
|
||||
private System.Windows.Forms.CheckBox ck_BigMoneyVol;
|
||||
private System.Windows.Forms.CheckBox ck_BuyBigthanHighVal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -36,7 +36,7 @@ namespace Million.HunterSubForm
|
||||
var list = new List<int>();
|
||||
list.Add(_resultViewerForm._savedResultData.Id);
|
||||
|
||||
treeList_ResultData.DataSource = DBConnection.QueryGetExcuter_SavedAnalysisData(list);
|
||||
treeList_ResultData.DataSource = DBConnection.QueryGetExecuter_SavedAnalysisData(list);
|
||||
}
|
||||
|
||||
private void treeList_ResultData_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
|
||||
102
Million Hunter/HunterSubForm/LoadCalculateDataList.Designer.cs
generated
Normal file
102
Million Hunter/HunterSubForm/LoadCalculateDataList.Designer.cs
generated
Normal file
@@ -0,0 +1,102 @@
|
||||
|
||||
namespace Million_Hunter.HunterSubForm
|
||||
{
|
||||
partial class LoadCalculateDataList
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.bt_Delete = new System.Windows.Forms.Button();
|
||||
this.bt_OK = new System.Windows.Forms.Button();
|
||||
this.tl_SavedResultList = new DevExpress.XtraTreeList.TreeList();
|
||||
this.NameData = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tl_SavedResultList)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// bt_Delete
|
||||
//
|
||||
this.bt_Delete.Location = new System.Drawing.Point(11, 243);
|
||||
this.bt_Delete.Name = "bt_Delete";
|
||||
this.bt_Delete.Size = new System.Drawing.Size(75, 23);
|
||||
this.bt_Delete.TabIndex = 19;
|
||||
this.bt_Delete.Text = "Delete";
|
||||
this.bt_Delete.UseVisualStyleBackColor = true;
|
||||
this.bt_Delete.Click += new System.EventHandler(this.bt_Delete_Click);
|
||||
//
|
||||
// bt_OK
|
||||
//
|
||||
this.bt_OK.Location = new System.Drawing.Point(244, 243);
|
||||
this.bt_OK.Name = "bt_OK";
|
||||
this.bt_OK.Size = new System.Drawing.Size(75, 23);
|
||||
this.bt_OK.TabIndex = 18;
|
||||
this.bt_OK.Text = "OK";
|
||||
this.bt_OK.UseVisualStyleBackColor = true;
|
||||
this.bt_OK.Click += new System.EventHandler(this.bt_OK_Click);
|
||||
//
|
||||
// tl_SavedResultList
|
||||
//
|
||||
this.tl_SavedResultList.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
|
||||
this.NameData});
|
||||
this.tl_SavedResultList.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.tl_SavedResultList.Location = new System.Drawing.Point(12, 12);
|
||||
this.tl_SavedResultList.Name = "tl_SavedResultList";
|
||||
this.tl_SavedResultList.OptionsBehavior.Editable = false;
|
||||
this.tl_SavedResultList.OptionsView.ShowIndicator = false;
|
||||
this.tl_SavedResultList.Size = new System.Drawing.Size(308, 225);
|
||||
this.tl_SavedResultList.TabIndex = 16;
|
||||
//
|
||||
// NameData
|
||||
//
|
||||
this.NameData.Caption = "Name Data";
|
||||
this.NameData.FieldName = "NameData";
|
||||
this.NameData.Name = "NameData";
|
||||
this.NameData.OptionsColumn.ReadOnly = true;
|
||||
this.NameData.Visible = true;
|
||||
this.NameData.VisibleIndex = 0;
|
||||
//
|
||||
// LoadCalculateDataList
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(333, 273);
|
||||
this.Controls.Add(this.bt_Delete);
|
||||
this.Controls.Add(this.bt_OK);
|
||||
this.Controls.Add(this.tl_SavedResultList);
|
||||
this.Name = "LoadCalculateDataList";
|
||||
this.Text = "LoadCalculateDataList";
|
||||
((System.ComponentModel.ISupportInitialize)(this.tl_SavedResultList)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button bt_Delete;
|
||||
private System.Windows.Forms.Button bt_OK;
|
||||
private DevExpress.XtraTreeList.TreeList tl_SavedResultList;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn NameData;
|
||||
}
|
||||
}
|
||||
68
Million Hunter/HunterSubForm/LoadCalculateDataList.cs
Normal file
68
Million Hunter/HunterSubForm/LoadCalculateDataList.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using DevExpress.XtraTreeList.Nodes;
|
||||
using Million.Data.SaveData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Million_Hunter.HunterSubForm
|
||||
{
|
||||
public partial class LoadCalculateDataList : Form
|
||||
{
|
||||
public List<MultiSavedResultData> dataList;
|
||||
|
||||
public LoadCalculateDataList()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
}
|
||||
|
||||
public void Init(List<MultiSavedResultData> dataList)
|
||||
{
|
||||
this.dataList = dataList;
|
||||
|
||||
if (this.dataList.Count > 0)
|
||||
{
|
||||
tl_SavedResultList.BeginUnboundLoad();
|
||||
foreach (var item in this.dataList)
|
||||
{
|
||||
tl_SavedResultList.AppendNode(new object[]
|
||||
{
|
||||
item.Name
|
||||
}, null);
|
||||
}
|
||||
tl_SavedResultList.EndUnboundLoad();
|
||||
}
|
||||
}
|
||||
|
||||
private void bt_Delete_Click(object sender, EventArgs e)
|
||||
{
|
||||
var name = tl_SavedResultList.Selection.First()["NameData"].ToString();
|
||||
TreeListNode data = null;
|
||||
|
||||
foreach (TreeListNode node in tl_SavedResultList.Nodes)
|
||||
{
|
||||
if (node.GetValue("NameData").ToString() == name)
|
||||
{
|
||||
data = node;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var item = dataList.FirstOrDefault(t => t.Name == name);
|
||||
|
||||
dataList.Remove(item);
|
||||
tl_SavedResultList.Nodes.Remove(data);
|
||||
}
|
||||
|
||||
private void bt_OK_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Million Hunter/HunterSubForm/LoadCalculateDataList.resx
Normal file
120
Million Hunter/HunterSubForm/LoadCalculateDataList.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -65,6 +65,8 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_ResultDataCount = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.treeListColumn_WinRate = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.treeListColumn_ProfitRate = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.treeListColumn_Name = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.treeListColumn_Id = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.splitContainer_RegularExpression = new System.Windows.Forms.SplitContainer();
|
||||
this.groupBox8 = new System.Windows.Forms.GroupBox();
|
||||
this.textEdit_BuyRegularExpression = new DevExpress.XtraEditors.TextEdit();
|
||||
@@ -420,13 +422,20 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_SellRegularExpression,
|
||||
this.treeListColumn_ResultDataCount,
|
||||
this.treeListColumn_WinRate,
|
||||
this.treeListColumn_ProfitRate});
|
||||
this.treeListColumn_ProfitRate,
|
||||
this.treeListColumn_Name,
|
||||
this.treeListColumn_Id});
|
||||
this.treeList_SavedResultData.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.treeList_SavedResultData.Location = new System.Drawing.Point(12, 383);
|
||||
this.treeList_SavedResultData.Name = "treeList_SavedResultData";
|
||||
this.treeList_SavedResultData.OptionsBehavior.Editable = false;
|
||||
this.treeList_SavedResultData.OptionsSelection.MultiSelect = true;
|
||||
this.treeList_SavedResultData.OptionsView.ShowIndicator = false;
|
||||
this.treeList_SavedResultData.OptionsView.ShowRoot = false;
|
||||
this.treeList_SavedResultData.OptionsView.ShowTreeLines = DevExpress.Utils.DefaultBoolean.False;
|
||||
this.treeList_SavedResultData.Size = new System.Drawing.Size(1046, 386);
|
||||
this.treeList_SavedResultData.TabIndex = 1;
|
||||
this.treeList_SavedResultData.PopupMenuShowing += new DevExpress.XtraTreeList.PopupMenuShowingEventHandler(this.treeList_SavedResultData_PopupMenuShowing);
|
||||
this.treeList_SavedResultData.MouseClick += new System.Windows.Forms.MouseEventHandler(this.treeList_SavedResultData_MouseClick);
|
||||
this.treeList_SavedResultData.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.treeList_SavedResultData_MouseDoubleClick);
|
||||
//
|
||||
@@ -439,7 +448,7 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_StartDateTime.Name = "treeListColumn_StartDateTime";
|
||||
this.treeListColumn_StartDateTime.OptionsColumn.FixedWidth = true;
|
||||
this.treeListColumn_StartDateTime.Visible = true;
|
||||
this.treeListColumn_StartDateTime.VisibleIndex = 0;
|
||||
this.treeListColumn_StartDateTime.VisibleIndex = 1;
|
||||
this.treeListColumn_StartDateTime.Width = 169;
|
||||
//
|
||||
// treeListColumn_EndDateTime
|
||||
@@ -451,7 +460,7 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_EndDateTime.Name = "treeListColumn_EndDateTime";
|
||||
this.treeListColumn_EndDateTime.OptionsColumn.FixedWidth = true;
|
||||
this.treeListColumn_EndDateTime.Visible = true;
|
||||
this.treeListColumn_EndDateTime.VisibleIndex = 1;
|
||||
this.treeListColumn_EndDateTime.VisibleIndex = 2;
|
||||
this.treeListColumn_EndDateTime.Width = 159;
|
||||
//
|
||||
// treeListColumn_SavedDateTime
|
||||
@@ -464,7 +473,7 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_SavedDateTime.OptionsColumn.FixedWidth = true;
|
||||
this.treeListColumn_SavedDateTime.SortOrder = System.Windows.Forms.SortOrder.Descending;
|
||||
this.treeListColumn_SavedDateTime.Visible = true;
|
||||
this.treeListColumn_SavedDateTime.VisibleIndex = 2;
|
||||
this.treeListColumn_SavedDateTime.VisibleIndex = 3;
|
||||
this.treeListColumn_SavedDateTime.Width = 157;
|
||||
//
|
||||
// treeListColumn_BuyRegularExpression
|
||||
@@ -473,8 +482,8 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_BuyRegularExpression.FieldName = "BuyRegularExpression";
|
||||
this.treeListColumn_BuyRegularExpression.Name = "treeListColumn_BuyRegularExpression";
|
||||
this.treeListColumn_BuyRegularExpression.Visible = true;
|
||||
this.treeListColumn_BuyRegularExpression.VisibleIndex = 3;
|
||||
this.treeListColumn_BuyRegularExpression.Width = 198;
|
||||
this.treeListColumn_BuyRegularExpression.VisibleIndex = 4;
|
||||
this.treeListColumn_BuyRegularExpression.Width = 181;
|
||||
//
|
||||
// treeListColumn_SellRegularExpression
|
||||
//
|
||||
@@ -482,8 +491,8 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_SellRegularExpression.FieldName = "SellRegularExpression";
|
||||
this.treeListColumn_SellRegularExpression.Name = "treeListColumn_SellRegularExpression";
|
||||
this.treeListColumn_SellRegularExpression.Visible = true;
|
||||
this.treeListColumn_SellRegularExpression.VisibleIndex = 4;
|
||||
this.treeListColumn_SellRegularExpression.Width = 159;
|
||||
this.treeListColumn_SellRegularExpression.VisibleIndex = 5;
|
||||
this.treeListColumn_SellRegularExpression.Width = 109;
|
||||
//
|
||||
// treeListColumn_ResultDataCount
|
||||
//
|
||||
@@ -491,8 +500,8 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_ResultDataCount.FieldName = "ResultDataCount";
|
||||
this.treeListColumn_ResultDataCount.Name = "treeListColumn_ResultDataCount";
|
||||
this.treeListColumn_ResultDataCount.Visible = true;
|
||||
this.treeListColumn_ResultDataCount.VisibleIndex = 5;
|
||||
this.treeListColumn_ResultDataCount.Width = 49;
|
||||
this.treeListColumn_ResultDataCount.VisibleIndex = 6;
|
||||
this.treeListColumn_ResultDataCount.Width = 45;
|
||||
//
|
||||
// treeListColumn_WinRate
|
||||
//
|
||||
@@ -502,8 +511,8 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_WinRate.Format.FormatType = DevExpress.Utils.FormatType.Numeric;
|
||||
this.treeListColumn_WinRate.Name = "treeListColumn_WinRate";
|
||||
this.treeListColumn_WinRate.Visible = true;
|
||||
this.treeListColumn_WinRate.VisibleIndex = 6;
|
||||
this.treeListColumn_WinRate.Width = 67;
|
||||
this.treeListColumn_WinRate.VisibleIndex = 7;
|
||||
this.treeListColumn_WinRate.Width = 63;
|
||||
//
|
||||
// treeListColumn_ProfitRate
|
||||
//
|
||||
@@ -513,8 +522,23 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_ProfitRate.Format.FormatType = DevExpress.Utils.FormatType.Numeric;
|
||||
this.treeListColumn_ProfitRate.Name = "treeListColumn_ProfitRate";
|
||||
this.treeListColumn_ProfitRate.Visible = true;
|
||||
this.treeListColumn_ProfitRate.VisibleIndex = 7;
|
||||
this.treeListColumn_ProfitRate.Width = 70;
|
||||
this.treeListColumn_ProfitRate.VisibleIndex = 8;
|
||||
this.treeListColumn_ProfitRate.Width = 66;
|
||||
//
|
||||
// treeListColumn_Name
|
||||
//
|
||||
this.treeListColumn_Name.Caption = "정보";
|
||||
this.treeListColumn_Name.FieldName = "Name";
|
||||
this.treeListColumn_Name.Name = "treeListColumn_Name";
|
||||
this.treeListColumn_Name.Visible = true;
|
||||
this.treeListColumn_Name.VisibleIndex = 0;
|
||||
this.treeListColumn_Name.Width = 79;
|
||||
//
|
||||
// treeListColumn_Id
|
||||
//
|
||||
this.treeListColumn_Id.Caption = "Id";
|
||||
this.treeListColumn_Id.FieldName = "Id";
|
||||
this.treeListColumn_Id.Name = "treeListColumn_Id";
|
||||
//
|
||||
// splitContainer_RegularExpression
|
||||
//
|
||||
@@ -654,5 +678,7 @@ namespace Million.HunterSubForm
|
||||
private System.Windows.Forms.GroupBox groupBox_analysisInfo;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn6;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_ResultDataCount;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_Name;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_Id;
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,7 @@ namespace Million.HunterSubForm
|
||||
}
|
||||
|
||||
// 결과 데이터 정보 가져오기
|
||||
savedResultDatas = DBConnection.QueryGetExcuter_SavedResultData();
|
||||
savedResultDatas = DBConnection.QueryGetExecuter_SavedResultData();
|
||||
|
||||
|
||||
//foreach (var filePath in Directory.GetFiles(CommonProperty.SaveProgramDirecotryPath).ToList()
|
||||
@@ -109,7 +109,7 @@ namespace Million.HunterSubForm
|
||||
treeList_AnalysisResultData.DataSource = null;
|
||||
var data = new List<int>();
|
||||
data.Add(selectedResultData.Id);
|
||||
treeList_AnalysisResultData.DataSource = DBConnection.QueryGetExcuter_SavedAnalysisData(data);
|
||||
treeList_AnalysisResultData.DataSource = DBConnection.QueryGetExecuter_SavedAnalysisData(data);
|
||||
|
||||
// 분석 데이터 정보 파일 항목 불러오기(.data)
|
||||
// 폴더 검사
|
||||
@@ -145,10 +145,12 @@ namespace Million.HunterSubForm
|
||||
|
||||
var selectedResultData = (SavedResultData)treeList.GetDataRecordByNode(hitInfo.Node);
|
||||
|
||||
selectedResultData = DBConnection.QueryGetExecuter_SearchResultData(selectedResultData);
|
||||
|
||||
//Main 폼의 SaveResultData 초기화
|
||||
_mainForm._saveResultData = null;
|
||||
//Main 폼의 SaveResultData 초기화 (클론 복사 해야할 수 있음)
|
||||
_mainForm._saveResultData = selectedResultData.Clone();
|
||||
_mainForm._saveResultData = selectedResultData.Clone();
|
||||
|
||||
// 데이터가 있는 경우 버튼 색 변경
|
||||
if (_mainForm._saveResultData.SearchResultList != null)
|
||||
@@ -162,5 +164,9 @@ namespace Million.HunterSubForm
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void treeList_SavedResultData_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35,9 +35,9 @@ namespace Million.HunterSubForm
|
||||
this.dateEdit_SavedDateTime = new DevExpress.XtraEditors.DateEdit();
|
||||
this.dateEdit_StartDateTime = new DevExpress.XtraEditors.DateEdit();
|
||||
this.groupBox9 = new System.Windows.Forms.GroupBox();
|
||||
this.textEdit_SellRegularExpression = new DevExpress.XtraEditors.TextEdit();
|
||||
this.groupBox8 = new System.Windows.Forms.GroupBox();
|
||||
this.textEdit_BuyRegularExpression = new DevExpress.XtraEditors.TextEdit();
|
||||
this.groupBox8 = new System.Windows.Forms.GroupBox();
|
||||
this.textEdit_SellRegularExpression = new DevExpress.XtraEditors.TextEdit();
|
||||
this.splitContainer_SetupPanel = new System.Windows.Forms.SplitContainer();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.treeList_BuySetupList = new DevExpress.XtraTreeList.TreeList();
|
||||
@@ -68,6 +68,7 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_AnalysisDescrption = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.treeListColumn_OriginalData = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
|
||||
this.simpleButton_TestBoard = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.labelControl_WinRateProfitRate = new DevExpress.XtraEditors.LabelControl();
|
||||
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
|
||||
this.textEdit_Description = new DevExpress.XtraEditors.TextEdit();
|
||||
@@ -75,6 +76,7 @@ namespace Million.HunterSubForm
|
||||
this.simpleButton_resetData = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_LoadAnalysisResultData = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.simpleButton_SavaAnalysisData = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.treeListColumn_PurchasedCount = new DevExpress.XtraTreeList.Columns.TreeListColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorCondition)).BeginInit();
|
||||
this.panelControl_IndicatorCondition.SuspendLayout();
|
||||
this.groupBox_.SuspendLayout();
|
||||
@@ -85,9 +87,9 @@ namespace Million.HunterSubForm
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateEdit_StartDateTime.Properties.CalendarTimeProperties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateEdit_StartDateTime.Properties)).BeginInit();
|
||||
this.groupBox9.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).BeginInit();
|
||||
this.groupBox8.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_BuyRegularExpression.Properties)).BeginInit();
|
||||
this.groupBox8.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer_SetupPanel)).BeginInit();
|
||||
this.splitContainer_SetupPanel.Panel1.SuspendLayout();
|
||||
this.splitContainer_SetupPanel.Panel2.SuspendLayout();
|
||||
@@ -181,34 +183,13 @@ namespace Million.HunterSubForm
|
||||
//
|
||||
// groupBox9
|
||||
//
|
||||
this.groupBox9.Controls.Add(this.textEdit_SellRegularExpression);
|
||||
this.groupBox9.Controls.Add(this.textEdit_BuyRegularExpression);
|
||||
this.groupBox9.Location = new System.Drawing.Point(6, 168);
|
||||
this.groupBox9.Name = "groupBox9";
|
||||
this.groupBox9.Size = new System.Drawing.Size(641, 45);
|
||||
this.groupBox9.TabIndex = 8;
|
||||
this.groupBox9.TabStop = false;
|
||||
this.groupBox9.Text = "판매 조건 조합";
|
||||
//
|
||||
// textEdit_SellRegularExpression
|
||||
//
|
||||
this.textEdit_SellRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textEdit_SellRegularExpression.Location = new System.Drawing.Point(3, 18);
|
||||
this.textEdit_SellRegularExpression.Name = "textEdit_SellRegularExpression";
|
||||
this.textEdit_SellRegularExpression.Properties.ReadOnly = true;
|
||||
this.textEdit_SellRegularExpression.Size = new System.Drawing.Size(635, 20);
|
||||
this.textEdit_SellRegularExpression.TabIndex = 0;
|
||||
//
|
||||
// groupBox8
|
||||
//
|
||||
this.groupBox8.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox8.Controls.Add(this.textEdit_BuyRegularExpression);
|
||||
this.groupBox8.Location = new System.Drawing.Point(652, 168);
|
||||
this.groupBox8.Name = "groupBox8";
|
||||
this.groupBox8.Size = new System.Drawing.Size(609, 45);
|
||||
this.groupBox8.TabIndex = 9;
|
||||
this.groupBox8.TabStop = false;
|
||||
this.groupBox8.Text = "구매 조건 조합";
|
||||
this.groupBox9.Text = "구매 조건 조합";
|
||||
//
|
||||
// textEdit_BuyRegularExpression
|
||||
//
|
||||
@@ -216,9 +197,30 @@ namespace Million.HunterSubForm
|
||||
this.textEdit_BuyRegularExpression.Location = new System.Drawing.Point(3, 18);
|
||||
this.textEdit_BuyRegularExpression.Name = "textEdit_BuyRegularExpression";
|
||||
this.textEdit_BuyRegularExpression.Properties.ReadOnly = true;
|
||||
this.textEdit_BuyRegularExpression.Size = new System.Drawing.Size(603, 20);
|
||||
this.textEdit_BuyRegularExpression.Size = new System.Drawing.Size(635, 20);
|
||||
this.textEdit_BuyRegularExpression.TabIndex = 0;
|
||||
//
|
||||
// groupBox8
|
||||
//
|
||||
this.groupBox8.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox8.Controls.Add(this.textEdit_SellRegularExpression);
|
||||
this.groupBox8.Location = new System.Drawing.Point(652, 168);
|
||||
this.groupBox8.Name = "groupBox8";
|
||||
this.groupBox8.Size = new System.Drawing.Size(609, 45);
|
||||
this.groupBox8.TabIndex = 9;
|
||||
this.groupBox8.TabStop = false;
|
||||
this.groupBox8.Text = "판매 조건 조합";
|
||||
//
|
||||
// textEdit_SellRegularExpression
|
||||
//
|
||||
this.textEdit_SellRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textEdit_SellRegularExpression.Location = new System.Drawing.Point(3, 18);
|
||||
this.textEdit_SellRegularExpression.Name = "textEdit_SellRegularExpression";
|
||||
this.textEdit_SellRegularExpression.Properties.ReadOnly = true;
|
||||
this.textEdit_SellRegularExpression.Size = new System.Drawing.Size(603, 20);
|
||||
this.textEdit_SellRegularExpression.TabIndex = 0;
|
||||
//
|
||||
// splitContainer_SetupPanel
|
||||
//
|
||||
this.splitContainer_SetupPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
@@ -387,18 +389,20 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_SellValue,
|
||||
this.treeListColumn_WinFlag,
|
||||
this.treeListColumn_EarningRate,
|
||||
this.treeListColumn_PurchasedCount,
|
||||
this.treeListColumn_AnalysisDescrption,
|
||||
this.treeListColumn_OriginalData});
|
||||
this.treeList_ResultData.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.treeList_ResultData.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.treeList_ResultData.Location = new System.Drawing.Point(0, 275);
|
||||
this.treeList_ResultData.Location = new System.Drawing.Point(0, 301);
|
||||
this.treeList_ResultData.Name = "treeList_ResultData";
|
||||
this.treeList_ResultData.OptionsFilter.ShowAllValuesInFilterPopup = true;
|
||||
this.treeList_ResultData.OptionsSelection.MultiSelect = true;
|
||||
this.treeList_ResultData.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] {
|
||||
this.repositoryItemCheckEdit_Inclustion});
|
||||
this.treeList_ResultData.Size = new System.Drawing.Size(1271, 636);
|
||||
this.treeList_ResultData.Size = new System.Drawing.Size(1271, 610);
|
||||
this.treeList_ResultData.TabIndex = 5;
|
||||
this.treeList_ResultData.SelectionChanged += new System.EventHandler(this.treeList_ResultData_SelectionChanged);
|
||||
this.treeList_ResultData.KeyUp += new System.Windows.Forms.KeyEventHandler(this.treeList_ResultData_KeyUp);
|
||||
this.treeList_ResultData.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.treeList_ResultData_MouseDoubleClick);
|
||||
//
|
||||
// treeListColumn_Inclusion
|
||||
@@ -567,7 +571,7 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_WinFlag.Name = "treeListColumn_WinFlag";
|
||||
this.treeListColumn_WinFlag.OptionsColumn.AllowEdit = false;
|
||||
this.treeListColumn_WinFlag.Visible = true;
|
||||
this.treeListColumn_WinFlag.VisibleIndex = 10;
|
||||
this.treeListColumn_WinFlag.VisibleIndex = 9;
|
||||
this.treeListColumn_WinFlag.Width = 43;
|
||||
//
|
||||
// treeListColumn_EarningRate
|
||||
@@ -583,7 +587,7 @@ namespace Million.HunterSubForm
|
||||
this.treeListColumn_EarningRate.Name = "treeListColumn_EarningRate";
|
||||
this.treeListColumn_EarningRate.OptionsColumn.AllowEdit = false;
|
||||
this.treeListColumn_EarningRate.Visible = true;
|
||||
this.treeListColumn_EarningRate.VisibleIndex = 11;
|
||||
this.treeListColumn_EarningRate.VisibleIndex = 10;
|
||||
this.treeListColumn_EarningRate.Width = 51;
|
||||
//
|
||||
// treeListColumn_AnalysisDescrption
|
||||
@@ -609,6 +613,7 @@ namespace Million.HunterSubForm
|
||||
//
|
||||
// panelControl1
|
||||
//
|
||||
this.panelControl1.Controls.Add(this.simpleButton_TestBoard);
|
||||
this.panelControl1.Controls.Add(this.labelControl_WinRateProfitRate);
|
||||
this.panelControl1.Controls.Add(this.labelControl1);
|
||||
this.panelControl1.Controls.Add(this.textEdit_Description);
|
||||
@@ -619,13 +624,24 @@ namespace Million.HunterSubForm
|
||||
this.panelControl1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.panelControl1.Location = new System.Drawing.Point(0, 231);
|
||||
this.panelControl1.Name = "panelControl1";
|
||||
this.panelControl1.Size = new System.Drawing.Size(1271, 44);
|
||||
this.panelControl1.Size = new System.Drawing.Size(1271, 70);
|
||||
this.panelControl1.TabIndex = 4;
|
||||
//
|
||||
// simpleButton_TestBoard
|
||||
//
|
||||
this.simpleButton_TestBoard.Appearance.ForeColor = System.Drawing.Color.Teal;
|
||||
this.simpleButton_TestBoard.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton_TestBoard.Location = new System.Drawing.Point(262, 6);
|
||||
this.simpleButton_TestBoard.Name = "simpleButton_TestBoard";
|
||||
this.simpleButton_TestBoard.Size = new System.Drawing.Size(101, 32);
|
||||
this.simpleButton_TestBoard.TabIndex = 3;
|
||||
this.simpleButton_TestBoard.Text = "테스트보드";
|
||||
this.simpleButton_TestBoard.Click += new System.EventHandler(this.simpleButton_TestBoard_Click);
|
||||
//
|
||||
// labelControl_WinRateProfitRate
|
||||
//
|
||||
this.labelControl_WinRateProfitRate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.labelControl_WinRateProfitRate.Location = new System.Drawing.Point(361, 15);
|
||||
this.labelControl_WinRateProfitRate.Location = new System.Drawing.Point(652, 50);
|
||||
this.labelControl_WinRateProfitRate.Name = "labelControl_WinRateProfitRate";
|
||||
this.labelControl_WinRateProfitRate.Size = new System.Drawing.Size(19, 14);
|
||||
this.labelControl_WinRateProfitRate.TabIndex = 2;
|
||||
@@ -691,6 +707,14 @@ namespace Million.HunterSubForm
|
||||
this.simpleButton_SavaAnalysisData.Text = "결과 저장";
|
||||
this.simpleButton_SavaAnalysisData.Click += new System.EventHandler(this.simpleButton_SavaAnalysisData_Click);
|
||||
//
|
||||
// treeListColumn_PurchasedCount
|
||||
//
|
||||
this.treeListColumn_PurchasedCount.Caption = "구종목 보유 수";
|
||||
this.treeListColumn_PurchasedCount.FieldName = "PurchasedCount";
|
||||
this.treeListColumn_PurchasedCount.Name = "treeListColumn_PurchasedCount";
|
||||
this.treeListColumn_PurchasedCount.Visible = true;
|
||||
this.treeListColumn_PurchasedCount.VisibleIndex = 11;
|
||||
//
|
||||
// ResultViewerForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
|
||||
@@ -700,7 +724,7 @@ namespace Million.HunterSubForm
|
||||
this.Controls.Add(this.panelControl1);
|
||||
this.Controls.Add(this.panelControl_IndicatorCondition);
|
||||
this.Name = "ResultViewerForm";
|
||||
this.Text = "결과 뷰";
|
||||
this.Text = " ";
|
||||
((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorCondition)).EndInit();
|
||||
this.panelControl_IndicatorCondition.ResumeLayout(false);
|
||||
this.groupBox_.ResumeLayout(false);
|
||||
@@ -712,9 +736,9 @@ namespace Million.HunterSubForm
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateEdit_StartDateTime.Properties.CalendarTimeProperties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dateEdit_StartDateTime.Properties)).EndInit();
|
||||
this.groupBox9.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).EndInit();
|
||||
this.groupBox8.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_BuyRegularExpression.Properties)).EndInit();
|
||||
this.groupBox8.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).EndInit();
|
||||
this.splitContainer_SetupPanel.Panel1.ResumeLayout(false);
|
||||
this.splitContainer_SetupPanel.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer_SetupPanel)).EndInit();
|
||||
@@ -736,7 +760,6 @@ namespace Million.HunterSubForm
|
||||
#endregion
|
||||
|
||||
private DevExpress.XtraEditors.PanelControl panelControl_IndicatorCondition;
|
||||
private DevExpress.XtraTreeList.TreeList treeList_ResultData;
|
||||
private System.Windows.Forms.GroupBox groupBox_;
|
||||
private System.Windows.Forms.SplitContainer splitContainer_SetupPanel;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
@@ -753,9 +776,9 @@ namespace Million.HunterSubForm
|
||||
private DevExpress.XtraEditors.LabelControl labelControl4;
|
||||
private DevExpress.XtraEditors.LabelControl labelControl3;
|
||||
private System.Windows.Forms.GroupBox groupBox9;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_SellRegularExpression;
|
||||
private System.Windows.Forms.GroupBox groupBox8;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_BuyRegularExpression;
|
||||
private System.Windows.Forms.GroupBox groupBox8;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_SellRegularExpression;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_Inclusion;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_ExchangePlace;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_CoinFullName;
|
||||
@@ -781,5 +804,8 @@ namespace Million.HunterSubForm
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton_resetData;
|
||||
private DevExpress.XtraEditors.LabelControl labelControl_WinRateProfitRate;
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton_WinRateProfitRate;
|
||||
public DevExpress.XtraEditors.SimpleButton simpleButton_TestBoard;
|
||||
public DevExpress.XtraTreeList.TreeList treeList_ResultData;
|
||||
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_PurchasedCount;
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,9 @@ using Million.FileDBManagement;
|
||||
using Million.Data;
|
||||
using DevExpress.XtraTreeList;
|
||||
using Million.DbManagement;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using Million.Manager;
|
||||
using Million_Hunter.HunterSubForm;
|
||||
|
||||
namespace Million.HunterSubForm
|
||||
{
|
||||
@@ -26,6 +29,8 @@ namespace Million.HunterSubForm
|
||||
// Analysis Data 를 Load 하는 경우 저장 변수
|
||||
public SavedAnalysisData _savedAnalysisData;
|
||||
|
||||
public List<IndicatorCoditionSetup> _totalIndicator;
|
||||
|
||||
public ResultViewerForm(SavedResultData savedResultData)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -43,14 +48,21 @@ namespace Million.HunterSubForm
|
||||
dateEdit_StartDateTime.DateTime = _savedResultData.StartDateTime.Date;
|
||||
dateEdit_EndDateTime.DateTime = _savedResultData.EndDateTime.Date;
|
||||
dateEdit_SavedDateTime.DateTime = _savedResultData.SavedDateTime.Date;
|
||||
textEdit_BuyRegularExpression.Text = _savedResultData.BuyRegularExpression;
|
||||
textEdit_SellRegularExpression.Text = _savedResultData.SellRegularExpression;
|
||||
textEdit_SellRegularExpression.Text = _savedResultData.BuyRegularExpression;
|
||||
textEdit_BuyRegularExpression.Text = _savedResultData.SellRegularExpression;
|
||||
|
||||
// Buy/Sell 리스트에 데이터 추가
|
||||
treeList_BuySetupList.DataSource = _savedResultData.BuySetupList;
|
||||
treeList_SellSetupList.DataSource = _savedResultData.SellSetupList;
|
||||
treeList_BuySetupList.RefreshDataSource();
|
||||
|
||||
var buyIndicatorList = IndicatorSetupManager.InitDataSetup(_savedResultData.BuySetupList);
|
||||
var sellIndicatorList = IndicatorSetupManager.InitDataSetup(_savedResultData.SellSetupList);
|
||||
|
||||
_totalIndicator = new List<IndicatorCoditionSetup>();
|
||||
_totalIndicator.AddRange(buyIndicatorList);
|
||||
_totalIndicator.AddRange(sellIndicatorList);
|
||||
|
||||
if (_analysisDatas != null)
|
||||
{
|
||||
// 메모리 헤제
|
||||
@@ -80,10 +92,33 @@ namespace Million.HunterSubForm
|
||||
_analysisDatas.Add(analysisData);
|
||||
}
|
||||
|
||||
var evaeragePurchasedCount = 0;
|
||||
|
||||
// 보유한 종목 수 계산
|
||||
foreach (var item in _analysisDatas)
|
||||
{
|
||||
/**
|
||||
* 사는 시점에 갖고 있는 Count 수로 정정
|
||||
*/
|
||||
|
||||
var count = _analysisDatas.Count(t => t.StartDate <= item.StartDate && t.EndDate >= item.StartDate && t != item);
|
||||
|
||||
// Ts <= Os <= Te
|
||||
// Ts <= Oe <= Te
|
||||
//var count = _analysisDatas.Count(target => (target.StartDate <= item.StartDate && target.EndDate >= item.StartDate) ||
|
||||
//(target.StartDate <= item.EndDate && target.EndDate >= item.EndDate)
|
||||
//);
|
||||
|
||||
item.PurchasedCount = count;
|
||||
evaeragePurchasedCount += count;
|
||||
}
|
||||
|
||||
evaeragePurchasedCount /= _analysisDatas.Count();
|
||||
|
||||
winRate = winRate * 100 / _analysisDatas.Count();
|
||||
|
||||
labelControl_WinRateProfitRate.Text = string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2}",
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), _analysisDatas.Count());
|
||||
labelControl_WinRateProfitRate.Text = string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2} 평균 보유 수 : {3}" ,
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), _analysisDatas.Count(), evaeragePurchasedCount);
|
||||
|
||||
treeList_ResultData.DataSource = _analysisDatas;
|
||||
treeList_ResultData.RefreshDataSource();
|
||||
@@ -93,7 +128,8 @@ namespace Million.HunterSubForm
|
||||
private void simpleButton_SavaAnalysisData_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 결과 반영 체크 && Filter 된 노드만 리스트로 모음
|
||||
var nodeList = treeList_ResultData.FindNodes(item => item.Visible == true && Convert.ToBoolean(item["Inclusion"]) == true);
|
||||
//var nodeList = treeList_ResultData.FindNodes(item => item.Visible == true && Convert.ToBoolean(item["Inclusion"]) == true);
|
||||
var nodeList = treeList_ResultData.FindNodes(item => item.Visible == true);
|
||||
|
||||
// 저장할 데이터 리스트
|
||||
var saveDataList = new List<AnalysisData>();
|
||||
@@ -118,6 +154,9 @@ namespace Million.HunterSubForm
|
||||
profitRate += data.EarningRate;
|
||||
|
||||
saveDataList.Add(data);
|
||||
|
||||
// 비고 저장
|
||||
//data.Description =
|
||||
}
|
||||
|
||||
winRate = winRate * 100 / nodeList.Count();
|
||||
@@ -138,7 +177,7 @@ namespace Million.HunterSubForm
|
||||
// 저장 하기
|
||||
|
||||
|
||||
if (DBConnection.QueryInsertExcuter_SavedAnalysisData(savedAnalysisData, _savedResultData))
|
||||
if (DBConnection.QueryInsertExecuter_SavedAnalysisData(savedAnalysisData, _savedResultData))
|
||||
{
|
||||
MessageBox.Show("데이터 저장 성공");
|
||||
textEdit_Description.Text = "";
|
||||
@@ -158,9 +197,11 @@ namespace Million.HunterSubForm
|
||||
// 정상으로 데이터를 로드 하면
|
||||
if(_savedAnalysisData != null)
|
||||
{
|
||||
treeList_ResultData.Nodes.Clear();
|
||||
treeList_ResultData.DataSource = _savedAnalysisData.AnalysisDataList;
|
||||
treeList_ResultData.RefreshDataSource();
|
||||
|
||||
|
||||
|
||||
labelControl_WinRateProfitRate.Text = string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2}",
|
||||
double.Parse(_savedAnalysisData.FirstWinRate.ToString()), double.Parse(_savedAnalysisData.FirstProfitRate.ToString()),
|
||||
_savedAnalysisData.AnalysisDataList.Count);
|
||||
@@ -185,9 +226,10 @@ namespace Million.HunterSubForm
|
||||
|
||||
if (hitInfo.HitInfoType != HitInfoType.Cell) return;
|
||||
|
||||
var selectedResultData = (AnalysisData)treeList.GetDataRecordByNode(hitInfo.Node);
|
||||
var selectedAnalysisData = (AnalysisData)treeList.GetDataRecordByNode(hitInfo.Node);
|
||||
|
||||
Million.SubForm.ChartViewerForm chartViewerForm = new Million.SubForm.ChartViewerForm();
|
||||
Million.SubForm.ChartViewerForm chartViewerForm = new Million.SubForm.ChartViewerForm(selectedAnalysisData,
|
||||
_totalIndicator);
|
||||
chartViewerForm.Visible = true;
|
||||
}
|
||||
|
||||
@@ -200,7 +242,7 @@ namespace Million.HunterSubForm
|
||||
/// <summary>
|
||||
/// 승률 및 수익률 계산 함수
|
||||
/// </summary>
|
||||
private void CalcurateProfitAndWinRate()
|
||||
public void CalcurateProfitAndWinRate()
|
||||
{
|
||||
// 승률 수익률 계산하기
|
||||
// 결과 반영 체크 && Filter 된 노드만 리스트로 모음
|
||||
@@ -209,6 +251,8 @@ namespace Million.HunterSubForm
|
||||
double winRate = 0;
|
||||
// 평균 수익률 계산하기
|
||||
double profitRate = 0;
|
||||
// 종목 보유 수
|
||||
var evaeragePurchasedCount = 0;
|
||||
|
||||
// 값이 있으면 저장
|
||||
if (nodeList != null && nodeList.Count() > 0)
|
||||
@@ -223,18 +267,51 @@ namespace Million.HunterSubForm
|
||||
|
||||
// 수익률 계산하기
|
||||
profitRate += data.EarningRate;
|
||||
|
||||
// 종목 보유 수 계산하기
|
||||
// Ts <= Os <= Te
|
||||
// Ts <= Oe <= Te
|
||||
|
||||
var count = nodeList.Count(target => (Convert.ToDateTime(target["StartDate"]) <= data.StartDate && Convert.ToDateTime(target["EndDate"]) >= data.StartDate) ||
|
||||
(Convert.ToDateTime(target["StartDate"]) <= data.EndDate && Convert.ToDateTime(target["EndDate"]) >= data.EndDate)
|
||||
);
|
||||
|
||||
evaeragePurchasedCount += count;
|
||||
data.PurchasedCount = count;
|
||||
}
|
||||
|
||||
winRate = winRate * 100 / nodeList.Count();
|
||||
evaeragePurchasedCount /= nodeList.Count();
|
||||
}
|
||||
|
||||
labelControl_WinRateProfitRate.Text = string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2}",
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), _analysisDatas.Count());
|
||||
labelControl_WinRateProfitRate.Text = string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2} 평균 보유 수 : {3}",
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), nodeList.Count(), evaeragePurchasedCount);
|
||||
}
|
||||
|
||||
private void treeList_ResultData_SelectionChanged(object sender, EventArgs e)
|
||||
private void treeList_ResultData_KeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Space:
|
||||
var selections = treeList_ResultData.Selection;
|
||||
foreach (var item in selections)
|
||||
{
|
||||
item["Inclusion"] = !Convert.ToBoolean(item["Inclusion"]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 테스트보드 창 열기
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void simpleButton_TestBoard_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 테스트 보드 창 만들기
|
||||
TestBoardForm testBoard = new TestBoardForm(this);
|
||||
testBoard.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
557
Million Hunter/HunterSubForm/TestBoardForm.Designer.cs
generated
Normal file
557
Million Hunter/HunterSubForm/TestBoardForm.Designer.cs
generated
Normal file
@@ -0,0 +1,557 @@
|
||||
|
||||
namespace Million_Hunter.HunterSubForm
|
||||
{
|
||||
partial class TestBoardForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.simpleButton_FullInsertCandle = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_4시간_8시간구름떼위 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_시가가볼린저401보다작음 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_시가구름떼위에서시작 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.textEdit_종가시간판매 = new DevExpress.XtraEditors.TextEdit();
|
||||
this.checkEdit_종가시간판매 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.textEdit1 = new DevExpress.XtraEditors.TextEdit();
|
||||
this.textEdit_종목보유수별수익률계산 = new DevExpress.XtraEditors.TextEdit();
|
||||
this.checkEdit1 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_종목보유수별수익률계산 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_구름떼상한선하락시판매 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_구매이전봉볼린저40_1이하 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_이전봉40_2볼린저이하 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.groupBox3 = new System.Windows.Forms.GroupBox();
|
||||
this.simpleButton_Reset = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.progressBar1 = new System.Windows.Forms.ProgressBar();
|
||||
this.simpleButton_찬 = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
||||
this.groupBox5 = new System.Windows.Forms.GroupBox();
|
||||
this.checkEdit_1H = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_4H = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_8H = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_12H = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_1D = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_15M = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_10M = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_5M = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_1M = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.comboBoxEdit_defaultTime = new DevExpress.XtraEditors.ComboBoxEdit();
|
||||
this.checkEdit_구름떼돌파몇봉이내 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.textEdit_구름떼돌파몇봉이내 = new DevExpress.XtraEditors.TextEdit();
|
||||
this.checkEdit_시가볼린저40_1아래 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.checkEdit_시가구름떼위 = new DevExpress.XtraEditors.CheckEdit();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_4시간_8시간구름떼위_양봉.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_4시간_8시간구름떼위.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가가볼린저401보다작음.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가구름떼위에서시작.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_종가시간판매.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_종가시간판매.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit1.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_종목보유수별수익률계산.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit1.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_종목보유수별수익률계산.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구름떼상한선하락시판매.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구매이전봉볼린저40_1이하.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_이전봉40_2볼린저이하.Properties)).BeginInit();
|
||||
this.groupBox3.SuspendLayout();
|
||||
this.groupBox4.SuspendLayout();
|
||||
this.groupBox5.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_1H.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_4H.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_8H.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_12H.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_1D.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_15M.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_10M.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_5M.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_1M.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_defaultTime.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구름떼돌파몇봉이내.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_구름떼돌파몇봉이내.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가볼린저40_1아래.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가구름떼위.Properties)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// simpleButton_FullInsertCandle
|
||||
//
|
||||
this.simpleButton_FullInsertCandle.Appearance.ForeColor = System.Drawing.Color.Teal;
|
||||
this.simpleButton_FullInsertCandle.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton_FullInsertCandle.Location = new System.Drawing.Point(6, 21);
|
||||
this.simpleButton_FullInsertCandle.Name = "simpleButton_FullInsertCandle";
|
||||
this.simpleButton_FullInsertCandle.Size = new System.Drawing.Size(121, 32);
|
||||
this.simpleButton_FullInsertCandle.TabIndex = 1;
|
||||
this.simpleButton_FullInsertCandle.Text = "시간봉 다 채우기";
|
||||
this.simpleButton_FullInsertCandle.Click += new System.EventHandler(this.simpleButton_FullInsertCandle_Click);
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.comboBoxEdit_defaultTime);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_15M);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_10M);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_5M);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_1M);
|
||||
this.groupBox1.Controls.Add(this.simpleButton_FullInsertCandle);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_1D);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_12H);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_8H);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_4H);
|
||||
this.groupBox1.Controls.Add(this.checkEdit_1H);
|
||||
this.groupBox1.Location = new System.Drawing.Point(12, 12);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(255, 126);
|
||||
this.groupBox1.TabIndex = 2;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "데이터 채우기";
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.checkEdit_시가구름떼위);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_시가볼린저40_1아래);
|
||||
this.groupBox2.Controls.Add(this.textEdit_구름떼돌파몇봉이내);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_구름떼돌파몇봉이내);
|
||||
this.groupBox2.Controls.Add(this.groupBox5);
|
||||
this.groupBox2.Controls.Add(this.groupBox4);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_시가가볼린저401보다작음);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_시가구름떼위에서시작);
|
||||
this.groupBox2.Controls.Add(this.textEdit1);
|
||||
this.groupBox2.Controls.Add(this.textEdit_종목보유수별수익률계산);
|
||||
this.groupBox2.Controls.Add(this.checkEdit1);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_종목보유수별수익률계산);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_구름떼상한선하락시판매);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_구매이전봉볼린저40_1이하);
|
||||
this.groupBox2.Controls.Add(this.checkEdit_이전봉40_2볼린저이하);
|
||||
this.groupBox2.Location = new System.Drawing.Point(12, 162);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(1006, 230);
|
||||
this.groupBox2.TabIndex = 3;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "지표";
|
||||
//
|
||||
// checkEdit_4시간_8시간구름떼위_양봉
|
||||
//
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉.Location = new System.Drawing.Point(6, 46);
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉.Name = "checkEdit_4시간_8시간구름떼위_양봉";
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉.Properties.Caption = "4시간, 8시간 구름떼위 양봉 (1시간 기준)";
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉.Size = new System.Drawing.Size(221, 19);
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉.TabIndex = 9;
|
||||
this.checkEdit_4시간_8시간구름떼위_양봉.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_4시간_8시간구름떼위
|
||||
//
|
||||
this.checkEdit_4시간_8시간구름떼위.Location = new System.Drawing.Point(6, 21);
|
||||
this.checkEdit_4시간_8시간구름떼위.Name = "checkEdit_4시간_8시간구름떼위";
|
||||
this.checkEdit_4시간_8시간구름떼위.Properties.Caption = "4시간, 8시간구름떼위 (1시간 기준)";
|
||||
this.checkEdit_4시간_8시간구름떼위.Size = new System.Drawing.Size(195, 19);
|
||||
this.checkEdit_4시간_8시간구름떼위.TabIndex = 9;
|
||||
this.checkEdit_4시간_8시간구름떼위.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_시가가볼린저401보다작음
|
||||
//
|
||||
this.checkEdit_시가가볼린저401보다작음.Location = new System.Drawing.Point(164, 97);
|
||||
this.checkEdit_시가가볼린저401보다작음.Name = "checkEdit_시가가볼린저401보다작음";
|
||||
this.checkEdit_시가가볼린저401보다작음.Properties.Caption = "시가가 볼린저 40 1 보다 작음";
|
||||
this.checkEdit_시가가볼린저401보다작음.Size = new System.Drawing.Size(165, 19);
|
||||
this.checkEdit_시가가볼린저401보다작음.TabIndex = 8;
|
||||
this.checkEdit_시가가볼린저401보다작음.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_시가구름떼위에서시작
|
||||
//
|
||||
this.checkEdit_시가구름떼위에서시작.Location = new System.Drawing.Point(19, 97);
|
||||
this.checkEdit_시가구름떼위에서시작.Name = "checkEdit_시가구름떼위에서시작";
|
||||
this.checkEdit_시가구름떼위에서시작.Properties.Caption = "시가 구름떼 위에서 시작";
|
||||
this.checkEdit_시가구름떼위에서시작.Size = new System.Drawing.Size(150, 19);
|
||||
this.checkEdit_시가구름떼위에서시작.TabIndex = 7;
|
||||
this.checkEdit_시가구름떼위에서시작.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// textEdit_종가시간판매
|
||||
//
|
||||
this.textEdit_종가시간판매.EditValue = "0";
|
||||
this.textEdit_종가시간판매.Location = new System.Drawing.Point(108, 21);
|
||||
this.textEdit_종가시간판매.Name = "textEdit_종가시간판매";
|
||||
this.textEdit_종가시간판매.Properties.Mask.EditMask = "d";
|
||||
this.textEdit_종가시간판매.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
|
||||
this.textEdit_종가시간판매.Size = new System.Drawing.Size(42, 20);
|
||||
this.textEdit_종가시간판매.TabIndex = 6;
|
||||
//
|
||||
// checkEdit_종가시간판매
|
||||
//
|
||||
this.checkEdit_종가시간판매.Location = new System.Drawing.Point(6, 21);
|
||||
this.checkEdit_종가시간판매.Name = "checkEdit_종가시간판매";
|
||||
this.checkEdit_종가시간판매.Properties.Caption = "종가(시간)판매";
|
||||
this.checkEdit_종가시간판매.Size = new System.Drawing.Size(102, 19);
|
||||
this.checkEdit_종가시간판매.TabIndex = 5;
|
||||
this.checkEdit_종가시간판매.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// textEdit1
|
||||
//
|
||||
this.textEdit1.EditValue = "1";
|
||||
this.textEdit1.Location = new System.Drawing.Point(298, 72);
|
||||
this.textEdit1.Name = "textEdit1";
|
||||
this.textEdit1.Size = new System.Drawing.Size(42, 20);
|
||||
this.textEdit1.TabIndex = 4;
|
||||
//
|
||||
// textEdit_종목보유수별수익률계산
|
||||
//
|
||||
this.textEdit_종목보유수별수익률계산.EditValue = "1";
|
||||
this.textEdit_종목보유수별수익률계산.Location = new System.Drawing.Point(175, 72);
|
||||
this.textEdit_종목보유수별수익률계산.Name = "textEdit_종목보유수별수익률계산";
|
||||
this.textEdit_종목보유수별수익률계산.Size = new System.Drawing.Size(42, 20);
|
||||
this.textEdit_종목보유수별수익률계산.TabIndex = 4;
|
||||
//
|
||||
// checkEdit1
|
||||
//
|
||||
this.checkEdit1.Location = new System.Drawing.Point(233, 73);
|
||||
this.checkEdit1.Name = "checkEdit1";
|
||||
this.checkEdit1.Properties.Caption = "거래대금";
|
||||
this.checkEdit1.Size = new System.Drawing.Size(150, 19);
|
||||
this.checkEdit1.TabIndex = 3;
|
||||
this.checkEdit1.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_종목보유수별수익률계산
|
||||
//
|
||||
this.checkEdit_종목보유수별수익률계산.Location = new System.Drawing.Point(19, 72);
|
||||
this.checkEdit_종목보유수별수익률계산.Name = "checkEdit_종목보유수별수익률계산";
|
||||
this.checkEdit_종목보유수별수익률계산.Properties.Caption = "종목 보유수 별 수익률 계산";
|
||||
this.checkEdit_종목보유수별수익률계산.Size = new System.Drawing.Size(150, 19);
|
||||
this.checkEdit_종목보유수별수익률계산.TabIndex = 3;
|
||||
this.checkEdit_종목보유수별수익률계산.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매
|
||||
//
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Location = new System.Drawing.Point(19, 47);
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Name = "checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매";
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Properties.Caption = "구매 전봉 기준 가중이동평균 5봉이 40봉 크로스 이후 구매";
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Size = new System.Drawing.Size(310, 19);
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.TabIndex = 3;
|
||||
this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_구름떼상한선하락시판매
|
||||
//
|
||||
this.checkEdit_구름떼상한선하락시판매.Location = new System.Drawing.Point(379, 22);
|
||||
this.checkEdit_구름떼상한선하락시판매.Name = "checkEdit_구름떼상한선하락시판매";
|
||||
this.checkEdit_구름떼상한선하락시판매.Properties.Caption = "구름떼 상한선 하락시 판매 (1%)";
|
||||
this.checkEdit_구름떼상한선하락시판매.Size = new System.Drawing.Size(179, 19);
|
||||
this.checkEdit_구름떼상한선하락시판매.TabIndex = 2;
|
||||
this.checkEdit_구름떼상한선하락시판매.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_구매이전봉볼린저40_1이하
|
||||
//
|
||||
this.checkEdit_구매이전봉볼린저40_1이하.Location = new System.Drawing.Point(204, 22);
|
||||
this.checkEdit_구매이전봉볼린저40_1이하.Name = "checkEdit_구매이전봉볼린저40_1이하";
|
||||
this.checkEdit_구매이전봉볼린저40_1이하.Properties.Caption = "구매 이전 봉 볼린저 40_1 이하";
|
||||
this.checkEdit_구매이전봉볼린저40_1이하.Size = new System.Drawing.Size(179, 19);
|
||||
this.checkEdit_구매이전봉볼린저40_1이하.TabIndex = 1;
|
||||
this.checkEdit_구매이전봉볼린저40_1이하.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_이전봉40_2볼린저이하
|
||||
//
|
||||
this.checkEdit_이전봉40_2볼린저이하.Location = new System.Drawing.Point(19, 22);
|
||||
this.checkEdit_이전봉40_2볼린저이하.Name = "checkEdit_이전봉40_2볼린저이하";
|
||||
this.checkEdit_이전봉40_2볼린저이하.Properties.Caption = "구매 이전 봉 40_2 볼린저 이하";
|
||||
this.checkEdit_이전봉40_2볼린저이하.Size = new System.Drawing.Size(179, 19);
|
||||
this.checkEdit_이전봉40_2볼린저이하.TabIndex = 0;
|
||||
this.checkEdit_이전봉40_2볼린저이하.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// groupBox3
|
||||
//
|
||||
this.groupBox3.Controls.Add(this.simpleButton_Reset);
|
||||
this.groupBox3.Location = new System.Drawing.Point(373, 12);
|
||||
this.groupBox3.Name = "groupBox3";
|
||||
this.groupBox3.Size = new System.Drawing.Size(154, 63);
|
||||
this.groupBox3.TabIndex = 4;
|
||||
this.groupBox3.TabStop = false;
|
||||
this.groupBox3.Text = "관리";
|
||||
//
|
||||
// simpleButton_Reset
|
||||
//
|
||||
this.simpleButton_Reset.Location = new System.Drawing.Point(6, 21);
|
||||
this.simpleButton_Reset.Name = "simpleButton_Reset";
|
||||
this.simpleButton_Reset.Size = new System.Drawing.Size(109, 32);
|
||||
this.simpleButton_Reset.TabIndex = 0;
|
||||
this.simpleButton_Reset.Text = "Reset";
|
||||
this.simpleButton_Reset.Click += new System.EventHandler(this.simpleButton_Reset_Click);
|
||||
//
|
||||
// progressBar1
|
||||
//
|
||||
this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.progressBar1.Location = new System.Drawing.Point(0, 395);
|
||||
this.progressBar1.Name = "progressBar1";
|
||||
this.progressBar1.Size = new System.Drawing.Size(1030, 23);
|
||||
this.progressBar1.TabIndex = 5;
|
||||
//
|
||||
// simpleButton_찬
|
||||
//
|
||||
this.simpleButton_찬.Location = new System.Drawing.Point(914, 23);
|
||||
this.simpleButton_찬.Name = "simpleButton_찬";
|
||||
this.simpleButton_찬.Size = new System.Drawing.Size(104, 32);
|
||||
this.simpleButton_찬.TabIndex = 4;
|
||||
this.simpleButton_찬.Text = "찬테스트";
|
||||
this.simpleButton_찬.Click += new System.EventHandler(this.simpleButton_찬_Click);
|
||||
//
|
||||
// groupBox4
|
||||
//
|
||||
this.groupBox4.Controls.Add(this.checkEdit_4시간_8시간구름떼위);
|
||||
this.groupBox4.Controls.Add(this.checkEdit_4시간_8시간구름떼위_양봉);
|
||||
this.groupBox4.Location = new System.Drawing.Point(379, 49);
|
||||
this.groupBox4.Name = "groupBox4";
|
||||
this.groupBox4.Size = new System.Drawing.Size(444, 83);
|
||||
this.groupBox4.TabIndex = 10;
|
||||
this.groupBox4.TabStop = false;
|
||||
this.groupBox4.Text = "상위 시간 구름떼 / 볼린저 (시가 기준)";
|
||||
//
|
||||
// groupBox5
|
||||
//
|
||||
this.groupBox5.Controls.Add(this.checkEdit_종가시간판매);
|
||||
this.groupBox5.Controls.Add(this.textEdit_종가시간판매);
|
||||
this.groupBox5.Location = new System.Drawing.Point(19, 123);
|
||||
this.groupBox5.Name = "groupBox5";
|
||||
this.groupBox5.Size = new System.Drawing.Size(335, 100);
|
||||
this.groupBox5.TabIndex = 11;
|
||||
this.groupBox5.TabStop = false;
|
||||
this.groupBox5.Text = "데이터 변경 (봉 채우기 재필요)";
|
||||
//
|
||||
// checkEdit_1H
|
||||
//
|
||||
this.checkEdit_1H.Location = new System.Drawing.Point(6, 76);
|
||||
this.checkEdit_1H.Name = "checkEdit_1H";
|
||||
this.checkEdit_1H.Properties.Caption = "1H";
|
||||
this.checkEdit_1H.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_1H.TabIndex = 9;
|
||||
this.checkEdit_1H.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_4H
|
||||
//
|
||||
this.checkEdit_4H.Location = new System.Drawing.Point(55, 76);
|
||||
this.checkEdit_4H.Name = "checkEdit_4H";
|
||||
this.checkEdit_4H.Properties.Caption = "4H";
|
||||
this.checkEdit_4H.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_4H.TabIndex = 9;
|
||||
this.checkEdit_4H.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_8H
|
||||
//
|
||||
this.checkEdit_8H.Location = new System.Drawing.Point(104, 76);
|
||||
this.checkEdit_8H.Name = "checkEdit_8H";
|
||||
this.checkEdit_8H.Properties.Caption = "8H";
|
||||
this.checkEdit_8H.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_8H.TabIndex = 9;
|
||||
this.checkEdit_8H.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_12H
|
||||
//
|
||||
this.checkEdit_12H.Location = new System.Drawing.Point(155, 76);
|
||||
this.checkEdit_12H.Name = "checkEdit_12H";
|
||||
this.checkEdit_12H.Properties.Caption = "12H";
|
||||
this.checkEdit_12H.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_12H.TabIndex = 9;
|
||||
this.checkEdit_12H.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_1D
|
||||
//
|
||||
this.checkEdit_1D.Location = new System.Drawing.Point(6, 99);
|
||||
this.checkEdit_1D.Name = "checkEdit_1D";
|
||||
this.checkEdit_1D.Properties.Caption = "1D";
|
||||
this.checkEdit_1D.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_1D.TabIndex = 9;
|
||||
this.checkEdit_1D.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_15M
|
||||
//
|
||||
this.checkEdit_15M.Location = new System.Drawing.Point(155, 54);
|
||||
this.checkEdit_15M.Name = "checkEdit_15M";
|
||||
this.checkEdit_15M.Properties.Caption = "15M";
|
||||
this.checkEdit_15M.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_15M.TabIndex = 11;
|
||||
//
|
||||
// checkEdit_10M
|
||||
//
|
||||
this.checkEdit_10M.Location = new System.Drawing.Point(104, 54);
|
||||
this.checkEdit_10M.Name = "checkEdit_10M";
|
||||
this.checkEdit_10M.Properties.Caption = "10M";
|
||||
this.checkEdit_10M.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_10M.TabIndex = 12;
|
||||
//
|
||||
// checkEdit_5M
|
||||
//
|
||||
this.checkEdit_5M.Location = new System.Drawing.Point(55, 54);
|
||||
this.checkEdit_5M.Name = "checkEdit_5M";
|
||||
this.checkEdit_5M.Properties.Caption = "5M";
|
||||
this.checkEdit_5M.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_5M.TabIndex = 13;
|
||||
//
|
||||
// checkEdit_1M
|
||||
//
|
||||
this.checkEdit_1M.Location = new System.Drawing.Point(6, 54);
|
||||
this.checkEdit_1M.Name = "checkEdit_1M";
|
||||
this.checkEdit_1M.Properties.Caption = "1M";
|
||||
this.checkEdit_1M.Size = new System.Drawing.Size(43, 19);
|
||||
this.checkEdit_1M.TabIndex = 14;
|
||||
//
|
||||
// comboBoxEdit_defaultTime
|
||||
//
|
||||
this.comboBoxEdit_defaultTime.Location = new System.Drawing.Point(133, 28);
|
||||
this.comboBoxEdit_defaultTime.Name = "comboBoxEdit_defaultTime";
|
||||
this.comboBoxEdit_defaultTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
|
||||
new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
|
||||
this.comboBoxEdit_defaultTime.Size = new System.Drawing.Size(100, 20);
|
||||
this.comboBoxEdit_defaultTime.TabIndex = 15;
|
||||
this.comboBoxEdit_defaultTime.SelectedIndexChanged += new System.EventHandler(this.comboBoxEdit_defaultTime_SelectedIndexChanged);
|
||||
//
|
||||
// checkEdit_구름떼돌파몇봉이내
|
||||
//
|
||||
this.checkEdit_구름떼돌파몇봉이내.Location = new System.Drawing.Point(385, 138);
|
||||
this.checkEdit_구름떼돌파몇봉이내.Name = "checkEdit_구름떼돌파몇봉이내";
|
||||
this.checkEdit_구름떼돌파몇봉이내.Properties.Caption = "구름떼 돌파 후 몇봉 이내";
|
||||
this.checkEdit_구름떼돌파몇봉이내.Size = new System.Drawing.Size(141, 19);
|
||||
this.checkEdit_구름떼돌파몇봉이내.TabIndex = 12;
|
||||
this.checkEdit_구름떼돌파몇봉이내.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// textEdit_구름떼돌파몇봉이내
|
||||
//
|
||||
this.textEdit_구름떼돌파몇봉이내.EditValue = "0";
|
||||
this.textEdit_구름떼돌파몇봉이내.Location = new System.Drawing.Point(532, 137);
|
||||
this.textEdit_구름떼돌파몇봉이내.Name = "textEdit_구름떼돌파몇봉이내";
|
||||
this.textEdit_구름떼돌파몇봉이내.Properties.Mask.EditMask = "d";
|
||||
this.textEdit_구름떼돌파몇봉이내.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
|
||||
this.textEdit_구름떼돌파몇봉이내.Size = new System.Drawing.Size(42, 20);
|
||||
this.textEdit_구름떼돌파몇봉이내.TabIndex = 13;
|
||||
//
|
||||
// checkEdit_시가볼린저40_1아래
|
||||
//
|
||||
this.checkEdit_시가볼린저40_1아래.Location = new System.Drawing.Point(385, 163);
|
||||
this.checkEdit_시가볼린저40_1아래.Name = "checkEdit_시가볼린저40_1아래";
|
||||
this.checkEdit_시가볼린저40_1아래.Properties.Caption = "시가 볼린저40 1 아래";
|
||||
this.checkEdit_시가볼린저40_1아래.Size = new System.Drawing.Size(141, 19);
|
||||
this.checkEdit_시가볼린저40_1아래.TabIndex = 14;
|
||||
this.checkEdit_시가볼린저40_1아래.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// checkEdit_시가구름떼위
|
||||
//
|
||||
this.checkEdit_시가구름떼위.Location = new System.Drawing.Point(385, 188);
|
||||
this.checkEdit_시가구름떼위.Name = "checkEdit_시가구름떼위";
|
||||
this.checkEdit_시가구름떼위.Properties.Caption = "시가 구름 떼 위";
|
||||
this.checkEdit_시가구름떼위.Size = new System.Drawing.Size(141, 19);
|
||||
this.checkEdit_시가구름떼위.TabIndex = 14;
|
||||
this.checkEdit_시가구름떼위.CheckedChanged += new System.EventHandler(this.checkEdit_common_CheckedChanged);
|
||||
//
|
||||
// TestBoardForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1030, 418);
|
||||
this.Controls.Add(this.progressBar1);
|
||||
this.Controls.Add(this.simpleButton_찬);
|
||||
this.Controls.Add(this.groupBox3);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Name = "TestBoardForm";
|
||||
this.Text = "TestBoard";
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_4시간_8시간구름떼위_양봉.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_4시간_8시간구름떼위.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가가볼린저401보다작음.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가구름떼위에서시작.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_종가시간판매.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_종가시간판매.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit1.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_종목보유수별수익률계산.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit1.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_종목보유수별수익률계산.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구름떼상한선하락시판매.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구매이전봉볼린저40_1이하.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_이전봉40_2볼린저이하.Properties)).EndInit();
|
||||
this.groupBox3.ResumeLayout(false);
|
||||
this.groupBox4.ResumeLayout(false);
|
||||
this.groupBox5.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_1H.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_4H.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_8H.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_12H.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_1D.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_15M.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_10M.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_5M.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_1M.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.comboBoxEdit_defaultTime.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_구름떼돌파몇봉이내.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_구름떼돌파몇봉이내.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가볼린저40_1아래.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.checkEdit_시가구름떼위.Properties)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton_FullInsertCandle;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.CheckedListBox checkedListBox_Indicator;
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton_찬;
|
||||
private System.Windows.Forms.ProgressBar progressBar1;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_이전봉40_2볼린저이하;
|
||||
private System.Windows.Forms.GroupBox groupBox3;
|
||||
private DevExpress.XtraEditors.SimpleButton simpleButton_Reset;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_구매이전봉볼린저40_1이하;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_구름떼상한선하락시판매;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_종목보유수별수익률계산;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_종목보유수별수익률계산;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_종가시간판매;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_종가시간판매;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit1;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit1;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_시가구름떼위에서시작;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_시가가볼린저401보다작음;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_4시간_8시간구름떼위_양봉;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_4시간_8시간구름떼위;
|
||||
private System.Windows.Forms.GroupBox groupBox5;
|
||||
private System.Windows.Forms.GroupBox groupBox4;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_15M;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_10M;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_5M;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_1M;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_1D;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_12H;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_8H;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_4H;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_1H;
|
||||
private DevExpress.XtraEditors.ComboBoxEdit comboBoxEdit_defaultTime;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_구름떼돌파몇봉이내;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_구름떼돌파몇봉이내;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_시가구름떼위;
|
||||
private DevExpress.XtraEditors.CheckEdit checkEdit_시가볼린저40_1아래;
|
||||
}
|
||||
}
|
||||
867
Million Hunter/HunterSubForm/TestBoardForm.cs
Normal file
867
Million Hunter/HunterSubForm/TestBoardForm.cs
Normal file
@@ -0,0 +1,867 @@
|
||||
using DevExpress.XtraEditors;
|
||||
using Million;
|
||||
using Million.Data;
|
||||
using Million.DbManagement;
|
||||
using Million.HunterSubForm;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using Million.Manager;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Million_Hunter.HunterSubForm
|
||||
{
|
||||
public partial class TestBoardForm : DevExpress.XtraEditors.XtraForm
|
||||
{
|
||||
|
||||
ResultViewerForm parentForm = null;
|
||||
List<AnalysisData> analysisDatas = null;
|
||||
|
||||
CommonProperty.MCandleTimeType MCandleTimeType;
|
||||
|
||||
bool ignoreChangedfilter = false;
|
||||
|
||||
public TestBoardForm(ResultViewerForm resultViewerForm)
|
||||
{
|
||||
InitializeComponent();
|
||||
parentForm = resultViewerForm;
|
||||
analysisDatas = parentForm._analysisDatas;
|
||||
|
||||
// 시간 단위 가져오기
|
||||
var candleTimeTypeList = Enum.GetNames(enumType: typeof(CommonProperty.MCandleTimeType));
|
||||
comboBoxEdit_defaultTime.Properties.Items.AddRange(candleTimeTypeList);
|
||||
comboBoxEdit_defaultTime.SelectedText = "H1";
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 한시간 봉 채우기
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void simpleButton_FullInsertCandle_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 시간 단위 설정 (AnalysisData에 추가하기)
|
||||
// 조건식에 포함되는 시간 단위 가져오기 (IndicatorConditionSetup 을 여기에서 밖에 쓸 때가 없음)
|
||||
var candleTypes = parentForm._totalIndicator.Select(t => t.MCandleTimeType).Distinct().ToList();
|
||||
|
||||
#region 기본 Indicator 데이터 생성하기
|
||||
// Bol(40,1), Bol(40,2), Ichimoku(기본)
|
||||
var _chartIndicatorCoditionSetups = new List<IndicatorCoditionSetup>();
|
||||
|
||||
_chartIndicatorCoditionSetups.Add(new BolingerConditionSetup()
|
||||
{
|
||||
IndicatorType = CommonProperty.IndicatorType.볼린저밴드,
|
||||
Period = 40,
|
||||
Squared = 1,
|
||||
Description = "bol40_1",
|
||||
MCandleTimeType = candleTypes.First()
|
||||
}); ;
|
||||
_chartIndicatorCoditionSetups.Add(new BolingerConditionSetup()
|
||||
{
|
||||
IndicatorType = CommonProperty.IndicatorType.볼린저밴드,
|
||||
Period = 40,
|
||||
Squared = 2,
|
||||
Description = "bol40_2",
|
||||
MCandleTimeType = candleTypes.First()
|
||||
});
|
||||
_chartIndicatorCoditionSetups.Add(new IchimokuConditionSetup()
|
||||
{
|
||||
IndicatorType = CommonProperty.IndicatorType.일목균형표,
|
||||
ConversionPeriod = 9,
|
||||
BaselinePeriod = 26,
|
||||
LaggingSpan2Period = 52,
|
||||
Displacement = 26,
|
||||
Description = "ich",
|
||||
MCandleTimeType = candleTypes.First()
|
||||
});
|
||||
#endregion
|
||||
|
||||
/*
|
||||
Enum.TryParse(comboBoxEdit_defaultTime.SelectedItem.ToString(),
|
||||
out CommonProperty.MCandleTimeType mCandleTimeType);
|
||||
*/
|
||||
|
||||
MCandleTimeType = CommonProperty.MCandleTimeType.H1;
|
||||
|
||||
//차트 Date Time 설정하기
|
||||
var StartDateInterval = 80 * 30;
|
||||
var EndDateInterval = 100;
|
||||
|
||||
foreach(var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = analysisData.StartDate;
|
||||
var endDate = analysisData.EndDate;
|
||||
|
||||
var chartStartDate = startDate;
|
||||
var chartEndDate = endDate;
|
||||
|
||||
// Default : 1 시간
|
||||
// 추가 : 4, 8,
|
||||
switch (candleTypes.First())
|
||||
{
|
||||
case CommonProperty.MCandleTimeType.H1:
|
||||
chartStartDate = startDate - new TimeSpan(0, StartDateInterval, 0, 0);
|
||||
chartEndDate = startDate + new TimeSpan(0, EndDateInterval, 0, 0);
|
||||
// annotation 추가 시 Datetime 비교를 위해 00분으로 변환
|
||||
startDate = Convert.ToDateTime(startDate.ToString("yyyy-MM-dd HH:00"));
|
||||
endDate = Convert.ToDateTime(endDate.ToString("yyyy-MM-dd HH:00"));
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.H4:
|
||||
chartStartDate = startDate - new TimeSpan(0, StartDateInterval * 4, 0, 0);
|
||||
chartEndDate = startDate + new TimeSpan(0, EndDateInterval * 4, 0, 0);
|
||||
startDate = Convert.ToDateTime(startDate.ToString("yyyy-MM-dd HH:00"));
|
||||
endDate = Convert.ToDateTime(endDate.ToString("yyyy-MM-dd HH:00"));
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.M1:
|
||||
chartStartDate = startDate - new TimeSpan(0, 0, StartDateInterval, 0);
|
||||
chartEndDate = startDate + new TimeSpan(0, 0, EndDateInterval, 0);
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.M10:
|
||||
case CommonProperty.MCandleTimeType.M5:
|
||||
case CommonProperty.MCandleTimeType.M3:
|
||||
case CommonProperty.MCandleTimeType.M30:
|
||||
case CommonProperty.MCandleTimeType.M15:
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.D1:
|
||||
chartStartDate = startDate - new TimeSpan(StartDateInterval, 0, 0, 0);
|
||||
chartEndDate = startDate + new TimeSpan(EndDateInterval, 0, 0, 0);
|
||||
startDate = Convert.ToDateTime(startDate.ToString("yyyy-MM-dd"));
|
||||
endDate = Convert.ToDateTime(endDate.ToString("yyyy-MM-dd"));
|
||||
break;
|
||||
}
|
||||
|
||||
var dic = DataManager.GetStandardData(_chartIndicatorCoditionSetups, chartStartDate, chartEndDate, analysisData.OriginalSearchResult.MarketData
|
||||
, _chartIndicatorCoditionSetups, true, candleTypes);
|
||||
|
||||
var dic_4 = DataManager.GetConvertCandleDataList(dic[CommonProperty.MCandleTimeType.H1], CommonProperty.MCandleTimeType.H4);
|
||||
foreach (var setup in _chartIndicatorCoditionSetups)
|
||||
{
|
||||
setup.excute(dic_4);
|
||||
}
|
||||
|
||||
var dic_8 = DataManager.GetConvertCandleDataList(dic[CommonProperty.MCandleTimeType.H1], CommonProperty.MCandleTimeType.H8);
|
||||
foreach (var setup in _chartIndicatorCoditionSetups)
|
||||
{
|
||||
setup.excute(dic_8);
|
||||
}
|
||||
|
||||
var dic_12 = DataManager.GetConvertCandleDataList(dic[CommonProperty.MCandleTimeType.H1], CommonProperty.MCandleTimeType.H12);
|
||||
foreach (var setup in _chartIndicatorCoditionSetups)
|
||||
{
|
||||
setup.excute(dic_12);
|
||||
}
|
||||
|
||||
var dic_1d = DataManager.GetConvertCandleDataList(dic[CommonProperty.MCandleTimeType.H1], CommonProperty.MCandleTimeType.D1);
|
||||
foreach (var setup in _chartIndicatorCoditionSetups)
|
||||
{
|
||||
setup.excute(dic_1d);
|
||||
}
|
||||
|
||||
dic.Add(CommonProperty.MCandleTimeType.H4, dic_4);
|
||||
dic.Add(CommonProperty.MCandleTimeType.H8, dic_8);
|
||||
dic.Add(CommonProperty.MCandleTimeType.H12, dic_12);
|
||||
dic.Add(CommonProperty.MCandleTimeType.D1, dic_1d);
|
||||
|
||||
if (analysisData.CandleDatas != null)
|
||||
{
|
||||
analysisData.CandleDatas.Clear();
|
||||
analysisData.CandleDatas = null;
|
||||
}
|
||||
|
||||
analysisData.CandleDatas = dic;
|
||||
}
|
||||
|
||||
MessageBox.Show("캔들 데이터 불러오기 완료");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 데이터 초기화
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void simpleButton_Reset_Click(object sender, EventArgs e)
|
||||
{
|
||||
resetFilter();
|
||||
|
||||
ignoreChangedfilter = true;
|
||||
|
||||
checkEdit_구매이전봉볼린저40_1이하.Checked = false;
|
||||
checkEdit_이전봉40_2볼린저이하.Checked = false;
|
||||
|
||||
ignoreChangedfilter = false;
|
||||
|
||||
parentForm.treeList_ResultData.RefreshDataSource();
|
||||
parentForm.CalcurateProfitAndWinRate();
|
||||
}
|
||||
|
||||
public void resetFilter()
|
||||
{
|
||||
// 구매 시점 이전 봉 40 1 볼린저 값 이하
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
analysisData.Inclusion = true;
|
||||
analysisData.Description = "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void calcurateFilter()
|
||||
{
|
||||
// 필터 초기화
|
||||
resetFilter();
|
||||
|
||||
// 이전봉40_2볼린저이하
|
||||
if (checkEdit_이전봉40_2볼린저이하.Checked)
|
||||
{
|
||||
// 구매 시점 이전 봉 40 1 볼린저 값 이하
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = analysisData.StartDate;
|
||||
var endDate = analysisData.EndDate;
|
||||
|
||||
if (checkEdit_이전봉40_2볼린저이하.Checked)
|
||||
{
|
||||
var 구매이전봉 = startDate;
|
||||
|
||||
//차트 Date Time 설정하기
|
||||
var StartDateInterval = -1;
|
||||
|
||||
구매이전봉 = changeDatetimeFormat(구매이전봉, StartDateInterval);
|
||||
|
||||
var candleData = analysisData.CandleDatas[MCandleTimeType].Find(item => item.DateTime == 구매이전봉);
|
||||
// 시간대 캔들이 없으면 결과에서 제외
|
||||
if (candleData == null)
|
||||
{
|
||||
analysisData.Description = "[오류:캔들없음]" + analysisData.Description;
|
||||
analysisData.Inclusion = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
var highValue = candleData.HighValue;
|
||||
|
||||
var bol402 = candleData.IndicatorDic["Bol402"]?.value;
|
||||
|
||||
if (bol402 != null)
|
||||
{
|
||||
// 제외된 조건인 아닌 경우
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
if (highValue < bol402)
|
||||
{
|
||||
analysisData.Inclusion = true;
|
||||
analysisData.Description = '[' + checkEdit_이전봉40_2볼린저이하.Text + ']' + analysisData.Description;
|
||||
}
|
||||
else
|
||||
analysisData.Inclusion = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 이전봉40_1볼린저이하
|
||||
if (checkEdit_구매이전봉볼린저40_1이하.Checked)
|
||||
{
|
||||
// 구매 시점 이전 봉 40 1 볼린저 값 이하
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = analysisData.StartDate;
|
||||
var endDate = analysisData.EndDate;
|
||||
|
||||
if (checkEdit_구매이전봉볼린저40_1이하.Checked)
|
||||
{
|
||||
var 구매이전봉 = startDate;
|
||||
|
||||
//차트 Date Time 설정하기
|
||||
var StartDateInterval = -1;
|
||||
|
||||
구매이전봉 = changeDatetimeFormat(구매이전봉, StartDateInterval);
|
||||
|
||||
var candleData = analysisData.CandleDatas[MCandleTimeType].Find(item => item.DateTime == 구매이전봉);
|
||||
// 시간대 캔들이 없으면 결과에서 제외
|
||||
if (candleData == null)
|
||||
{
|
||||
analysisData.Description = "[오류:캔들없음]" + analysisData.Description;
|
||||
analysisData.Inclusion = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
var highValue = candleData.HighValue;
|
||||
|
||||
var bol401 = candleData.IndicatorDic["Bol401"]?.value;
|
||||
|
||||
if (bol401 != null)
|
||||
{
|
||||
// 제외된 조건인 아닌 경우
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
if (highValue < bol401)
|
||||
{
|
||||
analysisData.Inclusion = true;
|
||||
analysisData.Description = '[' + checkEdit_이전봉40_2볼린저이하.Text + ']' + analysisData.Description;
|
||||
}
|
||||
else
|
||||
analysisData.Inclusion = false;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (checkEdit_구름떼상한선하락시판매.Checked)
|
||||
{
|
||||
// 평균 승률 계산하기
|
||||
double winRate = 0;
|
||||
// 평균 수익률 계산하기
|
||||
double profitRate = 0;
|
||||
|
||||
var count__ = 0;
|
||||
var count_2 = 0;
|
||||
var count_3 = 0;
|
||||
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
|
||||
if (!analysisData.Inclusion) continue;
|
||||
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var endDate = changeDatetimeFormat(analysisData.EndDate, 0);
|
||||
|
||||
var candleData = analysisData.CandleDatas.First().Value.Find(item => item.DateTime > startDate && item.DateTime < endDate &&
|
||||
item.IndicatorDic["Ich2695226"]?.value != null && ((IchimokData)item.IndicatorDic["Ich2695226"]).GetOverValue() > item.LowValue);
|
||||
|
||||
if (candleData != null)
|
||||
{
|
||||
var endResut = changeDatetimeFormat(candleData.DateTime, 0);
|
||||
var ichValue = ((IchimokData)candleData.IndicatorDic["Ich2695226"]).GetOverValue();
|
||||
|
||||
if (ichValue > analysisData.BuyValue)
|
||||
{
|
||||
analysisData.WinFlag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
analysisData.WinFlag = false;
|
||||
}
|
||||
|
||||
analysisData.EarningRate = analysisData.EarningRate = (-100 + (ichValue / analysisData.BuyValue) * 100);
|
||||
|
||||
if (analysisData.EarningRate < -4)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var allCount = parentForm._analysisDatas.Count(item => item.Inclusion == true);
|
||||
|
||||
winRate = winRate * 100 / allCount;
|
||||
|
||||
MessageBox.Show(string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2}",
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), allCount.ToString()) );
|
||||
}
|
||||
|
||||
if (checkEdit_구매전봉기준가중이동평균5봉이40봉크로스이후구매.Checked)
|
||||
{
|
||||
var Interval_5 = 5;
|
||||
var Interval_40 = 40;
|
||||
|
||||
// 분모 구하기
|
||||
var 분모5일 = 0;
|
||||
var 분모40일 = 0;
|
||||
for (int i = 1; i <= Interval_5; i++) 분모5일 += i;
|
||||
for (int i=1; i<=Interval_40; i++) 분모40일 += i;
|
||||
|
||||
var ttt = parentForm._totalIndicator.First().MCandleTimeType;
|
||||
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
// 현재 시간 데이터 포함
|
||||
var 구매이전봉_5일전거래시간 = changeDatetimeFormat(analysisData.StartDate, -Interval_5);
|
||||
var 구매이전봉_40일전거래시간 = changeDatetimeFormat(analysisData.StartDate, -Interval_40);
|
||||
var 구매이전봉_거래시간 = changeDatetimeFormat(analysisData.StartDate, -1);
|
||||
|
||||
var 가중이동평균5일 = 0.0;
|
||||
var 가중이동평균40일 = 0.0;
|
||||
|
||||
|
||||
int count_40 = Interval_40;
|
||||
int count_5 = Interval_5;
|
||||
var curDateTime = 구매이전봉_거래시간;
|
||||
while (curDateTime >= 구매이전봉_40일전거래시간)
|
||||
{
|
||||
var candleData = analysisData.CandleDatas[MCandleTimeType].Find(item => item.DateTime == curDateTime);
|
||||
|
||||
var 거래량 = 0.0;
|
||||
|
||||
// 데이터가 없으면 거래량 0으로 사용
|
||||
if (candleData == null) 거래량 = 0;
|
||||
else 거래량 = Convert.ToDouble(candleData.MoneyVolume);
|
||||
|
||||
// 5일치 누적 및 계산이 끝났으면 그만 계산
|
||||
if (curDateTime >= 구매이전봉_5일전거래시간)
|
||||
{
|
||||
가중이동평균5일 += count_5 * 거래량;
|
||||
}
|
||||
// 5일 계산
|
||||
if (curDateTime == 구매이전봉_5일전거래시간)
|
||||
{
|
||||
가중이동평균5일 /= 분모5일;
|
||||
// 5일 계산
|
||||
거래량 = 0.0;
|
||||
}
|
||||
|
||||
// 40일 누적
|
||||
가중이동평균40일 += count_40 * 거래량;
|
||||
// 40일 계산
|
||||
if (curDateTime == 구매이전봉_40일전거래시간)
|
||||
{
|
||||
가중이동평균40일 /= 분모40일;
|
||||
}
|
||||
|
||||
curDateTime = changeDatetimeFormat(curDateTime, -1);
|
||||
count_40--;
|
||||
count_5--;
|
||||
}
|
||||
|
||||
// 제외된 조건인 아닌 경우 (만족 조건 중에서만 검색)
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
var result = false;
|
||||
if (가중이동평균5일 > 가중이동평균40일)
|
||||
{
|
||||
result = true;
|
||||
analysisData.Inclusion = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = false;
|
||||
analysisData.Inclusion = false;
|
||||
}
|
||||
|
||||
analysisData.Description = string.Format("[{0},5일:{1:0.0},40일:{2:0.0}]",result, 가중이동평균5일, 가중이동평균40일);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (checkEdit_종목보유수별수익률계산.Checked)
|
||||
{
|
||||
var coinCount = Convert.ToInt32(textEdit_종목보유수별수익률계산.Text);
|
||||
//r Con
|
||||
//inCount =
|
||||
|
||||
|
||||
}
|
||||
// 종가 판매
|
||||
if (checkEdit_종가시간판매.Checked)
|
||||
{
|
||||
// 종가 판매 봉기준
|
||||
var candleInterval = Convert.ToInt32(textEdit_종가시간판매.Text);
|
||||
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var endDate = changeDatetimeFormat(analysisData.EndDate, 0);
|
||||
var 종가판매기준시간 = changeDatetimeFormat(startDate, candleInterval);
|
||||
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
if (changeDatetimeFormat(endDate, 0) > 종가판매기준시간)
|
||||
{
|
||||
var data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == 종가판매기준시간);
|
||||
if(data == null)
|
||||
{
|
||||
var date = new DateTime();
|
||||
date = 종가판매기준시간;
|
||||
while (data == null)
|
||||
{
|
||||
date = changeDatetimeFormat(date, -1);
|
||||
data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == date);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 수익률 구하기
|
||||
analysisData.EarningRate = (-100 + (data.EndValue / analysisData.BuyValue) * 100);
|
||||
|
||||
|
||||
analysisData.WinFlag = analysisData.EarningRate > 0 ? true : false;
|
||||
analysisData.SellValue = data.EndValue;
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(checkEdit_시가구름떼위에서시작.Checked)
|
||||
{
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == startDate);
|
||||
|
||||
var maxich = Math.Max(((IchimokData)data.IndicatorDic["Ich2695226"]).value, ((IchimokData)data.IndicatorDic["Ich2695226"]).value2);
|
||||
|
||||
if (analysisData.Inclusion)
|
||||
if (maxich >= data.StartValue) analysisData.Inclusion = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (checkEdit_시가가볼린저401보다작음.Checked)
|
||||
{
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == startDate);
|
||||
|
||||
if (analysisData.Inclusion)
|
||||
if (data.IndicatorDic["Bol401"].value <= data.StartValue) analysisData.Inclusion = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(checkEdit_4시간_8시간구름떼위.Checked)
|
||||
{
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
if (!analysisData.Inclusion) continue;
|
||||
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var data = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H1].Find(item => item.DateTime == startDate);
|
||||
var data4 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H4].Find(item => changeDatetimeFormat(startDate, -4) <= item.DateTime && item.DateTime <= startDate);
|
||||
if (data4 == null)
|
||||
{
|
||||
var dateT4 = new DateTime();
|
||||
dateT4 = startDate;
|
||||
while (data4 == null)
|
||||
{
|
||||
data4 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H4].Find(item => changeDatetimeFormat(dateT4, -4) <= item.DateTime && item.DateTime <= dateT4);
|
||||
dateT4 = changeDatetimeFormat(dateT4, -4);
|
||||
}
|
||||
}
|
||||
var data8 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H8].Find(item => changeDatetimeFormat(startDate, -8) <= item.DateTime && item.DateTime <= startDate);
|
||||
if (data8 == null)
|
||||
{
|
||||
var dateT8 = new DateTime();
|
||||
dateT8 = startDate;
|
||||
while (data8 == null)
|
||||
{
|
||||
data8 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H8].Find(item => changeDatetimeFormat(dateT8, -8) <= item.DateTime && item.DateTime <= dateT8);
|
||||
dateT8 = changeDatetimeFormat(dateT8, -8);
|
||||
}
|
||||
}
|
||||
var maxich = Math.Max(((IchimokData)data.IndicatorDic["Ich2695226"]).value, ((IchimokData)data.IndicatorDic["Ich2695226"]).value2);
|
||||
var maxich4 = Math.Max(((IchimokData)data4.IndicatorDic["Ich2695226"]).value, ((IchimokData)data4.IndicatorDic["Ich2695226"]).value2);
|
||||
var maxich8 = Math.Max(((IchimokData)data8.IndicatorDic["Ich2695226"]).value, ((IchimokData)data8.IndicatorDic["Ich2695226"]).value2);
|
||||
|
||||
if(analysisData.Inclusion)
|
||||
if (maxich8 >= data8.StartValue || maxich4 >= data4.StartValue) analysisData.Inclusion = false;
|
||||
}
|
||||
}
|
||||
|
||||
if(checkEdit_4시간_8시간구름떼위_양봉.Checked)
|
||||
{
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
if (!analysisData.Inclusion) continue;
|
||||
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var data = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H1].Find(item => item.DateTime == startDate);
|
||||
var data4 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H4].Find(item => changeDatetimeFormat(startDate, -4) <= item.DateTime && item.DateTime <= startDate);
|
||||
if (data4 == null)
|
||||
{
|
||||
var dateT4 = new DateTime();
|
||||
dateT4 = startDate;
|
||||
while (data4 == null)
|
||||
{
|
||||
data4 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H4].Find(item => changeDatetimeFormat(dateT4, -4) <= item.DateTime && item.DateTime <= dateT4);
|
||||
dateT4 = changeDatetimeFormat(dateT4, -4);
|
||||
}
|
||||
}
|
||||
var data8 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H8].Find(item => changeDatetimeFormat(startDate, -8) <= item.DateTime && item.DateTime <= startDate);
|
||||
if (data8 == null)
|
||||
{
|
||||
var dateT8 = new DateTime();
|
||||
dateT8 = startDate;
|
||||
while (data8 == null)
|
||||
{
|
||||
data8 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H8].Find(item => changeDatetimeFormat(dateT8, -8) <= item.DateTime && item.DateTime <= dateT8);
|
||||
dateT8 = changeDatetimeFormat(dateT8, -8);
|
||||
}
|
||||
}
|
||||
var data12 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H12].Find(item => changeDatetimeFormat(startDate, -12) <= item.DateTime && item.DateTime <= startDate);
|
||||
if (data12 == null)
|
||||
{
|
||||
var dateT12 = new DateTime();
|
||||
dateT12 = startDate;
|
||||
while (data12 == null)
|
||||
{
|
||||
data12 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.H12].Find(item => changeDatetimeFormat(dateT12, -12) <= item.DateTime && item.DateTime <= dateT12);
|
||||
dateT12 = changeDatetimeFormat(dateT12, -12);
|
||||
}
|
||||
}
|
||||
var data24 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.D1].Find(item => changeDatetimeFormat(startDate, -24) <= item.DateTime && item.DateTime <= startDate);
|
||||
if (data24 == null)
|
||||
{
|
||||
var dateT24 = new DateTime();
|
||||
dateT24 = startDate;
|
||||
while (data24 == null)
|
||||
{
|
||||
data24 = analysisData.CandleDatas[CommonProperty.MCandleTimeType.D1].Find(item => changeDatetimeFormat(dateT24, -24) <= item.DateTime && item.DateTime <= dateT24);
|
||||
dateT24 = changeDatetimeFormat(dateT24, -24);
|
||||
}
|
||||
}
|
||||
|
||||
var maxich = Math.Max(((IchimokData)data.IndicatorDic["Ich2695226"]).value, ((IchimokData)data.IndicatorDic["Ich2695226"]).value2);
|
||||
var maxich4 = Math.Max(((IchimokData)data4.IndicatorDic["Ich2695226"]).value, ((IchimokData)data4.IndicatorDic["Ich2695226"]).value2);
|
||||
var maxich8 = Math.Max(((IchimokData)data8.IndicatorDic["Ich2695226"]).value, ((IchimokData)data8.IndicatorDic["Ich2695226"]).value2);
|
||||
var maxich12 = Math.Max(((IchimokData)data12.IndicatorDic["Ich2695226"]).value, ((IchimokData)data12.IndicatorDic["Ich2695226"]).value2);
|
||||
//var maxichD1 = Math.Max(((IchimokData)data24.IndicatorDic["Ich2695226"]).value, ((IchimokData)data24.IndicatorDic["Ich2695226"]).value2);
|
||||
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
//if (!(maxichD1 < data24.StartValue && maxich12 < data12.StartValue && maxich8 < data8.StartValue && maxich4 < data4.StartValue
|
||||
if(!(maxich12 < data12.StartValue && maxich8 < data8.StartValue && maxich4 < data4.StartValue
|
||||
//&& data12.IndicatorDic["Bol401"].value < data12.StartValue
|
||||
// && data8.IndicatorDic["Bol401"].value < data8.StartValue
|
||||
// && data4.IndicatorDic["Bol401"].value < data4.StartValue
|
||||
)) analysisData.Inclusion = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(checkEdit_구름떼돌파몇봉이내.Checked)
|
||||
{
|
||||
var timeInterval = Convert.ToInt32(textEdit_구름떼돌파몇봉이내.Text);
|
||||
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
var 몇봉이내이전봉시간 = changeDatetimeFormat(analysisData.StartDate, -timeInterval -1);
|
||||
var data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == 몇봉이내이전봉시간);
|
||||
if (data == null)
|
||||
{
|
||||
analysisData.Description += "데이터 없음" + analysisData.Description;
|
||||
continue;
|
||||
}
|
||||
|
||||
var ichData = (IchimokData)data.IndicatorDic["Ich2695226"];
|
||||
if (data.HighValue < Math.Max(ichData.value2, ichData.value2))
|
||||
{
|
||||
analysisData.Inclusion = true;
|
||||
}
|
||||
else analysisData.Inclusion = false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (checkEdit_시가볼린저40_1아래.Checked)
|
||||
{
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == startDate);
|
||||
if (data == null)
|
||||
{
|
||||
analysisData.Description += "데이터 없음" + analysisData.Description;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
if (data.StartValue < data.IndicatorDic["Bol401"].value) analysisData.Inclusion = true;
|
||||
else analysisData.Inclusion = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (checkEdit_시가구름떼위.Checked)
|
||||
{
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = changeDatetimeFormat(analysisData.StartDate, 0);
|
||||
var data = analysisData.CandleDatas.First().Value.Find(item => item.DateTime == startDate);
|
||||
if (data == null)
|
||||
{
|
||||
analysisData.Description += "데이터 없음" + analysisData.Description;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (analysisData.Inclusion)
|
||||
{
|
||||
var ichData = (IchimokData)data.IndicatorDic["Ich2695226"];
|
||||
|
||||
if (data.StartValue > Math.Max(ichData.value, ichData.value2)) analysisData.Inclusion = true;
|
||||
else analysisData.Inclusion = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
parentForm.CalcurateProfitAndWinRate();
|
||||
parentForm.treeList_ResultData.RefreshDataSource();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 시간/분/일 등의 Datetime 과 비교하기 위한 Format String 변경 함수
|
||||
/// </summary>
|
||||
/// <param name="dateTime"></param>
|
||||
/// <param name="StartDateInterval"></param>
|
||||
/// <returns></returns>
|
||||
public DateTime changeDatetimeFormat(DateTime dateTime, int StartDateInterval)
|
||||
{
|
||||
var _dateTime = dateTime;
|
||||
|
||||
switch (MCandleTimeType)
|
||||
{
|
||||
case CommonProperty.MCandleTimeType.H1:
|
||||
_dateTime = Convert.ToDateTime(dateTime.ToString("yyyy-MM-dd HH:00")) + new TimeSpan(0, StartDateInterval, 0, 0);
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.H4:
|
||||
_dateTime = Convert.ToDateTime(dateTime.ToString("yyyy-MM-dd HH:00")) + new TimeSpan(0, StartDateInterval * 4, 0, 0);
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.M1:
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.M10:
|
||||
case CommonProperty.MCandleTimeType.M5:
|
||||
case CommonProperty.MCandleTimeType.M3:
|
||||
case CommonProperty.MCandleTimeType.M30:
|
||||
case CommonProperty.MCandleTimeType.M15:
|
||||
break;
|
||||
case CommonProperty.MCandleTimeType.D1:
|
||||
_dateTime = Convert.ToDateTime(dateTime.ToString("yyyy-MM-dd")) + new TimeSpan(StartDateInterval, 0, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
return _dateTime;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 이전봉40_2볼린저이하
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void checkEdit_common_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if(!ignoreChangedfilter)
|
||||
{
|
||||
calcurateFilter();
|
||||
}
|
||||
}
|
||||
|
||||
private void simpleButton_찬_Click(object sender, EventArgs e)
|
||||
{
|
||||
progressBar1.Minimum = 0;
|
||||
progressBar1.Step = 1;
|
||||
progressBar1.Value = 0;
|
||||
progressBar1.Maximum = parentForm._analysisDatas.Count;
|
||||
|
||||
new Thread(() => test11()).Start();
|
||||
}
|
||||
|
||||
private void test11()
|
||||
{
|
||||
|
||||
var _chartIndicatorCoditionSetups = new List<IndicatorCoditionSetup>();
|
||||
|
||||
_chartIndicatorCoditionSetups.Add(new BolingerConditionSetup()
|
||||
{
|
||||
IndicatorType = CommonProperty.IndicatorType.볼린저밴드,
|
||||
Period = 40,
|
||||
Squared = 1,
|
||||
Description = "bol40_1",
|
||||
MCandleTimeType = CommonProperty.MCandleTimeType.M1
|
||||
}); ;
|
||||
|
||||
var lowAverArr = new List<double>();
|
||||
var lowAverPlusArr = new List<double>();
|
||||
foreach (var analysis in parentForm._analysisDatas)
|
||||
{
|
||||
if(analysis.BuyValue >= analysis.SellValue)
|
||||
{
|
||||
lowAverPlusArr.Add((analysis.SellValue - analysis.BuyValue) / analysis.BuyValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
lowAverArr.Add((analysis.SellValue - analysis.BuyValue) / analysis.BuyValue);
|
||||
}
|
||||
UIController.next(this, progressBar1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
foreach (var analysis in parentForm._analysisDatas)
|
||||
{
|
||||
var chartStartDate = analysis.StartDate;
|
||||
var chartEndDate = analysis.EndDate;
|
||||
|
||||
var data = DbServiceFunctions.GetCandleData(analysis.OriginalSearchResult.MarketData, chartStartDate, chartEndDate, CommonProperty.MCandleTimeType.M1);
|
||||
|
||||
var selData = data.CandleDataLists_Im.Where(x => x.DateTime > chartStartDate && x.DateTime < chartEndDate).ToList();
|
||||
|
||||
if (selData.Count != 0)
|
||||
{
|
||||
|
||||
|
||||
var lowValue = selData.Min(x => x.LowValue);
|
||||
if (analysis.BuyValue < analysis.SellValue)
|
||||
{
|
||||
lowAverPlusArr.Add((analysis.BuyValue - lowValue) / analysis.BuyValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
lowAverArr.Add((analysis.BuyValue - lowValue) / analysis.BuyValue);
|
||||
}
|
||||
}
|
||||
|
||||
UIController.next(this, progressBar1);
|
||||
}
|
||||
*/
|
||||
double aver = 0.0;
|
||||
foreach(var low in lowAverArr)
|
||||
{
|
||||
aver += low;
|
||||
}
|
||||
aver = aver / lowAverArr.Count;
|
||||
|
||||
double aver2 = 0.0;
|
||||
foreach (var low in lowAverPlusArr)
|
||||
{
|
||||
aver2 += low;
|
||||
}
|
||||
aver2 = aver2 / lowAverPlusArr.Count;
|
||||
|
||||
aver.ToString();
|
||||
|
||||
}
|
||||
|
||||
private void comboBoxEdit_defaultTime_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
Enum.TryParse(comboBoxEdit_defaultTime.SelectedItem.ToString(),
|
||||
out CommonProperty.MCandleTimeType mCandleTimeType);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Million Hunter/HunterSubForm/TestBoardForm.resx
Normal file
120
Million Hunter/HunterSubForm/TestBoardForm.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@@ -1,180 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{359B3045-ADB0-4708-AEEE-FCA9E706707F}</ProjectGuid>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million_Hunter</RootNamespace>
|
||||
<AssemblyName>Million Hunter</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraLayout.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.Linq" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="HunterSubForm\LoadAnalysisResultDataForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadAnalysisResultDataForm.Designer.cs">
|
||||
<DependentUpon>LoadAnalysisResultDataForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\ResultViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\ResultViewerForm.Designer.cs">
|
||||
<DependentUpon>ResultViewerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadResultViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadResultViewerForm.Designer.cs">
|
||||
<DependentUpon>LoadResultViewerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterMainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterMainForm.Designer.cs">
|
||||
<DependentUpon>HunterMainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="HunterSubForm\LoadAnalysisResultDataForm.resx">
|
||||
<DependentUpon>LoadAnalysisResultDataForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\ResultViewerForm.resx">
|
||||
<DependentUpon>ResultViewerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\LoadResultViewerForm.resx">
|
||||
<DependentUpon>LoadResultViewerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterMainForm.resx">
|
||||
<DependentUpon>HunterMainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.1.0" />
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="System.Collections.Immutable" Version="7.0.0" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="7.0.2" />
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
200
Million Hunter/Million Hunter.csproj.bak
Normal file
200
Million Hunter/Million Hunter.csproj.bak
Normal file
@@ -0,0 +1,200 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{359B3045-ADB0-4708-AEEE-FCA9E706707F}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million_Hunter</RootNamespace>
|
||||
<AssemblyName>Million Hunter</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Data.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraBars.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraLayout.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.Linq" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="HunterSubForm\LoadAnalysisResultDataForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadAnalysisResultDataForm.Designer.cs">
|
||||
<DependentUpon>LoadAnalysisResultDataForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadCalculateDataList.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadCalculateDataList.Designer.cs">
|
||||
<DependentUpon>LoadCalculateDataList.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\ResultViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\ResultViewerForm.Designer.cs">
|
||||
<DependentUpon>ResultViewerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadResultViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\LoadResultViewerForm.Designer.cs">
|
||||
<DependentUpon>LoadResultViewerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterMainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterMainForm.Designer.cs">
|
||||
<DependentUpon>HunterMainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\TestBoardForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="HunterSubForm\TestBoardForm.Designer.cs">
|
||||
<DependentUpon>TestBoardForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="HunterSubForm\LoadAnalysisResultDataForm.resx">
|
||||
<DependentUpon>LoadAnalysisResultDataForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\LoadCalculateDataList.resx">
|
||||
<DependentUpon>LoadCalculateDataList.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\ResultViewerForm.resx">
|
||||
<DependentUpon>ResultViewerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\LoadResultViewerForm.resx">
|
||||
<DependentUpon>LoadResultViewerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterMainForm.resx">
|
||||
<DependentUpon>HunterMainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\TestBoardForm.resx">
|
||||
<DependentUpon>TestBoardForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
</Project>
|
||||
24
Million Hunter/Million Hunter.csproj.user
Normal file
24
Million Hunter/Million Hunter.csproj.user
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
<ItemGroup>
|
||||
<Compile Update="HunterMainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="HunterSubForm\LoadAnalysisResultDataForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="HunterSubForm\LoadCalculateDataList.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="HunterSubForm\LoadResultViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="HunterSubForm\ResultViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="HunterSubForm\TestBoardForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||
// 이러한 특성 값을 변경하세요.
|
||||
[assembly: AssemblyTitle("Million Hunter")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Million Hunter")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
[assembly: Guid("359b3045-adb0-4708-aeee-fca9e706707f")]
|
||||
|
||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
//
|
||||
// 주 버전
|
||||
// 부 버전
|
||||
// 빌드 번호
|
||||
// 수정 버전
|
||||
//
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||
// 기본값으로 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
3
Million Hunter/Properties/licenses.licx.bak
Normal file
3
Million Hunter/Properties/licenses.licx.bak
Normal file
@@ -0,0 +1,3 @@
|
||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.CodeAnalysis.Analyzers" version="3.3.3" targetFramework="net48" developmentDependency="true" />
|
||||
<package id="Microsoft.CodeAnalysis.Common" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp.Scripting" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.Scripting.Common" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Collections.Immutable" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Reflection.Metadata" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Text.Encoding.CodePages" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
</packages>
|
||||
File diff suppressed because one or more lines are too long
160
Million Prototype/Form1.Designer.cs
generated
160
Million Prototype/Form1.Designer.cs
generated
@@ -31,6 +31,85 @@
|
||||
DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram();
|
||||
DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series();
|
||||
DevExpress.XtraCharts.LineSeriesView lineSeriesView1 = new DevExpress.XtraCharts.LineSeriesView();
|
||||
DevExpress.XtraCharts.XYDiagram xyDiagram2 = new DevExpress.XtraCharts.XYDiagram();
|
||||
DevExpress.XtraCharts.Series series2 = new DevExpress.XtraCharts.Series();
|
||||
DevExpress.XtraCharts.StockSeriesLabel stockSeriesLabel1 = new DevExpress.XtraCharts.StockSeriesLabel();
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint1 = new DevExpress.XtraCharts.SeriesPoint(1D, new object[] {
|
||||
((object)(1D)),
|
||||
((object)(4D)),
|
||||
((object)(3D)),
|
||||
((object)(2D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint2 = new DevExpress.XtraCharts.SeriesPoint(2D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(5D)),
|
||||
((object)(0D)),
|
||||
((object)(3D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint3 = new DevExpress.XtraCharts.SeriesPoint(3D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(4D)),
|
||||
((object)(0D)),
|
||||
((object)(2D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint4 = new DevExpress.XtraCharts.SeriesPoint(4D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(3D)),
|
||||
((object)(0D)),
|
||||
((object)(2D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint5 = new DevExpress.XtraCharts.SeriesPoint(5D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(2D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint6 = new DevExpress.XtraCharts.SeriesPoint(6D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(3D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint7 = new DevExpress.XtraCharts.SeriesPoint(7D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(4D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint8 = new DevExpress.XtraCharts.SeriesPoint(8D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(5D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint9 = new DevExpress.XtraCharts.SeriesPoint(9D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(6D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint10 = new DevExpress.XtraCharts.SeriesPoint(10D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(1D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint11 = new DevExpress.XtraCharts.SeriesPoint(11D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint12 = new DevExpress.XtraCharts.SeriesPoint(12D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint13 = new DevExpress.XtraCharts.SeriesPoint(13D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint14 = new DevExpress.XtraCharts.SeriesPoint(14D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D))});
|
||||
DevExpress.XtraCharts.SeriesPoint seriesPoint15 = new DevExpress.XtraCharts.SeriesPoint(15D, new object[] {
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D)),
|
||||
((object)(0D))});
|
||||
DevExpress.XtraCharts.CandleStickSeriesView candleStickSeriesView1 = new DevExpress.XtraCharts.CandleStickSeriesView();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.listBox1 = new System.Windows.Forms.ListBox();
|
||||
@@ -47,10 +126,17 @@
|
||||
this.chartControl1 = new DevExpress.XtraCharts.ChartControl();
|
||||
this.button10 = new System.Windows.Forms.Button();
|
||||
this.button11 = new System.Windows.Forms.Button();
|
||||
this.chartControl_Candle = new DevExpress.XtraCharts.ChartControl();
|
||||
this.button12 = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartControl1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(xyDiagram1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(series1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartControl_Candle)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(xyDiagram2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(series2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(stockSeriesLabel1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(candleStickSeriesView1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
@@ -80,7 +166,7 @@
|
||||
" "});
|
||||
this.listBox1.Location = new System.Drawing.Point(166, 18);
|
||||
this.listBox1.Name = "listBox1";
|
||||
this.listBox1.Size = new System.Drawing.Size(419, 556);
|
||||
this.listBox1.Size = new System.Drawing.Size(242, 556);
|
||||
this.listBox1.TabIndex = 2;
|
||||
//
|
||||
// button2
|
||||
@@ -115,21 +201,21 @@
|
||||
//
|
||||
// textBoxAskInput
|
||||
//
|
||||
this.textBoxAskInput.Location = new System.Drawing.Point(608, 18);
|
||||
this.textBoxAskInput.Location = new System.Drawing.Point(432, 18);
|
||||
this.textBoxAskInput.Name = "textBoxAskInput";
|
||||
this.textBoxAskInput.Size = new System.Drawing.Size(100, 21);
|
||||
this.textBoxAskInput.TabIndex = 6;
|
||||
//
|
||||
// textBoxAskOutput
|
||||
//
|
||||
this.textBoxAskOutput.Location = new System.Drawing.Point(714, 18);
|
||||
this.textBoxAskOutput.Location = new System.Drawing.Point(538, 18);
|
||||
this.textBoxAskOutput.Name = "textBoxAskOutput";
|
||||
this.textBoxAskOutput.Size = new System.Drawing.Size(100, 21);
|
||||
this.textBoxAskOutput.TabIndex = 7;
|
||||
//
|
||||
// button5
|
||||
//
|
||||
this.button5.Location = new System.Drawing.Point(608, 45);
|
||||
this.button5.Location = new System.Drawing.Point(432, 45);
|
||||
this.button5.Name = "button5";
|
||||
this.button5.Size = new System.Drawing.Size(75, 23);
|
||||
this.button5.TabIndex = 8;
|
||||
@@ -183,7 +269,7 @@
|
||||
xyDiagram1.AxisY.VisibleInPanesSerializable = "";
|
||||
this.chartControl1.Diagram = xyDiagram1;
|
||||
this.chartControl1.Legend.Name = "Default Legend";
|
||||
this.chartControl1.Location = new System.Drawing.Point(608, 79);
|
||||
this.chartControl1.Location = new System.Drawing.Point(432, 79);
|
||||
this.chartControl1.Name = "chartControl1";
|
||||
series1.Name = "Series 1";
|
||||
series1.View = lineSeriesView1;
|
||||
@@ -194,7 +280,7 @@
|
||||
//
|
||||
// button10
|
||||
//
|
||||
this.button10.Location = new System.Drawing.Point(608, 285);
|
||||
this.button10.Location = new System.Drawing.Point(432, 285);
|
||||
this.button10.Name = "button10";
|
||||
this.button10.Size = new System.Drawing.Size(75, 23);
|
||||
this.button10.TabIndex = 14;
|
||||
@@ -212,11 +298,64 @@
|
||||
this.button11.UseVisualStyleBackColor = true;
|
||||
this.button11.Click += new System.EventHandler(this.button11_Click);
|
||||
//
|
||||
// chartControl_Candle
|
||||
//
|
||||
this.chartControl_Candle.CrosshairOptions.ShowOutOfRangePoints = true;
|
||||
xyDiagram2.AxisX.VisibleInPanesSerializable = "";
|
||||
xyDiagram2.AxisY.VisibleInPanesSerializable = "";
|
||||
this.chartControl_Candle.Diagram = xyDiagram2;
|
||||
this.chartControl_Candle.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Empty;
|
||||
this.chartControl_Candle.Legend.MarkerMode = DevExpress.XtraCharts.LegendMarkerMode.CheckBoxAndMarker;
|
||||
this.chartControl_Candle.Legend.Name = "Default Legend";
|
||||
this.chartControl_Candle.Location = new System.Drawing.Point(293, 306);
|
||||
this.chartControl_Candle.Name = "chartControl_Candle";
|
||||
stockSeriesLabel1.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True;
|
||||
stockSeriesLabel1.ResolveOverlappingMode = DevExpress.XtraCharts.ResolveOverlappingMode.HideOverlapped;
|
||||
series2.Label = stockSeriesLabel1;
|
||||
series2.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;
|
||||
series2.Name = "Series 1";
|
||||
seriesPoint1.ColorSerializable = "#FF80FF";
|
||||
series2.Points.AddRange(new DevExpress.XtraCharts.SeriesPoint[] {
|
||||
seriesPoint1,
|
||||
seriesPoint2,
|
||||
seriesPoint3,
|
||||
seriesPoint4,
|
||||
seriesPoint5,
|
||||
seriesPoint6,
|
||||
seriesPoint7,
|
||||
seriesPoint8,
|
||||
seriesPoint9,
|
||||
seriesPoint10,
|
||||
seriesPoint11,
|
||||
seriesPoint12,
|
||||
seriesPoint13,
|
||||
seriesPoint14,
|
||||
seriesPoint15});
|
||||
candleStickSeriesView1.ReductionOptions.ColorMode = DevExpress.XtraCharts.ReductionColorMode.OpenToCloseValue;
|
||||
candleStickSeriesView1.ReductionOptions.FillMode = DevExpress.XtraCharts.CandleStickFillMode.AlwaysEmpty;
|
||||
series2.View = candleStickSeriesView1;
|
||||
this.chartControl_Candle.SeriesSerializable = new DevExpress.XtraCharts.Series[] {
|
||||
series2};
|
||||
this.chartControl_Candle.Size = new System.Drawing.Size(829, 343);
|
||||
this.chartControl_Candle.TabIndex = 16;
|
||||
//
|
||||
// button12
|
||||
//
|
||||
this.button12.Location = new System.Drawing.Point(35, 467);
|
||||
this.button12.Name = "button12";
|
||||
this.button12.Size = new System.Drawing.Size(75, 23);
|
||||
this.button12.TabIndex = 17;
|
||||
this.button12.Text = "웹소켓";
|
||||
this.button12.UseVisualStyleBackColor = true;
|
||||
this.button12.Click += new System.EventHandler(this.button12_Click);
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1415, 703);
|
||||
this.ClientSize = new System.Drawing.Size(1415, 952);
|
||||
this.Controls.Add(this.button12);
|
||||
this.Controls.Add(this.chartControl_Candle);
|
||||
this.Controls.Add(this.button11);
|
||||
this.Controls.Add(this.button10);
|
||||
this.Controls.Add(this.chartControl1);
|
||||
@@ -239,6 +378,11 @@
|
||||
((System.ComponentModel.ISupportInitialize)(lineSeriesView1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(series1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartControl1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(xyDiagram2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(stockSeriesLabel1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(candleStickSeriesView1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(series2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartControl_Candle)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@@ -262,6 +406,8 @@
|
||||
private DevExpress.XtraCharts.ChartControl chartControl1;
|
||||
private System.Windows.Forms.Button button10;
|
||||
private System.Windows.Forms.Button button11;
|
||||
public DevExpress.XtraCharts.ChartControl chartControl_Candle;
|
||||
private System.Windows.Forms.Button button12;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,11 @@ using System.IO;
|
||||
using Million.FileDBManagement;
|
||||
using Million.SaveData;
|
||||
using Million.DbManagement;
|
||||
using System.Net.WebSockets;
|
||||
using System.Threading.Tasks;
|
||||
using System.Text;
|
||||
using System.Net.Http;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Million_Prototype
|
||||
{
|
||||
@@ -27,10 +32,12 @@ namespace Million_Prototype
|
||||
//public static string secretKey = "iAasVxQt8CyADjzXaAZiF5VZXTZPdElJOP4m97Bz";
|
||||
//UpbitAPI uApi = new UpbitAPI(accessKey,secretKey);
|
||||
Stopwatch sw = new Stopwatch();
|
||||
private static SemaphoreSlim semaphore = new SemaphoreSlim(1);
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
|
||||
/*
|
||||
var startDate = new DateTime(2022, 1, 1, 0, 0, 0);
|
||||
var endDate = new DateTime(2022, 1, 2, 0, 0, 0);
|
||||
|
||||
@@ -39,11 +46,19 @@ namespace Million_Prototype
|
||||
|
||||
var datas = IndicatorSetupManager.GetCalculateCandleData(new List<IndicatorCoditionSetup>(), startDate, endDate, market);
|
||||
|
||||
//ChartViewerForm chartViewerForm = new ChartViewerForm();
|
||||
ChartViewerForm chartViewerForm = new ChartViewerForm(null);
|
||||
//chartViewerForm.setting(datas[MCandleTimeType.M1]);
|
||||
|
||||
chartViewerForm.Show();
|
||||
*/
|
||||
|
||||
//chartViewerForm.Show();
|
||||
|
||||
var xyDiagram = (XYDiagram)chartControl_Candle.Diagram;
|
||||
xyDiagram.EnableAxisXZooming = true;
|
||||
//xyDiagram.EnableAxisYZooming = true;
|
||||
xyDiagram.ZoomingOptions.UseKeyboard = true;
|
||||
xyDiagram.ZoomingOptions.UseKeyboardWithMouse = true;
|
||||
xyDiagram.ZoomingOptions.UseMouseWheel = true;
|
||||
xyDiagram.ZoomingOptions.UseTouchDevice = true;
|
||||
|
||||
}
|
||||
|
||||
@@ -144,7 +159,7 @@ namespace Million_Prototype
|
||||
|
||||
int firstFlag = 0;
|
||||
|
||||
var savedResultDatas = DBConnection.QueryGetExcuter_SavedResultData();
|
||||
var savedResultDatas = DBConnection.QueryGetExecuter_SavedResultData();
|
||||
|
||||
var savedResultData = savedResultDatas.FirstOrDefault(t=>t.Name == "IndicatorTemplate");
|
||||
var sellIndicator = savedResultData.SellSetupList.OfType<IndicatorCoditionSetup>().ToList();
|
||||
@@ -182,8 +197,8 @@ namespace Million_Prototype
|
||||
{
|
||||
if (firstFlag == 0)
|
||||
{
|
||||
realTimeMsg = new RealtimeDataSettingManager(null, PaymentType.KRW);
|
||||
dataList = realTimeMsg.GetRealTimeCandleData(candleTypeList, 200);
|
||||
|
||||
dataList = realTimeMsg.GetRealTimeCandleData(candleTypeList,DateTime.Now, DateTime.Now, 200);
|
||||
foreach (var item in realTimeMsg.coinFullNameList)
|
||||
{
|
||||
overlapBuyManagementList[item] = true;
|
||||
@@ -201,7 +216,7 @@ namespace Million_Prototype
|
||||
|
||||
if (DateTime.Now.Minute == 0 && saveFlag)
|
||||
{
|
||||
realTimeMsg.ClearTicker();
|
||||
|
||||
|
||||
if (resultDataList.Count > 0)
|
||||
{
|
||||
@@ -267,7 +282,7 @@ namespace Million_Prototype
|
||||
savedResultData.ExchangePlace = "Upbit";
|
||||
savedResultData.ParentId = null;
|
||||
|
||||
DBConnection.QueryInsertExcuter_SavedResultData(savedResultData);
|
||||
DBConnection.QueryInsertExecuter_SavedResultData(savedResultData);
|
||||
|
||||
savedResultData.StartDateTime = DateTime.Now;
|
||||
resultDataList.Clear();
|
||||
@@ -391,7 +406,7 @@ namespace Million_Prototype
|
||||
private void button11_Click(object sender, EventArgs e)
|
||||
{
|
||||
//select 관련 처리
|
||||
var list = DBConnection.QueryGetExcuter_SavedResultData();
|
||||
var list = DBConnection.QueryGetExecuter_SavedResultData();
|
||||
}
|
||||
|
||||
private void button4_Click(object sender, EventArgs e)
|
||||
@@ -1112,6 +1127,111 @@ namespace Million_Prototype
|
||||
|
||||
}
|
||||
|
||||
private async void button12_Click(object sender, EventArgs e)
|
||||
{
|
||||
var codes = new List<string>();
|
||||
string apiUrl = "https://api.upbit.com/v1/market/all?isDetails=true";
|
||||
|
||||
using (HttpClient client = new HttpClient())
|
||||
{
|
||||
HttpResponseMessage response = await client.GetAsync(apiUrl);
|
||||
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
string responseBody = await response.Content.ReadAsStringAsync();
|
||||
|
||||
var data = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(responseBody);
|
||||
|
||||
foreach(var code in data)
|
||||
{
|
||||
if( code["market"].Contains("KRW-"))
|
||||
{
|
||||
codes.Add(code["market"]);
|
||||
}
|
||||
}
|
||||
Console.WriteLine(responseBody);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"Failed to call the API. Status code: {response.StatusCode}");
|
||||
}
|
||||
}
|
||||
|
||||
var ttt = new List<Dictionary<string, object>>();
|
||||
ttt.Add(new Dictionary<string, object>() { { "ticket", "test" } });
|
||||
ttt.Add(new Dictionary<string, object>() { { "type", "trade" }, { "codes", codes } });
|
||||
|
||||
|
||||
|
||||
string WebSocketUrl = "wss://api.upbit.com/websocket/v1";
|
||||
|
||||
ClientWebSocket webSocket = new ClientWebSocket();
|
||||
string message = "";
|
||||
try
|
||||
{
|
||||
await webSocket.ConnectAsync(new Uri(WebSocketUrl), CancellationToken.None);
|
||||
// 연결이 성공적으로 이루어지면 처리할 코드 작성
|
||||
Console.WriteLine("WebSocket 연결 성공");
|
||||
|
||||
var test11 = "[{\"ticket\":\"test\"},{\"type\":\"trade\",\"codes\":[\"KRW-BTC\",\"KRW-ETH\"]}]";
|
||||
|
||||
test11 = JsonConvert.SerializeObject(ttt);
|
||||
|
||||
await SendMessage(webSocket, test11);
|
||||
|
||||
|
||||
// 데이터 수신을 위한 반복문 시작
|
||||
while (webSocket.State == WebSocketState.Open)
|
||||
{
|
||||
byte[] buffer = new byte[1024];
|
||||
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
|
||||
message = "";
|
||||
// 수신한 데이터 처리
|
||||
message = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
|
||||
var testData = JsonConvert.DeserializeObject<Trade>(message);
|
||||
|
||||
Console.WriteLine("수신한 데이터: " + message);
|
||||
DateTime dt = new DateTime(1970, 01, 01);
|
||||
dt = dt.AddMilliseconds(testData.trade_timestamp).ToLocalTime();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("WebSocket 연결 중 오류 발생: " + ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (webSocket.State == WebSocketState.Open)
|
||||
await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "WebSocket 연결 종료", CancellationToken.None);
|
||||
|
||||
webSocket.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public class Trade
|
||||
{
|
||||
public string type { get; set; }
|
||||
public string code { get; set; }
|
||||
public long timestamp { get; set; }
|
||||
public string trade_date { get; set; }
|
||||
public string trade_time { get; set; }
|
||||
public long trade_timestamp { get; set; }
|
||||
public double trade_price { get; set; }
|
||||
public double trade_volume { get; set; }
|
||||
public string ask_bid { get; set; }
|
||||
public double prev_closing_price { get; set; }
|
||||
public string change { get; set; }
|
||||
public double change_price { get; set; }
|
||||
public long sequential_id { get; set; }
|
||||
public string stream_type { get; set; }
|
||||
}
|
||||
|
||||
private static async Task SendMessage(ClientWebSocket webSocket, string message)
|
||||
{
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(message);
|
||||
await webSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);
|
||||
Console.WriteLine("메시지 전송: " + message);
|
||||
}
|
||||
}
|
||||
public class DataPoint
|
||||
{
|
||||
|
||||
@@ -1,158 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{828206F2-6876-4B32-8B41-B925D809A1E7}</ProjectGuid>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million_Prototype</RootNamespace>
|
||||
<AssemblyName>Million Prototype</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Charts.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraBars.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v18.2.UI, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v18.2.Wizard, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraPrinting.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.16.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DocumentFormat.OpenXml.2.16.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="DevExpress.Charts.v22.2.Core, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Drawing.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v22.2.Core, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraBars.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v22.2.UI, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v22.2.Wizard, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraPrinting.v22.2, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DocumentFormat.OpenXml" Version="2.16.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.1.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="System.Collections.Immutable" Version="7.0.0" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="7.0.2" />
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
163
Million Prototype/Million Prototype.csproj.bak
Normal file
163
Million Prototype/Million Prototype.csproj.bak
Normal file
@@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{828206F2-6876-4B32-8B41-B925D809A1E7}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million_Prototype</RootNamespace>
|
||||
<AssemblyName>Million Prototype</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Charts.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Utils.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraBars.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v20.1.UI, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v20.1.Wizard, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraEditors.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraPrinting.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.16.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DocumentFormat.OpenXml.2.16.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Collections.Immutable, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Collections.Immutable.5.0.0\lib\net461\System.Collections.Immutable.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Reflection.Metadata, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Reflection.Metadata.5.0.0\lib\net461\System.Reflection.Metadata.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\net45\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Text.Encoding.CodePages.4.5.1\lib\net461\System.Text.Encoding.CodePages.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj">
|
||||
<Project>{10ef08cb-bf38-4882-a92a-30db34e8e8bd}</Project>
|
||||
<Name>Million Core</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
|
||||
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.props'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.Analyzers.3.3.3\build\Microsoft.CodeAnalysis.Analyzers.targets')" />
|
||||
</Project>
|
||||
@@ -1,6 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
<ProjectView>ProjectFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||
// 이러한 특성 값을 변경하세요.
|
||||
[assembly: AssemblyTitle("Million Prototype")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Million Prototype")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
[assembly: Guid("828206f2-6876-4b32-8b41-b925d809a1e7")]
|
||||
|
||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
//
|
||||
// 주 버전
|
||||
// 부 버전
|
||||
// 빌드 번호
|
||||
// 수정 버전
|
||||
//
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||
// 기본값으로 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
1
Million Prototype/Properties/licenses.licx.bak
Normal file
1
Million Prototype/Properties/licenses.licx.bak
Normal file
@@ -0,0 +1 @@
|
||||
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v22.2.UI, Version=22.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
@@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="DocumentFormat.OpenXml" version="2.16.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.Analyzers" version="3.3.3" targetFramework="net48" developmentDependency="true" />
|
||||
<package id="Microsoft.CodeAnalysis.Common" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.CSharp.Scripting" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CodeAnalysis.Scripting.Common" version="4.1.0" targetFramework="net48" />
|
||||
<package id="Microsoft.CSharp" version="4.7.0" targetFramework="net48" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Collections.Immutable" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net48" />
|
||||
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||
<package id="System.Reflection.Metadata" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" targetFramework="net48" />
|
||||
<package id="System.Text.Encoding.CodePages" version="4.5.1" targetFramework="net48" />
|
||||
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
|
||||
</packages>
|
||||
@@ -0,0 +1 @@
|
||||
{"RootPath":"D:\\s\\1\\Million\\Million Update Server","ProjectFileName":"Million Update Server.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Form1.cs"},{"SourceFile":"Form1.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\s\\1\\Million\\Million\\bin\\Debug\\Million.exe","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\s\\1\\Million\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\s\\1\\Million\\Million Update Server\\bin\\Debug\\Million Update Server.exe","OutputItemRelativePath":"Million Update Server.exe"},{"OutputItemFullPath":"D:\\s\\1\\Million\\Million Update Server\\bin\\Debug\\Million Update Server.pdb","OutputItemRelativePath":"Million Update Server.pdb"}],"CopyToOutputEntries":[]}
|
||||
6
Million Update Server/App.config
Normal file
6
Million Update Server/App.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
76
Million Update Server/Form1.Designer.cs
generated
Normal file
76
Million Update Server/Form1.Designer.cs
generated
Normal file
@@ -0,0 +1,76 @@
|
||||
namespace Million_Update_Server
|
||||
{
|
||||
partial class Form1
|
||||
{
|
||||
/// <summary>
|
||||
/// 필수 디자이너 변수입니다.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 사용 중인 모든 리소스를 정리합니다.
|
||||
/// </summary>
|
||||
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form 디자이너에서 생성한 코드
|
||||
|
||||
/// <summary>
|
||||
/// 디자이너 지원에 필요한 메서드입니다.
|
||||
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.textBox_log = new System.Windows.Forms.TextBox();
|
||||
this.button_ServerStart = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBox_log
|
||||
//
|
||||
this.textBox_log.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.textBox_log.Location = new System.Drawing.Point(12, 12);
|
||||
this.textBox_log.Multiline = true;
|
||||
this.textBox_log.Name = "textBox_log";
|
||||
this.textBox_log.ReadOnly = true;
|
||||
this.textBox_log.Size = new System.Drawing.Size(284, 579);
|
||||
this.textBox_log.TabIndex = 0;
|
||||
//
|
||||
// button_ServerStart
|
||||
//
|
||||
this.button_ServerStart.Location = new System.Drawing.Point(303, 13);
|
||||
this.button_ServerStart.Name = "button_ServerStart";
|
||||
this.button_ServerStart.Size = new System.Drawing.Size(93, 43);
|
||||
this.button_ServerStart.TabIndex = 1;
|
||||
this.button_ServerStart.Text = "서버 시작";
|
||||
this.button_ServerStart.UseVisualStyleBackColor = true;
|
||||
this.button_ServerStart.Click += new System.EventHandler(this.button_ServerStart_Click);
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 603);
|
||||
this.Controls.Add(this.button_ServerStart);
|
||||
this.Controls.Add(this.textBox_log);
|
||||
this.Name = "Form1";
|
||||
this.Text = "소켓서버";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox textBox_log;
|
||||
private System.Windows.Forms.Button button_ServerStart;
|
||||
}
|
||||
}
|
||||
|
||||
92
Million Update Server/Form1.cs
Normal file
92
Million Update Server/Form1.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using System;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Million_Update_Server
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
string log = "";
|
||||
private TcpListener tcpListener;
|
||||
private Thread listenThread = null;
|
||||
IPAddress ipAddress = IPAddress.Parse("172.30.1.56");
|
||||
int port = 6666;
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void writeLog(string text)
|
||||
{
|
||||
log = text+"\r\n" + log;
|
||||
|
||||
Invoke(new MethodInvoker(delegate ()
|
||||
{
|
||||
textBox_log.Text = log;
|
||||
}));
|
||||
}
|
||||
|
||||
private void button_ServerStart_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
if(listenThread != null && listenThread.IsAlive)
|
||||
{
|
||||
writeLog("이미 실행중입니다.");
|
||||
return;
|
||||
}
|
||||
// TcpListener 객체 생성
|
||||
this.tcpListener = new TcpListener(ipAddress, port);
|
||||
this.listenThread = new Thread(new ThreadStart(ListenForClients));
|
||||
this.listenThread.Start();
|
||||
writeLog("서버 활성화 합니다.");
|
||||
}
|
||||
|
||||
private void ListenForClients()
|
||||
{
|
||||
this.tcpListener.Start();
|
||||
|
||||
while (true)
|
||||
{
|
||||
// 클라이언트 접속 대기
|
||||
TcpClient client = this.tcpListener.AcceptTcpClient();
|
||||
|
||||
// 새로운 클라이언트가 접속했을 때 처리
|
||||
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClientComm));
|
||||
clientThread.Start(client);
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleClientComm(object client)
|
||||
{
|
||||
TcpClient tcpClient = (TcpClient)client;
|
||||
NetworkStream clientStream = tcpClient.GetStream();
|
||||
|
||||
try
|
||||
{
|
||||
string data = "";
|
||||
do
|
||||
{
|
||||
byte[] buffer = new byte[tcpClient.ReceiveBufferSize];
|
||||
int bytesRead = clientStream.Read(buffer, 0, buffer.Length);
|
||||
data += Encoding.UTF8.GetString(buffer, 0, bytesRead);
|
||||
} while (clientStream.DataAvailable);
|
||||
|
||||
//var receivedPeople = JsonConvert.DeserializeObject<Million.SaveData.SavedResultData>(data);
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
// 예외 발생 시 에러 메시지 출력
|
||||
Console.WriteLine("Error: " + ex.Message);
|
||||
}
|
||||
|
||||
// 클라이언트 연결 종료
|
||||
tcpClient.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Million Update Server/Form1.resx
Normal file
120
Million Update Server/Form1.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
47
Million Update Server/Million Update Server.csproj
Normal file
47
Million Update Server/Million Update Server.csproj
Normal file
@@ -0,0 +1,47 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Million\Million Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.8%28x86 및 x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
18
Million Update Server/Million Update Server.csproj.user
Normal file
18
Million Update Server/Million Update Server.csproj.user
Normal file
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||
<InstallUrlHistory />
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>ko-KR</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
22
Million Update Server/Program.cs
Normal file
22
Million Update Server/Program.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Million_Update_Server
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// 해당 애플리케이션의 주 진입점입니다.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Million Update Server/Properties/Resources.Designer.cs
generated
Normal file
63
Million Update Server/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
// 런타임 버전:4.0.30319.42000
|
||||
//
|
||||
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
// 이러한 변경 내용이 손실됩니다.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Million_Update_Server.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
|
||||
/// </summary>
|
||||
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
|
||||
// 클래스에서 자동으로 생성되었습니다.
|
||||
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
|
||||
// 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Million_Update_Server.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture
|
||||
/// 속성을 재정의합니다.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
117
Million Update Server/Properties/Resources.resx
Normal file
117
Million Update Server/Properties/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
26
Million Update Server/Properties/Settings.Designer.cs
generated
Normal file
26
Million Update Server/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||
// 런타임 버전:4.0.30319.42000
|
||||
//
|
||||
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||
// 이러한 변경 내용이 손실됩니다.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Million_Update_Server.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
Million Update Server/Properties/Settings.settings
Normal file
7
Million Update Server/Properties/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
30
Million.sln
30
Million.sln
@@ -1,17 +1,23 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29806.167
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.8.34316.72
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Million Core", "Million\Million Core.csproj", "{10EF08CB-BF38-4882-A92A-30DB34E8E8BD}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Million Core", "Million\Million Core.csproj", "{10EF08CB-BF38-4882-A92A-30DB34E8E8BD}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Million Saver", "DataSaver\Million Saver.csproj", "{D9DE0F1B-BA15-421E-A263-6859F3D5A3BC}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Million Saver", "DataSaver\Million Saver.csproj", "{D9DE0F1B-BA15-421E-A263-6859F3D5A3BC}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Million Buyer", "Million Buyer\Million Buyer.csproj", "{7C6E28D6-A9CA-465B-88F2-1C3BA33B74BE}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Million Buyer", "Million Buyer\Million Buyer.csproj", "{7C6E28D6-A9CA-465B-88F2-1C3BA33B74BE}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Million Prototype", "Million Prototype\Million Prototype.csproj", "{828206F2-6876-4B32-8B41-B925D809A1E7}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Million Prototype", "Million Prototype\Million Prototype.csproj", "{828206F2-6876-4B32-8B41-B925D809A1E7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Million Hunter", "Million Hunter\Million Hunter.csproj", "{359B3045-ADB0-4708-AEEE-FCA9E706707F}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Million Hunter", "Million Hunter\Million Hunter.csproj", "{359B3045-ADB0-4708-AEEE-FCA9E706707F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Million Update Server", "Million Update Server\Million Update Server.csproj", "{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D26E0A5E-F07F-4E3A-95BD-B6C94C96E706}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
.editorconfig = .editorconfig
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
@@ -61,6 +67,14 @@ Global
|
||||
{359B3045-ADB0-4708-AEEE-FCA9E706707F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{359B3045-ADB0-4708-AEEE-FCA9E706707F}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{359B3045-ADB0-4708-AEEE-FCA9E706707F}.Release|x64.Build.0 = Release|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{5AFDCFC0-19C8-4A2B-BD7C-4761A4B5C56A}.Release|x64.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
1
Million/.vs/Million Core.csproj.dtbcache.json
Normal file
1
Million/.vs/Million Core.csproj.dtbcache.json
Normal file
File diff suppressed because one or more lines are too long
@@ -1,8 +1,82 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<configSections>
|
||||
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System">
|
||||
<section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<applicationSettings>
|
||||
<DevExpress.LookAndFeel.Design.AppSettings>
|
||||
<setting name="DefaultAppSkin" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="DefaultPalette" serializeAs="String">
|
||||
<value>Custom/Custom Palette #1</value>
|
||||
</setting>
|
||||
<setting name="TouchUI" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="CompactUI" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="TouchScaleFactor" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="DirectX" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="RegisterUserSkins" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="RegisterBonusSkins" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="FontBehavior" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="DefaultAppFont" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="DPIAwarenessMode" serializeAs="String">
|
||||
<value></value>
|
||||
</setting>
|
||||
<setting name="CustomPaletteCollection" serializeAs="Xml">
|
||||
<value>
|
||||
<CustomPaletteCollection>
|
||||
<Skin Name="Basic">
|
||||
<SvgPalette Name="Custom Palette #1">
|
||||
<SvgColor Name="Paint" Value="240,240,240" />
|
||||
<SvgColor Name="Paint High" Value="255,255,255" />
|
||||
<SvgColor Name="Paint Shadow" Value="Gainsboro" />
|
||||
<SvgColor Name="Paint Deep Shadow" Value="210,210,210" />
|
||||
<SvgColor Name="Brush" Value="40,40,40" />
|
||||
<SvgColor Name="Brush High" Value="40,40,40" />
|
||||
<SvgColor Name="Brush Light" Value="120,120,120" />
|
||||
<SvgColor Name="Brush Major" Value="160,160,160" />
|
||||
<SvgColor Name="Brush Minor" Value="200,200,200" />
|
||||
<SvgColor Name="Accent Paint" Value="78,109,156" />
|
||||
<SvgColor Name="Accent Paint Dark" Value="62,91,135" />
|
||||
<SvgColor Name="Accent Paint Light" Value="206,221,245" />
|
||||
<SvgColor Name="Accent Paint Lighter" Value="220,233,252" />
|
||||
<SvgColor Name="Accent Brush" Value="255,255,255" />
|
||||
<SvgColor Name="Accent Brush Light" Value="165,186,217" />
|
||||
<SvgColor Name="Red" Value="208,49,68" />
|
||||
<SvgColor Name="Green" Value="56,152,83" />
|
||||
<SvgColor Name="Blue" Value="78,138,200" />
|
||||
<SvgColor Name="Yellow" Value="241,151,63" />
|
||||
<SvgColor Name="Black" Value="108,109,117" />
|
||||
<SvgColor Name="Gray" Value="191,191,194" />
|
||||
<SvgColor Name="White" Value="255,255,255" />
|
||||
</SvgPalette>
|
||||
</Skin>
|
||||
</CustomPaletteCollection>
|
||||
</value>
|
||||
</setting>
|
||||
</DevExpress.LookAndFeel.Design.AppSettings>
|
||||
</applicationSettings>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using DevExpress.XtraReports.UI;
|
||||
using DevExpress.Pdf.Native;
|
||||
using Million.Data;
|
||||
using Million.WebMangement.Upbit;
|
||||
|
||||
@@ -32,8 +32,8 @@ namespace Million
|
||||
},
|
||||
{ "김영호", new Dictionary<string, string>()
|
||||
{
|
||||
{ "accessKey", "FIkdR3xF4AxJpCI16xaM6qzQkVkFeQPBNONDDMtg" },
|
||||
{"secretKey", "Uk8iulXofcfw8EJvWY6WMoHsmWZ5GWHZ2d5uycli" }
|
||||
{ "accessKey", "oe3b2z6xN7NrBbxK1t57zzw2ucNNMMtFZSVn3DJz" },
|
||||
{"secretKey", "74WRxxSpLqOXjCa9PBgm2NmPcqbjgFGpXXLFEzeg" }
|
||||
}
|
||||
},
|
||||
{ "이찬균", new Dictionary<string, string>()
|
||||
@@ -68,7 +68,12 @@ namespace Million
|
||||
POST = 0,
|
||||
GET = 1
|
||||
}
|
||||
|
||||
|
||||
public enum ExchangeTime
|
||||
{
|
||||
UpbitorBithumb = 9
|
||||
}
|
||||
|
||||
// 거래소 타입
|
||||
public enum ExchangePlace
|
||||
{
|
||||
@@ -121,7 +126,7 @@ namespace Million
|
||||
단순비교 = 0,
|
||||
돌파비교 = 1,
|
||||
최초돌파 = 2,
|
||||
크로스 = 3
|
||||
크로스 = 3
|
||||
}
|
||||
|
||||
// 시가/고가/종가/저가
|
||||
@@ -137,14 +142,23 @@ namespace Million
|
||||
public enum MCandleTimeType
|
||||
{
|
||||
M1 = 1,
|
||||
M2 = 2,
|
||||
M3 = 3,
|
||||
M4 = 4,
|
||||
M5 = 5,
|
||||
M6 = 6,
|
||||
M10 = 10,
|
||||
M15 = 15,
|
||||
M20 = 20,
|
||||
M30 = 30,
|
||||
H1 = 60,
|
||||
H2 = 120,
|
||||
H3 = 180,
|
||||
H4 = 240,
|
||||
D1 = 1000,
|
||||
H6 = 360,
|
||||
H8 = 480,
|
||||
H12 = 720,
|
||||
D1 = 1440,
|
||||
W1 = 10000,
|
||||
MT1 = 100000
|
||||
}
|
||||
@@ -159,7 +173,8 @@ namespace Million
|
||||
이동평균선 = 3,
|
||||
ParabolicSAR = 4,
|
||||
거래량비율 = 5,
|
||||
가격비율 = 6
|
||||
가격비율 = 6,
|
||||
조건단순비교 =7
|
||||
}
|
||||
|
||||
// 이동평균선 종류
|
||||
@@ -209,9 +224,10 @@ namespace Million
|
||||
// 기준선 설정 (일목)
|
||||
public enum Indicator_IchmokuOverLine
|
||||
{
|
||||
선행스팬1 = 1,
|
||||
선행스팬1 = 1,
|
||||
선행스팬2 = 2,
|
||||
선행스팬1OR2중고가= 3,
|
||||
선행스팬1OR2중고가 = 3,
|
||||
선행스팬1OR2중저가 = 4
|
||||
}
|
||||
|
||||
// 구매/판매 조건 설정
|
||||
@@ -282,6 +298,10 @@ namespace Million
|
||||
{
|
||||
{"CandleStick","/public/CandleStic"}
|
||||
};
|
||||
/// <summary>
|
||||
/// 사용자 List Name
|
||||
/// </summary>
|
||||
public static string[] UserList = new string[] { "이장화", "김영호", "이찬균" };
|
||||
#endregion
|
||||
|
||||
#region 저장 데이터 관련
|
||||
@@ -297,19 +317,17 @@ namespace Million
|
||||
|
||||
//TODO 추후 관리 방안 고려
|
||||
#region # 데이터 베이스 정보 #
|
||||
private const string DbServerIp = "222.96.13.116";
|
||||
private const string DbServerUserId = "million";
|
||||
private const string DbServerUserPassword = "million!";
|
||||
public const string DbServerIp = "59.26.54.110";
|
||||
public const string DbServerUserId = "million";
|
||||
public const string DbServerUserPassword = "million!";
|
||||
public static string DbConnectionStr = $"Data Source={DbServerIp};uid={DbServerUserId};pwd={DbServerUserPassword};Database=";
|
||||
public static string DbConnectionMarket = DbConnectionStr + "Market";
|
||||
public static string DbConnectionResultData = DbConnectionStr + "ResultData";
|
||||
|
||||
public const int UpdateServerPort = 6666;
|
||||
#endregion
|
||||
|
||||
|
||||
#region DataSaver 사용되는 공용 변수
|
||||
//현재 시점에서 사용되고 있는 DB Connection String
|
||||
public static string ConDbConnectionStr = DbConnectionStr;
|
||||
#region DataSaver 사용되는 공용 변수
|
||||
|
||||
// 현재 시점에서 사용되고 있는 Place의 Market List 정보
|
||||
public static List<MarketData> selectedMarketOfPlaceList { get; set; } = null;
|
||||
@@ -336,19 +354,51 @@ namespace Million
|
||||
public static string DataExtend = ".data";
|
||||
// Save 결과 분석 데이터
|
||||
public static string AnalysisExtendFolder = "_analysis";
|
||||
|
||||
public static bool InsertLogFlag = true;
|
||||
#endregion
|
||||
|
||||
#region Buyer Flag
|
||||
|
||||
public static bool UpperMainIndicatorFlag = true;
|
||||
public static bool DownBeforeValueFlag = true;
|
||||
public enum BuyerMode
|
||||
{
|
||||
BuyerRealtime,
|
||||
Buyer,
|
||||
HunterRealtime,
|
||||
None
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Realtime Hunter Flag
|
||||
public static bool RealtimeHunterMode = false;
|
||||
public static bool StarValueLowBuyValueUp = false;
|
||||
#endregion
|
||||
|
||||
#region Realtime 관련 Sub data 사용하는 부분예외처리
|
||||
/// <summary>
|
||||
/// Sub 조건 Flag
|
||||
/// </summary>
|
||||
public static Dictionary<string, Dictionary<string, bool>> subIndicatorStateManagement = new Dictionary<string, Dictionary<string, bool>>();
|
||||
public static Dictionary<string, Dictionary<string, bool>> subIndicatorStateManagement = new Dictionary<string, Dictionary<string, bool>>();
|
||||
#endregion
|
||||
|
||||
#region 장화형 요청 사항(조건단순 비교할때 첫번째는 포함되지 않도록 예외처리
|
||||
public static Dictionary<string, Dictionary<string, bool>> compareIndicatorState = new Dictionary<string, Dictionary<string, bool>>();
|
||||
#endregion
|
||||
|
||||
#region Compare 조건문 Flag
|
||||
public enum CompareType
|
||||
{
|
||||
Origin_Up_Compare_Down = 0,
|
||||
Origin_UpOrSame_Compare_Down = 1,
|
||||
Origin_Down_Compare_Up = 2,
|
||||
Origin_DownOrSame_Compare_Up = 3
|
||||
}
|
||||
#endregion
|
||||
|
||||
public static BuyerMode programMode = BuyerMode.None;
|
||||
public static Dictionary<string, Dictionary<string, bool>> crossStateManagement = new Dictionary<string, Dictionary<string, bool>>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,13 @@ namespace Million.Data
|
||||
// 기타 기입 내용
|
||||
public string Description { get; set; }
|
||||
|
||||
// 현재 시간으로 구매된 종목 개수
|
||||
[field: NonSerialized]
|
||||
public int PurchasedCount { get; set; }
|
||||
|
||||
[field: NonSerialized]
|
||||
public Dictionary<CommonProperty.MCandleTimeType,List<CandleData>> CandleDatas { get; set; }
|
||||
|
||||
// 원본 데이터 참조
|
||||
public SearchResult OriginalSearchResult { get; set; }
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static Million.CommonProperty;
|
||||
|
||||
@@ -19,6 +20,9 @@ namespace Million.Data
|
||||
public double LowValue { get; set; }
|
||||
// 거래량
|
||||
public double MoneyVolume { get; set; }
|
||||
// 거래 대금
|
||||
public double TransactionAmount { get; set; }
|
||||
|
||||
public double BuyValue { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -37,10 +41,12 @@ namespace Million.Data
|
||||
public Dictionary<string, bool> SellLogicFlag { get; set; } = new Dictionary<string, bool>();
|
||||
public Dictionary<string, bool> CalculateFlag { get; set; } = new Dictionary<string, bool>();
|
||||
|
||||
[JsonIgnore]
|
||||
public Dictionary<MCandleTimeType, CandleData> ParentCandleData = new Dictionary<MCandleTimeType, CandleData>();
|
||||
|
||||
|
||||
public CandleType CandleType { get; set; } = CandleType.None;
|
||||
public CandleType CandleType { get; set; } = CandleType.None;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 빗썸 DateTime 변환 로직
|
||||
|
||||
@@ -56,5 +56,17 @@ namespace Million.Data
|
||||
return value > value2 ? value : value2;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 두 선행스팬 값중에 아래 값을 리턴함
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public double GetDownOverValue()
|
||||
{
|
||||
if (value == 0 || value2 == 0)
|
||||
return 0;
|
||||
|
||||
return value < value2 ? value : value2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
42
Million/Data/SaveData/MultiSavedResultData.cs
Normal file
42
Million/Data/SaveData/MultiSavedResultData.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using Million.SaveData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Million.Data.SaveData
|
||||
{
|
||||
/// <summary>
|
||||
/// Realtime Hunter의 여러개 사용할 수 있도록 할 수 있는 List데이터 클래스
|
||||
/// </summary>
|
||||
public class MultiSavedResultData
|
||||
{
|
||||
/// <summary>
|
||||
/// Saved Result Data List
|
||||
/// </summary>
|
||||
public SavedResultData SavedResultData { get; set; }
|
||||
|
||||
public bool UpperMainIndicatorFlag { get; set; }
|
||||
|
||||
public bool StarValueLowOverlapUp { get; set; }
|
||||
|
||||
public bool IncludeClearIndicator { get; set; }
|
||||
|
||||
public bool DownBeforeValueFlag { get; set; }
|
||||
|
||||
public bool BuyBigthanHighValFlag { get; set; }
|
||||
|
||||
public CommonProperty.MCandleTimeType BuyBigthanHighValType { get; set; }
|
||||
|
||||
public bool BigMoneyVolFlag { get; set; }
|
||||
|
||||
public int BigMoneyVolCnt { get; set; }
|
||||
|
||||
public CommonProperty.MCandleTimeType BigMoneyVolType { get; set; }
|
||||
|
||||
public bool HunterMode { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -39,6 +39,9 @@ namespace Million.SaveData
|
||||
// 정규식 (Sell)
|
||||
public string SellRegularExpression { get; set; }
|
||||
|
||||
// 정규식 (손절
|
||||
public string SellExceptionRegularExpression { get; set; }
|
||||
|
||||
[field: NonSerialized]
|
||||
// 실제 데이터 경로 (Data Info)
|
||||
public string SavedInfoDataPath { get; set; }
|
||||
@@ -65,9 +68,17 @@ namespace Million.SaveData
|
||||
public double FirstProfitRate { get; set; }
|
||||
// 수익률 (매도 전 첫번째만 포함)
|
||||
public double FirstWinRate { get; set; }
|
||||
|
||||
|
||||
public SavedResultData Clone()
|
||||
{
|
||||
var buySetupList = new List<object>();
|
||||
var sellSetupList = new List<object>();
|
||||
buySetupList = BuySetupList;
|
||||
sellSetupList = SellSetupList;
|
||||
|
||||
var searchResultList = new List<SearchResult>();
|
||||
searchResultList = SearchResultList;
|
||||
|
||||
var clone = new SavedResultData
|
||||
{
|
||||
Id = Id,
|
||||
@@ -78,13 +89,19 @@ namespace Million.SaveData
|
||||
StartDateTime = StartDateTime,
|
||||
EndDateTime = EndDateTime,
|
||||
SavedDateTime = SavedDateTime,
|
||||
BuySetupList = BuySetupList,
|
||||
SellSetupList = SellSetupList,
|
||||
BuySetupList = buySetupList,
|
||||
SellSetupList = sellSetupList,
|
||||
BuyRegularExpression = BuyRegularExpression,
|
||||
SellRegularExpression = SellRegularExpression,
|
||||
SearchResultList = SearchResultList,
|
||||
SellExceptionRegularExpression = SellExceptionRegularExpression,
|
||||
SearchResultList = searchResultList,
|
||||
WinRate = WinRate,
|
||||
ProfitRate = ProfitRate,
|
||||
FirstProfitRate = FirstProfitRate,
|
||||
FirstWinRate = FirstWinRate,
|
||||
Name = Name,
|
||||
ParentId = ParentId,
|
||||
ResultDataCount = ResultDataCount
|
||||
};
|
||||
return clone;
|
||||
}
|
||||
57
Million/Data/Upbit/RealtimeConclusion.cs
Normal file
57
Million/Data/Upbit/RealtimeConclusion.cs
Normal file
@@ -0,0 +1,57 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Million.Data.Upbit
|
||||
{
|
||||
/// <summary>
|
||||
/// 실시간 체결량 관련 Class
|
||||
/// </summary>
|
||||
public class RealtimeConclusion
|
||||
{
|
||||
public string type { get; set; }
|
||||
public string code { get; set; }
|
||||
public long timestamp { get; set; }
|
||||
public string trade_date { get; set; }
|
||||
public string trade_time { get; set; }
|
||||
public long trade_timestamp { get; set; }
|
||||
public double trade_price { get; set; }
|
||||
public double trade_volume { get; set; }
|
||||
public string ask_bid { get; set; }
|
||||
public double prev_closing_price { get; set; }
|
||||
public string change { get; set; }
|
||||
public double change_price { get; set; }
|
||||
public long sequential_id { get; set; }
|
||||
public string stream_type { get; set; }
|
||||
|
||||
public DateTime TradeDateTime { get; set; }
|
||||
|
||||
public RealtimeConclusion Clone()
|
||||
{
|
||||
|
||||
var dt = new DateTime(1970, 1, 1);
|
||||
dt = dt.AddMilliseconds(trade_timestamp);
|
||||
dt = dt.AddHours(9);
|
||||
return new RealtimeConclusion()
|
||||
{
|
||||
type = type,
|
||||
code = code,
|
||||
timestamp= timestamp,
|
||||
trade_date = trade_date,
|
||||
trade_time = trade_time,
|
||||
trade_timestamp = trade_timestamp,
|
||||
trade_price = trade_price,
|
||||
trade_volume = trade_volume,
|
||||
ask_bid = ask_bid,
|
||||
prev_closing_price = prev_closing_price,
|
||||
change = change,
|
||||
change_price = change_price,
|
||||
sequential_id = sequential_id,
|
||||
stream_type = stream_type,
|
||||
TradeDateTime = dt
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -123,21 +123,6 @@ namespace Million.Data.Upbit
|
||||
/// </summary>
|
||||
public DateTime LowstPriceDateOf52Week { get; set; }
|
||||
|
||||
public object DeepClone(object obj)
|
||||
{
|
||||
object objResult = null;
|
||||
|
||||
using (var ms = new MemoryStream())
|
||||
{
|
||||
var bf = new BinaryFormatter();
|
||||
bf.Serialize(ms, obj);
|
||||
|
||||
ms.Position = 0;
|
||||
objResult = bf.Deserialize(ms);
|
||||
}
|
||||
|
||||
return objResult;
|
||||
}
|
||||
|
||||
public Ticker Clone()
|
||||
{
|
||||
|
||||
@@ -3,13 +3,17 @@ using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Sockets;
|
||||
using System.Runtime.Serialization.Formatters.Binary;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using DevExpress.Charts.Native;
|
||||
using DevExpress.DataAccess.Native.Sql;
|
||||
using Million.Data;
|
||||
using Million.Data.Upbit;
|
||||
using Million.SaveData;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Million.DbManagement
|
||||
{
|
||||
@@ -23,7 +27,7 @@ namespace Million.DbManagement
|
||||
return CommonProperty.DbConnectionStr + databaseName;
|
||||
}
|
||||
|
||||
public static List<MarketData> QueryGetExcuter_Market(string strDBCon, string sqlQuery)
|
||||
public static List<MarketData> QueryGetExecuter_Market(string strDBCon, string sqlQuery)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(sqlQuery))
|
||||
return null;
|
||||
@@ -84,7 +88,7 @@ namespace Million.DbManagement
|
||||
/// <param name="strDBCon"></param>
|
||||
/// <param name="sqlQuery"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleData> QueryGetExcuter_Candle(string strDBCon, string sqlQuery)
|
||||
public static List<CandleData> QueryGetExecuter_Candle(string strDBCon, string sqlQuery)
|
||||
{
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
@@ -112,6 +116,13 @@ namespace Million.DbManagement
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
{
|
||||
var columns = new List<string>();
|
||||
|
||||
for (int i = 0; i < rdr.FieldCount; i++)
|
||||
{
|
||||
columns.Add(rdr.GetName(i));
|
||||
}
|
||||
|
||||
while (rdr.Read())
|
||||
{
|
||||
var dateTime = rdr["DateTime"]?.ToString();
|
||||
@@ -122,6 +133,8 @@ namespace Million.DbManagement
|
||||
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;
|
||||
@@ -131,6 +144,12 @@ namespace Million.DbManagement
|
||||
data.MoneyVolume = moneyVolume;
|
||||
data.CandleTimeType = candleTimeType;
|
||||
|
||||
if (columns.Any(t => t == "TransactionAmount"))
|
||||
{
|
||||
double.TryParse(rdr["TransactionAmount"]?.ToString(), out var transactionAmount);
|
||||
data.TransactionAmount = transactionAmount;
|
||||
}
|
||||
|
||||
returnData.Add(data);
|
||||
}
|
||||
}
|
||||
@@ -149,13 +168,65 @@ namespace Million.DbManagement
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Log Data
|
||||
/// </summary>
|
||||
/// <param name="strDBCon"></param>
|
||||
/// <param name="sqlQuery"></param>
|
||||
/// <returns></returns>
|
||||
public static List<Dictionary<string, object>> QueryGetExecuter_MainLog(string strDBCon, string userName, DateTime startDate, DateTime endDate)
|
||||
{
|
||||
var returnData = new List<Dictionary<string, object>>();
|
||||
|
||||
var sqlQuery = string.Format(@"SELECT * FROM [ResultData].[dbo].[MainLog] WHERE UserName = '{0}' AND SavedDateTime >= '{1}' AND SavedDateTime < '{2}",
|
||||
userName, startDate.ToString("yyyy-MM-dd HH:mm:ss"), endDate.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
using (var conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
try
|
||||
{
|
||||
conn.Open();
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
{
|
||||
while (rdr.Read())
|
||||
{
|
||||
var dateTime = rdr["SavedDateTime"]?.ToString();
|
||||
|
||||
var data = new Dictionary<string, object>();
|
||||
data["SavedDateTime"] = Convert.ToDateTime(dateTime);
|
||||
data["UserName"] = rdr["UserName"].ToString();
|
||||
data["Data"] = rdr["Data"].ToString();
|
||||
returnData.Add(data);
|
||||
}
|
||||
}
|
||||
conn.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
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(string strDBCon, string sqlQuery)
|
||||
public static List<CandleData> QueryGetExecuterTest_Candle(string strDBCon, string sqlQuery)
|
||||
{
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
@@ -186,7 +257,7 @@ namespace Million.DbManagement
|
||||
/// </summary>
|
||||
/// <param name="strDBCon">conn</param>
|
||||
/// <param name="sqlQuery">create table sql</param>
|
||||
public static void QueryUpdateExcuter(string strDBCon, string sqlQuery)
|
||||
public static void QueryUpdateExecuter(string strDBCon, string sqlQuery)
|
||||
{
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
@@ -216,12 +287,146 @@ namespace Million.DbManagement
|
||||
conn.Close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Insert Saved Buyer Result Data
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="mode"></param>
|
||||
/// <param name="savedDateTime"></param>
|
||||
/// <param name="data"></param>
|
||||
/// <returns></returns>
|
||||
public static bool QueryInsertExecuter_SavedBuyerResultData(string userName, string mode, DateTime savedDateTime, SearchResult data)
|
||||
{
|
||||
var binaryFormatter = new BinaryFormatter();
|
||||
|
||||
var sqlQuery = DbServiceFunctions.InsertSavedBuyerResultDataQuery(userName, mode, savedDateTime);
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
|
||||
try
|
||||
{
|
||||
using (conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
var setupListStream = new MemoryStream();
|
||||
binaryFormatter.Serialize(setupListStream, data);
|
||||
setupListStream.Position = 0;
|
||||
|
||||
cmd.Parameters.Add("@data", SqlDbType.VarBinary, (int)setupListStream.Length).Value = setupListStream.ToArray();
|
||||
|
||||
conn.Open();
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(e.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (conn != null)
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SavedResultData List 삭제
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
public static bool QueryDeleteExecuter_SavedResultData(List<int> ids)
|
||||
{
|
||||
var sqlQuery = @"DELETE FROM [ResultData].[dbo].[SavedResultData] WHERE Id in(" + string.Join(",", ids) + ")";
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
|
||||
try
|
||||
{
|
||||
using (conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
conn.Open();
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(e.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (conn != null)
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SavedResultData 삭제
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public static bool QueryDeleteExecuter_SavedResultData(int id)
|
||||
{
|
||||
var sqlQuery = @"DELETE FROM [ResultData].[dbo].[SavedResultData] WHERE Id =" + id;
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
|
||||
try
|
||||
{
|
||||
using (conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
conn.Open();
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(e.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (conn != null)
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Insert SavedResultData
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
public static bool QueryInsertExcuter_SavedResultData(SavedResultData item)
|
||||
public static bool QueryInsertExecuter_SavedResultData(SavedResultData item)
|
||||
{
|
||||
var baBinaryFormatter = new BinaryFormatter();
|
||||
|
||||
@@ -273,14 +478,82 @@ namespace Million.DbManagement
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool QueryInsertExecuter_SavedResultDataTemp(SavedResultData item)
|
||||
{
|
||||
try
|
||||
{
|
||||
string serverIP = CommonProperty.DbServerIp;
|
||||
int serverPort = 6666;
|
||||
|
||||
byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(item));
|
||||
TcpClient client = new TcpClient(serverIP, serverPort);
|
||||
NetworkStream stream = client.GetStream();
|
||||
stream.Write(data, 0, data.Length);
|
||||
|
||||
return true;
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Insert Log
|
||||
/// </summary>
|
||||
/// <param name="savedData"></param>
|
||||
/// <returns></returns>
|
||||
public static bool QueryInsertExecuter_MainLog(DateTime savedData, string user, string data)
|
||||
{
|
||||
|
||||
var sqlQuery = string.Format(@"INSERT INTO [ResultData].[dbo].[MainLog] VALUES('{0}', '{1}', '{2}');",
|
||||
user, savedData.ToString("yyyy-MM-dd HH:mm:ss"), data);
|
||||
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
SqlConnection conn = null;
|
||||
SqlDataReader rdr = null;
|
||||
|
||||
try
|
||||
{
|
||||
using (conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
conn.Open();
|
||||
using (rdr = cmd.ExecuteReader())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
conn.Close();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(e.Message);
|
||||
if (rdr != null)
|
||||
rdr.Close();
|
||||
if (conn != null)
|
||||
conn.Close();
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// insert RealTimeIndicator
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
/// <returns></returns>
|
||||
public static bool QueryInsertExcuter_RealTimeIndicator(SavedResultData item, string name)
|
||||
public static bool QueryInsertExecuter_RealTimeIndicator(SavedResultData item, string name)
|
||||
{
|
||||
var baBinaryFormatter = new BinaryFormatter();
|
||||
|
||||
@@ -334,7 +607,7 @@ namespace Million.DbManagement
|
||||
/// <param name="item"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
public static bool QueryInsertExcuter_VerifyTickerData(List<Dictionary<string, object>> data, DateTime savedDateTime)
|
||||
public static bool QueryInsertExecuter_VerifyTickerData(List<Dictionary<string, object>> data, DateTime savedDateTime)
|
||||
{
|
||||
var baBinaryFormatter = new BinaryFormatter();
|
||||
|
||||
@@ -386,7 +659,7 @@ namespace Million.DbManagement
|
||||
/// </summary>
|
||||
/// <param name="analysis"></param>
|
||||
/// <param name="item"></param>
|
||||
public static bool QueryInsertExcuter_SavedAnalysisData(SavedAnalysisData savedAnalysisData, SavedResultData savedResultData)
|
||||
public static bool QueryInsertExecuter_SavedAnalysisData(SavedAnalysisData savedAnalysisData, SavedResultData savedResultData)
|
||||
{
|
||||
var baBinaryFormatter = new BinaryFormatter();
|
||||
|
||||
@@ -430,16 +703,174 @@ namespace Million.DbManagement
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saved Get Buyer Result Data
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="mode"></param>
|
||||
/// <param name="startDate"></param>
|
||||
/// <param name="endDate"></param>
|
||||
/// <returns></returns>
|
||||
public static List<SearchResult> QueryGetExecuter_SavedBuyerResultData(string userName, string mode, DateTime startDate, DateTime endDate)
|
||||
{
|
||||
var returnData = new List<SearchResult>();
|
||||
var sqlQuery = string.Format(@"SELECT * FROM [ResultData].[dbo].[SavedBuyerResultData] WHERE [Mode] = '{0}' AND [UserName] = '{1}'
|
||||
AND [SavedDateTime] >= '{2}' AND [SavedDateTime] <= '{3}';",
|
||||
mode, userName, startDate.ToString("yyyy-MM-dd HH:mm:ss"), endDate.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
using (var conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
try
|
||||
{
|
||||
conn.Open();
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
{
|
||||
while (rdr.Read())
|
||||
{
|
||||
var data = new SearchResult();
|
||||
data = (SearchResult)GetBinaryConvertClass(rdr, "Data");
|
||||
returnData.Add(data);
|
||||
}
|
||||
}
|
||||
conn.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
conn.Close();
|
||||
return returnData;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Ticerk List
|
||||
/// </summary>
|
||||
/// <param name="startDate"></param>
|
||||
/// <param name="endDate"></param>
|
||||
/// <returns></returns>
|
||||
public static List<Dictionary<string, object>> QueryGetExecuter_VerifyTickerData(DateTime startDate, DateTime endDate)
|
||||
{
|
||||
var returnData = new List<Dictionary<string, object>>();
|
||||
var sqlQuery = string.Format(@"SELECT * FROM [ResultData].[dbo].[VerifyTickerData] WHERE [SavedDateTime] >= '{0}' AND [SavedDateTime] <= '{1}';",
|
||||
startDate.ToString("yyyy-MM-dd HH:mm:ss"), endDate.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
using (var conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
try
|
||||
{
|
||||
conn.Open();
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
{
|
||||
while (rdr.Read())
|
||||
{
|
||||
var data = (List<Dictionary<string, object>>)GetBinaryConvertClass(rdr, "data");
|
||||
returnData.AddRange(data);
|
||||
}
|
||||
}
|
||||
conn.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
conn.Close();
|
||||
return returnData;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// SavedResultData의 데이터를 기준으로 SearchResultList를 포함
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
public static SavedResultData QueryGetExecuter_SearchResultData(SavedResultData data)
|
||||
{
|
||||
if (data != null && data.Id > 0)
|
||||
{
|
||||
var sqlQuery = @"SELECT [SearchResultList] FROM [ResultData].[dbo].[SavedResultData] WHERE [Id] = " + data.Id;
|
||||
|
||||
var strDBCon = CommonProperty.DbConnectionResultData;
|
||||
|
||||
using (var conn = new SqlConnection(strDBCon))
|
||||
{
|
||||
using (var cmd = new SqlCommand(sqlQuery, conn))
|
||||
{
|
||||
try
|
||||
{
|
||||
conn.Open();
|
||||
|
||||
using (var rdr = cmd.ExecuteReader())
|
||||
{
|
||||
while (rdr.Read())
|
||||
{
|
||||
data.SearchResultList = (List<SearchResult>)GetBinaryConvertClass(rdr, "SearchResultList");
|
||||
}
|
||||
}
|
||||
conn.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(" ============= exception ===============");
|
||||
Console.WriteLine(ex.Message);
|
||||
conn.Close();
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get SavedResultData
|
||||
/// idList가 null일 경우 전체 다 가져옴
|
||||
/// </summary>
|
||||
/// <param name="idList"></param>
|
||||
/// <returns></returns>
|
||||
public static List<SavedResultData> QueryGetExcuter_SavedResultData(List<int> idList = null, bool includeFolder = true)
|
||||
public static List<SavedResultData> QueryGetExecuter_SavedResultData(List<int> idList = null, bool includeFolder = true)
|
||||
{
|
||||
//,[SellExceptionRegularExpression]
|
||||
var returnData = new List<SavedResultData>();
|
||||
var sqlQuery = "SELECT * FROM [ResultData].[dbo].[SavedResultData] WHERE [Type] IN('Data'";
|
||||
var sqlQuery = @"SELECT [Id]
|
||||
,[ParentId]
|
||||
,[Name]
|
||||
,[StartDateTime]
|
||||
,[EndDateTime]
|
||||
,[SavedDateTime]
|
||||
,[BuySetupList]
|
||||
,[SellSetupList]
|
||||
,[BuyRegularExpression]
|
||||
,[SellRegularExpression]
|
||||
,[SellExceptionRegularExpression]
|
||||
,[ResultDataCount]
|
||||
,[WinRate]
|
||||
,[ProfitRate]
|
||||
,[FirstProfitRate]
|
||||
,[FirstWinRate]
|
||||
,[ExchangePlace]
|
||||
,[Type]
|
||||
,[SaveResultType]
|
||||
,[Description] FROM [ResultData].[dbo].[SavedResultData] WHERE [Type] IN('Data'";
|
||||
|
||||
if (includeFolder)
|
||||
sqlQuery += ",'Folder'";
|
||||
@@ -478,7 +909,7 @@ namespace Million.DbManagement
|
||||
var data = new SavedResultData();
|
||||
data.BuySetupList = (List<object>)GetBinaryConvertClass(rdr, "BuySetupList");
|
||||
data.SellSetupList = (List<object>)GetBinaryConvertClass(rdr, "SellSetupList");
|
||||
data.SearchResultList = (List<SearchResult>)GetBinaryConvertClass(rdr, "SearchResultList");
|
||||
//data.SearchResultList = (List<SearchResult>)GetBinaryConvertClass(rdr, "SearchResultList");
|
||||
|
||||
int.TryParse(rdr["Id"]?.ToString(), out var id);
|
||||
data.Id = id;
|
||||
@@ -497,10 +928,11 @@ namespace Million.DbManagement
|
||||
data.SavedDateTime = Convert.ToDateTime(rdr["SavedDateTime"]?.ToString());
|
||||
data.BuyRegularExpression = rdr["BuyRegularExpression"]?.ToString();
|
||||
data.SellRegularExpression = rdr["SellRegularExpression"]?.ToString();
|
||||
data.SellExceptionRegularExpression = rdr["SellExceptionRegularExpression"]?.ToString();
|
||||
|
||||
int.TryParse(rdr["ResultDataCount"]?.ToString(), out var resultDataCount);
|
||||
data.ResultDataCount = resultDataCount;
|
||||
|
||||
|
||||
double.TryParse(rdr["WinRate"]?.ToString(), out var winRate);
|
||||
data.WinRate = winRate;
|
||||
double.TryParse(rdr["ProfitRate"]?.ToString(), out var profitRate);
|
||||
@@ -537,7 +969,7 @@ namespace Million.DbManagement
|
||||
/// </summary>
|
||||
/// <param name="resultIdList"></param>
|
||||
/// <returns></returns>
|
||||
public static List<SavedAnalysisData> QueryGetExcuter_SavedAnalysisData(List<int> resultIdList)
|
||||
public static List<SavedAnalysisData> QueryGetExecuter_SavedAnalysisData(List<int> resultIdList)
|
||||
{
|
||||
var returnData = new List<SavedAnalysisData>();
|
||||
var sqlQuery = "SELECT * FROM [ResultData].[dbo].[SavedAnalysisData] WHERE ";
|
||||
@@ -617,7 +1049,7 @@ namespace Million.DbManagement
|
||||
/// 실시간 Indicator 가져오는 함수
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<Dictionary<string, object>> QueryGetExcuter_RealTimeIndicator()
|
||||
public static List<Dictionary<string, object>> QueryGetExecuter_RealTimeIndicator()
|
||||
{
|
||||
var returnData = new List<Dictionary<string, object>>();
|
||||
var sqlQuery = "SELECT * FROM [ResultData].[dbo].[RealTimeIndicator]";
|
||||
@@ -646,7 +1078,7 @@ namespace Million.DbManagement
|
||||
|
||||
data["BuyRegularExpression"] = rdr["BuyRegularExpression"]?.ToString();
|
||||
data["SellRegularExpression"] = rdr["SellRegularExpression"]?.ToString();
|
||||
|
||||
data["SellExceptionRegularExpression"] = rdr["SellExceptionRegularExpression"]?.ToString();
|
||||
returnData.Add(data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ using System.Windows.Forms;
|
||||
using System.Threading.Tasks;
|
||||
using Million.Manager;
|
||||
using Million.SaveData;
|
||||
using DevExpress.Xpo.DB.Helpers;
|
||||
|
||||
namespace Million.DbManagement
|
||||
{
|
||||
@@ -24,7 +25,7 @@ namespace Million.DbManagement
|
||||
Id int IDENTITY (1,1) NOT NULL,
|
||||
SavedResultDataId int NOT NULL,
|
||||
Name nvarchar(50) NOT NULL,
|
||||
TreeListFilterString nvarchar(50) NOT NULL,
|
||||
TreeListFilterString nvarchar(MAX) NOT NULL,
|
||||
AnalysisDataList varbinary(MAX) NOT NULL,
|
||||
Description nvarchar(MAX) NULL,
|
||||
ResultDataCount int NOT NULL,
|
||||
@@ -51,6 +52,7 @@ namespace Million.DbManagement
|
||||
SellSetupList varbinary(MAX) NULL,
|
||||
BuyRegularExpression varchar(100) NOT NULL,
|
||||
SellRegularExpression varchar(100) NOT NULL,
|
||||
SellExceptionRegularExpression varchar(100) NULL,
|
||||
SearchResultList varbinary(MAX) NULL,
|
||||
ResultDataCount int NOT NULL,
|
||||
WinRate float NOT NULL,
|
||||
@@ -78,10 +80,50 @@ namespace Million.DbManagement
|
||||
BuySetupList varbinary(MAX) NULL,
|
||||
SellSetupList varbinary(MAX) NULL,
|
||||
BuyRegularExpression varchar(100) NOT NULL,
|
||||
SellRegularExpression varchar(100) NOT NULL
|
||||
SellRegularExpression varchar(100) NOT NULL,
|
||||
SellExceptionRegularExpression varchar(100) NOT NULL,
|
||||
)";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create Main Log Table
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string CreateMainLogTableQuery()
|
||||
{
|
||||
return @"if not exists (select * from sysobjects where name='MainLog' and xtype='U')
|
||||
create table " + "\"MainLog\"" + @"(
|
||||
UserName nvarchar(50) NOT NULL,
|
||||
SavedDateTime datetime NULL,
|
||||
Data nvarchar(MAX) NOT NULL
|
||||
)";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create Saved Buyer Result Table
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string CreateSavedBuyerResultDataTableQuery()
|
||||
{
|
||||
return @"if not exists (select * from sysobjects where name='SavedBuyerResultData' and xtype='U')
|
||||
create table " + "\"SavedBuyerResultData\"" + @"(
|
||||
UserName nvarchar(50) NOT NULL,
|
||||
SavedDateTime datetime NULL,
|
||||
Mode nvarchar(50) NOT NULL,
|
||||
Data varbinary(MAX) NULL,
|
||||
)";
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Select Main Log Table
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string SelectMainLogQuery()
|
||||
{
|
||||
return @"SELECT * FROM [ResultData].[dbo].[MainLog]";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DB Market 테이블 생성
|
||||
/// </summary>
|
||||
@@ -106,6 +148,23 @@ namespace Million.DbManagement
|
||||
return resultstring;
|
||||
}
|
||||
|
||||
public static string CreateMarketTable_ToDB_All()
|
||||
{
|
||||
var tableName = "AllDataTable";
|
||||
|
||||
return @"if not exists (select * from sysobjects where name='" + tableName + @"' and xtype='U')
|
||||
create table " + "\"" + tableName + "\"" + @"(
|
||||
CoinFullName nvarchar(50) not null,
|
||||
DateTime datetime not null,
|
||||
StartValue float not null,
|
||||
EndValue float not null,
|
||||
HighValue float not null,
|
||||
LowValue float not null,
|
||||
MoneyVolume float not null,
|
||||
TransactionAmount float not null,
|
||||
CandleTimeType int not null
|
||||
); ";
|
||||
}
|
||||
/// <summary>
|
||||
/// DB 거래소 내 Market 테이블 생성
|
||||
/// </summary>
|
||||
@@ -151,7 +210,7 @@ namespace Million.DbManagement
|
||||
var strDbCon = $"{CommonProperty.DbConnectionStr}Market";
|
||||
|
||||
var subSql = "";
|
||||
if(payment != null)
|
||||
if (payment != null)
|
||||
{
|
||||
subSql = string.Format("AND [Payment] = '{0}'", payment);
|
||||
}
|
||||
@@ -159,8 +218,8 @@ namespace Million.DbManagement
|
||||
// Query문 만들기
|
||||
var sqlQuery = string.Format("select * from dbo.{0} where IsValid = 1 {1};", tableName, subSql);
|
||||
|
||||
return DBConnection.QueryGetExcuter_Market(strDbCon, sqlQuery);
|
||||
}
|
||||
return DBConnection.QueryGetExecuter_Market(strDbCon, sqlQuery);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 시간대 별 Data가져오는 함수
|
||||
@@ -172,32 +231,32 @@ namespace Million.DbManagement
|
||||
public static CandleDataList GetCandleData(MarketData marketData, DateTime startDate, DateTime endDate, MCandleTimeType candleTimeType = MCandleTimeType.M1)
|
||||
{
|
||||
var returnData = new CandleDataList();
|
||||
if(marketData == null)
|
||||
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)
|
||||
startDate = startDate.AddMinutes(-72 * (int)candleTimeType);
|
||||
else if(candleTimeType == MCandleTimeType.H1 | candleTimeType == MCandleTimeType.H4)
|
||||
if (candleTimeType == MCandleTimeType.M1 || candleTimeType == MCandleTimeType.M3 || candleTimeType == MCandleTimeType.M5 ||
|
||||
candleTimeType == MCandleTimeType.M10 | candleTimeType == MCandleTimeType.M15 || candleTimeType == MCandleTimeType.M30)
|
||||
startDate = startDate.AddMinutes(-80 * (int)candleTimeType);
|
||||
else if (candleTimeType == MCandleTimeType.H1 | candleTimeType == MCandleTimeType.H4)
|
||||
{
|
||||
var val = 1;
|
||||
if (candleTimeType == MCandleTimeType.H4)
|
||||
val = 4;
|
||||
startDate = startDate.AddHours(-72 * val);
|
||||
}
|
||||
else if(candleTimeType == MCandleTimeType.D1)
|
||||
startDate = startDate.AddDays(-72 * 1);
|
||||
startDate = startDate.AddHours(-80 * val);
|
||||
}
|
||||
else if (candleTimeType == MCandleTimeType.D1)
|
||||
startDate = startDate.AddDays(-80 * 1);
|
||||
else if (candleTimeType == MCandleTimeType.W1)
|
||||
startDate = startDate.AddDays(-72 * 7);
|
||||
startDate = startDate.AddDays(-80 * 7);
|
||||
else if (candleTimeType == MCandleTimeType.MT1)
|
||||
startDate = startDate.AddMonths(-72);
|
||||
startDate = startDate.AddMonths(-80);
|
||||
|
||||
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.CoinFullName, startDate.ToString("yyyy-MM-dd HH:mm:ss"), endDate.ToString("yyyy-MM-dd HH:mm:ss"), (int)candleTimeType);
|
||||
|
||||
var dataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
var dataList = DBConnection.QueryGetExecuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (dataList == null) return returnData;
|
||||
|
||||
@@ -221,28 +280,28 @@ namespace Million.DbManagement
|
||||
{
|
||||
return returnData;
|
||||
}
|
||||
var strDbCon = CommonProperty.DbConnectionStr + marketData.ExchangePlace;
|
||||
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);
|
||||
startDate = startDate.AddMinutes(-80 * (int)candleTimeType);
|
||||
else if (candleTimeType == MCandleTimeType.H1 | candleTimeType == MCandleTimeType.H4)
|
||||
{
|
||||
var val = 1;
|
||||
if (candleTimeType == MCandleTimeType.H4)
|
||||
val = 4;
|
||||
startDate = startDate.AddHours(-72 * val);
|
||||
startDate = startDate.AddHours(-80 * val);
|
||||
}
|
||||
else if (candleTimeType == MCandleTimeType.D1)
|
||||
startDate = startDate.AddDays(-72 * 1);
|
||||
startDate = startDate.AddDays(-80 * 1);
|
||||
else if (candleTimeType == MCandleTimeType.W1)
|
||||
startDate = startDate.AddDays(-72 * 7);
|
||||
startDate = startDate.AddDays(-80 * 7);
|
||||
else if (candleTimeType == MCandleTimeType.MT1)
|
||||
startDate = startDate.AddMonths(-72);
|
||||
startDate = startDate.AddMonths(-80);
|
||||
|
||||
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.CoinFullName, startDate.ToString("yyyy-MM-dd HH:mm:ss"), ((int)candleTimeType).ToString());
|
||||
|
||||
var dataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
var dataList = DBConnection.QueryGetExecuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (dataList == null) return returnData;
|
||||
|
||||
@@ -252,7 +311,59 @@ namespace Million.DbManagement
|
||||
return returnData;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 전체 데이터를 하나의 테이블에서 검색(Old, New)
|
||||
/// </summary>
|
||||
/// <param name="marketNameList"></param>
|
||||
/// <param name="databaseName"></param>
|
||||
/// <param name="candleTimeType"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleDataList> GetOldNewDataList_FromDB_All(List<MarketData> marketNameList, string databaseName, MCandleTimeType candleTimeType = MCandleTimeType.M1)
|
||||
|
||||
{
|
||||
var returnData = new List<CandleDataList>();
|
||||
var strDbCon = CommonProperty.DbConnectionStr + databaseName;
|
||||
|
||||
//최신 데이터
|
||||
foreach (var item in marketNameList)
|
||||
{
|
||||
var data = new CandleDataList();
|
||||
data.ConGoodsData = item;
|
||||
|
||||
var sqlQuery = string.Format(@"SELECT TOP(1) * FROM [AllDataTable] WHERE [CandleTimeType] = {0} ORDER BY [DateTime] DESC", ((int)candleTimeType).ToString());
|
||||
var recentlyDataList = DBConnection.QueryGetExecuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (recentlyDataList.Count > 0)
|
||||
{
|
||||
recentlyDataList[0].CandleType = CandleType.New;
|
||||
data.CandleDataLists_Im = recentlyDataList;
|
||||
}
|
||||
else
|
||||
{
|
||||
data.CandleDataLists_Im = new List<CandleData>();
|
||||
}
|
||||
returnData.Add(data);
|
||||
}
|
||||
|
||||
//오래된 데이터
|
||||
foreach (var item in returnData)
|
||||
{
|
||||
if (item.CandleDataLists_Im.Count == 0)
|
||||
continue;
|
||||
|
||||
// 1개라도 있을 경우
|
||||
var sqlQuery = string.Format("SELECT TOP(1) * FROM [AllDataTable] WHERE [CandleTimeType] = {0} ORDER BY [DateTime] ASC", ((int)candleTimeType).ToString());
|
||||
|
||||
var recentlyDataList = DBConnection.QueryGetExecuter_Candle(strDbCon, sqlQuery);
|
||||
if (recentlyDataList.Count > 0)
|
||||
{
|
||||
recentlyDataList[0].CandleType = CandleType.Old;
|
||||
item.CandleDataLists_Im.AddRange(recentlyDataList);
|
||||
}
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DB에서 각 Market 별 가장 최신, 오래된 데이터 한개씩 가져오기
|
||||
@@ -264,7 +375,7 @@ namespace Million.DbManagement
|
||||
|
||||
{
|
||||
var returnData = new List<CandleDataList>();
|
||||
var strDbCon = CommonProperty.DbConnectionStr + databaseName;
|
||||
var strDbCon = CommonProperty.DbConnectionStr + databaseName;
|
||||
|
||||
//최신 데이터
|
||||
foreach (var item in marketNameList)
|
||||
@@ -272,8 +383,8 @@ namespace Million.DbManagement
|
||||
var data = new CandleDataList();
|
||||
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.CoinFullName, ((int) candleTimeType).ToString());
|
||||
var recentlyDataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
var sqlQuery = string.Format(@"SELECT TOP(1) [DateTime],[StartValue],[EndValue],[HighValue],[LowValue],[MoneyVolume],[CandleTimeType] FROM [{0}] WHERE [CandleTimeType] = {1} ORDER BY [DateTime] DESC", item.CoinFullName, ((int)candleTimeType).ToString());
|
||||
var recentlyDataList = DBConnection.QueryGetExecuter_Candle(strDbCon, sqlQuery);
|
||||
|
||||
if (recentlyDataList.Count > 0)
|
||||
{
|
||||
@@ -296,7 +407,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.CoinFullName, ((int)candleTimeType).ToString());
|
||||
|
||||
var recentlyDataList = DBConnection.QueryGetExcuter_Candle(strDbCon, sqlQuery);
|
||||
var recentlyDataList = DBConnection.QueryGetExecuter_Candle(strDbCon, sqlQuery);
|
||||
if (recentlyDataList.Count > 0)
|
||||
{
|
||||
recentlyDataList[0].CandleType = CandleType.Old;
|
||||
@@ -370,6 +481,134 @@ namespace Million.DbManagement
|
||||
// }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// All Data에 Insert
|
||||
/// </summary>
|
||||
/// <param name="placeName"></param>
|
||||
/// <param name="place"></param>
|
||||
/// <param name="recentlyDbDataList"></param>
|
||||
/// <param name="candleTimeType"></param>
|
||||
/// <returns></returns>
|
||||
public static bool SetCandleData_All(string placeName, ExchangeWebReqType place, List<CandleDataList> recentlyDbDataList, MCandleTimeType candleTimeType = MCandleTimeType.M1)
|
||||
{
|
||||
bool flag = false;
|
||||
|
||||
//데이터 쌓는 부분은 재귀로 처리할 예정
|
||||
/**
|
||||
* 단계 조정
|
||||
* 아무것도 없을 경우 0
|
||||
* 있을 경우1
|
||||
* 완료 2
|
||||
*/
|
||||
|
||||
var insertQuery = "";
|
||||
|
||||
foreach (var item in recentlyDbDataList)
|
||||
{
|
||||
var sw = new System.Diagnostics.Stopwatch();
|
||||
sw.Start();
|
||||
var dateTime = DateTime.Now;
|
||||
var tableName = item.ConGoodsData.CoinFullName;
|
||||
int step = 0;
|
||||
bool firstFlag = true;
|
||||
var recentlyFlag = true;
|
||||
switch (place)
|
||||
{
|
||||
case ExchangeWebReqType.UpbitCandleStick:
|
||||
|
||||
//최신 부터
|
||||
var recentlyDateTime = new DateTime(1970, 1, 1);
|
||||
var oldDateTime = new DateTime(1970, 1, 1);
|
||||
CandleData recentlyData = null;
|
||||
CandleData oldData = null;
|
||||
|
||||
if (item.CandleDataLists_Im.Count > 0)
|
||||
{
|
||||
recentlyData = item.CandleDataLists_Im.Find(t => t.CandleType == CandleType.New);
|
||||
recentlyDateTime = recentlyData.DateTime;
|
||||
oldData = item.CandleDataLists_Im.Find(t => t.CandleType == CandleType.Old);
|
||||
oldDateTime = oldData.DateTime;
|
||||
|
||||
step = 1;
|
||||
}
|
||||
|
||||
while (true)
|
||||
{
|
||||
var webDataList = UpbitApi.GetCandleStics(item.ConGoodsData.CoinFullName, candleTimeType, dateTime);
|
||||
|
||||
var insertDataList = new List<CandleData>();
|
||||
|
||||
if (step == 0)
|
||||
{
|
||||
insertDataList = webDataList;
|
||||
}
|
||||
else if (step == 1)
|
||||
{
|
||||
insertDataList.AddRange(webDataList.Where(t => t.DateTime > recentlyDateTime).ToList());
|
||||
insertDataList.AddRange(webDataList.Where(t => t.DateTime < oldDateTime).ToList());
|
||||
}
|
||||
|
||||
insertDataList = insertDataList.OrderBy(t => t.DateTime).ToList();
|
||||
|
||||
if (firstFlag)
|
||||
{
|
||||
if (insertDataList.Count > 0)
|
||||
{
|
||||
insertDataList.Remove(insertDataList[insertDataList.Count - 1]);
|
||||
firstFlag = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
|
||||
//데이터 insert
|
||||
foreach (var data in insertDataList)
|
||||
{
|
||||
insertQuery += string.Format("INSERT INTO [dbo].[AllDataTable]([CoinFullName],[DateTime],[StartValue], [EndValue], [HighValue], [LowValue], [MoneyVolume], [CandleTimeType], [TransactionAmount]) VALUES ('{0}', '{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}')",
|
||||
tableName, data.DateTime.ToString("yyyy-MM-dd HH:mm:ss"), data.StartValue, data.EndValue, data.HighValue, data.LowValue, data.MoneyVolume, data.CandleTimeType, data.TransactionAmount);
|
||||
}
|
||||
|
||||
if (insertDataList.Count == 0)
|
||||
{
|
||||
if (recentlyFlag)
|
||||
{
|
||||
recentlyFlag = false;
|
||||
dateTime = oldDateTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
step = 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dateTime = insertDataList[0].DateTime;
|
||||
}
|
||||
|
||||
if (step == 2)
|
||||
break;
|
||||
//초당 8회 이상안됨 (0.125초)
|
||||
if (!string.IsNullOrWhiteSpace(insertQuery))
|
||||
DBConnection.QueryUpdateExecuter(DbConnectionStr + placeName, insertQuery);
|
||||
Thread.Sleep(60);
|
||||
insertQuery = "";
|
||||
}
|
||||
|
||||
break;
|
||||
case ExchangeWebReqType.BithumbCandleTicker:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
sw.Stop();
|
||||
Console.WriteLine("Completed Set Candle Data of Table : " + tableName + ", Times : " + sw.Elapsed.ToString());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 최신값, 가장오래된 값을 기준으로 Data 호출 및 처리
|
||||
/// </summary>
|
||||
@@ -421,7 +660,7 @@ namespace Million.DbManagement
|
||||
while (true)
|
||||
{
|
||||
var webDataList = UpbitApi.GetCandleStics(item.ConGoodsData.CoinFullName, candleTimeType, dateTime);
|
||||
|
||||
|
||||
var insertDataList = new List<CandleData>();
|
||||
|
||||
if (step == 0)
|
||||
@@ -436,12 +675,15 @@ namespace Million.DbManagement
|
||||
|
||||
insertDataList = insertDataList.OrderBy(t => t.DateTime).ToList();
|
||||
|
||||
if (firstFlag) {
|
||||
if(insertDataList.Count > 0) {
|
||||
if (firstFlag)
|
||||
{
|
||||
if (insertDataList.Count > 0)
|
||||
{
|
||||
insertDataList.Remove(insertDataList[insertDataList.Count - 1]);
|
||||
firstFlag = false;
|
||||
}
|
||||
else {
|
||||
else
|
||||
{
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
@@ -466,7 +708,7 @@ namespace Million.DbManagement
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
dateTime = insertDataList[0].DateTime;
|
||||
}
|
||||
|
||||
@@ -474,7 +716,7 @@ namespace Million.DbManagement
|
||||
break;
|
||||
//초당 8회 이상안됨 (0.125초)
|
||||
if (!string.IsNullOrWhiteSpace(insertQuery))
|
||||
DBConnection.QueryUpdateExcuter(DbConnectionStr + placeName, insertQuery);
|
||||
DBConnection.QueryUpdateExecuter(DbConnectionStr + placeName, insertQuery);
|
||||
Thread.Sleep(60);
|
||||
insertQuery = "";
|
||||
}
|
||||
@@ -482,7 +724,7 @@ namespace Million.DbManagement
|
||||
break;
|
||||
case ExchangeWebReqType.BithumbCandleTicker:
|
||||
break;
|
||||
|
||||
|
||||
}
|
||||
|
||||
sw.Stop();
|
||||
@@ -506,18 +748,21 @@ namespace Million.DbManagement
|
||||
,[SellSetupList]
|
||||
,[BuyRegularExpression]
|
||||
,[SellRegularExpression]
|
||||
,[SellExceptionRegularExpression]
|
||||
)VALUES(
|
||||
'{0}',
|
||||
'{1}',
|
||||
@BuySetupList,
|
||||
@SellSetupList,
|
||||
'{2}',
|
||||
'{3}'
|
||||
'{3}',
|
||||
'{4}'
|
||||
);",
|
||||
name,
|
||||
item.SavedDateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
item.BuyRegularExpression,
|
||||
item.SellRegularExpression
|
||||
item.SellRegularExpression,
|
||||
item.SellExceptionRegularExpression
|
||||
);
|
||||
return str;
|
||||
}
|
||||
@@ -529,7 +774,7 @@ namespace Million.DbManagement
|
||||
/// <returns></returns>
|
||||
public static string InsertSavedResultDataQuery(SavedResultData item)
|
||||
{
|
||||
|
||||
//,[SellExceptionRegularExpression]
|
||||
var str = string.Format(@"INSERT INTO [ResultData].[dbo].[SavedResultData]
|
||||
(
|
||||
[ParentId]
|
||||
@@ -551,6 +796,7 @@ namespace Million.DbManagement
|
||||
,[Type]
|
||||
,[SaveResultType]
|
||||
,[Description]
|
||||
,[SellExceptionRegularExpression]
|
||||
)VALUES(
|
||||
'{0}',
|
||||
'{1}',
|
||||
@@ -570,7 +816,8 @@ namespace Million.DbManagement
|
||||
'{12}',
|
||||
'{13}',
|
||||
'{14}',
|
||||
'{15}'
|
||||
'{15}',
|
||||
'{16}'
|
||||
);",
|
||||
item.ParentId,
|
||||
item.Name,
|
||||
@@ -587,7 +834,38 @@ namespace Million.DbManagement
|
||||
item.ExchangePlace,
|
||||
item.Type,
|
||||
item.SaveResultType,
|
||||
item.Description
|
||||
item.Description,
|
||||
item.SellExceptionRegularExpression
|
||||
);
|
||||
|
||||
//,
|
||||
return str;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Saved Buyer Result Query
|
||||
/// </summary>
|
||||
/// <param name="userName"></param>
|
||||
/// <param name="mode"></param>
|
||||
/// <param name="dateTime"></param>
|
||||
/// <returns></returns>
|
||||
public static string InsertSavedBuyerResultDataQuery(string userName, string mode, DateTime dateTime)
|
||||
{
|
||||
|
||||
var str = string.Format(@"INSERT INTO [ResultData].[dbo].[SavedBuyerResultData]
|
||||
(
|
||||
[UserName],
|
||||
[SavedDateTime],
|
||||
[Mode],
|
||||
[Data]
|
||||
)VALUES(
|
||||
'{0}',
|
||||
'{1}',
|
||||
'{2}',
|
||||
@data);",
|
||||
userName,
|
||||
dateTime.ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
mode
|
||||
);
|
||||
return str;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace Million.IndicatorConditionSetup
|
||||
|
||||
public override string GetKeyName(bool IndexStr = false)
|
||||
{
|
||||
var key = "Bol" + Period + Squared;
|
||||
var key = "Bol" + (Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.하향선 ? "U" : "") + Period + Squared;
|
||||
if (IndexStr)
|
||||
return IndexString + key;
|
||||
return key;
|
||||
@@ -115,20 +115,37 @@ namespace Million.IndicatorConditionSetup
|
||||
t_Low += Math.Pow(data[j].LowValue - average_Low, 2);
|
||||
t_Close += Math.Pow(data[j].EndValue - average, 2);
|
||||
|
||||
bol.startValue = average_Open + Squared * Math.Sqrt(t_Open / Period);
|
||||
bol.highValue = average_High + Squared * Math.Sqrt(t_High / Period);
|
||||
bol.lowValue = average_Low + Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average + Squared * Math.Sqrt(t_Close / Period);
|
||||
if (Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.하향선)
|
||||
{
|
||||
bol.startValue = average_Open - Squared * Math.Sqrt(t_Open / Period);
|
||||
bol.highValue = average_High - Squared * Math.Sqrt(t_High / Period);
|
||||
bol.lowValue = average_Low - Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average - Squared * Math.Sqrt(t_Close / Period);
|
||||
}
|
||||
else if(Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.상향선)
|
||||
{
|
||||
bol.startValue = average_Open + Squared * Math.Sqrt(t_Open / Period);
|
||||
bol.highValue = average_High + Squared * Math.Sqrt(t_High / Period);
|
||||
bol.lowValue = average_Low + Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average + Squared * Math.Sqrt(t_Close / Period);
|
||||
}
|
||||
else if(Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.기준선)
|
||||
{
|
||||
bol.startValue = average_Open;
|
||||
bol.highValue = average_High;
|
||||
bol.lowValue = average_Low + Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average;
|
||||
}
|
||||
|
||||
IndicatorData.OverChecker(data[i], bol, data[i - 1].IndicatorDic[bolKeyName].indicator_over);
|
||||
|
||||
if (bol.overStatus != CommonProperty.OverStatus.None)
|
||||
{
|
||||
bol.overlapValue = getTargetValue(Period, sum, Squared, powSum);
|
||||
bol.overlapValue = getTargetValueTemp(bol.highValue, bol.lowValue, data[i].HighValue, data[i].LowValue);
|
||||
//bol.overlapValue = getTargetValue(Period, sum, Squared, powSum);
|
||||
}
|
||||
|
||||
total_average -= data[i - Period + 1].EndValue;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -178,24 +195,82 @@ namespace Million.IndicatorConditionSetup
|
||||
t_Low += Math.Pow(data[j].LowValue - average_Low, 2);
|
||||
t_Close += Math.Pow(data[j].EndValue - average, 2);
|
||||
|
||||
bol.startValue = average_Open + Squared * Math.Sqrt(t_Open / Period);
|
||||
bol.highValue = average_High + Squared * Math.Sqrt(t_High / Period);
|
||||
bol.lowValue = average_Low + Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average + Squared * Math.Sqrt(t_Close / Period);
|
||||
if (Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.하향선)
|
||||
{
|
||||
bol.startValue = average_Open - Squared * Math.Sqrt(t_Open / Period);
|
||||
bol.highValue = average_High - Squared * Math.Sqrt(t_High / Period);
|
||||
bol.lowValue = average_Low - Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average - Squared * Math.Sqrt(t_Close / Period);
|
||||
|
||||
}
|
||||
else if (Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.상향선)
|
||||
{
|
||||
bol.startValue = average_Open + Squared * Math.Sqrt(t_Open / Period);
|
||||
bol.highValue = average_High + Squared * Math.Sqrt(t_High / Period);
|
||||
bol.lowValue = average_Low + Squared * Math.Sqrt(t_Low / Period);
|
||||
bol.value = average + Squared * Math.Sqrt(t_Close / Period);
|
||||
}
|
||||
else if (Indicator_BolingerOverLine == CommonProperty.Indicator_BolingerOverLine.기준선)
|
||||
{
|
||||
bol.startValue = average_Open;
|
||||
bol.highValue = average_High;
|
||||
bol.lowValue = average_Low;
|
||||
bol.value = average;
|
||||
}
|
||||
|
||||
IndicatorData.OverChecker(data[i], bol, data[i - 1].IndicatorDic[bolKeyName].indicator_over);
|
||||
|
||||
if (bol.overStatus != CommonProperty.OverStatus.None)
|
||||
{
|
||||
bol.overlapValue = getTargetValue(Period, sum, Squared, powSum);
|
||||
bol.overlapValue = getTargetValueTemp(bol.highValue, bol.lowValue, data[i].HighValue, data[i].LowValue);
|
||||
//bol.overlapValue = getTargetValue(Period, sum, Squared, powSum);
|
||||
}
|
||||
}
|
||||
|
||||
private double getTargetValueTemp(double highBolValue, double lowBolValue, double highValue, double lowValue)
|
||||
{
|
||||
var bolRate = (highBolValue - lowBolValue) / 1000;
|
||||
var valRate = (highValue - lowValue) / 1000;
|
||||
double returnValue = 0;
|
||||
|
||||
if (lowBolValue < lowValue)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
lowBolValue += bolRate;
|
||||
lowValue += valRate;
|
||||
if (lowBolValue > lowValue)
|
||||
{
|
||||
returnValue = lowBolValue;
|
||||
break;
|
||||
}
|
||||
else if (lowBolValue > highBolValue)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
lowBolValue += bolRate;
|
||||
lowValue += valRate;
|
||||
if (lowBolValue < lowValue)
|
||||
{
|
||||
returnValue = lowBolValue;
|
||||
break;
|
||||
}
|
||||
else if (lowBolValue > highBolValue)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
private double getBol(List<CandleData> candleDatas,double sum,double candle)
|
||||
|
||||
private double getBol(List<CandleData> candleDatas, double sum, double candle)
|
||||
{
|
||||
|
||||
var aver = (sum+ candle) / Period;
|
||||
|
||||
var aver = (sum + candle) / Period;
|
||||
var t = 0.0;
|
||||
|
||||
for (int i = 0; i < candleDatas.Count - 1; i++)
|
||||
@@ -248,11 +323,10 @@ namespace Million.IndicatorConditionSetup
|
||||
{
|
||||
sum += parentDatas[i].EndValue;
|
||||
}
|
||||
|
||||
|
||||
exList = exList.Distinct().ToList();
|
||||
foreach (var tempVal in exList)
|
||||
{
|
||||
result.Add(tempVal, getBol(parentDatas,sum,tempVal));
|
||||
result.Add(tempVal, getBol(parentDatas, sum, tempVal));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
69
Million/IndicatorConditionSetup/CompareConditionSetup.cs
Normal file
69
Million/IndicatorConditionSetup/CompareConditionSetup.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Million.CommonProperty;
|
||||
|
||||
namespace Million.IndicatorConditionSetup
|
||||
{
|
||||
[Serializable]
|
||||
/// <summary>
|
||||
/// Compare 조건식
|
||||
/// </summary>
|
||||
public class CompareConditionSetup : IndicatorCoditionSetup
|
||||
{
|
||||
/// <summary>
|
||||
/// 기본 데이터
|
||||
/// </summary>
|
||||
public string Origin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 조건 데이터
|
||||
/// </summary>
|
||||
public string Compare { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Compare 할 값
|
||||
/// </summary>
|
||||
public CompareType CompareType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Clone
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public object Clone()
|
||||
{
|
||||
var clone = new CompareConditionSetup
|
||||
{
|
||||
CandlePriceTypeFirstOver = CandlePriceTypeFirstOver,
|
||||
OverStatusEnumListFirstOver = OverStatusEnumListFirstOver,
|
||||
FirstOverSubRegExpression = FirstOverSubRegExpression,
|
||||
CrossSubRegExpression = CrossSubRegExpression,
|
||||
CrossCandlePriceType = CrossCandlePriceType,
|
||||
CrossType = CrossType,
|
||||
ByBuySellType = ByBuySellType,
|
||||
IndicatorType = IndicatorType,
|
||||
SubIndicatorSetupType = SubIndicatorSetupType,
|
||||
CandlePriceType = CandlePriceType,
|
||||
IndicatorOver = IndicatorOver,
|
||||
OverStatusEnumList = OverStatusEnumList,
|
||||
MCandleTimeType = MCandleTimeType,
|
||||
Description = Description,
|
||||
IndexString = IndexString,
|
||||
Origin = Origin,
|
||||
Compare = Compare,
|
||||
CompareType = CompareType
|
||||
};
|
||||
return clone;
|
||||
}
|
||||
|
||||
public override string GetKeyName(bool IndexStr = false)
|
||||
{
|
||||
var key = "Compare" + Origin + Compare;
|
||||
if (IndexStr)
|
||||
return IndexString + key;
|
||||
return key;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -166,14 +166,20 @@ namespace Million.IndicatorConditionSetup
|
||||
{
|
||||
targetValue = ichi.GetOverValue();
|
||||
}
|
||||
|
||||
else if (IndicatorIchmokuOverLine == CommonProperty.Indicator_IchmokuOverLine.선행스팬1OR2중저가)
|
||||
{
|
||||
targetValue = ichi.GetDownOverValue();
|
||||
}
|
||||
|
||||
var stValue = targetCandle.StartValue;
|
||||
var enValue = targetCandle.EndValue;
|
||||
var tempValue = stValue;
|
||||
while (tempValue <= enValue)
|
||||
{
|
||||
result.Add(tempValue, targetValue);
|
||||
if (!result.ContainsKey(tempValue))
|
||||
{
|
||||
result.Add(tempValue, targetValue);
|
||||
}
|
||||
tempValue = OrderbookManager.GetAskPrice(tempValue);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,9 +72,6 @@ namespace Million.IndicatorConditionSetup
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (obj.GetType() == typeof(BolingerConditionSetup))
|
||||
{
|
||||
var thisBol = (BolingerConditionSetup)this;
|
||||
@@ -103,6 +100,14 @@ namespace Million.IndicatorConditionSetup
|
||||
thisMov.MACandlePriceType == objMov.MACandlePriceType &&
|
||||
thisMov.MovingAverageType == objMov.MovingAverageType;
|
||||
}
|
||||
else if (obj.GetType() == typeof(CompareConditionSetup)) {
|
||||
var objCompare = (CompareConditionSetup)obj;
|
||||
var thisCompare = (CompareConditionSetup)this;
|
||||
return objCompare.Origin == thisCompare.Origin &&
|
||||
objCompare.Compare == thisCompare.Compare &&
|
||||
objCompare.CompareType == thisCompare.CompareType;
|
||||
}
|
||||
|
||||
|
||||
return base.Equals(obj);
|
||||
}
|
||||
|
||||
@@ -119,9 +119,9 @@ namespace Million.IndicatorConditionSetup
|
||||
if (data[data.Count() - 2].IndicatorDic.ContainsKey(movingKeyName))
|
||||
{
|
||||
i = data.Count() - 1;
|
||||
for(int j= data.Count()-Period;j<i;i++)
|
||||
for(int j= data.Count()-Period;j<i;j++)
|
||||
{
|
||||
var thisValue = GetStockValue(data[i]);
|
||||
var thisValue = GetStockValue(data[j]);
|
||||
total_average += thisValue;
|
||||
endValueList.Add(thisValue);
|
||||
}
|
||||
@@ -139,7 +139,7 @@ namespace Million.IndicatorConditionSetup
|
||||
|
||||
total_average += thisValue;//단순 이평 계산하기위한 값
|
||||
endValueList.Add(thisValue);//가중 이평 계산하기위한 값
|
||||
if (i >= Period - 1)
|
||||
if (i > Period - 1)
|
||||
{
|
||||
if (MaType == CommonProperty.MAType.단순)
|
||||
{
|
||||
@@ -165,6 +165,23 @@ namespace Million.IndicatorConditionSetup
|
||||
total_average -= GetStockValue(data[i - Period + 1]);
|
||||
endValueList.RemoveAt(0);
|
||||
}
|
||||
else if (Period - 1 == 0)
|
||||
{
|
||||
//1개일 경우 단순만 해당 봉 데이터 처리
|
||||
if (MaType == CommonProperty.MAType.단순)
|
||||
{
|
||||
var value = 0.0;
|
||||
if (MACandlePriceType == CommonProperty.CandlePriceType.시가)
|
||||
value = data[i].StartValue;
|
||||
else if (MACandlePriceType == CommonProperty.CandlePriceType.고가)
|
||||
value = data[i].HighValue;
|
||||
else if (MACandlePriceType == CommonProperty.CandlePriceType.종가)
|
||||
value = data[i].EndValue;
|
||||
else if (MACandlePriceType == CommonProperty.CandlePriceType.저가)
|
||||
value = data[i].LowValue;
|
||||
mov.value = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,8 +229,8 @@ namespace Million.IndicatorConditionSetup
|
||||
{
|
||||
sum+= GetStockValue(parentDatas[i]);
|
||||
}
|
||||
|
||||
foreach(var tempVal in exList)
|
||||
exList = exList.Distinct().ToList();
|
||||
foreach (var tempVal in exList)
|
||||
{
|
||||
result.Add(tempVal, getSMA(sum, tempVal, period));
|
||||
}
|
||||
@@ -222,7 +239,7 @@ namespace Million.IndicatorConditionSetup
|
||||
{
|
||||
var percentage = 2 / (period + 1);
|
||||
var beforeValue = parentDatas[parentDatas.Count - 2].IndicatorDic[GetKeyName()].value;
|
||||
|
||||
exList = exList.Distinct().ToList();
|
||||
foreach (var tempVal in exList)
|
||||
{
|
||||
result.Add(tempVal, getEMA(tempVal, beforeValue, percentage));
|
||||
@@ -237,7 +254,7 @@ namespace Million.IndicatorConditionSetup
|
||||
}
|
||||
double dividValue = period * (period + 1) / 2;
|
||||
var wSum = getWSumLastExcpet(valList);
|
||||
|
||||
exList = exList.Distinct().ToList();
|
||||
foreach (var tempVal in exList)
|
||||
{
|
||||
result.Add(tempVal, getWMA(wSum,tempVal,dividValue,period));
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace Million
|
||||
/// <param name="e"></param>
|
||||
private void barButtonItem_CharView_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
||||
{
|
||||
ChartViewerForm chartViewerForm = new ChartViewerForm();
|
||||
ChartViewerForm chartViewerForm = new ChartViewerForm(null);
|
||||
|
||||
chartViewerForm.Show();
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,16 @@
|
||||
using Million.Data;
|
||||
using DevExpress.Pdf.Native;
|
||||
using Million.Data;
|
||||
using Million.Data.Upbit;
|
||||
using Million.DbManagement;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Humanizer.In;
|
||||
using static Million.CommonProperty;
|
||||
|
||||
namespace Million.Manager
|
||||
@@ -26,12 +31,19 @@ namespace Million.Manager
|
||||
/// <param name="distinctIndicator"></param>
|
||||
/// <returns></returns>
|
||||
public static Dictionary<MCandleTimeType, List<CandleData>> GetStandardData(List<IndicatorCoditionSetup> totalIndicator, DateTime startDate,
|
||||
DateTime endDate, MarketData market, List<IndicatorCoditionSetup> distinctIndicator, bool flag = false)
|
||||
DateTime endDate, MarketData market, List<IndicatorCoditionSetup> distinctIndicator, bool flag = false, List<MCandleTimeType> candleTypes = null)
|
||||
{
|
||||
var candleTypeList = totalIndicator.Select(t => t.MCandleTimeType).ToList();
|
||||
candleTypeList.Add(CommonProperty.MCandleTimeType.M1);
|
||||
candleTypeList = candleTypeList.Distinct().ToList();
|
||||
|
||||
if (candleTypes != null)
|
||||
{
|
||||
candleTypeList = candleTypes;
|
||||
}
|
||||
else
|
||||
{
|
||||
candleTypeList.Add(CommonProperty.MCandleTimeType.M1);
|
||||
candleTypeList = candleTypeList.Distinct().ToList();
|
||||
}
|
||||
|
||||
var dic = new Dictionary<CommonProperty.MCandleTimeType, List<CandleData>>();
|
||||
//계산로직에 필요한 Data setting
|
||||
@@ -45,19 +57,73 @@ namespace Million.Manager
|
||||
{
|
||||
setup.excute(candleDataListClass.CandleDataLists_Im);
|
||||
}
|
||||
|
||||
candleDataListClass.CandleDataLists_Im = candleDataListClass.CandleDataLists_Im.OrderBy(t => t.DateTime).ToList();
|
||||
|
||||
var list = new List<CandleData>();
|
||||
if (flag)
|
||||
{
|
||||
var parentData = ValidationCheckManager.SplitValidationCandleDataList(candleDataListClass.CandleDataLists_Im, item);
|
||||
foreach (var parent in parentData) list.AddRange(parent);
|
||||
dic.Add(item, list);
|
||||
foreach (var parent in parentData)
|
||||
list.AddRange(parent);
|
||||
dic[item] = list;
|
||||
}
|
||||
else
|
||||
dic.Add(item, candleDataListClass.CandleDataLists_Im);
|
||||
dic[item] = candleDataListClass.CandleDataLists_Im;
|
||||
}
|
||||
return dic;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Data Indicator Execute
|
||||
/// </summary>
|
||||
/// <param name="dataList"></param>
|
||||
/// <param name="totalIndicatorList"></param>
|
||||
/// <param name="coinFullName"></param>
|
||||
/// <returns></returns>
|
||||
public static Dictionary<MCandleTimeType, List<CandleData>> GetExecuteData(Dictionary<MCandleTimeType, List<CandleDataList>> dataList, List<IndicatorCoditionSetup> totalIndicatorList, string coinFullName)
|
||||
{
|
||||
var dic = new Dictionary<MCandleTimeType, List<CandleData>>();
|
||||
var distinctIndicator = IndicatorSetupManager.Distinct(totalIndicatorList);
|
||||
|
||||
foreach (var key in dataList.Keys)
|
||||
{
|
||||
var candleDataList = dataList[key].FirstOrDefault(t => t.ConGoodsData.CoinFullName == coinFullName);
|
||||
dic[key] = candleDataList.CandleDataLists_Im;
|
||||
|
||||
var indicatorSetUpList = distinctIndicator.Where(t => t.MCandleTimeType == key).ToList();
|
||||
foreach (var setup in indicatorSetUpList)
|
||||
{
|
||||
setup.excute(dic[key], true);
|
||||
//setup.excute(dic[key], true);
|
||||
}
|
||||
}
|
||||
return dic;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Data Indicator Execute
|
||||
/// </summary>
|
||||
/// <param name="dataList"></param>
|
||||
/// <param name="totalIndicatorList"></param>
|
||||
/// <returns></returns>
|
||||
public static Dictionary<MCandleTimeType, List<CandleData>> GetExecuteData(Dictionary<MCandleTimeType, List<CandleData>> dataList, List<IndicatorCoditionSetup> totalIndicatorList)
|
||||
{
|
||||
var distinctIndicator = IndicatorSetupManager.Distinct(totalIndicatorList);
|
||||
|
||||
foreach (var key in dataList.Keys)
|
||||
{
|
||||
var indicatorSetUpList = distinctIndicator.Where(t => t.MCandleTimeType == key).ToList();
|
||||
foreach (var setup in indicatorSetUpList)
|
||||
{
|
||||
setup.excute(dataList[key], true);
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Sub Indicator List String 반환 Function
|
||||
/// </summary>
|
||||
@@ -67,18 +133,437 @@ namespace Million.Manager
|
||||
{
|
||||
// 최초와 cross의 조건먼저 계산이 필요함(선처리)
|
||||
var parentIndicator = totalIndicator.Where(t => t.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.최초돌파 ||
|
||||
t.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.크로스).ToList();
|
||||
t.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.크로스 || t.IndicatorType == IndicatorType.조건단순비교).ToList();
|
||||
|
||||
var subIndStringiList = new List<string>();
|
||||
foreach (var item in parentIndicator)
|
||||
{
|
||||
var subRegExpression = item.FirstOverSubRegExpression;
|
||||
if (item.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.크로스)
|
||||
var subRegExpression = "";
|
||||
if (item.IndicatorType == CommonProperty.IndicatorType.조건단순비교)
|
||||
{
|
||||
subRegExpression = ((CompareConditionSetup)item).Origin + "," + ((CompareConditionSetup)item).Compare;
|
||||
}
|
||||
else if (item.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.크로스)
|
||||
{
|
||||
subRegExpression = item.CrossSubRegExpression;
|
||||
}
|
||||
else
|
||||
{
|
||||
subRegExpression = item.FirstOverSubRegExpression;
|
||||
}
|
||||
subIndStringiList.AddRange(subRegExpression.Split(',').ToList());
|
||||
}
|
||||
subIndStringiList = subIndStringiList.Distinct().ToList();
|
||||
return subIndStringiList;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get Recently Data
|
||||
/// </summary>
|
||||
/// <param name="dic"></param>
|
||||
/// <param name="timeType"></param>
|
||||
/// <param name="realTimeFlag"></param>
|
||||
/// <returns></returns>
|
||||
public static CandleData GetRecentlyData(Dictionary<MCandleTimeType, List<CandleData>> dic, MCandleTimeType timeType = MCandleTimeType.M1, bool realTimeFlag = false)
|
||||
{
|
||||
CandleData returnData = null;
|
||||
var list = dic[timeType];
|
||||
var orderList = list.OrderByDescending(t => t.DateTime).ToList();
|
||||
if (orderList.Count > 0)
|
||||
{
|
||||
if (realTimeFlag)
|
||||
{
|
||||
var recentlyList = orderList.Where(t => t.RecentlyDataFlag).ToList();
|
||||
if (recentlyList.Count > 0)
|
||||
returnData = recentlyList[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
returnData = orderList[0];
|
||||
}
|
||||
}
|
||||
|
||||
// Parent Recently Data는 indicator에 따라 달라질수 있으므로 전부다 처리한 후 초기화
|
||||
foreach (var data in dic)
|
||||
{
|
||||
var recentlyList = data.Value.Where(t => t.RecentlyDataFlag).ToList();
|
||||
|
||||
foreach (var recentlyItem in recentlyList)
|
||||
recentlyItem.RecentlyDataFlag = false;
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
/// <summary>
|
||||
/// Get SearchResult Class Data
|
||||
/// </summary>
|
||||
/// <param name="buyCandleData"></param>
|
||||
/// <param name="sellCandleData"></param>
|
||||
/// <param name="market"></param>
|
||||
/// <returns></returns>
|
||||
public static SearchResult GetBuyerSearchResult(CandleData buyCandleData, CandleData sellCandleData, MarketData market, List<CandleData> buyCandleDatas = null)
|
||||
{
|
||||
var result = new SearchResult();
|
||||
var rate = ((sellCandleData.SellValue - buyCandleData.BuyValue) / buyCandleData.BuyValue) * 100;
|
||||
result.FirstEarningRate = rate;
|
||||
result.EndDate = sellCandleData.DateTime;
|
||||
result.CoinFullName = market.CoinFullName;
|
||||
result.MarketData = market;
|
||||
result.BuyEarningRate.Add(rate);
|
||||
result.BuyValueList.Add(buyCandleData.BuyValue);
|
||||
result.BuyList.ConGoodsData = market;
|
||||
if (buyCandleDatas != null) result.BuyList.CandleDataLists_Im = buyCandleDatas;
|
||||
else result.BuyList.CandleDataLists_Im.Add(buyCandleData);
|
||||
result.StartDate = buyCandleData.DateTime;
|
||||
result.SellData = sellCandleData;
|
||||
result.SellValue = sellCandleData.SellValue;
|
||||
result.TotalEarningRate = rate;
|
||||
result.WinCount = rate > 0 ? 1 : 0;
|
||||
result.LoseCount = rate < 0 ? 1 : 0;
|
||||
result.FirstWinFlag = rate > 0 ? true : false;
|
||||
|
||||
result.BuyCount = buyCandleData.BuyCount;
|
||||
result.SellCount = sellCandleData.BuyCount;
|
||||
return result;
|
||||
}
|
||||
|
||||
private static CandleData CreateCandleData(CandleData candle, int timeFlagValue, string timeFlag)
|
||||
{
|
||||
var firstData = candle;
|
||||
if (timeFlag == "minute")
|
||||
{
|
||||
var minute = firstData.DateTime.Minute / timeFlagValue * timeFlagValue;
|
||||
return new CandleData()
|
||||
{
|
||||
DateTime = new DateTime(firstData.DateTime.Year, firstData.DateTime.Month, firstData.DateTime.Day, firstData.DateTime.Hour, minute, 0),
|
||||
HighValue = firstData.HighValue,
|
||||
StartValue = firstData.StartValue,
|
||||
LowValue = firstData.LowValue,
|
||||
EndValue = firstData.EndValue,
|
||||
RecentlyDataFlag = true,
|
||||
MoneyVolume = firstData.MoneyVolume
|
||||
};
|
||||
}
|
||||
else if (timeFlag == "hour")
|
||||
{
|
||||
var tempDateTime = firstData.DateTime;
|
||||
tempDateTime = tempDateTime.AddHours(((int)CommonProperty.ExchangeTime.UpbitorBithumb * -1));
|
||||
var hour = tempDateTime.Hour / timeFlagValue * timeFlagValue;
|
||||
|
||||
var dateTime = new DateTime(tempDateTime.Year, tempDateTime.Month, tempDateTime.Day, hour, 0, 0);
|
||||
dateTime = dateTime.AddHours((int)CommonProperty.ExchangeTime.UpbitorBithumb);
|
||||
|
||||
return new CandleData()
|
||||
{
|
||||
DateTime = dateTime,
|
||||
HighValue = firstData.HighValue,
|
||||
StartValue = firstData.StartValue,
|
||||
LowValue = firstData.LowValue,
|
||||
RecentlyDataFlag = true,
|
||||
EndValue = firstData.EndValue,
|
||||
MoneyVolume = firstData.MoneyVolume
|
||||
};
|
||||
}
|
||||
else //if (timeFlag == "day")
|
||||
{
|
||||
//var hour = firstData.DateTime.Day / timeFlagValue * timeFlagValue;
|
||||
return new CandleData()
|
||||
{
|
||||
DateTime = new DateTime(firstData.DateTime.Year, firstData.DateTime.Month, firstData.DateTime.Day, 0, 0, 0),
|
||||
HighValue = firstData.HighValue,
|
||||
StartValue = firstData.StartValue,
|
||||
LowValue = firstData.LowValue,
|
||||
RecentlyDataFlag = true,
|
||||
EndValue = firstData.EndValue,
|
||||
MoneyVolume = firstData.MoneyVolume
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CandleList 만들어주는거
|
||||
/// </summary>
|
||||
/// <param name="currentCandleList"></param>
|
||||
/// <param name="mCandleTimeType"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleData> GetConvertCandleDataList(List<CandleData> currentCandleList, MCandleTimeType mCandleTimeType)
|
||||
{
|
||||
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
var timeFlag = "minute";
|
||||
var timeFlagValue = 0;
|
||||
if (mCandleTimeType < MCandleTimeType.H1)
|
||||
{
|
||||
timeFlagValue = (int)mCandleTimeType;
|
||||
}
|
||||
else if (mCandleTimeType < MCandleTimeType.D1)
|
||||
{
|
||||
timeFlag = "hour";
|
||||
timeFlagValue = ((int)mCandleTimeType) / 60;
|
||||
}
|
||||
else if (mCandleTimeType < MCandleTimeType.W1)
|
||||
{
|
||||
timeFlag = "day";
|
||||
timeFlagValue = 1;
|
||||
}
|
||||
|
||||
if (currentCandleList == null || currentCandleList.Count == 0)
|
||||
return returnData;
|
||||
|
||||
|
||||
foreach (var item in currentCandleList)
|
||||
{
|
||||
var recentlyData = returnData.LastOrDefault();
|
||||
if (recentlyData == null)
|
||||
{
|
||||
returnData.Add(CreateCandleData(item, timeFlagValue, timeFlag));
|
||||
continue;
|
||||
}
|
||||
|
||||
var coverTime = recentlyData.DateTime;
|
||||
if (timeFlag == "minute")
|
||||
{
|
||||
coverTime = coverTime.AddMinutes(timeFlagValue);
|
||||
}
|
||||
else if (timeFlag == "hour")
|
||||
{
|
||||
coverTime = coverTime.AddHours(timeFlagValue);
|
||||
}
|
||||
else if (timeFlag == "day")
|
||||
{
|
||||
coverTime = coverTime.AddDays(timeFlagValue);
|
||||
}
|
||||
|
||||
if (!(recentlyData.DateTime < item.DateTime && item.DateTime < coverTime))
|
||||
{
|
||||
returnData.Add(CreateCandleData(item, timeFlagValue, timeFlag));
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
recentlyData.HighValue = recentlyData.HighValue < item.HighValue ? item.HighValue : recentlyData.HighValue;
|
||||
recentlyData.LowValue = recentlyData.LowValue < item.LowValue ? recentlyData.LowValue : item.LowValue;
|
||||
recentlyData.EndValue = item.EndValue;
|
||||
recentlyData.MoneyVolume += item.MoneyVolume;
|
||||
recentlyData.RecentlyDataFlag = true;
|
||||
}
|
||||
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 최근 데이터 업데이트 하는 로직
|
||||
/// </summary>
|
||||
/// <param name="candleData"></param>
|
||||
/// <param name="recentlyData"></param>
|
||||
/// <param name="mCandleTimeType"></param>
|
||||
/// <param name="newFlag"></param>
|
||||
/// <returns></returns>
|
||||
public static CandleData GetRecentlyCandleData(CandleData candleData, CandleData recentlyData, MCandleTimeType mCandleTimeType, ref bool newFlag)
|
||||
{
|
||||
var timeFlag = "minute";
|
||||
var timeFlagValue = 0;
|
||||
if (mCandleTimeType < MCandleTimeType.H1)
|
||||
{
|
||||
timeFlagValue = (int)mCandleTimeType;
|
||||
}
|
||||
else if (mCandleTimeType < MCandleTimeType.D1)
|
||||
{
|
||||
timeFlag = "hour";
|
||||
timeFlagValue = ((int)mCandleTimeType) / 60;
|
||||
}
|
||||
else if (mCandleTimeType < MCandleTimeType.W1)
|
||||
{
|
||||
timeFlag = "day";
|
||||
timeFlagValue = 1;
|
||||
}
|
||||
|
||||
var flag = false;
|
||||
|
||||
if (recentlyData != null)
|
||||
{
|
||||
if (timeFlag == "minute")
|
||||
{
|
||||
if (candleData.DateTime.Minute % timeFlagValue == 0
|
||||
|| recentlyData.DateTime.AddMinutes((int)mCandleTimeType) < candleData.DateTime)
|
||||
{
|
||||
if (recentlyData.DateTime != candleData.DateTime)
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
else if (timeFlag == "hour")
|
||||
{
|
||||
var hour = candleData.DateTime.Hour;
|
||||
if (hour == 0) hour += 24;
|
||||
|
||||
if ((hour - (int)CommonProperty.ExchangeTime.UpbitorBithumb) % timeFlagValue == 0
|
||||
|| recentlyData.DateTime.AddHours((int)mCandleTimeType / 60) < candleData.DateTime)
|
||||
{
|
||||
if(timeFlagValue == 1)
|
||||
{
|
||||
var temp = candleData.DateTime;
|
||||
temp = temp.AddMinutes(-1 * temp.Minute);
|
||||
temp = temp.AddSeconds(-1 * temp.Second);
|
||||
if (temp != recentlyData.DateTime)
|
||||
flag = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (recentlyData.DateTime != candleData.DateTime)
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (timeFlag == "day")
|
||||
{
|
||||
if (recentlyData.DateTime != candleData.DateTime)
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
else flag = true;
|
||||
//새로 생성
|
||||
if (flag)
|
||||
{
|
||||
newFlag = true;
|
||||
var candle = new CandleData();
|
||||
candle.CandleTimeType = (int)mCandleTimeType;
|
||||
candle.StartValue = candleData.StartValue;
|
||||
candle.HighValue = candleData.HighValue;
|
||||
candle.LowValue = candleData.LowValue;
|
||||
candle.RecentlyDataFlag = true;
|
||||
candle.EndValue = candleData.EndValue;
|
||||
candle.MoneyVolume = candleData.MoneyVolume;
|
||||
|
||||
if (timeFlag == "minute")
|
||||
{
|
||||
var date = recentlyData.DateTime.AddMinutes((int)mCandleTimeType);
|
||||
|
||||
if(recentlyData != null)
|
||||
{
|
||||
if (recentlyData.DateTime.AddMinutes((int)mCandleTimeType) < candleData.DateTime)
|
||||
{
|
||||
var temp = candleData.DateTime.Minute % timeFlagValue;
|
||||
date = candleData.DateTime.AddMinutes(-1 * temp);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var temp = candleData.DateTime.Minute % timeFlagValue;
|
||||
date = candleData.DateTime.AddMinutes(-1 * temp);
|
||||
}
|
||||
|
||||
date = date.AddSeconds(-1 * date.Second);
|
||||
candle.DateTime = date;
|
||||
}
|
||||
else if (timeFlag == "hour")
|
||||
{
|
||||
var date = candleData.DateTime;
|
||||
if (recentlyData == null)
|
||||
{
|
||||
var hour = candleData.DateTime.Hour;
|
||||
if (hour == 0) hour += 24;
|
||||
|
||||
var temp = (hour - (int)CommonProperty.ExchangeTime.UpbitorBithumb) % timeFlagValue;
|
||||
date = candleData.DateTime.AddHours(-1 * temp);
|
||||
}
|
||||
else
|
||||
{
|
||||
date = recentlyData.DateTime.AddHours((int)mCandleTimeType / 60);
|
||||
if (recentlyData.DateTime.AddHours((int)mCandleTimeType / 60) < candleData.DateTime)
|
||||
{
|
||||
var hour = candleData.DateTime.Hour;
|
||||
if (hour == 0) hour += 24;
|
||||
|
||||
var temp = (hour - (int)CommonProperty.ExchangeTime.UpbitorBithumb) % timeFlagValue;
|
||||
date = candleData.DateTime.AddHours(-1 * temp);
|
||||
}
|
||||
}
|
||||
|
||||
date = date.AddMinutes(-1 * date.Minute);
|
||||
date = date.AddSeconds(-1 * date.Second);
|
||||
candle.DateTime = date;
|
||||
}
|
||||
else if (timeFlag == "day")
|
||||
{
|
||||
var date = recentlyData.DateTime.AddDays(1);
|
||||
date = date.AddHours(-1 * date.Hour);
|
||||
date = date.AddMinutes(-1 * date.Minute);
|
||||
date = date.AddSeconds(-1 * date.Second);
|
||||
candle.DateTime = date;
|
||||
}
|
||||
return candle;
|
||||
}
|
||||
//기존 데이터 엎어쓰기
|
||||
else
|
||||
{
|
||||
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>
|
||||
/// 실시간 체결 데이터 1분봉 처리
|
||||
/// </summary>
|
||||
/// <param name="realtimeConclusions"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleData> GetOneMinuteCandleDataFromConclusionList(List<RealtimeConclusion> realtimeConclusions)
|
||||
{
|
||||
var returnData = new List<CandleData>();
|
||||
|
||||
var dateTimeList = realtimeConclusions.Select(t => t.TradeDateTime.Minute).Distinct().ToList();
|
||||
|
||||
foreach (var item in dateTimeList)
|
||||
{
|
||||
var list = realtimeConclusions.Where(t => t.TradeDateTime.Minute == item).ToList();
|
||||
if (list.Count > 0)
|
||||
{
|
||||
var valueList = list.Select(t => t.trade_price).ToList();
|
||||
var startValue = list[0].trade_price;
|
||||
var endValue = list[list.Count - 1].trade_price;
|
||||
var highValue = valueList.Max();
|
||||
var lowValue = valueList.Min();
|
||||
var candle = new CandleData();
|
||||
candle.DateTime = list[0].TradeDateTime;
|
||||
candle.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;
|
||||
candle.MoneyVolume = list.Select(t => t.trade_volume).Sum();
|
||||
|
||||
returnData.Add(candle);
|
||||
}
|
||||
}
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Json 검사
|
||||
/// </summary>
|
||||
/// <param name="s"></param>
|
||||
/// <returns></returns>
|
||||
public static bool ValidateJSON(string s)
|
||||
{
|
||||
try
|
||||
{
|
||||
JToken.Parse(s);
|
||||
return true;
|
||||
}
|
||||
catch (JsonReaderException)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
54
Million/Manager/ExcelExport.cs
Normal file
54
Million/Manager/ExcelExport.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
using DocumentFormat.OpenXml;
|
||||
using DocumentFormat.OpenXml.Packaging;
|
||||
using DocumentFormat.OpenXml.Spreadsheet;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Million.Manager
|
||||
{
|
||||
public static class ExcelExport
|
||||
{
|
||||
|
||||
public static void export(String path ,List<Dictionary<string,object>> data)
|
||||
{
|
||||
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(path, SpreadsheetDocumentType.Workbook))
|
||||
{
|
||||
// WorkbookPart 객체를 만듭니다.
|
||||
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
|
||||
workbookPart.Workbook = new Workbook();
|
||||
|
||||
// WorksheetPart 객체를 만듭니다.
|
||||
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
|
||||
worksheetPart.Worksheet = new Worksheet(new SheetData());
|
||||
|
||||
// Sheet 객체를 만듭니다.
|
||||
Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets());
|
||||
Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
|
||||
sheets.Append(sheet);
|
||||
|
||||
// 데이터를 출력합니다.
|
||||
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
|
||||
Row headerRow = new Row();
|
||||
foreach (string key in data.First().Keys)
|
||||
{
|
||||
headerRow.AppendChild(new Cell() { CellValue = new CellValue(key), DataType = CellValues.String });
|
||||
}
|
||||
sheetData.AppendChild(headerRow);
|
||||
|
||||
foreach (var row in data)
|
||||
{
|
||||
Row dataRow = new Row();
|
||||
foreach (var key in row.Keys)
|
||||
{
|
||||
dataRow.AppendChild(new Cell() { CellValue = new CellValue(row[key].ToString()), DataType = CellValues.String });
|
||||
}
|
||||
sheetData.AppendChild(dataRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35,10 +35,12 @@ namespace Million.Manager
|
||||
else if (setup.GetType() == typeof(PriceRateCondtionSetup))
|
||||
{
|
||||
indicatorList.Add((PriceRateCondtionSetup)setup);
|
||||
}else if(setup.GetType() == typeof(CompareConditionSetup))
|
||||
{
|
||||
indicatorList.Add((CompareConditionSetup)setup);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return indicatorList;
|
||||
}
|
||||
|
||||
@@ -72,6 +74,7 @@ namespace Million.Manager
|
||||
market = tableList.FirstOrDefault(t => t.CoinFullName == "KRW-BTC");
|
||||
}
|
||||
|
||||
|
||||
var distinctIndicator = Distinct(totalIndicators);
|
||||
|
||||
// 총 데이터
|
||||
@@ -89,8 +92,9 @@ namespace Million.Manager
|
||||
/// <param name="endDate"></param>
|
||||
/// <returns></returns>
|
||||
public static Dictionary<MCandleTimeType, List<CandleData>> CalculateIndicator(Dictionary<MCandleTimeType, List<CandleData>> dic,
|
||||
List<IndicatorCoditionSetup> totalIndicators, DateTime startDate, DateTime endDate,string coinFullName = null, bool recentlyDataFlag = false)
|
||||
List<IndicatorCoditionSetup> totalIndicators, DateTime startDate, DateTime endDate,string coinFullName = null, bool recentlyDataFlag = false, CandleData buyData = null)
|
||||
{
|
||||
|
||||
dic[MCandleTimeType.M1] = dic[MCandleTimeType.M1].Where(t => startDate <= t.DateTime && t.DateTime < endDate).ToList();
|
||||
// Sub Indicator string list 반환
|
||||
var subIndStringList = DataManager.GetSubIndicatorStringList(totalIndicators);
|
||||
@@ -100,7 +104,7 @@ namespace Million.Manager
|
||||
|
||||
// 선처리
|
||||
CalculateManager.GetCalculateIndicator(totalIndicators, subIndStringList, null, startDate,
|
||||
endDate, dic[MCandleTimeType.M1], subIndicator, dic, recentlyDataFlag, coinFullName);
|
||||
endDate, dic[MCandleTimeType.M1], subIndicator, dic, recentlyDataFlag, coinFullName, buyData);
|
||||
|
||||
var totalIndi = totalIndicators.Select(t => t.IndexString).ToList();
|
||||
|
||||
@@ -110,7 +114,7 @@ namespace Million.Manager
|
||||
|
||||
// 후처리
|
||||
CalculateManager.GetCalculateIndicator(totalIndicators, totalIndi, null, startDate,
|
||||
endDate, dic[MCandleTimeType.M1], subIndicator, dic, recentlyDataFlag, coinFullName);
|
||||
endDate, dic[MCandleTimeType.M1], subIndicator, dic, recentlyDataFlag, coinFullName, buyData);
|
||||
return dic;
|
||||
}
|
||||
}
|
||||
|
||||
220
Million/Manager/InitManager.cs
Normal file
220
Million/Manager/InitManager.cs
Normal file
@@ -0,0 +1,220 @@
|
||||
using Million.Data;
|
||||
using Million.Data.Upbit;
|
||||
using Million.DbManagement;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Million.CommonProperty;
|
||||
|
||||
namespace Million.Manager
|
||||
{
|
||||
/// <summary>
|
||||
/// 프로그램 처음 실행 할 때 필요한 모든 데이터 Load Manager Class
|
||||
/// </summary>
|
||||
public static class InitManager
|
||||
{
|
||||
#region Common
|
||||
public static void InitFunc(string marketName, CommonProperty.PaymentType payment, CommonProperty.ExchangePlace placeType = ExchangePlace.Upbit)
|
||||
{
|
||||
DbServiceFunctions.GetMarketTable_FromDB(marketName, Enum.GetName(typeof(PaymentType), payment));
|
||||
|
||||
// Result Data DB에 생성
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionResultData, DbServiceFunctions.CreateSavedAnalysisDataTableQuery());
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionResultData, DbServiceFunctions.CreateSavedResultDataTableQuery());
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionResultData, DbServiceFunctions.CreateRealTimeIndicatorTableQuery());
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionResultData, DbServiceFunctions.CreateMainLogTableQuery());
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionResultData, DbServiceFunctions.CreateSavedBuyerResultDataTableQuery());
|
||||
|
||||
|
||||
|
||||
// Market Table없으면 생성해주기
|
||||
foreach (var placeName in GetMarketList())
|
||||
{
|
||||
var createTableSql = Million.DbManagement.DbServiceFunctions.CreateMarketTableQuery(placeName);
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter
|
||||
(CommonProperty.DbConnectionMarket, createTableSql);
|
||||
}
|
||||
UpdateMarketTableOfPlace(placeType, payment);
|
||||
}
|
||||
|
||||
public static void GetRecentlyMarketOfPlaceList(CommonProperty.ExchangePlace placeType = ExchangePlace.Upbit)
|
||||
{
|
||||
CommonProperty.recentlyMarketOfPlaceList = new List<MarketData>();
|
||||
|
||||
switch (placeType)
|
||||
{
|
||||
case (int)CommonProperty.ExchangePlace.Upbit:
|
||||
CommonProperty.recentlyMarketOfPlaceList = CommonProperty.UpbitApi.GetMarketDatas();
|
||||
|
||||
break;
|
||||
//case (int)CommonProperty.ExchangePlace.Bithumb:
|
||||
// marketList = Million.DbManagement.DbServiceFunctions.GetMarketTable_FromDB(
|
||||
// comboBoxEdit_ExchangePlace.SelectedItem.ToString());
|
||||
// break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DB에 있는 Market 정보 Update
|
||||
/// </summary>
|
||||
/// <param name="placeType"></param>
|
||||
public static void UpdateMarketTableOfPlace(CommonProperty.ExchangePlace placeType, PaymentType payment)
|
||||
{
|
||||
var dbMarketDataList = CommonProperty.selectedMarketOfPlaceList;
|
||||
|
||||
// 비교
|
||||
// insert (신규)
|
||||
var insertData = new List<MarketData>();
|
||||
|
||||
var sqlQuery = "";
|
||||
|
||||
GetRecentlyMarketOfPlaceList(placeType);
|
||||
|
||||
foreach (var data in CommonProperty.recentlyMarketOfPlaceList)
|
||||
{
|
||||
if (data.Payment != payment.ToString()) continue;
|
||||
|
||||
if (!dbMarketDataList.Any(t => t.CoinFullName == data.CoinFullName))
|
||||
sqlQuery += string.Format(
|
||||
"INSERT INTO [dbo].[{0}]([CoinFullName], [ExchangePlace], [KorName], [CoinName], [Payment], [IsValid]) VALUES ('{1}','{2}','{3}','{4}','{5}',{6})",
|
||||
placeType.ToString(), data.CoinFullName,
|
||||
data.ExchangePlace, data.KorName, data.CoinName, data.Payment, 1);
|
||||
}
|
||||
|
||||
foreach (var data in dbMarketDataList)
|
||||
{
|
||||
if (!CommonProperty.recentlyMarketOfPlaceList.Any(t => t.CoinFullName == data.CoinFullName) && data.IsValid)
|
||||
sqlQuery += string.Format(
|
||||
"UPDATE [dbo].[{0}] SET IsValid = 0 WHERE [CoinFullName] = '{1}'",
|
||||
placeType.ToString(),
|
||||
data.CoinFullName);
|
||||
}
|
||||
if (!string.IsNullOrWhiteSpace(sqlQuery))
|
||||
Million.DbManagement.DBConnection.QueryUpdateExecuter(CommonProperty.DbConnectionMarket, sqlQuery);
|
||||
GetRecentlyMarketOfPlaceList(placeType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Indicator Type List Return
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string[] GetIndicatorTypeList()
|
||||
{
|
||||
return Enum.GetNames(enumType: typeof(CommonProperty.IndicatorType));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Market List Return
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string[] GetMarketList()
|
||||
{
|
||||
return Enum.GetNames(enumType: typeof(Million.CommonProperty.ExchangePlace));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Patment List Return
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string[] GetPaymentList()
|
||||
{
|
||||
return Enum.GetNames(enumType: typeof(Million.CommonProperty.PaymentType));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Candle Time Type Return
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string[] GetCandleTimeTypes()
|
||||
{
|
||||
return Enum.GetNames(enumType: typeof(Million.CommonProperty.MCandleTimeType));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Buyer
|
||||
/// <summary>
|
||||
/// Buyer 관련 Init
|
||||
/// </summary>
|
||||
/// <param name="checkData"></param>
|
||||
/// <param name="overlapBuyManagementList"></param>
|
||||
/// <param name="totalIndicatorList"></param>
|
||||
public static void SettingInit(bool checkData, Dictionary<string, bool> overlapBuyManagementList, List<IndicatorCoditionSetup> totalIndicatorList)
|
||||
{
|
||||
var coinFullNameList = CommonProperty.selectedMarketOfPlaceList.Select(t => t.CoinFullName).ToList();
|
||||
|
||||
if (overlapBuyManagementList != null)
|
||||
{
|
||||
foreach (var item in coinFullNameList)
|
||||
{
|
||||
if (checkData)
|
||||
overlapBuyManagementList[item] = false;
|
||||
else
|
||||
overlapBuyManagementList[item] = true;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item in totalIndicatorList)
|
||||
{
|
||||
var dic = new Dictionary<string, bool>();
|
||||
var compareDic = new Dictionary<string, bool>();
|
||||
var crossDic = new Dictionary<string, bool>();
|
||||
foreach (var codeFullname in coinFullNameList)
|
||||
{
|
||||
if (checkData)
|
||||
dic[codeFullname] = false;
|
||||
else
|
||||
dic[codeFullname] = true;
|
||||
|
||||
compareDic[codeFullname] = false;
|
||||
crossDic[codeFullname] = false;
|
||||
}
|
||||
CommonProperty.subIndicatorStateManagement[item.IndexString] = dic;
|
||||
CommonProperty.compareIndicatorState[item.IndexString] = compareDic;
|
||||
CommonProperty.crossStateManagement[item.IndexString] = crossDic;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Buyer에서 사용자가 기존에 가지고 있는 DataList 처리
|
||||
/// </summary>
|
||||
/// <param name="accounts"></param>
|
||||
/// <param name="dataList"></param>
|
||||
/// <returns></returns>
|
||||
public static List<CandleDataList> GetBuyListofAccounts(List<Account> accounts, Dictionary<MCandleTimeType, List<CandleDataList>> dataList)
|
||||
{
|
||||
var buyList = new List<CandleDataList>();
|
||||
foreach (var item in accounts)
|
||||
{
|
||||
if (item.Currency != "KRW")
|
||||
{
|
||||
var buyItem = new CandleDataList();
|
||||
buyItem.Uuid = "";
|
||||
|
||||
var temp = dataList[MCandleTimeType.M1].FirstOrDefault(t => t.ConGoodsData.CoinFullName == item.UnitCurrency + "-" + item.Currency);
|
||||
if (temp == null) continue;
|
||||
|
||||
buyItem.ConGoodsData = temp.ConGoodsData;
|
||||
var candle = new CandleData();
|
||||
candle.BuyTime = new DateTime(2000, 1, 1);
|
||||
candle.BuyValue = item.AvgBuyPrice;
|
||||
candle.BuyCount = item.Balance;
|
||||
buyItem.CandleDataLists_Im.Add(candle);
|
||||
|
||||
buyList.Add(buyItem);
|
||||
}
|
||||
}
|
||||
return buyList;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,9 @@ namespace Million.Manager
|
||||
public string regularExpressionString;
|
||||
public string Name;
|
||||
|
||||
//Remmeber dic 관련 에러 처리를 위한 Lock obj
|
||||
private object obj = new object();
|
||||
|
||||
/// <summary>
|
||||
/// 캐쉬 Dictionary
|
||||
/// </summary>
|
||||
@@ -38,62 +41,64 @@ namespace Million.Manager
|
||||
public bool DicExcuteScript(Dictionary<string, bool> RegularExpression)
|
||||
{
|
||||
var cloneRex = RegularExpression.ToDictionary(x => x.Key, x => x.Value);
|
||||
|
||||
try
|
||||
lock (obj)
|
||||
{
|
||||
//중복 검사
|
||||
Dictionary<string, bool> data = null;
|
||||
|
||||
foreach(var key in rememberDic.Keys)
|
||||
try
|
||||
{
|
||||
bool checker = true;
|
||||
if(key.Count == cloneRex.Count)
|
||||
//중복 검사
|
||||
Dictionary<string, bool> data = null;
|
||||
|
||||
foreach (var key in rememberDic.Keys)
|
||||
{
|
||||
foreach(var keyStr in key.Keys)
|
||||
bool checker = true;
|
||||
if (key.Count == cloneRex.Count)
|
||||
{
|
||||
if(cloneRex.ContainsKey(keyStr))
|
||||
foreach (var keyStr in key.Keys)
|
||||
{
|
||||
if (key[keyStr] != cloneRex[keyStr])
|
||||
if (cloneRex.ContainsKey(keyStr))
|
||||
{
|
||||
if (key[keyStr] != cloneRex[keyStr])
|
||||
checker = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
checker = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
checker = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
checker = false;
|
||||
}
|
||||
|
||||
if (checker)
|
||||
{
|
||||
data = key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (data != null)
|
||||
{
|
||||
return rememberDic[data];
|
||||
}
|
||||
else
|
||||
{
|
||||
checker = false;
|
||||
}
|
||||
var returnData = ScriptExcute(ChangeScript(regularExpressionString, cloneRex));
|
||||
rememberDic[cloneRex] = returnData;
|
||||
|
||||
if(checker)
|
||||
{
|
||||
data = key;
|
||||
break;
|
||||
var str = "Name : " + Name + ",\r\nregularExpressionString : " + regularExpressionString + ",\r\n RegularExpression : "
|
||||
+ JsonConvert.SerializeObject(cloneRex) + ",\r\n Result : " + returnData.ToString()
|
||||
+ ",\r\n RememberDic : " + JsonConvert.SerializeObject(rememberDic) + "\r\n";
|
||||
|
||||
LogManager.WriteLog(str);
|
||||
|
||||
return returnData;
|
||||
}
|
||||
}
|
||||
if (data != null)
|
||||
catch (Exception e)
|
||||
{
|
||||
return rememberDic[data];
|
||||
throw e;
|
||||
}
|
||||
else
|
||||
{
|
||||
var returnData = ScriptExcute(ChangeScript(regularExpressionString, cloneRex));
|
||||
rememberDic[cloneRex] = returnData;
|
||||
|
||||
var str = "Name : " + Name +",\r\nregularExpressionString : " + regularExpressionString + ",\r\n RegularExpression : "
|
||||
+ JsonConvert.SerializeObject(cloneRex) + ",\r\n Result : " + returnData.ToString()
|
||||
+ ",\r\n RememberDic : " + JsonConvert.SerializeObject(rememberDic) + "\r\n";
|
||||
|
||||
LogManager.WriteLog(str);
|
||||
|
||||
return returnData;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,8 @@ namespace Million.Manager
|
||||
/// <returns></returns>
|
||||
public static bool WriteLog(string message, string coinFullName = "")
|
||||
{
|
||||
if (!CommonProperty.InsertLogFlag) return false;
|
||||
|
||||
if (coinFullName == "") coinFullName = "common";
|
||||
var returnData = true;
|
||||
var defaultMesage = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "=>" + message +"\r\n";
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
using Million.Data.Upbit;
|
||||
using Million.DbManagement;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.WebSockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using static Million.CommonProperty;
|
||||
|
||||
namespace Million.Manager
|
||||
{
|
||||
@@ -15,33 +17,34 @@ namespace Million.Manager
|
||||
/// Data Setting하는 Manager Class
|
||||
/// </summary>
|
||||
public class RealtimeDataSettingManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Ticker에 들어갈 데이터
|
||||
/// </summary>
|
||||
public List<Ticker> tickerList = new List<Ticker>();
|
||||
private object obj = new object();
|
||||
public List<string> coinFullNameList = null;
|
||||
{
|
||||
public List<RealtimeConclusion> realtimeConclusions = new List<RealtimeConclusion>();
|
||||
|
||||
public List<MarketData> marketList = null;
|
||||
public PaymentType buyType = PaymentType.KRW;
|
||||
private object obj = new object();
|
||||
public List<string> coinFullNameList = null;
|
||||
public CommonProperty.PaymentType buyType = CommonProperty.PaymentType.KRW;
|
||||
public DateTime basicDateTime { get; set; }
|
||||
public System.Threading.Timer timer = null;
|
||||
public TimerCallback tc = null;
|
||||
public bool flag = true;
|
||||
public CommonProperty.BuyerMode buyerMode;
|
||||
public DateTime startDateTime { get; set; }
|
||||
public DateTime endDateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Websocket 관련 데이터 처리
|
||||
/// </summary>
|
||||
public bool Flag { get; set; } = true;
|
||||
/// <summary>
|
||||
/// 생성자
|
||||
/// </summary>
|
||||
public RealtimeDataSettingManager(List<string> coinFullNameList, PaymentType buyType, string tableName = "Upbit")
|
||||
public RealtimeDataSettingManager(List<string> coinFullNameList, CommonProperty.BuyerMode buyerMode, CommonProperty.PaymentType buyType, string tableName = "Upbit")
|
||||
{
|
||||
this.buyType = buyType;
|
||||
marketList = DbServiceFunctions.GetMarketDatas(tableName, Enum.GetName(typeof(PaymentType), buyType));
|
||||
this.buyerMode = buyerMode;
|
||||
|
||||
//null일경우 전체가 가져옴
|
||||
if (coinFullNameList == null)
|
||||
{
|
||||
//Upbit로 임시
|
||||
this.coinFullNameList = marketList.Select(t => t.CoinFullName).ToList();
|
||||
this.coinFullNameList = CommonProperty.selectedMarketOfPlaceList.Select(t => t.CoinFullName).ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -52,21 +55,23 @@ namespace Million.Manager
|
||||
//TODO Market ignore 처리 필요 -> 임시로 비트토랜트만 삭제
|
||||
this.coinFullNameList.Remove("KRW-BTT");
|
||||
if (CommonProperty.selectedMarketOfPlaceList != null)
|
||||
CommonProperty.selectedMarketOfPlaceList.Remove(selectedMarketOfPlaceList.FirstOrDefault(t => t.CoinFullName == "KRW-BTT"));
|
||||
CommonProperty.selectedMarketOfPlaceList.Remove(CommonProperty.selectedMarketOfPlaceList.FirstOrDefault(t => t.CoinFullName == "KRW-BTT"));
|
||||
if (CommonProperty.recentlyMarketOfPlaceList != null)
|
||||
CommonProperty.recentlyMarketOfPlaceList.Remove(recentlyMarketOfPlaceList.FirstOrDefault(t => t.CoinFullName == "KRW-BTT"));
|
||||
CommonProperty.recentlyMarketOfPlaceList.Remove(CommonProperty.recentlyMarketOfPlaceList.FirstOrDefault(t => t.CoinFullName == "KRW-BTT"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 실시간 데이터 가져오는 함수(Ticker와 CandleDataList두개를 Return 할 수 있도록 구성)
|
||||
/// 실시간 데이터 가져오는 함수(Ticker와 CandleDataList두개를 Return 할 수 있도록 구성) => Ticker 에서 실시간 체결 데이터로 이전
|
||||
/// </summary>
|
||||
/// <param name="candleDatas"></param>
|
||||
/// <param name="coinFullNameList"></param>
|
||||
/// <param name="tableName"></param>
|
||||
/// <returns></returns>
|
||||
public List<Ticker> GetRecentlyCandleData()
|
||||
public List<RealtimeConclusion> GetRecentlyCandleData()
|
||||
{
|
||||
return CommonProperty.UpbitApi.GetTickerList(coinFullNameList);
|
||||
var returnData = new List<RealtimeConclusion>();
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -76,17 +81,14 @@ namespace Million.Manager
|
||||
/// <param name="coinFullNameList"></param>
|
||||
/// <param name="tableName"></param>
|
||||
/// <returns></returns>
|
||||
public List<CandleDataList> GetBasicDataSetting(MCandleTimeType timeType, int count = 200)
|
||||
public List<CandleDataList> GetBasicDataSetting(CommonProperty.MCandleTimeType timeType, DateTime basicDateTime, int count = 200)
|
||||
{
|
||||
var returnData = new List<CandleDataList>();
|
||||
|
||||
basicDateTime = DateTime.Now;
|
||||
var resultList = new List<CandleData>();
|
||||
|
||||
foreach (var item in coinFullNameList)
|
||||
{
|
||||
var val = new CandleDataList();
|
||||
val.ConGoodsData = marketList.FirstOrDefault(t => t.CoinFullName == item);
|
||||
val.ConGoodsData = CommonProperty.selectedMarketOfPlaceList.FirstOrDefault(t => t.CoinFullName == item);
|
||||
val.CandleDataLists_Im = CommonProperty.UpbitApi.GetCandleStics(item, timeType, basicDateTime, count).OrderBy(t => t.DateTime).ToList();
|
||||
returnData.Add(val);
|
||||
Thread.Sleep(400);
|
||||
@@ -94,34 +96,7 @@ namespace Million.Manager
|
||||
|
||||
return returnData;
|
||||
}
|
||||
|
||||
public void StartGetRealTimeTicker(object state, int duTime = 0, int period = 50)
|
||||
{
|
||||
if (this.timer != null)
|
||||
{
|
||||
flag = false;
|
||||
|
||||
this.timer.Dispose();
|
||||
this.timer = null;
|
||||
}
|
||||
|
||||
this.tc = new TimerCallback(TimerEvent); // 이벤트 발생 처리 루틴
|
||||
|
||||
//0.5초 마다 쌓는거 진행 -> DB데이터 가지고와서 부터 데이터 처리
|
||||
this.timer = new System.Threading.Timer(tc, null, 0, 500);
|
||||
flag = true;
|
||||
|
||||
}
|
||||
public void EndRealTimeTicker()
|
||||
{
|
||||
flag = false;
|
||||
if (timer != null)
|
||||
{
|
||||
this.timer.Dispose();
|
||||
this.timer = null;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 실시간 데이터 가져오는 함수(Buyer에서 시작과 동시에 호출되는 함수)
|
||||
@@ -130,281 +105,194 @@ namespace Million.Manager
|
||||
/// <param name="type"></param>
|
||||
/// <param name="count"></param>
|
||||
/// <returns></returns>
|
||||
public Dictionary<MCandleTimeType, List<CandleDataList>> GetRealTimeCandleData(List<MCandleTimeType> types, int count = 200)
|
||||
public Dictionary<CommonProperty.MCandleTimeType, List<CandleDataList>> GetRealTimeCandleData(List<CommonProperty.MCandleTimeType> types,DateTime startDate, DateTime endDate, int count = 200)
|
||||
{
|
||||
var data = new Dictionary<MCandleTimeType, List<CandleDataList>>();
|
||||
|
||||
StartGetRealTimeTicker(null);
|
||||
//여기는 한번만 동작하므로 RealtimeConclusion 처리 해야함
|
||||
var thread = new Thread(new ThreadStart(ThreadEventAsync));
|
||||
thread.Start();
|
||||
|
||||
var data = new Dictionary<CommonProperty.MCandleTimeType, List<CandleDataList>>();
|
||||
|
||||
foreach (var type in types)
|
||||
{
|
||||
data[type] = GetBasicDataSetting(type, count);
|
||||
data[type] = GetBasicDataSetting(type, startDate, count);
|
||||
}
|
||||
|
||||
return ProcessRecentlyCandleDatas(data, types);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CandleData를 Ticker로 계싼
|
||||
/// </summary>
|
||||
/// <param name="candleDatas"></param>
|
||||
/// <param name="tickers"></param>
|
||||
/// <returns></returns>
|
||||
public Dictionary<MCandleTimeType, List<CandleDataList>> ProcessRecentlyCandleDatas(Dictionary<MCandleTimeType, List<CandleDataList>> candleDatas, List<MCandleTimeType> types)
|
||||
public Dictionary<CommonProperty.MCandleTimeType, List<CandleDataList>> ProcessRecentlyCandleDatas(Dictionary<CommonProperty.MCandleTimeType, List<CandleDataList>> candleDatas, List<CommonProperty.MCandleTimeType> types)
|
||||
{
|
||||
var cloneRealtimeConclusion = new List<RealtimeConclusion>();
|
||||
|
||||
lock (obj)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in realtimeConclusions)
|
||||
{
|
||||
var temp = item.Clone();
|
||||
cloneRealtimeConclusion.Add(temp);
|
||||
}
|
||||
realtimeConclusions.Clear();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogManager.WriteLog(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var type in types)
|
||||
{
|
||||
var candleList = candleDatas[type];
|
||||
//Parallel.ForEach(candleList, item =>
|
||||
//{
|
||||
var tickList = new List<Ticker>();
|
||||
var cloneTickList = new List<Ticker>();
|
||||
lock (obj)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in tickerList)
|
||||
{
|
||||
cloneTickList.Add(item.Clone());
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogManager.WriteLog(e.Message);
|
||||
}
|
||||
}
|
||||
|
||||
var list = new List<RealtimeConclusion>();
|
||||
|
||||
foreach (var item in candleList)
|
||||
{
|
||||
if (item.CandleDataLists_Im.Count > 0)
|
||||
basicDateTime = item.CandleDataLists_Im.Select(t => t.DateTime).Max();
|
||||
//if (item.CandleDataLists_Im.Count > 0)
|
||||
// basicDateTime = item.CandleDataLists_Im.Select(t => t.DateTime).Max();
|
||||
|
||||
|
||||
var coinFullName = item.ConGoodsData.CoinFullName;
|
||||
|
||||
tickList = cloneTickList.Where(t => t.CoinFullName == coinFullName).OrderBy(t=>t.DateTime).ToList();
|
||||
list = cloneRealtimeConclusion.Where(t => t.code == coinFullName).OrderBy(t=>t.TradeDateTime).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.GetOneMinuteCandleDataFromConclusionList(list);
|
||||
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 > 300)
|
||||
{
|
||||
item.CandleDataLists_Im.RemoveRange(0, item.CandleDataLists_Im.Count - 300);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
//});
|
||||
}
|
||||
return candleDatas;
|
||||
}
|
||||
|
||||
public void ClearTicker()
|
||||
{
|
||||
lock (obj)
|
||||
{
|
||||
try {
|
||||
if (tickerList.Count > 2000)
|
||||
tickerList.RemoveRange(0, tickerList.Count - 1000);
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogManager.WriteLog(e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Timer Event
|
||||
/// </summary>
|
||||
/// <param name="state"></param>
|
||||
private void TimerEvent(object state)
|
||||
private async void ThreadEventAsync()
|
||||
{
|
||||
lock (obj)
|
||||
string WebSocketUrl = "wss://api.upbit.com/websocket/v1";
|
||||
realtimeConclusions.Clear();
|
||||
var tempStrData = "";
|
||||
var message = "";
|
||||
while (Flag)
|
||||
{
|
||||
ClientWebSocket webSocket = new ClientWebSocket();
|
||||
var cancelToken = CancellationToken.None;
|
||||
try
|
||||
{
|
||||
var temp = GetRecentlyCandleData();
|
||||
await webSocket.ConnectAsync(new Uri(WebSocketUrl), cancelToken);
|
||||
var dic = new List<Dictionary<string, object>>();
|
||||
dic.Add(new Dictionary<string, object>() { { "ticket", "test" } });
|
||||
dic.Add(new Dictionary<string, object>() { { "type", "trade" }, { "codes", CommonProperty.recentlyMarketOfPlaceList.Where(t => t.CoinFullName.Contains("KRW-")).Select(t => t.CoinFullName).ToList() } });
|
||||
|
||||
if (temp != null)
|
||||
await SendMessage(webSocket, JsonConvert.SerializeObject(dic));
|
||||
|
||||
|
||||
// 데이터 수신을 위한 반복문 시작
|
||||
while (webSocket.State == WebSocketState.Open && Flag)
|
||||
{
|
||||
tickerList.AddRange(temp);
|
||||
ClearTicker();
|
||||
}
|
||||
byte[] buffer = new byte[1024 * 10];
|
||||
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), cancelToken);
|
||||
|
||||
// 수신한 데이터 처리
|
||||
message = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
|
||||
|
||||
if (!DataManager.ValidateJSON(message))
|
||||
{
|
||||
tempStrData += message;
|
||||
if (!DataManager.ValidateJSON(message))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
message = tempStrData;
|
||||
}
|
||||
}
|
||||
|
||||
var data = JsonConvert.DeserializeObject<RealtimeConclusion>(message);
|
||||
|
||||
lock (obj)
|
||||
{
|
||||
realtimeConclusions.Add(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogManager.WriteLog(e.Message);
|
||||
LogManager.WriteLog(ex.Message+"\r\n오류 메세지 : " + message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (webSocket.State == WebSocketState.Open)
|
||||
{
|
||||
try
|
||||
{
|
||||
await webSocket.CloseAsync(webSocket.CloseStatus.Value, webSocket.CloseStatusDescription, cancelToken);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogManager.WriteLog(e.Message + "\r\n오류 메세지 : " + message);
|
||||
}
|
||||
if(webSocket != null)
|
||||
webSocket.Dispose();
|
||||
|
||||
webSocket = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Websocket 관련 SendMessage function
|
||||
/// </summary>
|
||||
/// <param name="webSocket"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
private async Task SendMessage(ClientWebSocket webSocket, string message)
|
||||
{
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(message);
|
||||
await webSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Million.Data;
|
||||
using DocumentFormat.OpenXml.Vml;
|
||||
using Million.Data;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -42,16 +43,23 @@ namespace Million.Manager
|
||||
val = indiData.value;
|
||||
else if (indi.IndicatorIchmokuOverLine == Indicator_IchmokuOverLine.선행스팬2)
|
||||
val = indiData.value2;
|
||||
else if (indi.IndicatorIchmokuOverLine == Indicator_IchmokuOverLine.선행스팬1OR2중고가)
|
||||
val = indiData.GetOverValue();
|
||||
else if (indi.IndicatorIchmokuOverLine == Indicator_IchmokuOverLine.선행스팬1OR2중저가)
|
||||
val = indiData.GetDownOverValue();
|
||||
|
||||
valDic.Add(key.Key, val);
|
||||
if (indi.SubIndicatorSetupType == SubIndicatorSetupType.크로스)
|
||||
val = indiData.overlapValue;
|
||||
|
||||
valDic[key.Key] = val;
|
||||
}
|
||||
else
|
||||
{
|
||||
valDic.Add(key.Key, item.IndicatorDic[keyData].value);
|
||||
valDic[key.Key] = item.IndicatorDic[keyData].overlapValue;
|
||||
}
|
||||
}
|
||||
else
|
||||
valDic.Add(key.Key, 0);
|
||||
valDic[key.Key] = 0;
|
||||
}
|
||||
return valDic;
|
||||
}
|
||||
@@ -65,13 +73,10 @@ namespace Million.Manager
|
||||
/// <param name="sellRegularExpression"></param>
|
||||
/// <returns></returns>
|
||||
public static List<SearchResult> GetSearchResultList(List<CandleData> datas, List<IndicatorCoditionSetup> rateIndicators,
|
||||
string buyRegularExpression, string sellRegularExpression, MarketData market, List<IndicatorCoditionSetup> totalIndicator, bool insertTermCandleData = false)
|
||||
MarketData market, List<IndicatorCoditionSetup> totalIndicator, bool insertTermCandleData, InteratorScripter buyScript,
|
||||
InteratorScripter sellScript)
|
||||
{
|
||||
//buy, sell script 선언
|
||||
var buyScript = new InteratorScripter("Buy Script");
|
||||
buyScript.regularExpressionString = buyRegularExpression;
|
||||
var sellScript = new InteratorScripter("Sell Script");
|
||||
sellScript.regularExpressionString = sellRegularExpression;
|
||||
|
||||
|
||||
|
||||
var resultList = new List<SearchResult>();
|
||||
@@ -112,7 +117,7 @@ namespace Million.Manager
|
||||
if (deafultSellFlag)
|
||||
{
|
||||
//Sell Value 계산 로직
|
||||
item.SellValue = CalculateManager.GetConditionValue(sellRegularExpression, valDic, dic);
|
||||
item.SellValue = CalculateManager.GetConditionValue(sellScript.regularExpressionString, valDic, dic);
|
||||
|
||||
|
||||
defaultSellValue = item.SellValue;
|
||||
@@ -151,7 +156,7 @@ namespace Million.Manager
|
||||
if (errorList.Count > 0)
|
||||
continue;
|
||||
|
||||
var val = CalculateManager.GetConditionValue(sellRegularExpression, valDic, dic);
|
||||
var val = CalculateManager.GetConditionValue(sellScript.regularExpressionString, valDic, dic);
|
||||
|
||||
if (deafultSellFlag) {
|
||||
if (defaultSellValue > val)
|
||||
@@ -257,7 +262,7 @@ namespace Million.Manager
|
||||
if (flag)
|
||||
{
|
||||
var valDic = GetIndicateValue(dic, totalIndicator, item);
|
||||
var val = OrderbookManager.GetAskPrice(CalculateManager.GetConditionValue(buyRegularExpression, valDic, dic));
|
||||
var val = OrderbookManager.GetAskPrice(CalculateManager.GetConditionValue(buyScript.regularExpressionString, valDic, dic));
|
||||
item.BuyValue = val + Math.Round(val * 0.0005);
|
||||
buyList.Add(item);
|
||||
}
|
||||
|
||||
20
Million/Manager/UIController.cs
Normal file
20
Million/Manager/UIController.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Million.Manager
|
||||
{
|
||||
public static class UIController
|
||||
{
|
||||
public static void next(Form subForm, ProgressBar progressBar)
|
||||
{
|
||||
subForm.Invoke(new MethodInvoker(delegate ()
|
||||
{
|
||||
progressBar.PerformStep();
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,341 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{10EF08CB-BF38-4882-A92A-30DB34E8E8BD}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million</RootNamespace>
|
||||
<AssemblyName>Million</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Dashboard.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Dashboard.v18.2.Win, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.DataAccess.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.DataAccess.v18.2.UI, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Map.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Office.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.PivotGrid.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.RichEdit.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.TreeMap.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v18.2.UI, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Xpo.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGauges.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGauges.v18.2.Presets, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGauges.v18.2.Win, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGrid.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraLayout.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraMap.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraPivotGrid.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraReports.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraRichEdit.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraTreeMap.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.16.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DocumentFormat.OpenXml.2.16.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Humanizer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=979442b78dfc278e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Humanizer.Core.2.2.0\lib\netstandard1.0\Humanizer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.6.12.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Logging, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Logging.6.12.0\lib\net472\Microsoft.IdentityModel.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Tokens, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.6.12.0\lib\net472\Microsoft.IdentityModel.Tokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Charts.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v18.2.Core, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraBars.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraCharts.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraCharts.v18.2.UI, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v18.2.Wizard, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraPrinting.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Composition.AttributedModel, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.AttributedModel.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.Convention, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.Convention.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.Hosting, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.Hosting.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.Runtime, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.Runtime.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.TypedParts, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.TypedParts.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.6.12.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Pipelines, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CommonProperty.cs" />
|
||||
<Compile Include="Data\AnalysisData.cs" />
|
||||
<Compile Include="Data\BollingerData.cs" />
|
||||
<Compile Include="Data\CandleData.cs" />
|
||||
<Compile Include="Data\CandleDataList.cs" />
|
||||
<Compile Include="Data\ErrorCandleData.cs" />
|
||||
<Compile Include="Data\IchimokData.cs" />
|
||||
<Compile Include="Data\IndicatorData.cs" />
|
||||
<Compile Include="Data\MarketData.cs" />
|
||||
<Compile Include="Data\MovingAverageData.cs" />
|
||||
<Compile Include="Data\SearchResult.cs" />
|
||||
<Compile Include="Data\Upbit\Account.cs" />
|
||||
<Compile Include="Data\Upbit\Conclusion.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\OrderableInformation_Account.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\Market_Restrictions.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\OrderableInformation.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\Market.cs" />
|
||||
<Compile Include="Data\Upbit\OrderBook\OrderBook.cs" />
|
||||
<Compile Include="Data\Upbit\OrderBook\Unit.cs" />
|
||||
<Compile Include="Data\Upbit\Order\Order.cs" />
|
||||
<Compile Include="Data\Upbit\Order\Trade.cs" />
|
||||
<Compile Include="Data\Upbit\Ticker.cs" />
|
||||
<Compile Include="DbMangement\DBConnection.cs" />
|
||||
<Compile Include="DbMangement\DBServiceFunctions.cs" />
|
||||
<Compile Include="FileManagement\FileContoler.cs" />
|
||||
<Compile Include="FileManagement\Ini.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\BolingerConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\IchimokuConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\IndicatorCoditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\MovingAverageConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\ParabolicSarIndicatorConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\PriceRateCondtionSetup.cs" />
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Manager\BuyLogicManager.cs" />
|
||||
<Compile Include="Manager\CalculateManager.cs" />
|
||||
<Compile Include="Manager\DataManager.cs" />
|
||||
<Compile Include="Manager\IndicatorSetupManager.cs" />
|
||||
<Compile Include="Manager\InteratorScripter.cs" />
|
||||
<Compile Include="Manager\LogManager.cs" />
|
||||
<Compile Include="Manager\OrderbookManager.cs" />
|
||||
<Compile Include="Manager\ExportManager.cs" />
|
||||
<Compile Include="Manager\RealtimeDataSettingManager.cs" />
|
||||
<Compile Include="Manager\ResultLogicManager.cs" />
|
||||
<Compile Include="Manager\SellLogicManager.cs" />
|
||||
<Compile Include="Manager\ValidationCheckManager.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="SaveData\SavedAnalysisData.cs" />
|
||||
<Compile Include="SaveData\SavedResultData.cs" />
|
||||
<Compile Include="SubForm\AccumulateDataUI.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\AccumulateDataUI.Designer.cs">
|
||||
<DependentUpon>AccumulateDataUI.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartIndicatorSetupForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartIndicatorSetupForm.Designer.cs">
|
||||
<DependentUpon>ChartIndicatorSetupForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartSimulatorForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartSimulatorForm.Designer.cs">
|
||||
<DependentUpon>ChartSimulatorForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerForm.Designer.cs">
|
||||
<DependentUpon>ChartViewerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerUI.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerUI.Designer.cs">
|
||||
<DependentUpon>ChartViewerUI.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.Designer.cs">
|
||||
<DependentUpon>BolingerBandSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.Designer.cs">
|
||||
<DependentUpon>CommonIndicatorSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.Designer.cs">
|
||||
<DependentUpon>IchimokuCloudSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.Designer.cs">
|
||||
<DependentUpon>MovingAverageSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.Designer.cs">
|
||||
<DependentUpon>ParabolicSarSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.Designer.cs">
|
||||
<DependentUpon>PriceRateSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WebMangement\BitthumbWerServices.cs" />
|
||||
<Compile Include="WebMangement\Upbit\ClientHttpClient.cs" />
|
||||
<Compile Include="WebMangement\Upbit\UpbitAPI.cs" />
|
||||
<Compile Include="WebMangement\Upbit\UpbitProcess.cs" />
|
||||
<Compile Include="WebMangement\WebConnection.cs" />
|
||||
<Compile Include="WebMangement\WebServiceFunctions.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="SubForm\AccumulateDataUI.resx">
|
||||
<DependentUpon>AccumulateDataUI.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartIndicatorSetupForm.resx">
|
||||
<DependentUpon>ChartIndicatorSetupForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartSimulatorForm.resx">
|
||||
<DependentUpon>ChartSimulatorForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartViewerForm.resx">
|
||||
<DependentUpon>ChartViewerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartViewerUI.resx">
|
||||
<DependentUpon>ChartViewerUI.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.resx">
|
||||
<DependentUpon>BolingerBandSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.resx">
|
||||
<DependentUpon>CommonIndicatorSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.resx">
|
||||
<DependentUpon>IchimokuCloudSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.resx">
|
||||
<DependentUpon>MovingAverageSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.resx">
|
||||
<DependentUpon>ParabolicSarSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.resx">
|
||||
<DependentUpon>PriceRateSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0-windows</TargetFramework>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million</RootNamespace>
|
||||
<AssemblyName>Million</AssemblyName>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="SubForm\AccumulateDataUI.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\ChartViewerUI.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\CompareSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\IndicatorSetupForm\RemoveTickUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DevExpress.Win.Design" Version="22.2.3" />
|
||||
<PackageReference Include="DocumentFormat.OpenXml" Version="2.16.0" />
|
||||
<PackageReference Include="Humanizer.Core" Version="2.2.0" />
|
||||
<PackageReference Include="log4net" Version="2.0.12" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Scripting" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="6.12.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Logging" Version="6.12.0" />
|
||||
<PackageReference Include="Microsoft.IdentityModel.Tokens" Version="6.12.0" />
|
||||
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.12.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.SystemWebAdapters" Version="1.3.0" />
|
||||
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="System.Collections.Immutable" Version="7.0.0" />
|
||||
<PackageReference Include="System.Composition" Version="7.0.0" />
|
||||
<PackageReference Include="System.Composition.AttributedModel" Version="7.0.0" />
|
||||
<PackageReference Include="System.Composition.Convention" Version="7.0.0" />
|
||||
<PackageReference Include="System.Composition.Hosting" Version="7.0.0" />
|
||||
<PackageReference Include="System.Composition.Runtime" Version="7.0.0" />
|
||||
<PackageReference Include="System.Composition.TypedParts" Version="7.0.0" />
|
||||
<PackageReference Include="System.IO.Pipelines" Version="7.0.0" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="7.0.2" />
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="7.0.0" />
|
||||
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
366
Million/Million Core.csproj.bak
Normal file
366
Million/Million Core.csproj.bak
Normal file
@@ -0,0 +1,366 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{10EF08CB-BF38-4882-A92A-30DB34E8E8BD}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>Million</RootNamespace>
|
||||
<AssemblyName>Million</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="DevExpress.Dashboard.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Dashboard.v20.1.Win, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.DataAccess.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.DataAccess.v20.1.UI, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Map.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Office.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.PivotGrid.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.RichEdit.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Sparkline.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.TreeMap.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v20.1.UI, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Xpo.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGauges.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGauges.v20.1.Presets, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGauges.v20.1.Win, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraGrid.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraLayout.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraMap.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraPivotGrid.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.CodeParser.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraReports.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraRichEdit.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraTreeMap.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DocumentFormat.OpenXml, Version=2.16.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\DocumentFormat.OpenXml.2.16.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Humanizer, Version=2.2.0.0, Culture=neutral, PublicKeyToken=979442b78dfc278e, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Humanizer.Core.2.2.0\lib\netstandard1.0\Humanizer.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net, Version=2.0.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.12\lib\net45\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Scripting.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.CSharp.Workspaces, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.Workspaces.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.CSharp.Workspaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Scripting, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Scripting.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Scripting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.VisualBasic, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.VisualBasic.Workspaces, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.VisualBasic.Workspaces.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CodeAnalysis.Workspaces, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.CodeAnalysis.Workspaces.Common.4.1.0\lib\netstandard2.0\Microsoft.CodeAnalysis.Workspaces.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.6.12.0\lib\net472\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Logging, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Logging.6.12.0\lib\net472\Microsoft.IdentityModel.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.IdentityModel.Tokens, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.6.12.0\lib\net472\Microsoft.IdentityModel.Tokens.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Charts.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Printing.v20.1.Core, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Data.Desktop.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.Utils.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraBars.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraCharts.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraCharts.v20.1.UI, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.XtraCharts.v20.1.Wizard, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraEditors.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="DevExpress.XtraPrinting.v20.1, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Composition.AttributedModel, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.AttributedModel.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.AttributedModel.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.Convention, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.Convention.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Convention.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.Hosting, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.Hosting.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Hosting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.Runtime, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.Runtime.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.Runtime.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Composition.TypedParts, Version=1.0.31.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Composition.TypedParts.1.0.31\lib\portable-net45+win8+wp8+wpa81\System.Composition.TypedParts.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=6.12.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.6.12.0\lib\net472\System.IdentityModel.Tokens.Jwt.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.IO.Pipelines, Version=5.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CommonProperty.cs" />
|
||||
<Compile Include="Data\AnalysisData.cs" />
|
||||
<Compile Include="Data\BollingerData.cs" />
|
||||
<Compile Include="Data\CandleData.cs" />
|
||||
<Compile Include="Data\CandleDataList.cs" />
|
||||
<Compile Include="Data\ErrorCandleData.cs" />
|
||||
<Compile Include="Data\IchimokData.cs" />
|
||||
<Compile Include="Data\IndicatorData.cs" />
|
||||
<Compile Include="Data\MarketData.cs" />
|
||||
<Compile Include="Data\MovingAverageData.cs" />
|
||||
<Compile Include="Data\SaveData\MultiSavedResultData.cs" />
|
||||
<Compile Include="Data\SearchResult.cs" />
|
||||
<Compile Include="Data\Upbit\Account.cs" />
|
||||
<Compile Include="Data\Upbit\Conclusion.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\OrderableInformation_Account.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\Market_Restrictions.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\OrderableInformation.cs" />
|
||||
<Compile Include="Data\Upbit\OrderableInformation\Market.cs" />
|
||||
<Compile Include="Data\Upbit\OrderBook\OrderBook.cs" />
|
||||
<Compile Include="Data\Upbit\OrderBook\Unit.cs" />
|
||||
<Compile Include="Data\Upbit\Order\Order.cs" />
|
||||
<Compile Include="Data\Upbit\Order\Trade.cs" />
|
||||
<Compile Include="Data\Upbit\RealtimeConclusion.cs" />
|
||||
<Compile Include="Data\Upbit\Ticker.cs" />
|
||||
<Compile Include="DbMangement\DBConnection.cs" />
|
||||
<Compile Include="DbMangement\DBServiceFunctions.cs" />
|
||||
<Compile Include="FileManagement\FileContoler.cs" />
|
||||
<Compile Include="FileManagement\Ini.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\BolingerConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\CompareConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\IchimokuConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\IndicatorCoditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\MovingAverageConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\ParabolicSarIndicatorConditionSetup.cs" />
|
||||
<Compile Include="IndicatorConditionSetup\PriceRateCondtionSetup.cs" />
|
||||
<Compile Include="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MainForm.Designer.cs">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Manager\BuyLogicManager.cs" />
|
||||
<Compile Include="Manager\CalculateManager.cs" />
|
||||
<Compile Include="Manager\DataManager.cs" />
|
||||
<Compile Include="Manager\ExcelExport.cs" />
|
||||
<Compile Include="Manager\IndicatorSetupManager.cs" />
|
||||
<Compile Include="Manager\InitManager.cs" />
|
||||
<Compile Include="Manager\InteratorScripter.cs" />
|
||||
<Compile Include="Manager\LogManager.cs" />
|
||||
<Compile Include="Manager\OrderbookManager.cs" />
|
||||
<Compile Include="Manager\ExportManager.cs" />
|
||||
<Compile Include="Manager\RealtimeDataSettingManager.cs" />
|
||||
<Compile Include="Manager\ResultLogicManager.cs" />
|
||||
<Compile Include="Manager\SellLogicManager.cs" />
|
||||
<Compile Include="Manager\UIController.cs" />
|
||||
<Compile Include="Manager\ValidationCheckManager.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Data\SaveData\SavedAnalysisData.cs" />
|
||||
<Compile Include="Data\SaveData\SavedResultData.cs" />
|
||||
<Compile Include="SubForm\AccumulateDataUI.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\AccumulateDataUI.Designer.cs">
|
||||
<DependentUpon>AccumulateDataUI.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartIndicatorSetupForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartIndicatorSetupForm.Designer.cs">
|
||||
<DependentUpon>ChartIndicatorSetupForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartSimulatorForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartSimulatorForm.Designer.cs">
|
||||
<DependentUpon>ChartSimulatorForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerForm.Designer.cs">
|
||||
<DependentUpon>ChartViewerForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerUI.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\ChartViewerUI.Designer.cs">
|
||||
<DependentUpon>ChartViewerUI.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.Designer.cs">
|
||||
<DependentUpon>BolingerBandSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.Designer.cs">
|
||||
<DependentUpon>CommonIndicatorSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.Designer.cs">
|
||||
<DependentUpon>IchimokuCloudSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.Designer.cs">
|
||||
<DependentUpon>MovingAverageSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\CompareSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\CompareSetupUserForm.Designer.cs">
|
||||
<DependentUpon>CompareSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.Designer.cs">
|
||||
<DependentUpon>ParabolicSarSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.Designer.cs">
|
||||
<DependentUpon>PriceRateSetupUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\RemoveTickUserForm.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="SubForm\IndicatorSetupForm\RemoveTickUserForm.Designer.cs">
|
||||
<DependentUpon>RemoveTickUserForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="WebMangement\BitthumbWerServices.cs" />
|
||||
<Compile Include="WebMangement\Upbit\ClientHttpClient.cs" />
|
||||
<Compile Include="WebMangement\Upbit\UpbitAPI.cs" />
|
||||
<Compile Include="WebMangement\Upbit\UpbitProcess.cs" />
|
||||
<Compile Include="WebMangement\WebConnection.cs" />
|
||||
<Compile Include="WebMangement\WebServiceFunctions.cs" />
|
||||
<EmbeddedResource Include="MainForm.resx">
|
||||
<DependentUpon>MainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="SubForm\AccumulateDataUI.resx">
|
||||
<DependentUpon>AccumulateDataUI.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartIndicatorSetupForm.resx">
|
||||
<DependentUpon>ChartIndicatorSetupForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartSimulatorForm.resx">
|
||||
<DependentUpon>ChartSimulatorForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartViewerForm.resx">
|
||||
<DependentUpon>ChartViewerForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\ChartViewerUI.resx">
|
||||
<DependentUpon>ChartViewerUI.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\BolingerBandSetupUserForm.resx">
|
||||
<DependentUpon>BolingerBandSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\CommonIndicatorSetupUserForm.resx">
|
||||
<DependentUpon>CommonIndicatorSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\IchimokuCloudSetupUserForm.resx">
|
||||
<DependentUpon>IchimokuCloudSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\MovingAverageSetupUserForm.resx">
|
||||
<DependentUpon>MovingAverageSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\CompareSetupUserForm.resx">
|
||||
<DependentUpon>CompareSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\ParabolicSarSetupUserForm.resx">
|
||||
<DependentUpon>ParabolicSarSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\PriceRateSetupUserForm.resx">
|
||||
<DependentUpon>PriceRateSetupUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="SubForm\IndicatorSetupForm\RemoveTickUserForm.resx">
|
||||
<DependentUpon>RemoveTickUserForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
@@ -3,4 +3,18 @@
|
||||
<PropertyGroup>
|
||||
<ProjectView>ShowAllFiles</ProjectView>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="MainForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\ChartIndicatorSetupForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\ChartSimulatorForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="SubForm\ChartViewerForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,36 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
|
||||
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
|
||||
// 이러한 특성 값을 변경하세요.
|
||||
[assembly: AssemblyTitle("Million")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Million")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2021")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
|
||||
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
|
||||
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
|
||||
[assembly: Guid("10ef08cb-bf38-4882-a92a-30db34e8e8bd")]
|
||||
|
||||
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
|
||||
//
|
||||
// 주 버전
|
||||
// 부 버전
|
||||
// 빌드 번호
|
||||
// 수정 버전
|
||||
//
|
||||
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를
|
||||
// 기본값으로 할 수 있습니다.
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -1,5 +0,0 @@
|
||||
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v18.2.UI, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
|
||||
1
Million/Properties/licenses.licx.bak
Normal file
1
Million/Properties/licenses.licx.bak
Normal file
@@ -0,0 +1 @@
|
||||
DevExpress.XtraCharts.ChartControl, DevExpress.XtraCharts.v20.1.UI, Version=20.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user