계좌에 있는 종목들의 전일 고가나 저가를 참조할 수 있는지 궁금합니다.
답변 1
예스스탁
예스스탁 답변
2020-06-24 16:13:13
안녕하세요
예스스탁입니다.
종목의 시세나 호가, 과거일의 값을 사용하기 위해서는
종목객체가 만들어 져야 합니다.
아래수식은 계좌종목에 대해 종목객체를 생성하는 로직입니다.
잔고종목을 순서대로 종목객체를 요청해
MK라맨 배열변수에 순서대로 저장하고 사용은 아래와 같이
지정해 값을 가져와 사용합니다.
MK[0].GetPrevHigh(1)
MK[0].GetPrevLow(1)
MK[1].GetPrevHigh(1)
MK[1].GetPrevLow(1)
참고하셔서 사용하시는 수식에 응용해 사용하시기 바랍니다.
스크립트객체화면 설정
계좌객체 추가 --> 속성에서 객체명은 Account1, 주문낼 계좌번호 지정
var List = [];
var MK = [];
var req,ItemCode;
//스팟 시작
function Main_OnStart()
{
Main.MessageList("Start")
//계좌의 보유종목수
var num = Account1.GetTheNumberOfBalances();
Main.MessageList("보유종목수 : ",num);
//기존 보유종목이 한종목 이상일떄 종목코드를 List에 저장
if (num > 0)
{
//기존 보유종목의 종목코드를 List에 저장
for (var i = 0; i < num; i++)
{
Account1.SetBalance(i);
if (Account1.Balance.count > 0)
{
List.push(Account1.Balance.code);
}
}
Main.MessageList("List : ",List);
}
//List가 1종목 이상이면 순서대로 종목객체를 요청
if (List.length > 0)
{
req = 0
Main.ReqMarketData(List[req],1,0);//(종목코드,전일기준일간데이타갯수,투자주체별데이타갯수)
Main.MessageList("종목객체요청 : ",List[req]);
}
}
function Main_OnRcvMarketData(MarketData)
{
if (List[req] == MarketData.code)
{
Main.MessageList("종목객체생성 : ",MarketData.code);
MK[req] = MarketData;
Main.MessageList("전일고가:",MK[req].GetPrevHigh(1),"전일저가 : ",MK[req].GetPrevLow(1));
req = req+1;
if (req < List.length)
{
Main.ReqMarketData(List[req],1,0);//(종목코드,전일기준일간데이타갯수,투자주체별데이타갯수)
Main.MessageList("종목객체요청 : ",List[req]);
}
else
{
Main.MessageList("종목객체생성완료");
}
}
}
즐거운 하루되세요
> ruach 님이 쓴 글입니다.
> 제목 : 종목의 전일 값 참조
> 계좌에 있는 종목들의 전일 고가나 저가를 참조할 수 있는지 궁금합니다.