안녕하세요.
파워종목검색으로 종목검색후 매매까지 잘되었습니다.
//종목검색 완료되어 리스트(검색된 종목코드) 수신
function Main_OnRcvItemList(aItemList, nCount)
{
//검색된 종목코드를 저장
List = aItemList;
//검색된 종목수 저장
ListCnt = nCount;
//종목코드 디버깅창에 출력
Main.MessageList("전체종목코드",List);
//검색된 종목에 대해 종목객체 요청
for (var i = 0; i < nCount; i++)
{
Main.ReqMarketData(List[i], 0, 0);
}
if (ListCnt >= 1){Main.KillTimer(1);}
}
한번이 아니라 계속 검색을 하고 싶은데요.
예제 하나 부탁드립니다~
답변 1
예스스탁
예스스탁 답변
2018-08-13 15:36:01
안녕하세요
예스스탁입니다.
1
1분단위로 종목검색하고
종목검색 후 보유종목이 아니고 미체결도 없으면
백만원어치 매수하는 내용입니다.
2
스팟은 단순 가이드 입니다.
아래 내용 참고하셔서 이후 내용 수정보완해 완성하시기 바랍니다.
3
var List = [];
var req;
function Main_OnStart()
{
Main.SetTimer(1, 60000)//1번타이머 60초 셋팅
}
//타이머 동작
function Main_OnTimer(nEventID)
{
//1번 타이머이면
if (nEventID == 1)
{
//타이머 종료
Main.KillTimer(1);
Main.ReqPowerSearch("#test");
}
//2번 타이머이면
if (nEventID == 2)
{
//타이머 종료
Main.KillTimer(2);
//다시요청
Main.ReqMarketData(List[req],0,0);
}
}
//종목검색완료
function Main_OnRcvItemList(aItemList, nCount)
{
//검색된 종목의 종목코드 저장
List = aItemList;
if (List.length > 0)
{
req = 0;
//리스트의 첫종목에 대해 종목객체 요청
Main.ReqMarketData(List[req],0,0);
}
}
function Main_OnRcvMarketData(MarketData)
{
//수신된 종목객체가 방금요청한 종목이 맞으면
if (MarketData.code == List[req])
{
var UF = false;
var num = Account1.GetTheNumberOfUnfills()
for (var i = 0; i < num; i++)
{
Account1.SetUnfillIndex(i);
if (Account1.Unfill.code == MarketData.code)
{
UF = true;
}
}
//잔고셋팅
Account1.SetBalance(MarketData.code , 0);
//해당종목에 대한 미체결이 없고 보유한 잔고가 없으면
if (UF == false && Account1.Balance.count == 0)
{
//백만원 매수
var vol = Math.floor(1000000/MarketData.current)
Account1.OrderBuy(MarketData.code, vol,0,1);
}
Main.RemoveMarketData(MarketData);
req = req+1;
if (req < List.length)
{
//다음종목 종목객체 요청
var S = Main.ReqMarketData(List[req],0,0);
//종목요청제한에 걸리면
if (S == -1)
{
Main.SetTimer(2, 20000)//2번타이머 20초 셋팅
}
}
else
{
Main.MessageList("종목객체 요청완료")
//타이머 다시셋팅
Main.SetTimer(1, 60000)//1번타이머 60초 셋팅
}
}
}
즐거운 하루되세요
> 오토 님이 쓴 글입니다.
> 제목 : 종목검색 문의
> 안녕하세요.
파워종목검색으로 종목검색후 매매까지 잘되었습니다.
//종목검색 완료되어 리스트(검색된 종목코드) 수신
function Main_OnRcvItemList(aItemList, nCount)
{
//검색된 종목코드를 저장
List = aItemList;
//검색된 종목수 저장
ListCnt = nCount;
//종목코드 디버깅창에 출력
Main.MessageList("전체종목코드",List);
//검색된 종목에 대해 종목객체 요청
for (var i = 0; i < nCount; i++)
{
Main.ReqMarketData(List[i], 0, 0);
}
if (ListCnt >= 1){Main.KillTimer(1);}
}
한번이 아니라 계속 검색을 하고 싶은데요.
예제 하나 부탁드립니다~