커뮤니티

안녕하세요..

프로필 이미지
구름달
2025-05-20 06:10:36.0
179
글번호 226302
답변완료
안녕하세요 //부장님 부장님이 해결해주신 내용입니다. 그런데 가격이 3.5이상에서는 시스템이 아웃되어 버립니다. 종목을 지정해서 불어오면 실행되는데 동시 거래가 있는 종목은 상관없는데 동시거래가 없으면 시스템이 아웃되는 현상이 일어나므로 추가해서 즉 입력란에서 임의 선택된 콜은 250부터 5개 풋은 245부터 5개 강제적으로 불러오는 곳을 추가하고 싶습니다. 동시시세가 없더라도 불러오고 싶네요 전략실행차트 여실때 자동으로 종목이 선정되게는 가능하지 않습니다. 스팟안에서 차트객체를 이용하신다면 스팟수식안에서 종목선정해 차트를 만들 수 있습니다. 기본차트는 KP200연결선물이고 콜/풋 옵션을 참조데이터로 추가하는데 4.0에 가까운 순서로 5개씩 추가합니다. 스크립트 객체설정 종목객체 추가 -> 속성에서 객체명 MarketData1, KP200연결선물로 지정 옵션객체 추가 -> 속성에서 객체명 Option1, KP200지수옵션으로 지정 var FutrueOpen; var 콜기준 = 4.0; var 풋기준 = 4.0; var CallOrderCode1,CallOrderCode2,CallOrderCode3,CallOrderCode4,CallOrderCode5; var PutOrderCode1,PutOrderCode2,PutOrderCode3,PutOrderCode4,PutOrderCode5; function Main_OnStart() { FutrueOpen = false; Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { if (FutrueOpen == false && MarketData1.open > 0) { FutrueOpen = true; Main.KillTimer(1); var Calldiff = []; if (콜기준 > 0) { var a = 0; for (var i = -Option1.lowersATM; i < Option1.uppersATM; i++) { Calldiff[a] = new Array(Math.abs(콜기준-Option1.GetCurrent(0,i)),Option1.GetATMCallRecent(i)); a = a+1; } Calldiff.sort(CompareForSort); CallOrderCode1 = Calldiff[0][1]; CallOrderCode2 = Calldiff[1][1]; CallOrderCode3 = Calldiff[2][1]; CallOrderCode4 = Calldiff[3][1]; CallOrderCode5 = Calldiff[4][1]; } var Putdiff = []; if (풋기준 > 0) { a = 0; for (var i = -Option1.lowersATM; i < Option1.uppersATM; i++) { Putdiff[a] = new Array(Math.abs(풋기준-Option1.GetCurrent(1,-i)),Option1.GetATMPutRecent(-i)); a = a+1; } Putdiff.sort(CompareForSort); PutOrderCode1 = Putdiff[0][1]; PutOrderCode2 = Putdiff[1][1]; PutOrderCode3 = Putdiff[2][1]; PutOrderCode4 = Putdiff[3][1]; PutOrderCode5 = Putdiff[4][1]; } var ChartSet = new ReqChartItem("00000000",1,CHART_PERIOD_MINUTE,10000,CHART_REQCOUNT_BAR,false,false); var R11 = new ReqChartItem(CallOrderCode1,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R12 = new ReqChartItem(CallOrderCode2,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R13 = new ReqChartItem(CallOrderCode3,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R14 = new ReqChartItem(CallOrderCode4,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R15 = new ReqChartItem(CallOrderCode5,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R21 = new ReqChartItem(PutOrderCode1,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R22 = new ReqChartItem(PutOrderCode2,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R23 = new ReqChartItem(PutOrderCode3,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R24 = new ReqChartItem(PutOrderCode4,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R25 = new ReqChartItem(PutOrderCode5,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var ReferDataSet = new Array(R11,R12,R13,R14,R15,R21,R22,R23,R24,R25); Main.ReqChartEx(ChartSet,null,null,ReferDataSet); } } function CompareForSort(a, b) { return( a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0 ); }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-29 16:42:15.0

