■ MoneyFlowFunction 클래스를 사용해 MFI(Money Flow Index) 차트를 그리는 방법을 보여준다.
▶ MainForm.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
using System; using System.Windows.Forms; using Steema.TeeChart; using Steema.TeeChart.Editors; using Steema.TeeChart.Functions; using Steema.TeeChart.Styles; namespace TestProject { /// <summary> /// 메인 폼 /// </summary> public partial class MainForm : Form { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - MainForm() /// <summary> /// 생성자 /// </summary> public MainForm() { InitializeComponent(); #region 축 1을 생성한다. Axis axis1 = new Axis(this.tChart.Chart); axis1.Horizontal = false; axis1.OtherSide = true; axis1.StartEndPositionUnits = PositionUnits.Percent; axis1.StartPosition = 60; axis1.EndPosition = 80; #endregion #region 축 2를 생성한다. Axis axis2 = new Axis(this.tChart.Chart); axis2.Horizontal = false; axis2.OtherSide = true; axis2.StartEndPositionUnits = PositionUnits.Percent; axis2.StartPosition = 80; axis2.EndPosition = 100; #endregion #region 캔들 시리즈를 생성한다. Candle candle = new Candle(this.tChart.Chart); #endregion #region 볼륨 시리즈를 생성한다. Volume volume = new Volume(this.tChart.Chart); volume.CustomVertAxis = axis1; #endregion #region 라인 시리즈를 생성한다. Line line = new Line(this.tChart.Chart); line.CustomVertAxis = axis2; line.DataSource = candle; #endregion #region 머니 플로우 함수를 생성한다. MoneyFlowFunction moneyFlowFunction = new MoneyFlowFunction(this.tChart.Chart); moneyFlowFunction.CMFStyle = CMFStyle.Histogram; moneyFlowFunction.Series = line; moneyFlowFunction.Volume = volume; #endregion #region 티차트를 설정한다. this.tChart.Axes.Left.StartPosition = 0; this.tChart.Axes.Left.EndPosition = 60; this.tChart.Axes.Custom.Add(axis2); this.tChart.Axes.Custom.Add(axis1); #endregion candle.FillSampleValues(100); volume.FillSampleValues(100); refreshButton.Click += refreshButton_Click; editButton.Click += editButton_Click; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Private #region 갱신하기 버튼 클릭시 처리하기 - refreshButton_Click(sender, e) /// <summary> /// 갱신하기 버튼 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void refreshButton_Click(object sender, EventArgs e) { this.tChart[0].FillSampleValues(100); } #endregion #region 편집 버튼 클릭시 처리하기 - editButton_Click(sender, e) /// <summary> /// 편집 버튼 클릭시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void editButton_Click(object sender, EventArgs e) { SeriesEditor.ShowEditor(this.tChart[2], ChartEditorTabs.SeriesDataSource); } #endregion } } |