커뮤니티

부탁드립니다.(수정)

프로필 이미지
해월정
2015-11-25 16:27:40
123
글번호 92732
답변완료
45150 추가질문입니다. 틱90차트 만개봉에 적용했읍니다. 몇가지수정할상황이 있네요, 1 updiff와 dndiff 는 1이상일경우표현한다. 2,차트 첫날인 10월6일에 부터지표가뜨네요. 5일이평이적용돼니 최소 5일이지나서, 처음 당일상전환이나 당일하전환이 발생한날부터 지표 발생하게함. 3. 10월15일 당일상전환이발생했네요, 이경우 d1-d2==0 함,하전환경우 동일함. 4, 11월3일 당일상전환이 발생인데 이경우 하전환후 당일상전환발생 인데, 이런경우 u1-d1==1 함 ,지표에선 3으로뜨네요. 하전환경우도 동일하게 수정부탁드립니다. 수정;u1-d1 이아니고 u1-u2 이네요. 죄송합니다. 수식의 자세한설명에 감사드립니다..수고하세요..
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2015-11-25 16:26:36

안녕하세요 예스스탁입니다. 분이하의 차트에는 내부적으로 일간데이터가 차트 첫봉+99일치가 제공됩니다. 그래서 차트 첫날부터 5일이평이 계산되고 지표가 나올수 있습니다. 차트상 5일이후부터 발생하게 했습니다. 나머지 내용도 수정했습니다. 의도와 다른부분 있으시면 다시 글 올려주시기 바랍니다. input : P(5); var : sum(0),Dayma(0),mav(0),cnt(0),Didx(0); var : T(0),upv(0),dnv(0); var : updiff(0),dndiff(0); var : u1(0),u2(0),d1(0),d2(0); //날짜변경(당일첫봉) if date != date[1] Then{ //일자수 카운트 Didx = Didx+1; Condition1 = false; Condition2 = false; } #P일간 일간 이평계산 sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } dayma = sum/P; #분봉의 이평 mav = ma(c,P); #분봉과 일간이평 차이 var1 = mav-dayma; if didx >= 5 Then{ #차이값이 1을 상향돌파하면 if crossup(var1,1) Then{ #T는 상향돌파 하향이탈을 파악하기 위한 변수 #상향돌파라는 의미로 1을 저장 if T <= 0 then T = 1; #상향돌파가 하루에 여러번 발생할수 있으므로 #초기값이 false인 Condition1을 true로 변경해서 #당일 첫 상향돌파시만 날짜수를 기록함 if Condition1 == false Then{ Condition1 = true; if T == 1 and T[1] == 1 Then{ u1 = didx;//당일 날짜수 u2 = u1[1];//직전 상향돌파의 날짜수 } if T == 1 and T[1] != 1 Then{ u1 = didx;//당일 날짜수 u2 = didx;//직전 상향돌파의 날짜수 } } } #차이값이 -1을 하향이탈하면 if CrossDown(var1,-1) Then{ #T는 상향돌파 하향이탈을 파악하기 위한 변수 #상향돌파라는 의미로 1을 저장 if T >= 0 Then T = -1; #하향이탈이 하루에 여러번 발생할수 있으므로 #초기값이 false인 Condition2를 true로 변경해서 #당일 첫 하향이탈시만 날짜수를 기록함 if Condition2 == false Then{ Condition2 = true; if T == -1 and T[1] == -1 then{ d1 = didx; #당일 날짜수 d2 = d1[1];#직전 하향이탈의 날짜수 } if T == -1 and T[1] != -1 then{ d1 = didx; #당일 날짜수 d2 = didx;#직전 하향이탈의 날짜수 } } } #T가 1일때(상향돌파 발생후) if T == 1 Then{ #상향돌파 구간에서 하향이탈후 날짜수는 0 dndiff = 0; #전봉은 하향이탈구간이었다가 상향돌파로 바뀐경우 #날짜수를 저장 if T[1] != 1 Then{ upv = didx; } #현재 날짜수에서 최근0 상향돌파 날짜수를 빼서 날짜차이룰 계산 #당일은 차이값이 0이므로 1을 더해 당일 1부터 시작하게 함 updiff = (didx-upv+1); } if T == -1 then{ #하향이탈 구간에서 상향돌파후 날짜수는 0 updiff = 0; #전봉은 상향돌파구간이었다가 하향이탈로 바뀐경우 #날짜수를 저장 if T[1] != -1 Then{ dnv = didx; } #현재 날짜수에서 최근 하향이탈 날짜수를 빼서 날짜차이를 계산 #당일은 차이값이 0이므로 1을 더해 당일 1부터 시작하게 함 dndiff = (didx-dnv+1); } if updiff >= 1 Then plot1(updiff); Else plot1(0); if dndiff >= 1 Then plot2(dndiff); Else plot2(0); if T == 1 Then plot3(u1-u2); Else plot3(0); if T == -1 Then plot4(d1-d2); Else plot4(0); } 즐거운 하루되세요 > 해월정 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 45150 추가질문입니다. 틱90차트 만개봉에 적용했읍니다. 몇가지수정할상황이 있네요, 1 updiff와 dndiff 는 1이상일경우표현한다. 2,차트 첫날인 10월6일에 부터지표가뜨네요. 5일이평이적용돼니 최소 5일이지나서, 처음 당일상전환이나 당일하전환이 발생한날부터 지표 발생하게함. 3. 10월15일 당일상전환이발생했네요, 이경우 d1-d2==0 함,하전환경우 동일함. 4, 11월3일 당일상전환이 발생인데 이경우 하전환후 당일상전환발생 인데, 이런경우 u1-d1==1 함 ,지표에선 3으로뜨네요. 하전환경우도 동일하게 수정부탁드립니다. 수식의 자세한설명에 감사드립니다..수고하세요..
프로필 이미지

