커뮤니티
문의드립니다
2014-09-04 14:07:29
197
글번호 78348
아래 지표를,전 파동폭에 30%되는 시점을 돌파 이탈할때 전환되게 변경 부탁드립니다
Input:전환율(2);
Var:j(0),상승(100),하락(-100),상승률(0),하락률(0),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
상승률 = 1 + (전환율/100);
하락률 = 1 - (전환율/100);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고 * 하락률 <= H[1] and 기준고 * 하락률 > H then
추세 = 하락;
else if 기준저 * 상승률 >= L[1] and 기준저 * 상승률 < L then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
답변 5
예스스탁 예스스탁 답변
2014-09-04 15:39:52
안녕하세요
예스스탁입니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > H then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < L then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요
> 해피데이m 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 아래 지표를,전 파동폭에 30%되는 시점을 돌파 이탈할때 전환되게 변경 부탁드립니다
Input:전환율(2);
Var:j(0),상승(100),하락(-100),상승률(0),하락률(0),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
상승률 = 1 + (전환율/100);
하락률 = 1 - (전환율/100);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고 * 하락률 <= H[1] and 기준고 * 하락률 > H then
추세 = 하락;
else if 기준저 * 상승률 >= L[1] and 기준저 * 상승률 < L then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
해피데이m
2014-09-05 12:36:03
마지막 하락 추세선이 전 추세선에 30% 전환비율 시점이 1번 켄들로,1번 켄들에 하락
추세선이 나타나야되는데 3번 켄들시점에 가서 나타납니다(그림1).
이부분에 대한 설명 부탁드립니다.
그리고 전환비율이 발생됀 시점에 켄들에 추세선이 나타나는 지표로 수정부탁드립니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > H then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < L then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요
예스스탁 예스스탁 답변
2014-09-05 12:58:23
안녕하세요
예스스탁입니다.
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > H then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < L then
추세 = 상승;
원본식에 기본수식에 하락은 고가를 기준으로
핸재봉은 고가가 지정한 30%보다 아래여야 하고
직전봉은 크다라는 조건이 있습니다.
답변드린 부분은 2%로 되어 있는 부분을 최근 추세의 30%로만 지정해 드렸습니다.
원본식에서 하나의 봉의 중간에 걸친봉은 해당이 되지 않습니다.
고가와 저가상으로 값이 내려오거나 올라가야 합니다.
래와 같이 작성하시면
현재봉은 종가기준으로 지정한 값이하이면 조건이 충족하게 됩니다.
위 내용이 30%를 기준으로 추세를 판가름하는 내용입니다.
위 내용 참고하셔서 추세조건식을 조절하시기 바랍니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > c then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < c then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
plot1(H);
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
plot1(L);
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
plot1(H);
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
plot1(L);
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요
> 해피데이m 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다
> 마지막 하락 추세선이 전 추세선에 30% 전환비율 시점이 1번 켄들로,1번 켄들에 하락
추세선이 나타나야되는데 3번 켄들시점에 가서 나타납니다(그림1).
이부분에 대한 설명 부탁드립니다.
그리고 전환비율이 발생됀 시점에 켄들에 추세선이 나타나는 지표로 수정부탁드립니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > H then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < L then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요
해피데이m
2014-09-05 19:26:00
아래 수식을 per(40)으로 적용시 첨부파일에 표시한 2-3번 추세선이 오류입니다.
즉 1-2번 구간폭에 40%(261.45)를 하방으로 이탈시 추세선이 나타나야되는데
원인을 모르겠읍니다. 아래지표를 잘못알고 이해하고있다면,
첨부파일처럼 1-2번 구간이 상승 진행중일때,하방으로 1-2번
구간폭에 per를 이탈시 새로운 추세선이 생성되고,하락락진행시는 반대로 지표 부탁드립니다
>
안녕하세요
예스스탁입니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > c then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < c then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
plot1(H);
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
plot1(L);
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
plot1(H);
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
plot1(L);
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요
예스스탁 예스스탁 답변
2014-09-11 17:46:06
안녕하세요
예스스탁입니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > c then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < c then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = min(H,고[1]);
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = min(L,저[1]);
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요
> 해피데이m 님이 쓴 글입니다.
> 제목 : Re : Re : Re : Re : 문의드립니다
> 아래 수식을 per(40)으로 적용시 첨부파일에 표시한 2-3번 추세선이 오류입니다.
즉 1-2번 구간폭에 40%(261.45)를 하방으로 이탈시 추세선이 나타나야되는데
원인을 모르겠읍니다. 아래지표를 잘못알고 이해하고있다면,
첨부파일처럼 1-2번 구간이 상승 진행중일때,하방으로 1-2번
구간폭에 per를 이탈시 새로운 추세선이 생성되고,하락락진행시는 반대로 지표 부탁드립니다
>
안녕하세요
예스스탁입니다.
Input:Per(30);
Var:j(0),상승(100),하락(-100),기준고(0),기준저(0),
기준고Bar(0),기준저Bar(0),추세(0),ZZ(0),TL1(0),TL2(0),방향(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0);
#---------------------------------------------------------#
# Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고-(기준고-기준저)*(Per/100) <= H[1] and 기준고-(기준고-기준저)*(Per/100) > c then
추세 = 하락;
else if 기준저+(기준고-기준저)*(Per/100) >= L[1] and 기준저+(기준고-기준저)*(Per/100) < c then
추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
고Idx[1] = Index - 고Bar[1];
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
저Idx[1] = Index - 저Bar[1];
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if ZZ[1] != ZZ then {
if 추세 == 상승 Then{
plot1(H);
TL1 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate[저bar[1]],stime[저bar[1]],저[1]);
TL_SetColor(TL1,BLUE);
}
if 추세 == 하락 Then{
plot1(L);
TL1 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate[고bar[1]],stime[고bar[1]],고[1]);
TL_SetColor(TL1,RED);
}
}
TL_Delete(TL2);
if ZZ[1] == ZZ then {
if 추세 == 상승 Then{
plot1(H);
TL2 = TL_New(sdate[저bar[1]],stime[저bar[1]],저[1],sdate,stime,c);
TL_SetColor(TL2,RED);
}
if 추세 == 하락 Then{
plot1(L);
TL2 = TL_New(sdate[고bar[1]],stime[고bar[1]],고[1],sdate,stime,c);
TL_SetColor(TL2,BLUE);
}
}
즐거운 하루되세요