커뮤니티

시스템문의드립니다.

프로필 이미지
겐지
2017-02-08 13:53:38
223
글번호 106629
답변완료

첨부 이미지

input : P5(5), P20(20), P60(60), get(25), cut(25); var : mav2(0,data2), mav19(0,data2), mav20(0,data2), mav60(0,data2), tic20(0), tic60(0), tic5(0); mav2 = data2(c); mav19 = data2(c[19]); mav20 = data2(c[20]); mav60 = data2(c[60]); tic20=ma(c,P20); tic60=ma(c,P60); tic5=ma(c,P5); if stime >= 170000 or stime < 030000 Then{ if c>mav20 and c>mav19 then{ if crossup(tic5,tic20) or crossup(tic5,tic60) then{ if MarketPosition == 0 Then buy("매수"); if MarketPosition == -1 Then buy("리버스매수"); } } if c<mav20 and c<mav19 then{ if CrossDown(tic5,tic20) or crossdown(tic5,tic60) then{ if MarketPosition == 0 Then sell("매도"); if MarketPosition == 1 Then sell("리버스매도"); } } } if stime >= 220000 or stime < 030000 Then{ if c<mav20 and c<mav19 then exitlong("불매수청산"); if c>mav20 and c>mav19 Then ExitShort("불매도청산"); } SetStopProfittarget(PriceScale*get,PointStop); SetStopLoss(PriceScale*cut,PointStop); if stime == 030000 or (stime > 030000 and stime[1] < 030000) Then{ exitlong(); ExitShort(); } =============================================== 1.수식작성해 봤는데 1번그림처럼 신호가 누락되어서 나옵니다; 시스템적용눌러서 다시 시스템적용하면2번그림처럼 신호가 또 나오고 그렇네요 뭐가 잘못된거 같은데 수식 수정좀 부탁드립니다. 수식조건은아래입니다. 장기분봉이 참조 된 상황에서 장기분봉의 20봉전보다 현재틱봉의종가가높고 19봉전보다 현재틱봉종가가높을때 틱봉에서 5이평과20이평골든크로스 매수 또는 5이평과60이평골든크로스매수 -"매수"와 "리버스매수구분" ------------------------------------------- 장기분봉의 20봉전보다 현재틱봉의종가가낮고 19봉전보다 현재틱봉종가가낮을때 틱봉에서 5이평과20이평데드크로스 매도 또는 5이평과60이평데드크로스매도 -"매도"와 "리버스매도"구분. 시간은 오후5시~새벽3시까지만 거래하도록하고 손절익절은25틱씩적용 25틱익절시에는"목표익절" 25틱손절시에는"제한손절" 오후10시~새벽3시에는 손절익절기준25틱과 함께 현재틱봉의종가가 장기분봉20봉전보다 낮거나 장기분봉19봉전보다 낮을때 "불매수청산" 현재틱봉의종가가 장기분봉20봉전보다 높거나 장기분봉19봉전보다 높을때 "불매도청산" 2. 예스스팟에서 신호이름별로 소스를 만들었는데요 엑셀에 제대로 기록이 안되네요 아래소스도 수정부탁드립니다. xls엑셀파일97~03년파일형식으로 참조해 놨습니다. 차트이름도 예제나와있는대로 설정했구요. function C1_OnRiseSignal(Signal) { if (Signal.name == "매수") { Excel1.SetData(1, A1, 1) } if (Signal.name == "리버스매수") { Excel1.SetData(1, B1, 1) } if (Signal.name == "매도") { Excel1.SetData(1, C1, 1) } if (Signal.name == "리버스매도") { Excel1.SetData(1, D1, 1) } if (Signal.name == "불매수청산") { Excel1.SetData(1, E1, 1) } if (Signal.name == "불매도청산") { Excel1.SetData(1, F1, 1) } } 3.그림3번에서처럼 틱봉에 장기분봉데이터를 참조하면 틱봉이 중간중간 비거든요 제가 틱봉차트보면서 수동으로도 매매를 해야되는 상황이라서요 참조했을때 틱봉사이가 비는건 어쩔 수 없는 부분같고 참조가 안된 틱차트에 신호만 따로 표시할 수 있는 방법이 있을까요? 예스스팟에 확장차트객체가 있던데 이걸로도 가능할지 모르겠네요. 4.검색수식을 이용해서 30분단위 세로선을 표현했는데요 추세선형식으로 세로선으로 나오는데 클릭하니깐 없어져 버리거나 어떨땐 클릭되어서 다른쪽으로 이동되기도 하고 그렇네요 클릭해도 안없어지고 다른쪽으로 이동되지도 않도록 설정하는 방법이 있을까요 5.전에 강세약세 방법을 여쭤봐서 채우기방식으로 적용했는데 분봉에서는 제대로 적용이 됩니다 근데 일봉에 적용해 보니깐 4번그림에서 세로선이 일봉의 봉간격에 맞지않고 제대로 표시가 안되네요~ 일봉간격에 맞게 표시할 수 있는 방법이 있는지요~ 매번 도움많이 얻어서 감사합니다 좋은하루 되시구요!
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-02-08 15:49:16

