커뮤니티

문의 드립니다

프로필 이미지
pmcj
2026-04-29 10:01:46
71
글번호 231817
답변완료

이 설정이 잔고에 동일 종목이 있는 경우 재매수가 안되도록 설정이 되어 있는 상태인가요?

재매수가 계속 가능하도록 수정을 하고 싶습니다.


var timer5 = 5; //5초

var 매수금 = 100000;

var OrderList = [];

var MKList = [];

var req;


function Main_OnStart()

{

// 타이머 간격 설정

Main.SetTimer(1, timer5*1000);

}



function Main_OnTimer(nEventID)

{

var d = new Date();

YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate();

HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();


if (nEventID == 1 && HHMMSS >= 90300 && HHMMSS < 151500)

{

//종목검색 수행

Main.ReqPowerSearch("급 100 P"); //파워종목검색명

Main.MessageList("전고점돌파 종목 검색");


}


if (nEventID == 2)

{

Main.ReqMarketData(Orderlist[req]);

}

}




function Main_OnRcvItemList(aItemList, nCount, aValues)

{

Main.KillTimer(1);


OrderList = [];

if (nCount >= 1)

{

if (MKList.length == 0)

{

OrderList = aItemList;

}

else

{

for (var a = 0; a < nCount; a++)

{

var Add = true;

for (var b = 0; b < MKList.length; b++)

{

if (aItemList[a] == MKList[b].code)

{

Add = false;

}

}

if (Add == true)

{

OrderList.push(aItemList[a]);

}

}


}

}


if (OrderList.length ==0)

{

Main.SetTimer(1, timer5*1000);

}

else

{

req = 0;

Main.ReqMarketData(OrderList[req]);

}

}


function Main_OnRcvMarketData(MarketData)

{

if (MarketData.code == OrderList[req])

{

MKList.push(MarketData);


Account1.OrderBuy(MarketData.code,1,0,1); // 1주 시장가 주문

Main.MessageList(MarketData.code + " 주식을 매수합니다.");


req = req+1;

if (req < OrderList.length)

{

var aa = Main.ReqMarketData(OrderList[req]);

if (aa == -1)

{

Main.SetTimer(2, 15000);

}

}

else

{

Main.SetTimer(1, timer5*1000);

}

}

}

답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-05-12 14:57:40

안녕하세요 예스스탁입니다. 올리신 수식은 잔고보유 여부하고는 관계가 없고 스팟 실행 후 검색되어 한번 매수한 종목은 이후에는 매수를 안하게 되어 있습니다. 검색될 때 마다 추가 매수를 하고자 하시면 아래식 이용하시면 됩니다. var timer5 = 5; //5초 var 매수금 = 100000; var OrderList = []; var MKList = []; var req; function Main_OnStart() { // 타이머 간격 설정 Main.SetTimer(1, timer5*1000); } function Main_OnTimer(nEventID) { var d = new Date(); YYYYMMDD = d.getFullYear()*10000+(d.getMonth()+1)*100+d.getDate(); HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 90300 && HHMMSS < 151500) { //종목검색 수행 //Main.ReqPowerSearch("급 100 P"); //파워종목검색명 Main.ReqPowerSearch("내검색"); //파워종목검색명 Main.MessageList("전고점돌파 종목 검색"); } if (nEventID == 2) { Main.ReqMarketData(Orderlist[req]); } } function Main_OnRcvItemList(aItemList, nCount, aValues) { Main.KillTimer(1); OrderList = []; if (nCount >= 1) { if (MKList.length == 0) { OrderList = aItemList; } else { for (var a = 0; a < nCount; a++) { var Add = true; for (var b = 0; b < MKList.length; b++) { if (aItemList[a] == MKList[b].code) { Account1.OrderBuy(MKList[b].code,1,0,1); // 1주 시장가 주문 Main.MessageList(MKList[b].code + " 주식을 추가 매수합니다."); Add = false; } } if (Add == true) { OrderList.push(aItemList[a]); } } } } if (OrderList.length ==0) { Main.SetTimer(1, timer5*1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == OrderList[req]) { MKList.push(MarketData); Account1.OrderBuy(MarketData.code,1,0,1); // 1주 시장가 주문 Main.MessageList(MarketData.code + " 주식을 매수합니다."); req = req+1; if (req < OrderList.length) { var aa = Main.ReqMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, timer5*1000); } } } 즐거운 하루되세요