From 4db5a85e55744a120984686e13ad3dc9d5126f71 Mon Sep 17 00:00:00 2001 From: jwlee Date: Sun, 2 Jun 2024 17:21:39 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=BC=EB=AA=A9=20=EB=B0=8F=20=EC=8B=A0?= =?UTF-8?q?=ED=98=B8=EA=B2=80=EC=83=89=20=EC=88=98=EC=A0=95=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BitgetApi/.vs/BitgetApi.csproj.dtbcache.json | 2 +- BitgetApi/BitgetApi.csproj | 24 +- BitgetApi/BitgetApi.csproj.bak | 125 +++++ BitgetApi/Data/SignalInfoData.cs | 29 ++ .../IchimokuConditionSetup.cs | 33 +- BitgetApi/IndicatorData/IchimokData.cs | 19 +- BitgetApi/MainForm.Designer.cs | 438 ++++++++++++++---- BitgetApi/MainForm.cs | 52 ++- 8 files changed, 589 insertions(+), 133 deletions(-) create mode 100644 BitgetApi/BitgetApi.csproj.bak create mode 100644 BitgetApi/Data/SignalInfoData.cs diff --git a/BitgetApi/.vs/BitgetApi.csproj.dtbcache.json b/BitgetApi/.vs/BitgetApi.csproj.dtbcache.json index e8eb780..07e738e 100644 --- a/BitgetApi/.vs/BitgetApi.csproj.dtbcache.json +++ b/BitgetApi/.vs/BitgetApi.csproj.dtbcache.json @@ -1 +1 @@ -{"RootPath":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi","ProjectFileName":"BitgetApi.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"CommonProperty.cs"},{"SourceFile":"Data\\CandleData.cs"},{"SourceFile":"Data\\CandleDataList.cs"},{"SourceFile":"Data\\MarketInfo.cs"},{"SourceFile":"Data\\TradeData.cs"},{"SourceFile":"Data\\WebSocketCandle.cs"},{"SourceFile":"Data\\IndicatorData.cs"},{"SourceFile":"IndicatorConditionSetup\\IchimokuConditionSetup.cs"},{"SourceFile":"IndicatorConditionSetup\\MovingAverageConditionSetup.cs"},{"SourceFile":"IndicatorData\\IchimokData.cs"},{"SourceFile":"IndicatorData\\IndicatorProcess.cs"},{"SourceFile":"IndicatorData\\MovingAverageData.cs"},{"SourceFile":"MainForm.cs"},{"SourceFile":"MainForm.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Utils\\BaseSingleton.cs"},{"SourceFile":"Utils\\Convertor.cs"},{"SourceFile":"WebService\\WebConnection.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.Data.Desktop.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.Data.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.Drawing.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.Printing.v23.2.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.Utils.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.XtraBars.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.XtraEditors.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.XtraGrid.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.XtraLayout.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.XtraPrinting.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\DevExpress.XtraTreeList.v23.2.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\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.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Runtime.Remoting.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\UIAutomationClient.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\BitgetApi.exe","OutputItemRelativePath":"BitgetApi.exe"},{"OutputItemFullPath":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\BitgetApi.pdb","OutputItemRelativePath":"BitgetApi.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file +{"RootPath":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi","ProjectFileName":"BitgetApi.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"CommonProperty.cs"},{"SourceFile":"Data\\CandleData.cs"},{"SourceFile":"Data\\CandleDataList.cs"},{"SourceFile":"Data\\MarketInfo.cs"},{"SourceFile":"Data\\TradeData.cs"},{"SourceFile":"Data\\WebSocketCandle.cs"},{"SourceFile":"Data\\IndicatorData.cs"},{"SourceFile":"IndicatorConditionSetup\\IchimokuConditionSetup.cs"},{"SourceFile":"IndicatorConditionSetup\\MovingAverageConditionSetup.cs"},{"SourceFile":"IndicatorData\\IchimokData.cs"},{"SourceFile":"IndicatorData\\IndicatorProcess.cs"},{"SourceFile":"IndicatorData\\MovingAverageData.cs"},{"SourceFile":"MainForm.cs"},{"SourceFile":"MainForm.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Utils\\BaseSingleton.cs"},{"SourceFile":"Utils\\Convertor.cs"},{"SourceFile":"WebService\\WebConnection.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\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.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Runtime.Remoting.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\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.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\UIAutomationClient.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\BitgetApi.exe","OutputItemRelativePath":"BitgetApi.exe"},{"OutputItemFullPath":"D:\\Source Code\\Project\\Bitget_API\\BitGet_API\\BitgetApi\\bin\\Debug\\BitgetApi.pdb","OutputItemRelativePath":"BitgetApi.pdb"}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/BitgetApi/BitgetApi.csproj b/BitgetApi/BitgetApi.csproj index 732b05f..4fe3fe7 100644 --- a/BitgetApi/BitgetApi.csproj +++ b/BitgetApi/BitgetApi.csproj @@ -33,17 +33,17 @@ 4 - - - - - - - - - - - + + + + + + + + + + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll @@ -69,6 +69,7 @@ + @@ -91,6 +92,7 @@ MainForm.cs + ResXFileCodeGenerator Resources.Designer.cs diff --git a/BitgetApi/BitgetApi.csproj.bak b/BitgetApi/BitgetApi.csproj.bak new file mode 100644 index 0000000..732b05f --- /dev/null +++ b/BitgetApi/BitgetApi.csproj.bak @@ -0,0 +1,125 @@ + + + + + Debug + AnyCPU + {09813A63-9EF4-4D6D-BA41-5F610909BDEC} + WinExe + BitgetApi + BitgetApi + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + MainForm.cs + + + + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + \ No newline at end of file diff --git a/BitgetApi/Data/SignalInfoData.cs b/BitgetApi/Data/SignalInfoData.cs new file mode 100644 index 0000000..a96d8bf --- /dev/null +++ b/BitgetApi/Data/SignalInfoData.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BitgetApi.Data +{ + public class SignalInfoData + { + // 종목 이름 + public string MarketName { get; set; } + // 종목 설명 (시간별, 어떤거?) + public string Description { get; set; } + + // 현재가 + public double Price { get; set; } + + // 설정된 시간 봉의 수익율 + public double rate { get; set; } + + // 구름떼 상한선 가격 + public double indicatorPrice { get; set; } + + // 설정된 지표(Indicator)와의 격차 비율 + public double indicoatorRate { get; set; } + + } +} diff --git a/BitgetApi/IndicatorConditionSetup/IchimokuConditionSetup.cs b/BitgetApi/IndicatorConditionSetup/IchimokuConditionSetup.cs index 6bdcbbd..b08ec73 100644 --- a/BitgetApi/IndicatorConditionSetup/IchimokuConditionSetup.cs +++ b/BitgetApi/IndicatorConditionSetup/IchimokuConditionSetup.cs @@ -1,8 +1,6 @@ using BitgetAPI.Data; using BitgetAPI.Data.IndicatorData; using DevExpress.Utils.Extensions; -using Million.Data; -using Million.Manager; using System; using System.Collections.Generic; using System.Linq; @@ -52,11 +50,18 @@ namespace BitgetAPI.IndicatorConditionSetup 선행스팬2 : (과거 k일간의 최고가 + 과거 k일간의 최저가) /2한 값을 ℓ일 후에 기입 */ + // 시간별로 정렬하기 + var candleDatas_정렬 = candleDatas.OrderBy(i => i.Argument); + + // 현재 종가 인덱스 - var endIndex = candleDatas.Count - 1; + var endIndex = candleDatas_정렬.Count() - 1; var 한봉전까지Index = endIndex - 1; + var candleData_전봉 = candleDatas[endIndex - 1]; + + // 현재 시간 캔들 var nowCandle = candleDatas[endIndex]; @@ -106,7 +111,7 @@ namespace BitgetAPI.IndicatorConditionSetup if (datas == null) return; - // 전환선 + // 전환선 : 26일 전봉 var displacement_전환선 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2; datas = candleDatas.FindAll(i => @@ -115,21 +120,35 @@ namespace BitgetAPI.IndicatorConditionSetup if (datas == null) return; - // 기준선 + // 기준선 : 26일 전봉 var displacement_기준선 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2; + // 선행스팬 1 nowCandle.IchimokData.선행스팬1 = (displacement_전환선 + displacement_기준선) / 2; - // 선행스팬 2 + datas = candleDatas.FindAll(i => candleDatas.IndexOf(i) >= 한봉전까지Index - LaggingSpan2Period && candleDatas.IndexOf(i) <= 한봉전까지Index); - + // 선행스팬 2 nowCandle.IchimokData.선행스팬2 = (datas.Min(i => i.Low) + datas.Min(i => i.High)) / 2; + // 일목균형표 (전봉데이터) + var 일목균형표_전봉 = candleData_전봉.IchimokData; + var 일목균형표_상한선 = Math.Max(일목균형표_전봉.선행스팬1, 일목균형표_전봉.선행스팬2); + var 일목균형표_하한선 = Math.Min(일목균형표_전봉.선행스팬1, 일목균형표_전봉.선행스팬2); + + // 전봉 + if (일목균형표_상한선 < candleData_전봉.Close && 일목균형표_상한선 < nowCandle.Close) nowCandle.IchimokData.IsLongUp = true; + else nowCandle.IchimokData.IsLongUp = false; + + if (일목균형표_하한선 > candleData_전봉.Close && 일목균형표_하한선 > nowCandle.Close) nowCandle.IchimokData.IsShortDown = true; + else nowCandle.IchimokData.IsShortDown = false; + + //if(일목균형표_상한선 > candleData_전봉.Close && ) } diff --git a/BitgetApi/IndicatorData/IchimokData.cs b/BitgetApi/IndicatorData/IchimokData.cs index dd19632..cf9a25c 100644 --- a/BitgetApi/IndicatorData/IchimokData.cs +++ b/BitgetApi/IndicatorData/IchimokData.cs @@ -9,10 +9,19 @@ namespace BitgetAPI.Data.IndicatorData [Serializable] public class IchimokData { - public double 기준선 = 0; - public double 전환선 = 0; - public double 후행스팬 = 0; - public double 선행스팬1 = 0; - public double 선행스팬2 = 0; + public double 기준선 { get; set; } = 0; + public double 전환선 { get; set; } = 0; + public double 후행스팬 { get; set; } = 0; + public double 선행스팬1 { get; set; } = 0; + public double 선행스팬2 { get; set; } = 0; + + + public bool IsLongUp { get; set; } = false; + public bool IsLongDown { get; set; } = false; + public bool IsShortUp { get; set; } = false; + public bool IsShortDown { get; set; } = false; + + public bool IsUsedData { get; set; } = false; + } } diff --git a/BitgetApi/MainForm.Designer.cs b/BitgetApi/MainForm.Designer.cs index 4fa4d05..1e358e3 100644 --- a/BitgetApi/MainForm.Designer.cs +++ b/BitgetApi/MainForm.Designer.cs @@ -53,18 +53,33 @@ this.xtraTabPage_Status = new DevExpress.XtraTab.XtraTabPage(); this.xtraTabPage_Searcher = new DevExpress.XtraTab.XtraTabPage(); this.groupControl_SignalSeacher = new DevExpress.XtraEditors.GroupControl(); + this.groupControl_LongUpSignal = new DevExpress.XtraEditors.GroupControl(); + this.groupControl_LongDownSignal = new DevExpress.XtraEditors.GroupControl(); + this.groupControl_SearcherCondition = new DevExpress.XtraEditors.GroupControl(); + this.checkEdit_IchmokuDown = new DevExpress.XtraEditors.CheckEdit(); + this.checkEdit_ichmokuUp = new DevExpress.XtraEditors.CheckEdit(); + this.labelControl6 = new DevExpress.XtraEditors.LabelControl(); + this.labelControl5 = new DevExpress.XtraEditors.LabelControl(); + this.checkedComboBoxEdit1 = new DevExpress.XtraEditors.CheckedComboBoxEdit(); + this.checkedComboBoxEdit_MarketInfoList = new DevExpress.XtraEditors.CheckedComboBoxEdit(); this.marketInfoBindingSource = new System.Windows.Forms.BindingSource(this.components); this.treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); - this.groupControl_SearcherCondition = new DevExpress.XtraEditors.GroupControl(); - this.checkedComboBoxEdit_MarketInfoList = new DevExpress.XtraEditors.CheckedComboBoxEdit(); this.popupMenu_marketInfo = new DevExpress.XtraBars.PopupMenu(this.components); - this.labelControl5 = new DevExpress.XtraEditors.LabelControl(); - this.labelControl6 = new DevExpress.XtraEditors.LabelControl(); - this.checkedComboBoxEdit1 = new DevExpress.XtraEditors.CheckedComboBoxEdit(); - this.checkEdit_ichmokuUp = new DevExpress.XtraEditors.CheckEdit(); - this.checkEdit_IchmokuDown = new DevExpress.XtraEditors.CheckEdit(); - this.groupControl1 = new DevExpress.XtraEditors.GroupControl(); - this.groupControl2 = new DevExpress.XtraEditors.GroupControl(); + this.splitContainerControl_SearchSignal = new DevExpress.XtraEditors.SplitContainerControl(); + this.splitContainerControl_UpdateSignal = new DevExpress.XtraEditors.SplitContainerControl(); + this.splitContainerControl_FavoritePurchase = new DevExpress.XtraEditors.SplitContainerControl(); + this.groupControl_FP_LongDown = new DevExpress.XtraEditors.GroupControl(); + this.groupControl_FP_ShortUp = new DevExpress.XtraEditors.GroupControl(); + this.treeList_LongUp = new DevExpress.XtraTreeList.TreeList(); + this.treeListColumn_LU_MarketName = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_LU_Description = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_LU_Price = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_Rate = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_LU_IndicatorPrice = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_LU_IndicatorRate = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.labelControl7 = new DevExpress.XtraEditors.LabelControl(); + this.timeSpanEdit_SesstionTime = new DevExpress.XtraEditors.TimeSpanEdit(); + this.labelControl8 = new DevExpress.XtraEditors.LabelControl(); ((System.ComponentModel.ISupportInitialize)(this.groupControl_Setting)).BeginInit(); this.groupControl_Setting.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.progressBarControl_data.Properties)).BeginInit(); @@ -79,16 +94,39 @@ this.xtraTabPage_Searcher.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.groupControl_SignalSeacher)).BeginInit(); this.groupControl_SignalSeacher.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.marketInfoBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_LongUpSignal)).BeginInit(); + this.groupControl_LongUpSignal.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_LongDownSignal)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.groupControl_SearcherCondition)).BeginInit(); this.groupControl_SearcherCondition.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit_MarketInfoList.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.popupMenu_marketInfo)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit1.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.checkEdit_ichmokuUp.Properties)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.checkEdit_IchmokuDown.Properties)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupControl2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.checkEdit_ichmokuUp.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit1.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit_MarketInfoList.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.marketInfoBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.popupMenu_marketInfo)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_SearchSignal)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_SearchSignal.Panel1)).BeginInit(); + this.splitContainerControl_SearchSignal.Panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_SearchSignal.Panel2)).BeginInit(); + this.splitContainerControl_SearchSignal.Panel2.SuspendLayout(); + this.splitContainerControl_SearchSignal.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_UpdateSignal)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_UpdateSignal.Panel1)).BeginInit(); + this.splitContainerControl_UpdateSignal.Panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_UpdateSignal.Panel2)).BeginInit(); + this.splitContainerControl_UpdateSignal.Panel2.SuspendLayout(); + this.splitContainerControl_UpdateSignal.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_FavoritePurchase)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_FavoritePurchase.Panel1)).BeginInit(); + this.splitContainerControl_FavoritePurchase.Panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_FavoritePurchase.Panel2)).BeginInit(); + this.splitContainerControl_FavoritePurchase.Panel2.SuspendLayout(); + this.splitContainerControl_FavoritePurchase.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_FP_LongDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_FP_ShortUp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.treeList_LongUp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeSpanEdit_SesstionTime.Properties)).BeginInit(); this.SuspendLayout(); // // groupControl_Setting @@ -103,14 +141,14 @@ this.groupControl_Setting.Controls.Add(this.labelControl1); this.groupControl_Setting.Location = new System.Drawing.Point(3, 2); this.groupControl_Setting.Name = "groupControl_Setting"; - this.groupControl_Setting.Size = new System.Drawing.Size(842, 75); + this.groupControl_Setting.Size = new System.Drawing.Size(1107, 75); this.groupControl_Setting.TabIndex = 0; this.groupControl_Setting.Text = "초기 설정"; // // progressBarControl_data // this.progressBarControl_data.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.progressBarControl_data.Location = new System.Drawing.Point(637, 43); + this.progressBarControl_data.Location = new System.Drawing.Point(902, 43); this.progressBarControl_data.Name = "progressBarControl_data"; this.progressBarControl_data.Properties.ShowTitle = true; this.progressBarControl_data.Size = new System.Drawing.Size(200, 18); @@ -141,7 +179,7 @@ // labelControl4 // this.labelControl4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.labelControl4.Location = new System.Drawing.Point(543, 44); + this.labelControl4.Location = new System.Drawing.Point(808, 44); this.labelControl4.Name = "labelControl4"; this.labelControl4.Size = new System.Drawing.Size(88, 14); this.labelControl4.TabIndex = 0; @@ -171,14 +209,14 @@ this.groupControl_MarketInfo.Dock = System.Windows.Forms.DockStyle.Fill; this.groupControl_MarketInfo.Location = new System.Drawing.Point(0, 0); this.groupControl_MarketInfo.Name = "groupControl_MarketInfo"; - this.groupControl_MarketInfo.Size = new System.Drawing.Size(905, 430); + this.groupControl_MarketInfo.Size = new System.Drawing.Size(840, 370); this.groupControl_MarketInfo.TabIndex = 1; this.groupControl_MarketInfo.Text = "종목 현황"; // // labelControl_MarketCount // this.labelControl_MarketCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.labelControl_MarketCount.Location = new System.Drawing.Point(851, 36); + this.labelControl_MarketCount.Location = new System.Drawing.Point(786, 36); this.labelControl_MarketCount.Name = "labelControl_MarketCount"; this.labelControl_MarketCount.Size = new System.Drawing.Size(21, 14); this.labelControl_MarketCount.TabIndex = 2; @@ -187,7 +225,7 @@ // labelControl3 // this.labelControl3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.labelControl3.Location = new System.Drawing.Point(799, 36); + this.labelControl3.Location = new System.Drawing.Point(734, 36); this.labelControl3.Name = "labelControl3"; this.labelControl3.Size = new System.Drawing.Size(46, 14); this.labelControl3.TabIndex = 1; @@ -210,7 +248,7 @@ this.treeListColumn_quoteVolume}); this.treeList_MarketInfo.Location = new System.Drawing.Point(2, 56); this.treeList_MarketInfo.Name = "treeList_MarketInfo"; - this.treeList_MarketInfo.Size = new System.Drawing.Size(901, 372); + this.treeList_MarketInfo.Size = new System.Drawing.Size(836, 312); this.treeList_MarketInfo.TabIndex = 0; // // treeListColumn_ExchangePlace @@ -293,7 +331,7 @@ this.xtraTabControl_Main.Location = new System.Drawing.Point(3, 83); this.xtraTabControl_Main.Name = "xtraTabControl_Main"; this.xtraTabControl_Main.SelectedTabPage = this.xtraTabPage_Status; - this.xtraTabControl_Main.Size = new System.Drawing.Size(842, 396); + this.xtraTabControl_Main.Size = new System.Drawing.Size(1107, 638); this.xtraTabControl_Main.TabIndex = 2; this.xtraTabControl_Main.TabPages.AddRange(new DevExpress.XtraTab.XtraTabPage[] { this.xtraTabPage_Status, @@ -303,7 +341,7 @@ // this.xtraTabPage_Status.Controls.Add(this.groupControl_MarketInfo); this.xtraTabPage_Status.Name = "xtraTabPage_Status"; - this.xtraTabPage_Status.Size = new System.Drawing.Size(905, 430); + this.xtraTabPage_Status.Size = new System.Drawing.Size(840, 370); this.xtraTabPage_Status.Text = "현황판"; // // xtraTabPage_Searcher @@ -312,33 +350,43 @@ this.xtraTabPage_Searcher.Controls.Add(this.groupControl_SearcherCondition); this.xtraTabPage_Searcher.Name = "xtraTabPage_Searcher"; this.xtraTabPage_Searcher.PageEnabled = false; - this.xtraTabPage_Searcher.Size = new System.Drawing.Size(840, 370); + this.xtraTabPage_Searcher.Size = new System.Drawing.Size(1105, 612); this.xtraTabPage_Searcher.Text = "검색기"; // // groupControl_SignalSeacher // - this.groupControl_SignalSeacher.Controls.Add(this.groupControl2); - this.groupControl_SignalSeacher.Controls.Add(this.groupControl1); + this.groupControl_SignalSeacher.Controls.Add(this.splitContainerControl_SearchSignal); this.groupControl_SignalSeacher.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupControl_SignalSeacher.Location = new System.Drawing.Point(0, 85); + this.groupControl_SignalSeacher.Location = new System.Drawing.Point(0, 125); this.groupControl_SignalSeacher.Name = "groupControl_SignalSeacher"; - this.groupControl_SignalSeacher.Size = new System.Drawing.Size(840, 285); + this.groupControl_SignalSeacher.Size = new System.Drawing.Size(1105, 487); this.groupControl_SignalSeacher.TabIndex = 1; this.groupControl_SignalSeacher.Text = "신호 검색"; // - // marketInfoBindingSource + // groupControl_LongUpSignal // - this.marketInfoBindingSource.DataSource = typeof(BitgetAPI.Data.MarketInfo); + this.groupControl_LongUpSignal.Controls.Add(this.treeList_LongUp); + this.groupControl_LongUpSignal.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupControl_LongUpSignal.Location = new System.Drawing.Point(0, 0); + this.groupControl_LongUpSignal.Name = "groupControl_LongUpSignal"; + this.groupControl_LongUpSignal.Size = new System.Drawing.Size(541, 227); + this.groupControl_LongUpSignal.TabIndex = 0; + this.groupControl_LongUpSignal.Text = "검색 현황 (Long 상숭)"; // - // treeListColumn1 + // groupControl_LongDownSignal // - this.treeListColumn1.Caption = "treeListColumn1"; - this.treeListColumn1.Name = "treeListColumn1"; - this.treeListColumn1.Visible = true; - this.treeListColumn1.VisibleIndex = 0; + this.groupControl_LongDownSignal.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupControl_LongDownSignal.Location = new System.Drawing.Point(0, 0); + this.groupControl_LongDownSignal.Name = "groupControl_LongDownSignal"; + this.groupControl_LongDownSignal.Size = new System.Drawing.Size(541, 225); + this.groupControl_LongDownSignal.TabIndex = 0; + this.groupControl_LongDownSignal.Text = "검색 현황 (Short 하락)"; // // groupControl_SearcherCondition // + this.groupControl_SearcherCondition.Controls.Add(this.timeSpanEdit_SesstionTime); + this.groupControl_SearcherCondition.Controls.Add(this.labelControl8); + this.groupControl_SearcherCondition.Controls.Add(this.labelControl7); this.groupControl_SearcherCondition.Controls.Add(this.checkEdit_IchmokuDown); this.groupControl_SearcherCondition.Controls.Add(this.checkEdit_ichmokuUp); this.groupControl_SearcherCondition.Controls.Add(this.labelControl6); @@ -348,44 +396,47 @@ this.groupControl_SearcherCondition.Dock = System.Windows.Forms.DockStyle.Top; this.groupControl_SearcherCondition.Location = new System.Drawing.Point(0, 0); this.groupControl_SearcherCondition.Name = "groupControl_SearcherCondition"; - this.groupControl_SearcherCondition.Size = new System.Drawing.Size(840, 85); + this.groupControl_SearcherCondition.Size = new System.Drawing.Size(1105, 125); this.groupControl_SearcherCondition.TabIndex = 0; this.groupControl_SearcherCondition.Text = "조건 설정"; // - // checkedComboBoxEdit_MarketInfoList + // checkEdit_IchmokuDown // - this.checkedComboBoxEdit_MarketInfoList.Location = new System.Drawing.Point(65, 26); - this.checkedComboBoxEdit_MarketInfoList.Name = "checkedComboBoxEdit_MarketInfoList"; - this.checkedComboBoxEdit_MarketInfoList.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { - new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); - this.checkedComboBoxEdit_MarketInfoList.Properties.IncrementalSearch = true; - this.checkedComboBoxEdit_MarketInfoList.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; - this.checkedComboBoxEdit_MarketInfoList.Size = new System.Drawing.Size(547, 20); - this.checkedComboBoxEdit_MarketInfoList.TabIndex = 0; + this.checkEdit_IchmokuDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.checkEdit_IchmokuDown.Location = new System.Drawing.Point(984, 52); + this.checkEdit_IchmokuDown.Name = "checkEdit_IchmokuDown"; + this.checkEdit_IchmokuDown.Properties.Caption = "구름떼 하락"; + this.checkEdit_IchmokuDown.Size = new System.Drawing.Size(102, 20); + this.checkEdit_IchmokuDown.TabIndex = 2; // - // popupMenu_marketInfo + // checkEdit_ichmokuUp // - this.popupMenu_marketInfo.Name = "popupMenu_marketInfo"; - // - // labelControl5 - // - this.labelControl5.Location = new System.Drawing.Point(9, 29); - this.labelControl5.Name = "labelControl5"; - this.labelControl5.Size = new System.Drawing.Size(56, 14); - this.labelControl5.TabIndex = 1; - this.labelControl5.Text = "종목 선택 : "; + this.checkEdit_ichmokuUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.checkEdit_ichmokuUp.Location = new System.Drawing.Point(984, 26); + this.checkEdit_ichmokuUp.Name = "checkEdit_ichmokuUp"; + this.checkEdit_ichmokuUp.Properties.Caption = "구름떼 돌파"; + this.checkEdit_ichmokuUp.Size = new System.Drawing.Size(102, 20); + this.checkEdit_ichmokuUp.TabIndex = 2; // // labelControl6 // - this.labelControl6.Location = new System.Drawing.Point(9, 52); + this.labelControl6.Location = new System.Drawing.Point(9, 57); this.labelControl6.Name = "labelControl6"; this.labelControl6.Size = new System.Drawing.Size(56, 14); this.labelControl6.TabIndex = 1; this.labelControl6.Text = "분봉 선택 : "; // + // labelControl5 + // + this.labelControl5.Location = new System.Drawing.Point(9, 34); + this.labelControl5.Name = "labelControl5"; + this.labelControl5.Size = new System.Drawing.Size(56, 14); + this.labelControl5.TabIndex = 1; + this.labelControl5.Text = "종목 선택 : "; + // // checkedComboBoxEdit1 // - this.checkedComboBoxEdit1.Location = new System.Drawing.Point(65, 49); + this.checkedComboBoxEdit1.Location = new System.Drawing.Point(65, 54); this.checkedComboBoxEdit1.Name = "checkedComboBoxEdit1"; this.checkedComboBoxEdit1.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); @@ -394,48 +445,201 @@ this.checkedComboBoxEdit1.Size = new System.Drawing.Size(547, 20); this.checkedComboBoxEdit1.TabIndex = 0; // - // checkEdit_ichmokuUp + // checkedComboBoxEdit_MarketInfoList // - this.checkEdit_ichmokuUp.Location = new System.Drawing.Point(636, 26); - this.checkEdit_ichmokuUp.Name = "checkEdit_ichmokuUp"; - this.checkEdit_ichmokuUp.Properties.Caption = "구름떼 돌파"; - this.checkEdit_ichmokuUp.Size = new System.Drawing.Size(102, 20); - this.checkEdit_ichmokuUp.TabIndex = 2; + this.checkedComboBoxEdit_MarketInfoList.Location = new System.Drawing.Point(65, 31); + this.checkedComboBoxEdit_MarketInfoList.Name = "checkedComboBoxEdit_MarketInfoList"; + this.checkedComboBoxEdit_MarketInfoList.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.checkedComboBoxEdit_MarketInfoList.Properties.IncrementalSearch = true; + this.checkedComboBoxEdit_MarketInfoList.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; + this.checkedComboBoxEdit_MarketInfoList.Size = new System.Drawing.Size(547, 20); + this.checkedComboBoxEdit_MarketInfoList.TabIndex = 0; // - // checkEdit_IchmokuDown + // treeListColumn1 // - this.checkEdit_IchmokuDown.Location = new System.Drawing.Point(636, 45); - this.checkEdit_IchmokuDown.Name = "checkEdit_IchmokuDown"; - this.checkEdit_IchmokuDown.Properties.Caption = "구름떼 하락"; - this.checkEdit_IchmokuDown.Size = new System.Drawing.Size(102, 20); - this.checkEdit_IchmokuDown.TabIndex = 2; + this.treeListColumn1.Caption = "treeListColumn1"; + this.treeListColumn1.Name = "treeListColumn1"; + this.treeListColumn1.Visible = true; + this.treeListColumn1.VisibleIndex = 0; // - // groupControl1 + // popupMenu_marketInfo // - this.groupControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupControl1.Location = new System.Drawing.Point(436, 26); - this.groupControl1.Name = "groupControl1"; - this.groupControl1.Size = new System.Drawing.Size(401, 256); - this.groupControl1.TabIndex = 0; - this.groupControl1.Text = "관심 및 매수종목"; + this.popupMenu_marketInfo.Name = "popupMenu_marketInfo"; // - // groupControl2 + // splitContainerControl_SearchSignal // - this.groupControl2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.groupControl2.Location = new System.Drawing.Point(3, 26); - this.groupControl2.Name = "groupControl2"; - this.groupControl2.Size = new System.Drawing.Size(427, 256); - this.groupControl2.TabIndex = 0; - this.groupControl2.Text = "검색 현황"; + this.splitContainerControl_SearchSignal.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainerControl_SearchSignal.Location = new System.Drawing.Point(2, 23); + this.splitContainerControl_SearchSignal.Name = "splitContainerControl_SearchSignal"; + // + // splitContainerControl_SearchSignal.splitContainerControl_SearchSignal_Panel1 + // + this.splitContainerControl_SearchSignal.Panel1.Controls.Add(this.splitContainerControl_UpdateSignal); + this.splitContainerControl_SearchSignal.Panel1.Text = "Panel1"; + // + // splitContainerControl_SearchSignal.splitContainerControl_SearchSignal_Panel2 + // + this.splitContainerControl_SearchSignal.Panel2.Controls.Add(this.splitContainerControl_FavoritePurchase); + this.splitContainerControl_SearchSignal.Panel2.Text = "Panel2"; + this.splitContainerControl_SearchSignal.Size = new System.Drawing.Size(1101, 462); + this.splitContainerControl_SearchSignal.SplitterPosition = 541; + this.splitContainerControl_SearchSignal.TabIndex = 1; + // + // splitContainerControl_UpdateSignal + // + this.splitContainerControl_UpdateSignal.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainerControl_UpdateSignal.Horizontal = false; + this.splitContainerControl_UpdateSignal.Location = new System.Drawing.Point(0, 0); + this.splitContainerControl_UpdateSignal.Name = "splitContainerControl_UpdateSignal"; + // + // splitContainerControl_UpdateSignal.splitContainerControl_UpdateSignal_Panel1 + // + this.splitContainerControl_UpdateSignal.Panel1.Controls.Add(this.groupControl_LongUpSignal); + this.splitContainerControl_UpdateSignal.Panel1.Text = "Panel1"; + // + // splitContainerControl_UpdateSignal.splitContainerControl_UpdateSignal_Panel2 + // + this.splitContainerControl_UpdateSignal.Panel2.Controls.Add(this.groupControl_LongDownSignal); + this.splitContainerControl_UpdateSignal.Panel2.Text = "Panel2"; + this.splitContainerControl_UpdateSignal.Size = new System.Drawing.Size(541, 462); + this.splitContainerControl_UpdateSignal.SplitterPosition = 227; + this.splitContainerControl_UpdateSignal.TabIndex = 2; + // + // splitContainerControl_FavoritePurchase + // + this.splitContainerControl_FavoritePurchase.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainerControl_FavoritePurchase.Horizontal = false; + this.splitContainerControl_FavoritePurchase.Location = new System.Drawing.Point(0, 0); + this.splitContainerControl_FavoritePurchase.Name = "splitContainerControl_FavoritePurchase"; + // + // splitContainerControl_FavoritePurchase.splitContainerControl_FavoritePurchase_Panel1 + // + this.splitContainerControl_FavoritePurchase.Panel1.Controls.Add(this.groupControl_FP_LongDown); + this.splitContainerControl_FavoritePurchase.Panel1.Text = "Panel1"; + // + // splitContainerControl_FavoritePurchase.splitContainerControl_FavoritePurchase_Panel2 + // + this.splitContainerControl_FavoritePurchase.Panel2.Controls.Add(this.groupControl_FP_ShortUp); + this.splitContainerControl_FavoritePurchase.Panel2.Text = "Panel2"; + this.splitContainerControl_FavoritePurchase.Size = new System.Drawing.Size(550, 462); + this.splitContainerControl_FavoritePurchase.SplitterPosition = 227; + this.splitContainerControl_FavoritePurchase.TabIndex = 3; + // + // groupControl_FP_LongDown + // + this.groupControl_FP_LongDown.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupControl_FP_LongDown.Location = new System.Drawing.Point(0, 0); + this.groupControl_FP_LongDown.Name = "groupControl_FP_LongDown"; + this.groupControl_FP_LongDown.Size = new System.Drawing.Size(550, 227); + this.groupControl_FP_LongDown.TabIndex = 0; + this.groupControl_FP_LongDown.Text = "관심 종목 (Long 상승)"; + // + // groupControl_FP_ShortUp + // + this.groupControl_FP_ShortUp.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupControl_FP_ShortUp.Location = new System.Drawing.Point(0, 0); + this.groupControl_FP_ShortUp.Name = "groupControl_FP_ShortUp"; + this.groupControl_FP_ShortUp.Size = new System.Drawing.Size(550, 225); + this.groupControl_FP_ShortUp.TabIndex = 0; + this.groupControl_FP_ShortUp.Text = "관심 종목 (Long 하락)"; + // + // treeList_LongUp + // + this.treeList_LongUp.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { + this.treeListColumn_LU_MarketName, + this.treeListColumn_LU_Description, + this.treeListColumn_LU_Price, + this.treeListColumn_Rate, + this.treeListColumn_LU_IndicatorPrice, + this.treeListColumn_LU_IndicatorRate}); + this.treeList_LongUp.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeList_LongUp.Location = new System.Drawing.Point(2, 23); + this.treeList_LongUp.Name = "treeList_LongUp"; + this.treeList_LongUp.Size = new System.Drawing.Size(537, 202); + this.treeList_LongUp.TabIndex = 0; + // + // treeListColumn_LU_MarketName + // + this.treeListColumn_LU_MarketName.Caption = "종목"; + this.treeListColumn_LU_MarketName.FieldName = "종목"; + this.treeListColumn_LU_MarketName.Name = "treeListColumn_LU_MarketName"; + this.treeListColumn_LU_MarketName.Visible = true; + this.treeListColumn_LU_MarketName.VisibleIndex = 0; + // + // treeListColumn_LU_Description + // + this.treeListColumn_LU_Description.Caption = "설명"; + this.treeListColumn_LU_Description.FieldName = "Description"; + this.treeListColumn_LU_Description.Name = "treeListColumn_LU_Description"; + this.treeListColumn_LU_Description.Visible = true; + this.treeListColumn_LU_Description.VisibleIndex = 1; + // + // treeListColumn_LU_Price + // + this.treeListColumn_LU_Price.Caption = "현재가"; + this.treeListColumn_LU_Price.FieldName = "Price"; + this.treeListColumn_LU_Price.Name = "treeListColumn_LU_Price"; + this.treeListColumn_LU_Price.Visible = true; + this.treeListColumn_LU_Price.VisibleIndex = 2; + // + // treeListColumn_Rate + // + this.treeListColumn_Rate.Caption = "수익률"; + this.treeListColumn_Rate.FieldName = "Rate"; + this.treeListColumn_Rate.Name = "treeListColumn_Rate"; + this.treeListColumn_Rate.Visible = true; + this.treeListColumn_Rate.VisibleIndex = 3; + // + // treeListColumn_LU_IndicatorPrice + // + this.treeListColumn_LU_IndicatorPrice.Caption = "지표(구름떼) 가격"; + this.treeListColumn_LU_IndicatorPrice.FieldName = "지표(구름떼) 가격"; + this.treeListColumn_LU_IndicatorPrice.Name = "treeListColumn_LU_IndicatorPrice"; + this.treeListColumn_LU_IndicatorPrice.Visible = true; + this.treeListColumn_LU_IndicatorPrice.VisibleIndex = 4; + // + // treeListColumn_LU_IndicatorRate + // + this.treeListColumn_LU_IndicatorRate.Caption = "지표가(매수가) 비율"; + this.treeListColumn_LU_IndicatorRate.FieldName = "IndicatorRate"; + this.treeListColumn_LU_IndicatorRate.Name = "treeListColumn_LU_IndicatorRate"; + this.treeListColumn_LU_IndicatorRate.Visible = true; + this.treeListColumn_LU_IndicatorRate.VisibleIndex = 5; + // + // labelControl7 + // + this.labelControl7.Location = new System.Drawing.Point(9, 90); + this.labelControl7.Name = "labelControl7"; + this.labelControl7.Size = new System.Drawing.Size(104, 14); + this.labelControl7.TabIndex = 3; + this.labelControl7.Text = "신호 검색 유지 시간 : "; + // + // timeSpanEdit_SesstionTime + // + this.timeSpanEdit_SesstionTime.EditValue = System.TimeSpan.Parse("00:02:00"); + this.timeSpanEdit_SesstionTime.Location = new System.Drawing.Point(119, 87); + this.timeSpanEdit_SesstionTime.Name = "timeSpanEdit_SesstionTime"; + this.timeSpanEdit_SesstionTime.Properties.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { + new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)}); + this.timeSpanEdit_SesstionTime.Properties.DisplayFormat.FormatString = "mm"; + this.timeSpanEdit_SesstionTime.Properties.EditFormat.FormatString = "mm"; + this.timeSpanEdit_SesstionTime.Size = new System.Drawing.Size(46, 20); + this.timeSpanEdit_SesstionTime.TabIndex = 4; + // + // labelControl8 + // + this.labelControl8.Location = new System.Drawing.Point(171, 90); + this.labelControl8.Name = "labelControl8"; + this.labelControl8.Size = new System.Drawing.Size(10, 14); + this.labelControl8.TabIndex = 3; + this.labelControl8.Text = "분"; // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(846, 484); + this.ClientSize = new System.Drawing.Size(1111, 726); this.Controls.Add(this.xtraTabControl_Main); this.Controls.Add(this.groupControl_Setting); this.MinimumSize = new System.Drawing.Size(719, 303); @@ -458,17 +662,40 @@ this.xtraTabPage_Searcher.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.groupControl_SignalSeacher)).EndInit(); this.groupControl_SignalSeacher.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.marketInfoBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_LongUpSignal)).EndInit(); + this.groupControl_LongUpSignal.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_LongDownSignal)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.groupControl_SearcherCondition)).EndInit(); this.groupControl_SearcherCondition.ResumeLayout(false); this.groupControl_SearcherCondition.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit_MarketInfoList.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.popupMenu_marketInfo)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit1.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.checkEdit_ichmokuUp.Properties)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.checkEdit_IchmokuDown.Properties)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupControl1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupControl2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.checkEdit_ichmokuUp.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit1.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.checkedComboBoxEdit_MarketInfoList.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.marketInfoBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.popupMenu_marketInfo)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_SearchSignal.Panel1)).EndInit(); + this.splitContainerControl_SearchSignal.Panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_SearchSignal.Panel2)).EndInit(); + this.splitContainerControl_SearchSignal.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_SearchSignal)).EndInit(); + this.splitContainerControl_SearchSignal.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_UpdateSignal.Panel1)).EndInit(); + this.splitContainerControl_UpdateSignal.Panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_UpdateSignal.Panel2)).EndInit(); + this.splitContainerControl_UpdateSignal.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_UpdateSignal)).EndInit(); + this.splitContainerControl_UpdateSignal.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_FavoritePurchase.Panel1)).EndInit(); + this.splitContainerControl_FavoritePurchase.Panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_FavoritePurchase.Panel2)).EndInit(); + this.splitContainerControl_FavoritePurchase.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainerControl_FavoritePurchase)).EndInit(); + this.splitContainerControl_FavoritePurchase.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_FP_LongDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.groupControl_FP_ShortUp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.treeList_LongUp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.timeSpanEdit_SesstionTime.Properties)).EndInit(); this.ResumeLayout(false); } @@ -504,13 +731,28 @@ private DevExpress.XtraBars.PopupMenu popupMenu_marketInfo; private System.Windows.Forms.BindingSource marketInfoBindingSource; private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1; - private DevExpress.XtraEditors.GroupControl groupControl2; - private DevExpress.XtraEditors.GroupControl groupControl1; + private DevExpress.XtraEditors.GroupControl groupControl_LongUpSignal; + private DevExpress.XtraEditors.GroupControl groupControl_LongDownSignal; private DevExpress.XtraEditors.CheckEdit checkEdit_IchmokuDown; private DevExpress.XtraEditors.CheckEdit checkEdit_ichmokuUp; private DevExpress.XtraEditors.LabelControl labelControl6; private DevExpress.XtraEditors.LabelControl labelControl5; private DevExpress.XtraEditors.CheckedComboBoxEdit checkedComboBoxEdit1; + private DevExpress.XtraEditors.SplitContainerControl splitContainerControl_SearchSignal; + private DevExpress.XtraEditors.SplitContainerControl splitContainerControl_UpdateSignal; + private DevExpress.XtraEditors.SplitContainerControl splitContainerControl_FavoritePurchase; + private DevExpress.XtraEditors.GroupControl groupControl_FP_LongDown; + private DevExpress.XtraEditors.GroupControl groupControl_FP_ShortUp; + private DevExpress.XtraTreeList.TreeList treeList_LongUp; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_LU_MarketName; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_LU_Description; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_LU_Price; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_Rate; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_LU_IndicatorPrice; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_LU_IndicatorRate; + private DevExpress.XtraEditors.TimeSpanEdit timeSpanEdit_SesstionTime; + private DevExpress.XtraEditors.LabelControl labelControl8; + private DevExpress.XtraEditors.LabelControl labelControl7; } } diff --git a/BitgetApi/MainForm.cs b/BitgetApi/MainForm.cs index 0d644e4..ad9591f 100644 --- a/BitgetApi/MainForm.cs +++ b/BitgetApi/MainForm.cs @@ -1,4 +1,5 @@ -using BitgetAPI.Data; +using BitgetApi.Data; +using BitgetAPI.Data; using BitgetAPI.WebService; using DevExpress.Utils.MVVM; using DevExpress.XtraEditors; @@ -33,6 +34,8 @@ namespace BitgetAPI List webSocketThreadList = new List(); // 종목별 캔들 데이터 스레드 Thread th_MarketCandeData = null; + // 신호검색 스레드 함수 + Thread th_SignalInfo = null; // 종목별 캔들 데이터 : 캔들 개수 const int candleCount = 200; @@ -70,20 +73,18 @@ namespace BitgetAPI treeListMarketInfoListUpdateTimer = new Thread(new ThreadStart(TreeListMarketInfoListUpdate)); treeListMarketInfoListUpdateTimer.Start(); + // 신호검색 스레드 + th_SignalInfo = new Thread(new ThreadStart(Signalnfo)); + th_SignalInfo.Start(); + + + // API Key 가져오기 및 등록 - // BITGET Raster 소켓 테스트 - - // 데이터 분석 - - // 캔들 가져오기 - - // 구름떼, 볼린저 생성 - } // 웹소켓 생성 관련 함수 스레드 => Thread - private async void ThreadEventAsync(BitgetWebSocketType bitgetWebSocketType, string channel) + private async void ThreadEventAsync(BitgetWebSocketType bitgetWebSocketType, string channel) { // WebSocket 생성 WebConnection webConnection = new WebConnection(); @@ -116,8 +117,37 @@ namespace BitgetAPI })); } + } - // 지표생성 및 신호 검색 + // 신호검색 Thread 함수 + private void Signalnfo() + { + while(true) + { + Thread.Sleep(300); + + Invoke(new MethodInvoker(delegate () + { + + // 신호검색 리스트 작성 + // 신호 Long 상승 (구매) + List signals_LU = new List(); + // 신호 Short 하락 (구매) + List signals_SD = new List(); + // 검색현황 Long 하락 (판매) + List signals_LD = new List(); + // 검색현황 Short 상승 (판매) + List signals_SU = new List(); + + var scrollPoint_LU = treeList_LongUp.TopVisibleNodeIndex; + + // 신호검색 트리리스트 설정 + treeList_LongUp.DataSource = signals_LU; + treeList_LongUp.RefreshDataSource(); + + treeList_LongUp.TopVisibleNodeIndex = scrollPoint_LU; + })); + } } // 종목별 캔들데이터 가져오기 (초기 설정) => Thread