안녕하세요 예스스탁입니다. 1 참조데이터를 이용하실때는 주종목의 값을 계산하는 함수와 값을 저장하는 변수도 데이터번호로 지정해 주셔야 합니다. 올려주신 식에서 보시면 tic20,tic60,tic5와 같은 수식이 주종목의 봉수로 체크해서 값을 계산하는 것이 아닌 참조데이터와 주종목의 혼합봉수로 계산됩니다. 수정된 내용 확인하시기 바랍니다. 수식은 완성된 봉만 이용해 계산합니다. 주종목봉이 완성되면 그때까지 완성된 참조데이터를 이용해 조건을 판단하는데 2개의 데이터의 수신되는 시차로 실시간과 시뮬레이션의 결과가 다를수 있습니다. 해당 부분은 시차문제라 수식에서 처리할 방법이 없습니다. 이용에 참고하시기 바랍니다. input : P5(5), P20(20), P60(60), get(25), cut(25); var : mav2(0,data2), mav19(0,data2), mav20(0,data2), mav60(0,data2), tic20(0,data1), tic60(0,data1), tic5(0,data1); mav2 = data2(c); mav19 = data2(c[19]); mav20 = data2(c[20]); mav60 = data2(c[60]); tic20 = data1(ma(c,P20)); tic60 = data1(ma(c,P60)); tic5 = data1(ma(c,P5)); if stime >= 170000 or stime < 030000 Then{ if c>mav20 and c>mav19 then{ if crossup(tic5,tic20) or crossup(tic5,tic60) then{ if MarketPosition == 0 Then buy("매수"); if MarketPosition == -1 Then buy("리버스매수"); } } if c<mav20 and c<mav19 then{ if CrossDown(tic5,tic20) or crossdown(tic5,tic60) then{ if MarketPosition == 0 Then sell("매도"); if MarketPosition == 1 Then sell("리버스매도"); } } } if stime >= 220000 or stime < 030000 Then{ if c<mav20 and c<mav19 then exitlong("불매수청산"); if c>mav20 and c>mav19 Then ExitShort("불매도청산"); } SetStopProfittarget(PriceScale*get,PointStop); SetStopLoss(PriceScale*cut,PointStop); if stime == 030000 or (stime > 030000 and stime[1] < 030000) Then{ exitlong(); ExitShort(); } 2 Excel1.SetData(1,"A1", 1) 해당 함수에서 2번째 매개변수가 셀번호인데 텍스트로 지정되어야 합니다. "A1","B1" function C1_OnRiseSignal(Signal) { Main.MessageList(Signal.name); if (Signal.name == "매수") { Excel1.SetData(1,"A1", 1) } if (Signal.name == "리버스매수") { Excel1.SetData(1, "B1", 1) } if (Signal.name == "매도") { Excel1.SetData(1, "C1", 1) } if (Signal.name == "리버스매도") { Excel1.SetData(1, "D1", 1) } if (Signal.name == "불매수청산") { Excel1.SetData(1, "E1", 1) } if (Signal.name == "불매도청산") { Excel1.SetData(1, "F1", 1) } } 3 수식이 참조데이터를 사용하는 식이면 차트에는 무조건 참조데이터가 있어야 해당식이 차트에 적용될수 있습니다. 참조데이터를 숨기고자 하시면 해당 참조데이터 영역의 우측위에서 -표시가 있는 아이콘 클릭하시면 됩니다. 4 추세선은 수식에서 차트 보조도구의 추세선을 이용하게 만든 함수입니다. 사용자분이 차트에서 선택해서 삭제하거나 이동하는것을 수식에서 막을 수는 없습니다. 다시 재적용해서 초기위치에 그려지게 하셔야 합니다. 5 해당 부분은 따로 방법이 없습니다. 속성에서 지표사이의 색채우기로 설정한 부분이라 수식에서는 컨트롤이 안되는 부분입니다. 즐거운 하루되세요 > 겐지 님이 쓴 글입니다. > 제목 : 시스템문의드립니다. > input : P5(5), P20(20), P60(60), get(25), cut(25); var : mav2(0,data2), mav19(0,data2), mav20(0,data2), mav60(0,data2), tic20(0), tic60(0), tic5(0); mav2 = data2(c); mav19 = data2(c[19]); mav20 = data2(c[20]); mav60 = data2(c[60]); tic20=ma(c,P20); tic60=ma(c,P60); tic5=ma(c,P5); if stime >= 170000 or stime < 030000 Then{ if c>mav20 and c>mav19 then{ if crossup(tic5,tic20) or crossup(tic5,tic60) then{ if MarketPosition == 0 Then buy("매수"); if MarketPosition == -1 Then buy("리버스매수"); } } if c<mav20 and c<mav19 then{ if CrossDown(tic5,tic20) or crossdown(tic5,tic60) then{ if MarketPosition == 0 Then sell("매도"); if MarketPosition == 1 Then sell("리버스매도"); } } } if stime >= 220000 or stime < 030000 Then{ if c<mav20 and c<mav19 then exitlong("불매수청산"); if c>mav20 and c>mav19 Then ExitShort("불매도청산"); } SetStopProfittarget(PriceScale*get,PointStop); SetStopLoss(PriceScale*cut,PointStop); if stime == 030000 or (stime > 030000 and stime[1] < 030000) Then{ exitlong(); ExitShort(); } =============================================== 1.수식작성해 봤는데 1번그림처럼 신호가 누락되어서 나옵니다; 시스템적용눌러서 다시 시스템적용하면2번그림처럼 신호가 또 나오고 그렇네요 뭐가 잘못된거 같은데 수식 수정좀 부탁드립니다. 수식조건은아래입니다. 장기분봉이 참조 된 상황에서 장기분봉의 20봉전보다 현재틱봉의종가가높고 19봉전보다 현재틱봉종가가높을때 틱봉에서 5이평과20이평골든크로스 매수 또는 5이평과60이평골든크로스매수 -"매수"와 "리버스매수구분" ------------------------------------------- 장기분봉의 20봉전보다 현재틱봉의종가가낮고 19봉전보다 현재틱봉종가가낮을때 틱봉에서 5이평과20이평데드크로스 매도 또는 5이평과60이평데드크로스매도 -"매도"와 "리버스매도"구분. 시간은 오후5시~새벽3시까지만 거래하도록하고 손절익절은25틱씩적용 25틱익절시에는"목표익절" 25틱손절시에는"제한손절" 오후10시~새벽3시에는 손절익절기준25틱과 함께 현재틱봉의종가가 장기분봉20봉전보다 낮거나 장기분봉19봉전보다 낮을때 "불매수청산" 현재틱봉의종가가 장기분봉20봉전보다 높거나 장기분봉19봉전보다 높을때 "불매도청산" 2. 예스스팟에서 신호이름별로 소스를 만들었는데요 엑셀에 제대로 기록이 안되네요 아래소스도 수정부탁드립니다. xls엑셀파일97~03년파일형식으로 참조해 놨습니다. 차트이름도 예제나와있는대로 설정했구요. function C1_OnRiseSignal(Signal) { if (Signal.name == "매수") { Excel1.SetData(1, A1, 1) } if (Signal.name == "리버스매수") { Excel1.SetData(1, B1, 1) } if (Signal.name == "매도") { Excel1.SetData(1, C1, 1) } if (Signal.name == "리버스매도") { Excel1.SetData(1, D1, 1) } if (Signal.name == "불매수청산") { Excel1.SetData(1, E1, 1) } if (Signal.name == "불매도청산") { Excel1.SetData(1, F1, 1) } } 3.그림3번에서처럼 틱봉에 장기분봉데이터를 참조하면 틱봉이 중간중간 비거든요 제가 틱봉차트보면서 수동으로도 매매를 해야되는 상황이라서요 참조했을때 틱봉사이가 비는건 어쩔 수 없는 부분같고 참조가 안된 틱차트에 신호만 따로 표시할 수 있는 방법이 있을까요? 예스스팟에 확장차트객체가 있던데 이걸로도 가능할지 모르겠네요. 4.검색수식을 이용해서 30분단위 세로선을 표현했는데요 추세선형식으로 세로선으로 나오는데 클릭하니깐 없어져 버리거나 어떨땐 클릭되어서 다른쪽으로 이동되기도 하고 그렇네요 클릭해도 안없어지고 다른쪽으로 이동되지도 않도록 설정하는 방법이 있을까요 5.전에 강세약세 방법을 여쭤봐서 채우기방식으로 적용했는데 분봉에서는 제대로 적용이 됩니다 근데 일봉에 적용해 보니깐 4번그림에서 세로선이 일봉의 봉간격에 맞지않고 제대로 표시가 안되네요~ 일봉간격에 맞게 표시할 수 있는 방법이 있는지요~ 매번 도움많이 얻어서 감사합니다 좋은하루 되시구요!