예스스탁
예스스탁 답변
2020-02-04 15:51:53
안녕하세요
예스스탁입니다.
지표를 계산하기 위해서는 차트객체를 이용하셔야 합니다.
종목객체는 실시간으로 시세를 주는 객체로 일정주기가 없습니다.
차트객체에는 지표가 적용되면 차트객체의 함수로 지표값을 불러올수 있습니다.
별도로 수식안에서 지표를 계산할필요가 없고
차트에 지표를 적용해 해당 값을 불러오면 됩니다.
아래와 같이 지표를 지정해 차트를 생성하고
이후에 CT.GetIndicatorData함수로 지표명 지정하고 plot넘버 지정해 값 불러와 사용하시면 됩니
var CT;
function Main_OnStart()
{
//MarketData1.code종목 30분봉 1000개, 수정주가X,갭보정X
var CTSet = new ReqChartItem(MarketData1.code,30,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false);
//차트에 적용할 지표명
var IDSet = new Array(new IndicatorInfo("단순이동평균2")); //지표명
//차트객체 요청
Main.ReqChartEx(CTSet,null, IDSet);
}
//차트가 만들어지면
function Main_OnRcvChartEx(ChartEx)
{
//지정한 변수에 차트객체 저장
CT = ChartEx;
Main.MessageList("단순이동평균2지표 plot1 현재값 : ",CT.GetIndicatorData("단순이동평균2",1,0));
Main.MessageList("단순이동평균2지표 plot2 현재값 : ",CT.GetIndicatorData("단순이동평균2",2,0));
if (CT.GetIndicatorData("단순이동평균2",1,0) > CT.GetIndicatorData("단순이동평균2",2,0))
Main.MessageList("정배열");
if (CT.GetIndicatorData("단순이동평균2",1,0) < CT.GetIndicatorData("단순이동평균2",2,0))
Main.MessageList("역배열");
}
즐거운 하루되세요
> ywesry 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
> 안녕하세요.
스팟에서 확장차트 객체를 써보고 싶은데, 개념이 부족하여 문의드립니다.
예를들어, 어떤 종목의 Marketdata를 수식 안에서 새로 생성을 한 경우,
이 종목의 30분봉 이동평균선을 구하고 싶으면 확장차트 객체 개념을 이용하는 것 같습니다.
더 나아가, 30분봉 이동평균선(5일선,20일선)이 정배열인지 또는 역배열인지 확인하고싶은데
해당 내용의 수식을 알려주시면 큰 도움 되겠습니다.
감사합니다.