Home 소개       다운로드       온라인 설명서      주식차트    Q & A     Blog    

히포차트 4.3 - 스토캐스틱(Stochastics) 주식차트 보조지표







주식차트에 자주 활용되는 보조지표인 스토캐스틱 Fast 라인을 C#, vb.net 코드로 작성해보았습니다.

코드에 사용된 데이터가 필요하신 경우는 별도 고객지원에서 문의하시기 바랍니다.




Candle chart  Candle chart2  주식 캔들 차트 - 최고가, 최저가, 특정 봉 정보  히포차트 4.1 - 주식 차트 활용 (틱 배경색), Area라인 차트  히포차트 4.3 - 주식 봉 차트 HTS 프로그램 개발하기  키움증권 OpenAPI 로 제작된 실시간 주식 차트 프로그램  [히포차트 4.3] - 주식 캔들 차트 보조지표 일목균형표  히포차트 4.3 - 주식차트 20일 이동평균선 그리기  히포차트 4.3 - 주식차트 보조지표 MACD, 시그널, 오실레이터, 지수이동평균선  히포차트 4.3 - 주식차트 보조지표 볼린저밴드(Bollinger Band) 그리기  히포차트 4.3 - 스토캐스틱(Stochastics) 주식차트 보조지표  히포차트 4.3 - 주식 차트 보조지표 RSI 공식적용 그래프  


C#
 
HippoEngine en = new HippoEngine();
en.DataType = DataSourceType.Excel;
en.Query = "select * from [삼성전자2$]";
en.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`C:\삼성전자2.xlsx`;Extended Properties=`Excel 12.0;HDR=YES`";

SeriesList sList = en.GetSeriesListOfStock(DataSourceType.Excel, "Date", "Start", "Close", "Low", "High");

sList.AxisFactor.YAxis.Direction = AxisDirection.Right;
sList.AxisFactor.YAxis.IsZeroStartScale = false;
sList.GraphArea.Grid.IsBackGridColor = false;

sList.AxisFactor.AxisItems.Add(new Axis(AxisType.Ytype));
sList.AxisFactor.AxisItems[0].Decimalpoint = 0;

// 스토캐스틱
sList.SeriesCollection.Add(new Series());
sList.SeriesCollection[1].ChartType = ChartType.Line;
sList.SeriesCollection[1].Points.Width = 0;
sList.SeriesCollection[1].Line.LineWidth = 2;
sList.SeriesCollection[1].SeriesColor = Color.Gray;
sList.SeriesCollection[1].AxisIndex = 1;

int nCnt = sList.SeriesCollection[0].items.Count;

//MACD
for(int i = 0; i < nCnt; i++)
{
SeriesItem itemStochastic = new SeriesItem();
itemStochastic.Name = sList.SeriesCollection[0].items[i].Name;
try
{
double max = double.MinValue;
double min = double.MaxValue;

for(int a = 0; a < 15; a++)
{
if (max <= sList.SeriesCollection[0].items[i - a].HighValue)
{
max = sList.SeriesCollection[0].items[i - a].HighValue;
}
if (min >= sList.SeriesCollection[0].items[i - a].LowValue)
{
min = sList.SeriesCollection[0].items[i - a].LowValue;
}
}

itemStochastic.YValue = ((sList.SeriesCollection[0].items[i].YValue - min) / (max - min)) * 100;
}
catch { itemStochastic.YValue = double.NaN; }

sList.SeriesCollection[1].items.Add(itemStochastic);
}

this.hHippoChart1.Designer.InnerBackColor = Color.LightGray;
this.hHippoChart1.Titles.Label.Text = "히포차트 주식 - 스토캐스틱 보조지표";
this.hHippoChart1.LegendBox.Visible = false;
this.hHippoChart1.SeriesListDictionary.Add(sList);
this.hHippoChart1.DrawChart();


VB
 
Dim en As New. HippoEngine()
en.DataType = DataSourceType.Excel
en.Query = "select * from [삼성전자2$]"
en.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`C:\삼성전자2.xlsx`;Extended Properties=`Excel 12.0;HDR=YES`"

Dim sList As SeriesList = en.GetSeriesListOfStock(DataSourceType.Excel, "Date", "Start", "Close", "Low", "High")

sList.AxisFactor.YAxis.Direction = AxisDirection.Right
sList.AxisFactor.YAxis.IsZeroStartScale = False
sList.GraphArea.Grid.IsBackGridColor = False

sList.AxisFactor.AxisItems.Add(New Axis(AxisType.Ytype))
sList.AxisFactor.AxisItems(0).Decimalpoint = 0

` 스토캐스틱
sList.SeriesCollection.Add(New Series())
sList.SeriesCollection(1).ChartType = ChartType.Line
sList.SeriesCollection(1).Points.Width = 0
sList.SeriesCollection(1).Line.LineWidth = 2
sList.SeriesCollection(1).SeriesColor = Color.Gray
sList.SeriesCollection(1).AxisIndex = 1

Dim nCnt As Integer = sList.SeriesCollection(0).items.Count

`MACD
For i As Integer = 0 To nCnt - 1
Dim itemStochastic As New. SeriesItem()
itemStochastic.Name = sList.SeriesCollection(0).items(i).Name
Try
Dim max As Double = Double.MinValue
Dim min As Double = Double.MaxValue

For a As Integer = 0 To 14
If max <= sList.SeriesCollection(0).items(i - a).HighValue Then
max = sList.SeriesCollection(0).items(i - a).HighValue
End If
If min >= sList.SeriesCollection(0).items(i - a).LowValue Then
min = sList.SeriesCollection(0).items(i - a).LowValue
End If
Next

itemStochastic.YValue = ((sList.SeriesCollection(0).items(i).YValue - min) / (max - min)) * 100
Catch
itemStochastic.YValue = Double.NaN
End Try

sList.SeriesCollection(1).items.Add(itemStochastic)
Next

Me.hHippoChart1.Designer.InnerBackColor = Color.LightGray
Me.hHippoChart1.Titles.Label.Text = "히포차트 주식 - 스토캐스틱 보조지표"
Me.hHippoChart1.LegendBox.Visible = False
Me.hHippoChart1.SeriesListDictionary.Add(sList)
Me.hHippoChart1.DrawChart()


※ 히포차트 샘플 코드는 버전별로 상이한 결과를 나타낼 수 있습니다.

이 코드 관련 문의 사항은 페이스북 리플을 달아주시거나 아래 이메일로 이 페이지 주소와 함께 문의주세요.

helpdesk@hippochart.com





Copyright © 2009-2016, HippoChart. Inc.  All Rights Reserved.