커뮤니티

청산조건 추가분 오류수정 요청합니다

프로필 이미지
조민철
2012-10-25 01:17:32
335
글번호 55920
답변완료

첨부 이미지

항상 감사합니다. 1.아래식은 정상적으로 신호가 발생하는 상태인데 추가청산조건(지수이평 200선을 돌파시/매수청산/매도청산)을 적용후 시스템을 돌려보니 첨부파일 오류신호 아래챠트에서는 매도신호a 가 발생한후 추가청산조건식에 의거 청산신호가 발생했습니다. 이후 오류신호가 나오질않아야 되는데 추가청산신호 적용이전의 청산신호자리에서 매수진입신호후 발생후 청산신호발생 햇습니다.(매수진입신호 나오면 안됨) 첨부파일.. 오류신호1 에서 보면 매도신호 발생햇는데 매도신호가 발생안햇습니다 시스템이 뭔가 꼬인것같습니다.. 시스템식 수정부탁드립니다 2.현재 30분봉20이평기준이 삼각가중이평으로 셋팅되어져 있는건가요 감사합니다 안녕하세요 예스스탁입니다. 1. Inputs: Length1(5),Length2(20),Atime(30),Length3(20); Variables: P1(0),P2(0),P3(0),TRIma1(0),TRIma2(0),TRIma3(0); var : cnt(0),count(0),sum(0),sum1(0); Array : CC[100](0),mav[100](0); TRIma1 = ema(c, Length1); TRIma2 = ema(c, Length2); p3 = Ceiling((Length3 + 1) * .5); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; Mav[cnt] = mav[cnt-1][1]; } } CC[0] = C; sum = 0; for count = 0 to P3-1{ sum = sum+CC[count]; } mav[0] = sum/P3; sum1 = 0; for count = 0 to P3-1{ sum1 = sum1+mav[count]; } TRIma3 = sum1/P3; if C > TRIma3 Then{ if crossup(TRIma1,TRIma2) Then buy(); if CrossDown(TRIma1,TRIma2) Then exitlong(); } if C < TRIma3 Then{ if CrossDown(TRIma1,TRIma2) Then Sell(); if CrossUp(TRIma1,TRIma2) Then ExitShort(); } var1 = ema(c,200); if MarketPosition == 1 and CrossDown(c,var1) Then exitlong(); if MarketPosition == -1 and CrossUp(c,var1) Then ExitShort(); 2. 실시간 차트의 최대 봉갯수는 5000개 입니다. 사용하시는 주기에서 30분의 200이평을 계산할 수 없어 신호가 발생하지 않는 것입니다. 해당 부분은 수식으로 따로 처리가 가능하지 않습니다. 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 청산조건 추가요청합니다. > 항상 감사드립니다... 1.아래식에서 청산조건을 추가코져 합니다 30분20이평기준 200틱챠트 (5/20) 돌파매매식 매수청산추가 200틱챠트에서 지수이동평균 200선을 하향돌파하면 청산 매도청산추가 200틱챠트에서 지수이동평균 200선을 상향돌파하면 청산 지수이동평균은 외부변수로 부탁드립니다. 2.아래식을 시스템으로 돌려보면 30분 20이평기준은은 신호가 정상적으로 나오는데 30분 200 이평으로 고쳐서 돌려보면 시스템 신호가 나오질 않습니다 혹시 수정가능한가요... Inputs: Length1(5),Length2(20),Atime(30),Length3(20); Variables: P1(0),P2(0),P3(0),TRIma1(0),TRIma2(0),TRIma3(0); var : cnt(0),count(0),sum(0),sum1(0); Array : CC[100](0),mav[100](0); TRIma1 = ema(c, Length1); TRIma2 = ema(c, Length2); p3 = Ceiling((Length3 + 1) * .5); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; Mav[cnt] = mav[cnt-1][1]; } } CC[0] = C; sum = 0; for count = 0 to P3-1{ sum = sum+CC[count]; } mav[0] = sum/P3; sum1 = 0; for count = 0 to P3-1{ sum1 = sum1+mav[count]; } TRIma3 = sum1/P3; if C > TRIma3 Then{ if crossup(TRIma1,TRIma2) Then buy(); if CrossDown(TRIma1,TRIma2) Then exitlong(); } if C < TRIma3 Then{ if CrossDown(TRIma1,TRIma2) Then Sell(); if CrossUp(TRIma1,TRIma2) Then ExitShort(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-10-25 11:31:59

안녕하세요 예스스탁입니다. 값은 변수명으로 처리된 내용때문에 발생하는 것같습니다. 아래식으로 적용해 보시기 바랍니다. 식상 30분의 20삼각가중이평은 셋팅이 되어 있습니다. Inputs: Length1(5),Length2(20),Atime(30),Length3(20); Variables: P1(0),P2(0),P3(0),TRIma1(0),TRIma2(0),TRIma3(0); var : cnt(0),count(0),sum(0),sum1(0); Array : CC[100](0),mav[100](0); TRIma1 = ema(c, Length1); TRIma2 = ema(c, Length2); p3 = Ceiling((Length3 + 1) * .5); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; Mav[cnt] = mav[cnt-1][1]; } } CC[0] = C; sum = 0; for count = 0 to P3-1{ sum = sum+CC[count]; } mav[0] = sum/P3; sum1 = 0; for count = 0 to P3-1{ sum1 = sum1+mav[count]; } TRIma3 = sum1/P3; if C > TRIma3 Then{ if crossup(TRIma1,TRIma2) Then buy(); if CrossDown(TRIma1,TRIma2) Then exitlong(); } if C < TRIma3 Then{ if CrossDown(TRIma1,TRIma2) Then Sell(); if CrossUp(TRIma1,TRIma2) Then ExitShort(); } value1 = ema(c,200); if MarketPosition == 1 and CrossDown(c,value1) Then exitlong(); if MarketPosition == -1 and CrossUp(c,value1) Then ExitShort(); 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 청산조건 추가분 오류수정 요청합니다 > 항상 감사합니다. 1.아래식은 정상적으로 신호가 발생하는 상태인데 추가청산조건(지수이평 200선을 돌파시/매수청산/매도청산)을 적용후 시스템을 돌려보니 첨부파일 오류신호 아래챠트에서는 매도신호a 가 발생한후 추가청산조건식에 의거 청산신호가 발생했습니다. 이후 오류신호가 나오질않아야 되는데 추가청산신호 적용이전의 청산신호자리에서 매수진입신호후 발생후 청산신호발생 햇습니다.(매수진입신호 나오면 안됨) 첨부파일.. 오류신호1 에서 보면 매도신호 발생햇는데 매도신호가 발생안햇습니다 시스템이 뭔가 꼬인것같습니다.. 시스템식 수정부탁드립니다 2.현재 30분봉20이평기준이 삼각가중이평으로 셋팅되어져 있는건가요 감사합니다 안녕하세요 예스스탁입니다. 1. Inputs: Length1(5),Length2(20),Atime(30),Length3(20); Variables: P1(0),P2(0),P3(0),TRIma1(0),TRIma2(0),TRIma3(0); var : cnt(0),count(0),sum(0),sum1(0); Array : CC[100](0),mav[100](0); TRIma1 = ema(c, Length1); TRIma2 = ema(c, Length2); p3 = Ceiling((Length3 + 1) * .5); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; Mav[cnt] = mav[cnt-1][1]; } } CC[0] = C; sum = 0; for count = 0 to P3-1{ sum = sum+CC[count]; } mav[0] = sum/P3; sum1 = 0; for count = 0 to P3-1{ sum1 = sum1+mav[count]; } TRIma3 = sum1/P3; if C > TRIma3 Then{ if crossup(TRIma1,TRIma2) Then buy(); if CrossDown(TRIma1,TRIma2) Then exitlong(); } if C < TRIma3 Then{ if CrossDown(TRIma1,TRIma2) Then Sell(); if CrossUp(TRIma1,TRIma2) Then ExitShort(); } var1 = ema(c,200); if MarketPosition == 1 and CrossDown(c,var1) Then exitlong(); if MarketPosition == -1 and CrossUp(c,var1) Then ExitShort(); 2. 실시간 차트의 최대 봉갯수는 5000개 입니다. 사용하시는 주기에서 30분의 200이평을 계산할 수 없어 신호가 발생하지 않는 것입니다. 해당 부분은 수식으로 따로 처리가 가능하지 않습니다. 즐거운 하루되세요 > 조민철 님이 쓴 글입니다. > 제목 : 청산조건 추가요청합니다. > 항상 감사드립니다... 1.아래식에서 청산조건을 추가코져 합니다 30분20이평기준 200틱챠트 (5/20) 돌파매매식 매수청산추가 200틱챠트에서 지수이동평균 200선을 하향돌파하면 청산 매도청산추가 200틱챠트에서 지수이동평균 200선을 상향돌파하면 청산 지수이동평균은 외부변수로 부탁드립니다. 2.아래식을 시스템으로 돌려보면 30분 20이평기준은은 신호가 정상적으로 나오는데 30분 200 이평으로 고쳐서 돌려보면 시스템 신호가 나오질 않습니다 혹시 수정가능한가요... Inputs: Length1(5),Length2(20),Atime(30),Length3(20); Variables: P1(0),P2(0),P3(0),TRIma1(0),TRIma2(0),TRIma3(0); var : cnt(0),count(0),sum(0),sum1(0); Array : CC[100](0),mav[100](0); TRIma1 = ema(c, Length1); TRIma2 = ema(c, Length2); p3 = Ceiling((Length3 + 1) * .5); var1 = TimeToMinutes(stime)%Atime; if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; Mav[cnt] = mav[cnt-1][1]; } } CC[0] = C; sum = 0; for count = 0 to P3-1{ sum = sum+CC[count]; } mav[0] = sum/P3; sum1 = 0; for count = 0 to P3-1{ sum1 = sum1+mav[count]; } TRIma3 = sum1/P3; if C > TRIma3 Then{ if crossup(TRIma1,TRIma2) Then buy(); if CrossDown(TRIma1,TRIma2) Then exitlong(); } if C < TRIma3 Then{ if CrossDown(TRIma1,TRIma2) Then Sell(); if CrossUp(TRIma1,TRIma2) Then ExitShort(); }