해월정

2015-11-25 17:51:05

의도와다른부분이 있네요. 상전환 기준으로 설명드리겟습니다. 1. 10월15일 첫 당일상전환 발생입니다. 노든지표서 발생일을 1로하고싶습니다. 발생일이날 u1-u2==1 부탁드립니다. ~하전환경우도 동일하게부탁드립니다. 2. 지표 u1-u2 경우 제의도는 발생일 1 발생일 다음날부터 _전일발생경우 시초봉부터쭉 1 _전일미발생시 시초봉부터 쭉 2 _시초봉에서 당일상전환발생시 그다음봉에표현함 즉 시초봉엔 항상전일 발생여부체크가능하게함. 3. 2인 상황서(전일 미발생) _1.당일발생시 1로바뀌고 그다음날 시초봉서 3 이아니고 1(전일발생했기에) _2. 당일도 미발생시 익일시초봉서 2+1=3, 그다음날미발생이면 1추가.. 이런식으로수정부탁드립니다. 4. 10월28일경우 미발생인데 10월29일 시초봉 지표에변화가없습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드립니다. > 안녕하세요 예스스탁입니다. 분이하의 차트에는 내부적으로 일간데이터가 차트 첫봉+99일치가 제공됩니다. 그래서 차트 첫날부터 5일이평이 계산되고 지표가 나올수 있습니다. 차트상 5일이후부터 발생하게 했습니다. 나머지 내용도 수정했습니다. 의도와 다른부분 있으시면 다시 글 올려주시기 바랍니다. input : P(5); var : sum(0),Dayma(0),mav(0),cnt(0),Didx(0); var : T(0),upv(0),dnv(0); var : updiff(0),dndiff(0); var : u1(0),u2(0),d1(0),d2(0); //날짜변경(당일첫봉) if date != date[1] Then{ //일자수 카운트 Didx = Didx+1; Condition1 = false; Condition2 = false; } #P일간 일간 이평계산 sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } dayma = sum/P; #분봉의 이평 mav = ma(c,P); #분봉과 일간이평 차이 var1 = mav-dayma; if didx >= 5 Then{ #차이값이 1을 상향돌파하면 if crossup(var1,1) Then{ #T는 상향돌파 하향이탈을 파악하기 위한 변수 #상향돌파라는 의미로 1을 저장 if T <= 0 then T = 1; #상향돌파가 하루에 여러번 발생할수 있으므로 #초기값이 false인 Condition1을 true로 변경해서 #당일 첫 상향돌파시만 날짜수를 기록함 if Condition1 == false Then{ Condition1 = true; if T == 1 and T[1] == 1 Then{ u1 = didx;//당일 날짜수 u2 = u1[1];//직전 상향돌파의 날짜수 } if T == 1 and T[1] != 1 Then{ u1 = didx;//당일 날짜수 u2 = didx;//직전 상향돌파의 날짜수 } } } #차이값이 -1을 하향이탈하면 if CrossDown(var1,-1) Then{ #T는 상향돌파 하향이탈을 파악하기 위한 변수 #상향돌파라는 의미로 1을 저장 if T >= 0 Then T = -1; #하향이탈이 하루에 여러번 발생할수 있으므로 #초기값이 false인 Condition2를 true로 변경해서 #당일 첫 하향이탈시만 날짜수를 기록함 if Condition2 == false Then{ Condition2 = true; if T == -1 and T[1] == -1 then{ d1 = didx; #당일 날짜수 d2 = d1[1];#직전 하향이탈의 날짜수 } if T == -1 and T[1] != -1 then{ d1 = didx; #당일 날짜수 d2 = didx;#직전 하향이탈의 날짜수 } } } #T가 1일때(상향돌파 발생후) if T == 1 Then{ #상향돌파 구간에서 하향이탈후 날짜수는 0 dndiff = 0; #전봉은 하향이탈구간이었다가 상향돌파로 바뀐경우 #날짜수를 저장 if T[1] != 1 Then{ upv = didx; } #현재 날짜수에서 최근0 상향돌파 날짜수를 빼서 날짜차이룰 계산 #당일은 차이값이 0이므로 1을 더해 당일 1부터 시작하게 함 updiff = (didx-upv+1); } if T == -1 then{ #하향이탈 구간에서 상향돌파후 날짜수는 0 updiff = 0; #전봉은 상향돌파구간이었다가 하향이탈로 바뀐경우 #날짜수를 저장 if T[1] != -1 Then{ dnv = didx; } #현재 날짜수에서 최근 하향이탈 날짜수를 빼서 날짜차이를 계산 #당일은 차이값이 0이므로 1을 더해 당일 1부터 시작하게 함 dndiff = (didx-dnv+1); } if updiff >= 1 Then plot1(updiff); Else plot1(0); if dndiff >= 1 Then plot2(dndiff); Else plot2(0); if T == 1 Then plot3(u1-u2); Else plot3(0); if T == -1 Then plot4(d1-d2); Else plot4(0); } 즐거운 하루되세요 > 해월정 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 45150 추가질문입니다. 틱90차트 만개봉에 적용했읍니다. 몇가지수정할상황이 있네요, 1 updiff와 dndiff 는 1이상일경우표현한다. 2,차트 첫날인 10월6일에 부터지표가뜨네요. 5일이평이적용돼니 최소 5일이지나서, 처음 당일상전환이나 당일하전환이 발생한날부터 지표 발생하게함. 3. 10월15일 당일상전환이발생했네요, 이경우 d1-d2==0 함,하전환경우 동일함. 4, 11월3일 당일상전환이 발생인데 이경우 하전환후 당일상전환발생 인데, 이런경우 u1-d1==1 함 ,지표에선 3으로뜨네요. 하전환경우도 동일하게 수정부탁드립니다. 수식의 자세한설명에 감사드립니다..수고하세요..
프로필 이미지

