커뮤니티

문의드립니다.

프로필 이미지
순두부남
2019-11-26 22:19:50
3526
글번호 225099
답변완료
스팟식 문의드립니다. A. 09:05분 종목검색 B. 검색된 종목 중 거래량 상위 10종목 시스템 적용 C. A, B 과정 반복 - 12:00 까지 5분 주기로 반복 - 12시 이후는 10분주기로 반복 - 15시 이후는 반복 종료 - B에서 적용된 종목이 다음 검색에 안나오더라도 시스템 유지 - 새로 검색된 종목 중 거래량 10위안에 새로운 종목이 있다면 시스템 추가 - 총 시스템적용 종목 30개로 제한 D. 시스템부하를 줄이기위해 차트는 안띄우고 매매신호만 감시하여 처리 이상입니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-12-19 14:00:56

안녕하세요 예스스탁입니다. 아래 내용 참고하셔서 수정보완해 사용하시기 바랍니다. 차트객체 생성없이 신호감시는 가능하지 않습니다. var SList = [],CT = [], AList = []; var Req = 0; function Main_OnStart() { Main.SetTimer(1,6000); } function Main_OnTimer(nEventID) { var d = new Date(); var HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds(); if (nEventID == 1 && HHMMSS >= 90500) { Main.KillTimer(1); Main.MessageList("검색요청"); Main.ReqPowerSearch("hancom25"); Main.SetTimer(2,300000); } if (nEventID == 2 && HHMMSS >= 120000) { Main.KillTimer(2); Main.ReqPowerSearch("사용자검색조건"); Main.SetTimer(3,600000); } if (nEventID == 3 && HHMMSS < 150000) { if (HHMMSS < 150000) { Main.ReqPowerSearch("사용자검색조건"); } else { Main.KillTimer(3); } } if (nEventID == 99 && HHMMSS < 150000) { Main.KillTimer(99); Main.ReqMarketData(SList[req][0]); } } function Main_OnRcvItemList(aItemList, nCount) { Main.MessageList("검색완료",nCount); if (nCount >= 1) { SList = []; for (var i = 0; i < nCount; i++) { SList[i] = new Array(0,aItemList[i]); } Main.MessageList("종목객체생성시작"); req = 0; Main.ReqMarketData(SList[req][1]); } } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == SList[req][1]) { SList[req][0] = MarketData.volumeTotal; Main.RemoveMarketData(MarketData); req = req+1; if (req < SList.length) { var S = Main.ReqMarketData(SList[req][1]); if (S == -1) { Main.SetTimer(99,15000); } } else { Main.MessageList("객체생성완료"); SList.sort(CompareForSort); if (SList.length > Math.min(10,30-CT.length)) { SList.splice(Math.min(10,30-CT.length),SList.length); } Main.MessageList("SList",SList); if (CT.length == 0) { for (var i = 0; i < SList.length;i++) { AList.push(SList[i][1]); } } if (CT.length > 0 && CT.length < 30) { AList = []; for (var i = 0; i < CT.length;i++) { var add = true; for (var z = 0; z < SList.length;z++) { if (CT[i].GetCode(1) == SList[z][1]) { add = false; } } if (add == true) { AList.push(SList[z][1]); } } } Main.MessageList("AList",AList); if (AList.length > 0) { req = 0; Main.MessageList("차트객체요청시작 : "); var CTSet = new ReqChartItem(AList[req],1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var STSet = new SystemInfo("#"); Main.ReqChartEx(CTSet, STSet); } } } } function Main_OnRcvChartEx(ChartEx) { if (AList[req] == ChartEx.GetCode(1)) { CT[req] = ChartEx; req = req + 1; if (req < AList.length) { var CTSet = new ReqChartItem(AList[req],1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var STSet = new SystemInfo("#"); Main.ReqChartEx(CTSet, STSet); } else { Main.MessageList("차트객체요청종료"); } } } function CompareForSort(a, b) { //내림차순 return( a[0] < b[0] ? 1 : a[0] > b[0] ? -1 : 0 ); //오름차순 //return( a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0 ); } function Main_OnRiseSignal(ChartEx, Signal) { if (Signal.signalKind == 1) { Account1.OrderBuy(Signal.code,Signal.count,0,1); } if (Signal.signalKind == 2) { Account1.OrderSell(Signal.code,Signal.count,0,1); } } 즐거운 하루되세요 > 순두부남 님이 쓴 글입니다. > 제목 : 문의드립니다. > 스팟식 문의드립니다. A. 09:05분 종목검색 B. 검색된 종목 중 거래량 상위 10종목 시스템 적용 C. A, B 과정 반복 - 12:00 까지 5분 주기로 반복 - 12시 이후는 10분주기로 반복 - 15시 이후는 반복 종료 - B에서 적용된 종목이 다음 검색에 안나오더라도 시스템 유지 - 새로 검색된 종목 중 거래량 10위안에 새로운 종목이 있다면 시스템 추가 - 총 시스템적용 종목 30개로 제한 D. 시스템부하를 줄이기위해 차트는 안띄우고 매매신호만 감시하여 처리 이상입니다.