> 구름달 님이 쓴 글입니다. > 제목 : 안녕하세요.. > 안녕하세요 //부장님 부장님이 해결해주신 내용입니다. 그런데 가격이 3.5이상에서는 시스템이 아웃되어 버립니다. 종목을 지정해서 불어오면 실행되는데 동시 거래가 있는 종목은 상관없는데 동시거래가 없으면 시스템이 아웃되는 현상이 일어나므로 추가해서 즉 입력란에서 임의 선택된 콜은 250부터 5개 풋은 245부터 5개 강제적으로 불러오는 곳을 추가하고 싶습니다. 동시시세가 없더라도 불러오고 싶네요 전략실행차트 여실때 자동으로 종목이 선정되게는 가능하지 않습니다. 스팟안에서 차트객체를 이용하신다면 스팟수식안에서 종목선정해 차트를 만들 수 있습니다. 기본차트는 KP200연결선물이고 콜/풋 옵션을 참조데이터로 추가하는데 4.0에 가까운 순서로 5개씩 추가합니다. 스크립트 객체설정 종목객체 추가 -> 속성에서 객체명 MarketData1, KP200연결선물로 지정 옵션객체 추가 -> 속성에서 객체명 Option1, KP200지수옵션으로 지정 var FutrueOpen; var 콜기준 = 4.0; var 풋기준 = 4.0; var CallOrderCode1,CallOrderCode2,CallOrderCode3,CallOrderCode4,CallOrderCode5; var PutOrderCode1,PutOrderCode2,PutOrderCode3,PutOrderCode4,PutOrderCode5; function Main_OnStart() { FutrueOpen = false; Main.SetTimer(1, 1000); } function Main_OnTimer(nEventID) { if (FutrueOpen == false && MarketData1.open > 0) { FutrueOpen = true; Main.KillTimer(1); var Calldiff = []; if (콜기준 > 0) { var a = 0; for (var i = -Option1.lowersATM; i < Option1.uppersATM; i++) { Calldiff[a] = new Array(Math.abs(콜기준-Option1.GetCurrent(0,i)),Option1.GetATMCallRecent(i)); a = a+1; } Calldiff.sort(CompareForSort); CallOrderCode1 = Calldiff[0][1]; CallOrderCode2 = Calldiff[1][1]; CallOrderCode3 = Calldiff[2][1]; CallOrderCode4 = Calldiff[3][1]; CallOrderCode5 = Calldiff[4][1]; } var Putdiff = []; if (풋기준 > 0) { a = 0; for (var i = -Option1.lowersATM; i < Option1.uppersATM; i++) { Putdiff[a] = new Array(Math.abs(풋기준-Option1.GetCurrent(1,-i)),Option1.GetATMPutRecent(-i)); a = a+1; } Putdiff.sort(CompareForSort); PutOrderCode1 = Putdiff[0][1]; PutOrderCode2 = Putdiff[1][1]; PutOrderCode3 = Putdiff[2][1]; PutOrderCode4 = Putdiff[3][1]; PutOrderCode5 = Putdiff[4][1]; } var ChartSet = new ReqChartItem("00000000",1,CHART_PERIOD_MINUTE,10000,CHART_REQCOUNT_BAR,false,false); var R11 = new ReqChartItem(CallOrderCode1,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R12 = new ReqChartItem(CallOrderCode2,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R13 = new ReqChartItem(CallOrderCode3,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R14 = new ReqChartItem(CallOrderCode4,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R15 = new ReqChartItem(CallOrderCode5,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R21 = new ReqChartItem(PutOrderCode1,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R22 = new ReqChartItem(PutOrderCode2,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R23 = new ReqChartItem(PutOrderCode3,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R24 = new ReqChartItem(PutOrderCode4,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var R25 = new ReqChartItem(PutOrderCode5,1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var ReferDataSet = new Array(R11,R12,R13,R14,R15,R21,R22,R23,R24,R25); Main.ReqChartEx(ChartSet,null,null,ReferDataSet); } } function CompareForSort(a, b) { return( a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0 ); }