커뮤니티

예스 스팟

프로필 이미지
님이랑
2025-02-21 21:56:54.0
311
글번호 226210
답변완료
var 타이머간격 = 3; //5초 var 매수금 = 1000000; var OrderList = []; var MKList = []; var MKOD = []; var req; function Main_OnStart() { //1번 타이머, 5초 Main.SetTimer(1, 타이머간격*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 >= 90000 && HHMMSS < 151500) { //종목검색 수행 Main.ReqPowerSearch("CC") } 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); MKOD.push(0); //Account1.OrderBuy(MarketData.code,1,0,1); //1주를 시장가 주문 // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); //10만원 시장가 주문 Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0); //10만원 지정가 주문 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. 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); } } } 매수후 -1%하락하면 추가매수 수식 추가 부탁 드립니다
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-02-27 16:59:21.0

안녕하세요 예스스탁입니다. 아래 가이드 수식 참고하시기 바랍니다. 영문 업데이트가 게시판 금칙어라 Up*date와 같이 중간에 *이 삽입되어 있습니다. 수식 하단의 종목객체 업데이트 이벤트에서 *를 삭제하셔야 합니다. var 타이머간격 = 3; //5초 var 매수금 = 1000000; var OrderList = []; var MKList = []; var MKOD = [],MKCC = []; var req; function Main_OnStart() { //1번 타이머, 5초 Main.SetTimer(1, 타이머간격*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 >= 90000 && HHMMSS < 151500) { //종목검색 수행 Main.ReqPowerSearch("CC") } 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); //첫매수 의미로 1을 저장 MKOD.push(1); //첫매수시 매도1호가를 저장 MKCC.push(MarketData.Ask(1)); //Account1.OrderBuy(MarketData.code,1,0,1); //1주를 시장가 주문 // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); //10만원 시장가 주문 Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0); //10만원 지정가 주문 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. 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); } } } function Main_OnUp*dateMarket(sItemCode, lUp*dateID)//*삭제 { //각 종목객체 체결시세 받을때 마다 if (lUp*dateID == 20001 && MKList.length > 0)//*삭제 { for (var i = 0; i < MKList.length; i++) { //첫매수만 한 상태이면 첫매수가 -1%면 추가매수 if (MKOD[i] == 1 && MKList[i].current <= MKCC[i]*0.99 && sItemCode == MKList[i].code) { //추가매수했다는 의미로 2로 변경 MKOD[i] = 2; Account1.OrderBuy(MKList[i].code,Math.floor(매수금/MKList[i].Ask(1)),MKList[i].Ask(1),0); } } } } 즐거운 하루되세요 > 님이랑 님이 쓴 글입니다. > 제목 : 예스 스팟 > var 타이머간격 = 3; //5초 var 매수금 = 1000000; var OrderList = []; var MKList = []; var MKOD = []; var req; function Main_OnStart() { //1번 타이머, 5초 Main.SetTimer(1, 타이머간격*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 >= 90000 && HHMMSS < 151500) { //종목검색 수행 Main.ReqPowerSearch("CC") } 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); MKOD.push(0); //Account1.OrderBuy(MarketData.code,1,0,1); //1주를 시장가 주문 // Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),0,1); //10만원 시장가 주문 Account1.OrderBuy(MarketData.code,Math.floor(매수금/MarketData.Ask(1)),MarketData.Ask(1),0); //10만원 지정가 주문 지정가로 주문하고자 하시면 주문함수 내용을 위와 같이 변경하시면 됩니다. 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); } } } 매수후 -1%하락하면 추가매수 수식 추가 부탁 드립니다