병합
This commit is contained in:
@@ -131,7 +131,8 @@ namespace Million
|
||||
_curIndicatorSetup = (IndicatorCoditionSetup)_curruentIndicatorform.SaveIndicatorSetup(true);
|
||||
_curIndicatorSetup.ByBuySellType = buySelltype;
|
||||
|
||||
var totalIndi = _saveResultData.BuySetupList;
|
||||
var totalIndi = new List<object>();
|
||||
totalIndi.AddRange( _saveResultData.BuySetupList);
|
||||
totalIndi.AddRange(_saveResultData.SellSetupList);
|
||||
|
||||
var indexStringList = totalIndi.OfType<IndicatorCoditionSetup>().Select(x=>x.IndexString).ToList();
|
||||
|
||||
@@ -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();
|
||||
@@ -393,12 +394,13 @@ namespace Million.HunterSubForm
|
||||
this.treeList_ResultData.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.treeList_ResultData.Location = new System.Drawing.Point(0, 275);
|
||||
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.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
|
||||
@@ -609,6 +611,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);
|
||||
@@ -622,10 +625,21 @@ namespace Million.HunterSubForm
|
||||
this.panelControl1.Size = new System.Drawing.Size(1271, 44);
|
||||
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(369, 15);
|
||||
this.labelControl_WinRateProfitRate.Name = "labelControl_WinRateProfitRate";
|
||||
this.labelControl_WinRateProfitRate.Size = new System.Drawing.Size(19, 14);
|
||||
this.labelControl_WinRateProfitRate.TabIndex = 2;
|
||||
@@ -700,7 +714,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);
|
||||
@@ -781,5 +795,6 @@ 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;
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ using DevExpress.XtraTreeList;
|
||||
using Million.DbManagement;
|
||||
using Million.IndicatorConditionSetup;
|
||||
using Million.Manager;
|
||||
using Million_Hunter.HunterSubForm;
|
||||
|
||||
namespace Million.HunterSubForm
|
||||
{
|
||||
@@ -28,6 +29,8 @@ namespace Million.HunterSubForm
|
||||
// Analysis Data 를 Load 하는 경우 저장 변수
|
||||
public SavedAnalysisData _savedAnalysisData;
|
||||
|
||||
public List<IndicatorCoditionSetup> _totalIndicator;
|
||||
|
||||
public ResultViewerForm(SavedResultData savedResultData)
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -53,6 +56,13 @@ namespace Million.HunterSubForm
|
||||
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)
|
||||
{
|
||||
// 메모리 헤제
|
||||
@@ -95,7 +105,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>();
|
||||
@@ -120,6 +131,9 @@ namespace Million.HunterSubForm
|
||||
profitRate += data.EarningRate;
|
||||
|
||||
saveDataList.Add(data);
|
||||
|
||||
// 비고 저장
|
||||
//data.Description =
|
||||
}
|
||||
|
||||
winRate = winRate * 100 / nodeList.Count();
|
||||
@@ -160,9 +174,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);
|
||||
@@ -189,16 +205,8 @@ namespace Million.HunterSubForm
|
||||
|
||||
var selectedAnalysisData = (AnalysisData)treeList.GetDataRecordByNode(hitInfo.Node);
|
||||
|
||||
|
||||
var buyIndicatorList = IndicatorSetupManager.InitDataSetup(_savedResultData.BuySetupList);
|
||||
var sellIndicatorList = IndicatorSetupManager.InitDataSetup(_savedResultData.SellSetupList);
|
||||
|
||||
var totalIndicator = new List<IndicatorCoditionSetup>();
|
||||
totalIndicator.AddRange(buyIndicatorList);
|
||||
totalIndicator.AddRange(sellIndicatorList);
|
||||
|
||||
Million.SubForm.ChartViewerForm chartViewerForm = new Million.SubForm.ChartViewerForm(selectedAnalysisData,
|
||||
totalIndicator);
|
||||
_totalIndicator);
|
||||
chartViewerForm.Visible = true;
|
||||
}
|
||||
|
||||
@@ -240,12 +248,32 @@ namespace Million.HunterSubForm
|
||||
}
|
||||
|
||||
labelControl_WinRateProfitRate.Text = string.Format("승률 : {0:0.00} % 수익률 : {1:0.00} % 개수 : {2}",
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), _analysisDatas.Count());
|
||||
double.Parse(winRate.ToString()), double.Parse(profitRate.ToString()), nodeList.Count());
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
private void treeList_ResultData_SelectionChanged(object sender, EventArgs e)
|
||||
/// <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();
|
||||
}
|
||||
}
|
||||
}
|
||||
118
Million Hunter/HunterSubForm/TestBoardForm.Designer.cs
generated
Normal file
118
Million Hunter/HunterSubForm/TestBoardForm.Designer.cs
generated
Normal file
@@ -0,0 +1,118 @@
|
||||
|
||||
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.simpleButton_Calc = new DevExpress.XtraEditors.SimpleButton();
|
||||
this.checkedListBox_Indicator = new System.Windows.Forms.CheckedListBox();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
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 = "1시간봉 다 채우기";
|
||||
this.simpleButton_FullInsertCandle.Click += new System.EventHandler(this.simpleButton_FullInsertCandle_Click);
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.simpleButton_FullInsertCandle);
|
||||
this.groupBox1.Location = new System.Drawing.Point(12, 12);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(419, 63);
|
||||
this.groupBox1.TabIndex = 2;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "데이터 채우기";
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Controls.Add(this.checkedListBox_Indicator);
|
||||
this.groupBox2.Location = new System.Drawing.Point(12, 90);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(829, 129);
|
||||
this.groupBox2.TabIndex = 3;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "지표";
|
||||
//
|
||||
// simpleButton_Calc
|
||||
//
|
||||
this.simpleButton_Calc.Appearance.ForeColor = System.Drawing.Color.Teal;
|
||||
this.simpleButton_Calc.Appearance.Options.UseForeColor = true;
|
||||
this.simpleButton_Calc.Location = new System.Drawing.Point(720, 225);
|
||||
this.simpleButton_Calc.Name = "simpleButton_Calc";
|
||||
this.simpleButton_Calc.Size = new System.Drawing.Size(121, 32);
|
||||
this.simpleButton_Calc.TabIndex = 1;
|
||||
this.simpleButton_Calc.Text = "계산하기";
|
||||
this.simpleButton_Calc.Click += new System.EventHandler(this.simpleButton_Calc_Click);
|
||||
//
|
||||
// checkedListBox_Indicator
|
||||
//
|
||||
this.checkedListBox_Indicator.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.checkedListBox_Indicator.FormattingEnabled = true;
|
||||
this.checkedListBox_Indicator.Items.AddRange(new object[] {
|
||||
"구매 시점 이전 봉 40 1 볼린저 값 이하"});
|
||||
this.checkedListBox_Indicator.Location = new System.Drawing.Point(3, 18);
|
||||
this.checkedListBox_Indicator.Name = "checkedListBox_Indicator";
|
||||
this.checkedListBox_Indicator.Size = new System.Drawing.Size(823, 108);
|
||||
this.checkedListBox_Indicator.TabIndex = 0;
|
||||
//
|
||||
// TestBoardForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(853, 297);
|
||||
this.Controls.Add(this.simpleButton_Calc);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Name = "TestBoardForm";
|
||||
this.Text = "TestBoard";
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
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_Calc;
|
||||
}
|
||||
}
|
||||
172
Million Hunter/HunterSubForm/TestBoardForm.cs
Normal file
172
Million Hunter/HunterSubForm/TestBoardForm.cs
Normal file
@@ -0,0 +1,172 @@
|
||||
using DevExpress.XtraEditors;
|
||||
using Million;
|
||||
using Million.Data;
|
||||
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.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;
|
||||
|
||||
public TestBoardForm(ResultViewerForm resultViewerForm)
|
||||
{
|
||||
InitializeComponent();
|
||||
parentForm = resultViewerForm;
|
||||
analysisDatas = parentForm._analysisDatas;
|
||||
}
|
||||
|
||||
/// <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
|
||||
|
||||
MCandleTimeType = candleTypes.First();
|
||||
|
||||
//차트 Date Time 설정하기
|
||||
var StartDateInterval = 60;
|
||||
var EndDateInterval = 100;
|
||||
|
||||
foreach(var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = analysisData.StartDate;
|
||||
var endDate = analysisData.EndDate;
|
||||
|
||||
var chartStartDate = startDate;
|
||||
var chartEndDate = endDate;
|
||||
|
||||
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.M15:
|
||||
case CommonProperty.MCandleTimeType.M3:
|
||||
case CommonProperty.MCandleTimeType.M30:
|
||||
case CommonProperty.MCandleTimeType.M5:
|
||||
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);
|
||||
|
||||
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_Calc_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 구매 시점 이전 봉 40 1 볼린저 값 이하
|
||||
foreach (var analysisData in parentForm._analysisDatas)
|
||||
{
|
||||
var startDate = analysisData.StartDate;
|
||||
var endDate = analysisData.EndDate;
|
||||
|
||||
var 구매이전봉 = startDate;
|
||||
|
||||
//차트 Date Time 설정하기
|
||||
var StartDateInterval = -1;
|
||||
|
||||
var candleData = analysisData.CandleDatas[MCandleTimeType].Find(item => item.DateTime == 구매이전봉);
|
||||
var highValue = candleData.HighValue;
|
||||
|
||||
var bol402 = candleData.IndicatorDic["Bol402"]?.value ;
|
||||
|
||||
if(bol402 != null)
|
||||
{
|
||||
if (highValue < bol402) analysisData.Inclusion = true;
|
||||
else analysisData.Inclusion = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
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>
|
||||
@@ -41,6 +41,7 @@
|
||||
<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.XtraBars.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" />
|
||||
<Reference Include="DevExpress.XtraTreeList.v18.2, Version=18.2.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
@@ -126,6 +127,12 @@
|
||||
<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">
|
||||
@@ -143,6 +150,9 @@
|
||||
<EmbeddedResource Include="HunterMainForm.resx">
|
||||
<DependentUpon>HunterMainForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="HunterSubForm\TestBoardForm.resx">
|
||||
<DependentUpon>TestBoardForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
|
||||
@@ -46,6 +46,9 @@ namespace Million.Data
|
||||
// 기타 기입 내용
|
||||
public string Description { get; set; }
|
||||
|
||||
[field: NonSerialized]
|
||||
public Dictionary<CommonProperty.MCandleTimeType,List<CandleData>> CandleDatas { get; set; }
|
||||
|
||||
// 원본 데이터 참조
|
||||
public SearchResult OriginalSearchResult { get; set; }
|
||||
|
||||
|
||||
@@ -24,7 +24,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,
|
||||
|
||||
@@ -280,6 +280,12 @@
|
||||
<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" />
|
||||
@@ -335,6 +341,9 @@
|
||||
<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>
|
||||
|
||||
@@ -50,7 +50,7 @@ namespace Million.SubForm
|
||||
_chartIndicatorCoditionSetups = chartIndicatorCoditionSetups;
|
||||
|
||||
#region 차트 Date Time 설정하기
|
||||
var StartDateInterval = 10;
|
||||
var StartDateInterval = 60;
|
||||
var EndDateInterval = 100;
|
||||
|
||||
var startDate = analysisData.StartDate;
|
||||
|
||||
@@ -50,6 +50,562 @@ namespace Million.HunterSubForm.IndicatorSetupForm
|
||||
{
|
||||
_bolingerConditionSetup = new BolingerConditionSetup();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 지표 기본값 설정
|
||||
textEdit_Period.Text = @"40";
|
||||
textEdit_Squared.Text = @"1";
|
||||
|
||||
110
Million/SubForm/IndicatorSetupForm/RemoveTickUserForm.Designer.cs
generated
Normal file
110
Million/SubForm/IndicatorSetupForm/RemoveTickUserForm.Designer.cs
generated
Normal file
@@ -0,0 +1,110 @@
|
||||
|
||||
namespace Million.SubForm.IndicatorSetupForm
|
||||
{
|
||||
partial class RemoveTickUserForm
|
||||
{
|
||||
/// <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 Component 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.textEdit_Period = new DevExpress.XtraEditors.TextEdit();
|
||||
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
|
||||
this.labelControl2 = new DevExpress.XtraEditors.LabelControl();
|
||||
this.textEdit1 = new DevExpress.XtraEditors.TextEdit();
|
||||
this.listBoxControl1 = new DevExpress.XtraEditors.ListBoxControl();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_Period.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit1.Properties)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.listBoxControl1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textEdit_Period
|
||||
//
|
||||
this.textEdit_Period.Location = new System.Drawing.Point(52, 17);
|
||||
this.textEdit_Period.Name = "textEdit_Period";
|
||||
this.textEdit_Period.Properties.Mask.EditMask = "d";
|
||||
this.textEdit_Period.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
|
||||
this.textEdit_Period.Size = new System.Drawing.Size(100, 20);
|
||||
this.textEdit_Period.TabIndex = 3;
|
||||
//
|
||||
// labelControl1
|
||||
//
|
||||
this.labelControl1.Location = new System.Drawing.Point(14, 20);
|
||||
this.labelControl1.Name = "labelControl1";
|
||||
this.labelControl1.Size = new System.Drawing.Size(32, 14);
|
||||
this.labelControl1.TabIndex = 2;
|
||||
this.labelControl1.Text = "길이 : ";
|
||||
//
|
||||
// labelControl2
|
||||
//
|
||||
this.labelControl2.Location = new System.Drawing.Point(14, 46);
|
||||
this.labelControl2.Name = "labelControl2";
|
||||
this.labelControl2.Size = new System.Drawing.Size(32, 14);
|
||||
this.labelControl2.TabIndex = 2;
|
||||
this.labelControl2.Text = "길이 : ";
|
||||
//
|
||||
// textEdit1
|
||||
//
|
||||
this.textEdit1.Location = new System.Drawing.Point(52, 43);
|
||||
this.textEdit1.Name = "textEdit1";
|
||||
this.textEdit1.Properties.Mask.EditMask = "d";
|
||||
this.textEdit1.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
|
||||
this.textEdit1.Size = new System.Drawing.Size(100, 20);
|
||||
this.textEdit1.TabIndex = 3;
|
||||
//
|
||||
// listBoxControl1
|
||||
//
|
||||
this.listBoxControl1.Location = new System.Drawing.Point(52, 69);
|
||||
this.listBoxControl1.Name = "listBoxControl1";
|
||||
this.listBoxControl1.Size = new System.Drawing.Size(214, 118);
|
||||
this.listBoxControl1.TabIndex = 4;
|
||||
//
|
||||
// RemoveTickUserForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.listBoxControl1);
|
||||
this.Controls.Add(this.textEdit1);
|
||||
this.Controls.Add(this.labelControl2);
|
||||
this.Controls.Add(this.textEdit_Period);
|
||||
this.Controls.Add(this.labelControl1);
|
||||
this.Name = "RemoveTickUserForm";
|
||||
this.Size = new System.Drawing.Size(279, 190);
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit_Period.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textEdit1.Properties)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.listBoxControl1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private DevExpress.XtraEditors.TextEdit textEdit_Period;
|
||||
private DevExpress.XtraEditors.LabelControl labelControl1;
|
||||
private DevExpress.XtraEditors.LabelControl labelControl2;
|
||||
private DevExpress.XtraEditors.TextEdit textEdit1;
|
||||
private DevExpress.XtraEditors.ListBoxControl listBoxControl1;
|
||||
}
|
||||
}
|
||||
21
Million/SubForm/IndicatorSetupForm/RemoveTickUserForm.cs
Normal file
21
Million/SubForm/IndicatorSetupForm/RemoveTickUserForm.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using DevExpress.XtraEditors;
|
||||
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.SubForm.IndicatorSetupForm
|
||||
{
|
||||
public partial class RemoveTickUserForm : DevExpress.XtraEditors.XtraUserControl
|
||||
{
|
||||
public RemoveTickUserForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
120
Million/SubForm/IndicatorSetupForm/RemoveTickUserForm.resx
Normal file
120
Million/SubForm/IndicatorSetupForm/RemoveTickUserForm.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>
|
||||
Reference in New Issue
Block a user