커뮤니티
부탁드립니다.(수정)
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으로뜨네요.
하전환경우도 동일하게 수정부탁드립니다.
수식의 자세한설명에 감사드립니다..수고하세요..