커뮤니티

수정부탁드려요

프로필 이미지
아무다
2022-11-23 01:46:16.0
1266
글번호 225743
답변완료
밑에 수식에서 주식수를 지정해서 사는 것을 금액 10만원치 지정하고 싶은데 도와주세요 //스팟 첫 실행시 function Main_OnStart() { //1번 타이머, 60초 Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { //종목검색 수행 Main.ReqPowerSearch("2") } } //종목검색 완료 function Main_OnRcvItemList(aItemList, nCount) { //1종목 이상 검색되면 if (nCount >= 1) { //리스트 첫종목부터 마지막종목까지 순차적으로 //1번 타이머 동작 for (var i = 0; i < nCount; i++) { //잔고를 셋팅 Account1.SetBalance(aItemList[i],0); //보유수량이 없으면 if (Account1.Balance.count < 1) { //매수주문 Account1.OrderBuy(aItemList[i], 1,0,1); } } } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-12-22 09:14:44.0

안녕하세요 예스스탁입니다. 현재 주문은 시장가로 나가게 되어 있습니다. 수량을 산정하기 위해서는 현재가등 가격정보가 있어야 하므로 종목검색 후 각 종목의 종목객체를 가져와서 10만원을 현재가로 나누어 수량을 산정하게 작성해 드립니다. 주문은 기존과 같이 시장가로 나가게 됩니다. var 매수금 = 100000; var OrderList = []; var MKList = []; var req; function Main_OnStart() { Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { //종목검색 수행 //Main.ReqPowerSearch("2"); Main.ReqPowerSearch("내검색1"); } if (nEventID == 2) { Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvItemList(aItemList, nCount) { 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, 타이머간격*1000); } else { req = 0; Main.ReqMarketData(OrderList[req]); } } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == OrderList[req]) { MKList.push(MarketData); Account1.OrderBuy(MarketData.code,Math.floor(매수금/ MarketData.current),0,1); req = req+1; if (req < OrderList.length) { var aa = Main.ReqMarketData(OrderList[req]); if (aa == -1) { Main.SetTimer(2, 15000); } } else { Main.SetTimer(1, 2000); } } } 즐거운 하루되세요 > 아무다 님이 쓴 글입니다. > 제목 : 수정부탁드려요 > 밑에 수식에서 주식수를 지정해서 사는 것을 금액 10만원치 지정하고 싶은데 도와주세요 //스팟 첫 실행시 function Main_OnStart() { //1번 타이머, 60초 Main.SetTimer(1, 2000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { //종목검색 수행 Main.ReqPowerSearch("2") } } //종목검색 완료 function Main_OnRcvItemList(aItemList, nCount) { //1종목 이상 검색되면 if (nCount >= 1) { //리스트 첫종목부터 마지막종목까지 순차적으로 //1번 타이머 동작 for (var i = 0; i < nCount; i++) { //잔고를 셋팅 Account1.SetBalance(aItemList[i],0); //보유수량이 없으면 if (Account1.Balance.count < 1) { //매수주문 Account1.OrderBuy(aItemList[i], 1,0,1); } } } }