예스스탁 예스스탁 답변

2015-11-26 18:00:49

안녕하세요 예스스탁입니다. 식을 수정했습니다. 4개 값모두 0이하는 그리지 않게 했으므로 일자그래프나 점그래프로 지정하고 보시기 바랍니다. input : P(5); var : sum(0),Dayma(0),mav(0),cnt(0),T(0); var : 상전환(false),첫상전환(false),하전환(false),첫하전환(false); var : 상전환후일자수(0),하전환후일자수(0); var : 첫상전환후일자수(0),첫하전환후일자수(0); if date != date[1] Then{ 첫상전환 = false; 첫하전환 = false; 상전환 = false; 하전환 = false; if T == 1 and 첫상전환[1] == true Then 첫상전환후일자수 = 1; if T == 1 and 첫상전환[1] == false Then 첫상전환후일자수 = 첫상전환후일자수+1; if T == -1 and 첫하전환[1] == true Then 첫하전환후일자수 = 1; if T == -1 and 첫하전환[1] == false Then 첫하전환후일자수 = 첫하전환후일자수+1; if T == 1 and 상전환[1] == true Then 상전환후일자수 = 1; if T == 1 and 상전환[1] == false and 상전환후일자수 >= 1 Then 상전환후일자수 = 상전환후일자수+1; if T == -1 and 하전환[1] == true Then 하전환후일자수 = 1; if T == -1 and 하전환[1] == false and 하전환후일자수 >= 1 Then 하전환후일자수 = 하전환후일자수+1; } sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } dayma = sum/P; mav = ma(c,P); var1 = mav-dayma; if crossup(var1,1) Then{ T = 1; 상전환 = true; 상전환후일자수 = 1; 하전환후일자수 = 0; 첫하전환후일자수 = 0; if T[1] != 1 Then{ 첫상전환 = true; 첫상전환후일자수 = 1; } } if CrossDown(var1,-1) Then{ T = -1; 하전환 = true; 하전환후일자수 = 1; 상전환후일자수 = 0; 첫상전환후일자수 = 0; if T[1] != -1 Then{ 첫하전환 = true; 첫하전환후일자수 = 1; } } if 첫상전환후일자수 >= 1 Then plot1(첫상전환후일자수); if 첫하전환후일자수 >= 1 Then plot2(첫하전환후일자수); if 상전환후일자수 >= 1 Then plot3(상전환후일자수); if 하전환후일자수 >= 1 Then plot4(하전환후일자수); 즐거운 하루되세요 > 해월정 님이 쓴 글입니다. > 제목 : Re : Re : 부탁드립니다. > 의도와다른부분이 있네요. 상전환 기준으로 설명드리겟습니다. 1. 10월15일 첫 당일상전환 발생입니다. 노든지표서 발생일을 1로하고싶습니다. 발생일이날 u1-u2==1 부탁드립니다. ~하전환경우도 동일하게부탁드립니다. 2. 지표 u1-u2 경우 제의도는 발생일 1 발생일 다음날부터 _전일발생경우 시초봉부터쭉 1 _전일미발생시 시초봉부터 쭉 2 _시초봉에서 당일상전환발생시 그다음봉에표현함 즉 시초봉엔 항상전일 발생여부체크가능하게함. 3. 2인 상황서(전일 미발생) _1.당일발생시 1로바뀌고 그다음날 시초봉서 3 이아니고 1(전일발생했기에) _2. 당일도 미발생시 익일시초봉서 2+1=3, 그다음날미발생이면 1추가.. 이런식으로수정부탁드립니다. 4. 10월28일경우 미발생인데 10월29일 시초봉 지표에변화가없습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 부탁드립니다. > 안녕하세요 예스스탁입니다. 분이하의 차트에는 내부적으로 일간데이터가 차트 첫봉+99일치가 제공됩니다. 그래서 차트 첫날부터 5일이평이 계산되고 지표가 나올수 있습니다. 차트상 5일이후부터 발생하게 했습니다. 나머지 내용도 수정했습니다. 의도와 다른부분 있으시면 다시 글 올려주시기 바랍니다. input : P(5); var : sum(0),Dayma(0),mav(0),cnt(0),Didx(0); var : T(0),upv(0),dnv(0); var : updiff(0),dndiff(0); var : u1(0),u2(0),d1(0),d2(0); //날짜변경(당일첫봉) if date != date[1] Then{ //일자수 카운트 Didx = Didx+1; Condition1 = false; Condition2 = false; } #P일간 일간 이평계산 sum = 0; for cnt = 0 to P-1{ sum = sum+DayClose(cnt); } dayma = sum/P; #분봉의 이평 mav = ma(c,P); #분봉과 일간이평 차이 var1 = mav-dayma; if didx >= 5 Then{ #차이값이 1을 상향돌파하면 if crossup(var1,1) Then{ #T는 상향돌파 하향이탈을 파악하기 위한 변수 #상향돌파라는 의미로 1을 저장 if T <= 0 then T = 1; #상향돌파가 하루에 여러번 발생할수 있으므로 #초기값이 false인 Condition1을 true로 변경해서 #당일 첫 상향돌파시만 날짜수를 기록함 if Condition1 == false Then{ Condition1 = true; if T == 1 and T[1] == 1 Then{ u1 = didx;//당일 날짜수 u2 = u1[1];//직전 상향돌파의 날짜수 } if T == 1 and T[1] != 1 Then{ u1 = didx;//당일 날짜수 u2 = didx;//직전 상향돌파의 날짜수 } } } #차이값이 -1을 하향이탈하면 if CrossDown(var1,-1) Then{ #T는 상향돌파 하향이탈을 파악하기 위한 변수 #상향돌파라는 의미로 1을 저장 if T >= 0 Then T = -1; #하향이탈이 하루에 여러번 발생할수 있으므로 #초기값이 false인 Condition2를 true로 변경해서 #당일 첫 하향이탈시만 날짜수를 기록함 if Condition2 == false Then{ Condition2 = true; if T == -1 and T[1] == -1 then{ d1 = didx; #당일 날짜수 d2 = d1[1];#직전 하향이탈의 날짜수 } if T == -1 and T[1] != -1 then{ d1 = didx; #당일 날짜수 d2 = didx;#직전 하향이탈의 날짜수 } } } #T가 1일때(상향돌파 발생후) if T == 1 Then{ #상향돌파 구간에서 하향이탈후 날짜수는 0 dndiff = 0; #전봉은 하향이탈구간이었다가 상향돌파로 바뀐경우 #날짜수를 저장 if T[1] != 1 Then{ upv = didx; } #현재 날짜수에서 최근0 상향돌파 날짜수를 빼서 날짜차이룰 계산 #당일은 차이값이 0이므로 1을 더해 당일 1부터 시작하게 함 updiff = (didx-upv+1); } if T == -1 then{ #하향이탈 구간에서 상향돌파후 날짜수는 0 updiff = 0; #전봉은 상향돌파구간이었다가 하향이탈로 바뀐경우 #날짜수를 저장 if T[1] != -1 Then{ dnv = didx; } #현재 날짜수에서 최근 하향이탈 날짜수를 빼서 날짜차이를 계산 #당일은 차이값이 0이므로 1을 더해 당일 1부터 시작하게 함 dndiff = (didx-dnv+1); } if updiff >= 1 Then plot1(updiff); Else plot1(0); if dndiff >= 1 Then plot2(dndiff); Else plot2(0); if T == 1 Then plot3(u1-u2); Else plot3(0); if T == -1 Then plot4(d1-d2); Else plot4(0); } 즐거운 하루되세요 > 해월정 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 45150 추가질문입니다. 틱90차트 만개봉에 적용했읍니다. 몇가지수정할상황이 있네요, 1 updiff와 dndiff 는 1이상일경우표현한다. 2,차트 첫날인 10월6일에 부터지표가뜨네요. 5일이평이적용돼니 최소 5일이지나서, 처음 당일상전환이나 당일하전환이 발생한날부터 지표 발생하게함. 3. 10월15일 당일상전환이발생했네요, 이경우 d1-d2==0 함,하전환경우 동일함. 4, 11월3일 당일상전환이 발생인데 이경우 하전환후 당일상전환발생 인데, 이런경우 u1-d1==1 함 ,지표에선 3으로뜨네요. 하전환경우도 동일하게 수정부탁드립니다. 수식의 자세한설명에 감사드립니다..수고하세요..