안녕하세요
예스스팟에서 실시간 채결량을 확인하고 싶은데요.
1) 실시간으로 받아오기 위해서는 Main_OnU*pdateMarket(sItemCode,U*pdateID) 을 쓰면 될까요?
2) 체결량은 가져오는 값은 MarketData1.volume 이 맞을까요?
3) 매수에 의한 체결량인지, 매도에 의한 체결량인지는 어떤방법으로 구분할수 있을까요?
4) 종목검색 - Main.ReqMarketData - Main_OnU*pdateMarket 를 통해 받아오는 경우,
Main_OnU*pdateMarket(sItemCode,U*pdateID) 에서 입력변수로 종목검색 객체를
받아오지 않으니 체결량을 끌고오기 어렵습니다.
- 전역변수로 var MD; 선언하고
- OnRcvMarketData 이벤트에서 값을 넘기고,
function Main_OnRcvMarketData(MarketData)
MD = MarketData;
- Main_OnU*pdateMarket 이벤트에서 값을 받아오면
MessageLog("체결량 ="+MD.volume);
- 에러가 발생합니다.
"TypeError: Cannot read property 'volume' of undefined
어떻게 처리하면 좋을지 조언 부탁드립니다. ㅠㅠ
답변 1
예스스탁
예스스탁 답변
2021-01-18 16:55:37
안녕하세요
예스스탁입니다.
1
예 맞습니다.
스크립트객체화면에서 종목객체를 설정하거나
수식안에서 Main.ReqMarketData함수로 종목객체 생성하면
해당 종목의 시세가 발생하면 Main_OnU*pdateMarket(sItemCode,U*pdateID)이벤트가 발생하게 됩니다.
2
예 맞습니다.
3
체결량은 매수와 매도로 구분되지 않습니다.
4
올려주신 내용은 MD에 종목객체가 제대로 만들어지 못해서 발생하는 내용입니다.
종목검색후에 검색된 종목이 다수이면 요청할때 종목코드 확인해 보시기 바랍니다.
수식에서 잘못 할당되는 부분이 있는것 같습니다.
아래 코드를 참고하시기 바랍니다.
var ItemList = [],MD = [];
var req;
function Main_OnStart()
{
Main.MessageList("Start");
Main.ReqPowerSearch("hancom25");
}
function Main_OnRcvItemList(aItemList, nCount)
{
ItemList = aItemList;
if (ItemList.length > 0)
{
req = 0;
Main.MessageList("종목객체요청 : ",req,ItemList[req]);
Main.ReqMarketData(ItemList[req]);
}
}
function Main_OnRcvMarketData(MarketData)
{
if (MarketData.code == ItemList[req])
{
Main.MessageList("종목객체생성:",req,MarketData.code);
MD.push(MarketData);
req = req+1;
if (req < ItemList.length)
{
Main.MessageList("종목객체요청 : ",req,ItemList[req]);
Main.ReqMarketData(ItemList[req]);
}
else
{
Main.MessageList("종목객체생성완료");
}
}
}
function Main_OnUp*dateMarket(sItemCode, lUp*dateID)
{
if (lUp*dateID == 30001)
{
for (var i = 0; i < MD.length; i++)
{
if (sItemCode == MD[i].code)
{
Main.MessageList(sItemCode,MD[i].volumeTotal,MD[i].volume);
}
}
}
}
즐거운 하루되세요
> edan 님이 쓴 글입니다.
> 제목 : 수식 관련 문의
> 안녕하세요
예스스팟에서 실시간 채결량을 확인하고 싶은데요.
1) 실시간으로 받아오기 위해서는 Main_OnU*pdateMarket(sItemCode,U*pdateID) 을 쓰면 될까요?
2) 체결량은 가져오는 값은 MarketData1.volume 이 맞을까요?
3) 매수에 의한 체결량인지, 매도에 의한 체결량인지는 어떤방법으로 구분할수 있을까요?
4) 종목검색 - Main.ReqMarketData - Main_OnU*pdateMarket 를 통해 받아오는 경우,
Main_OnU*pdateMarket(sItemCode,U*pdateID) 에서 입력변수로 종목검색 객체를
받아오지 않으니 체결량을 끌고오기 어렵습니다.
- 전역변수로 var MD; 선언하고
- OnRcvMarketData 이벤트에서 값을 넘기고,
function Main_OnRcvMarketData(MarketData)
MD = MarketData;
- Main_OnU*pdateMarket 이벤트에서 값을 받아오면
MessageLog("체결량 ="+MD.volume);
- 에러가 발생합니다.
"TypeError: Cannot read property 'volume' of undefined
어떻게 처리하면 좋을지 조언 부탁드립니다. ㅠㅠ