커뮤니티

부탁드려요

프로필 이미지
아무다
2022-08-29 06:20:53.0
1164
글번호 225709
답변완료
아래수식에서 매수 금액을 n 만큼 지정할수 있게 도와주세요 부탁드려요 머리가 안 돌아가 이것 저것 짜집기해도 안 되네요 //스팟 첫 실행시 function Main_OnStart() { //1번 타이머, 60초 Main.SetTimer(1, 5000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { //종목검색 수행 Main.ReqPowerSearch("3") } } //종목검색 완료 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 == 0) { //매수주문 Account1.OrderBuy(aItemList[i], 1,0,1); } } } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-09-15 14:50:23.0

안녕하세요 예스스탁입니다. 금액을 지정해 주문하기 위해서는 수량계산을 하기 위해 검색된 종목의 종목객체들이 필요합니다. 아래 내용을 참고하셔서 수정보완해 사용하시기 바랍니다. 아래 흐름으로 동작합니다. 종목검색 --> 검색된 종목 중 스팟시작 후 주문내지 않은 종목만 선별(OrderList) --> OrderList의 종목에 대해 종목객체 생성(MK) --> 종목객체 생성되면 매도1호가로 금액을 나누어 수량산정해 주문 기준식이 시장가로 주문되게 되어 있어 수량산정은 매도1호가로 하고 주문은 시장가로 집행됩니다. Account1.OrderBuy(MarketData.code,Math.floor(n/ MarketData.Ask(1)),MarketData.Ask(1),0); 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. var 타이머간격 = 60;//초 var OrderList = []; var MKList = []; var req; function Main_OnStart() { //1번 타이머, 60초 Main.SetTimer(1, 타이머간격*1000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { //종목검색 수행 Main.ReqPowerSearch("3") } 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(n/ MarketData.Ask(1)),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, 타이머간격*1000); } } } 즐거운 하루되세요 > 아무다 님이 쓴 글입니다. > 제목 : 부탁드려요 > 아래수식에서 매수 금액을 n 만큼 지정할수 있게 도와주세요 부탁드려요 머리가 안 돌아가 이것 저것 짜집기해도 안 되네요 //스팟 첫 실행시 function Main_OnStart() { //1번 타이머, 60초 Main.SetTimer(1, 5000); } function Main_OnTimer(nEventID) { if (nEventID == 1) { //종목검색 수행 Main.ReqPowerSearch("3") } } //종목검색 완료 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 == 0) { //매수주문 Account1.OrderBuy(aItemList[i], 1,0,1); } } } }