커뮤니티
수식문의
2012-08-27 08:42:36
333
글번호 54092
아래 지표수식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
input:n(11);
Var:CC(0),상승(100),하락(-100),추세(0),j(0),상승률(0),하락률(0),
기준고(0),기준저(0),zz(0),파동번호(0),파동1번고점(0),파동1번저점(0),
파동3번고점(0),파동3번저점(0),파동5번고점(0),파동5번저점(0),
파동연장(0),파동변화(0);
Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0);
CC = data1(C);
상승률 = 1 + (n/100);
하락률 = 1 - (n/100);
for j = 1 to 9
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#---------------------------------------------------------#
# ZIGZAG 파동 계산
#---------------------------------------------------------#
if 기준고 <= CC or 기준고 == 0 then 기준고 = CC;
if 기준저 >= CC or 기준저 == 0 then 기준저 = CC;
if 기준저[1] * 상승률 > CC[1] and 기준저[1] * 상승률 <= CC then
추세 = 상승;
else if 기준고[1] * 하락률 < CC[1] and 기준고[1] * 하락률 >= CC then
추세 = 하락;
if 추세[1] == 상승 and 추세 == 하락 then
{
for j = 8 downto 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
ZZ = 기준고;
고Bar[1] = 0;
기준고 = CC;
기준저 = CC;
}
else if 추세[1] == 하락 and 추세 == 상승 then
{
for j = 8 downto 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
ZZ = 기준저;
저Bar[1] = 0;
기준저 = CC;
기준고 = CC;
}
else if 추세[1] == 하락 and 추세 == 하락 then
{
if 기준고[1] * 하락률 <= CC[1]
and 기준고[1] * 하락률 > CC
and 고[1] < 기준고 then
{
고[1] = 기준고;
ZZ = 기준고;
고Bar[1] = 0;
기준고 = CC;
}
}
else if 추세[1] == 상승 and 추세 == 상승 then
{
if 기준저[1] * 상승률 >= CC[1]
and 기준저[1] * 상승률 < CC
and 저[1] > 기준저 then
{
저[1] = 기준저;
ZZ = 기준저;
저Bar[1] = 0;
기준저 = CC;
}
}
if ZZ[1] != ZZ then
{
#---------------------------------------------------------#
# 상승전환
#---------------------------------------------------------#
if 추세 == 상승 then
{
if 파동번호 == 0 Then
{
파동번호 = 1;
파동1번저점 = 저[1];
}
if 파동번호 == 2 Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
if 파동번호 == 2.3 Then
{
if 저[2] > 저[1] Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
}
if 파동번호 == 3.2 Then
{
파동번호 = 3.3;
}
if 파동번호 == 3.32 Then
{
파동번호 = 3.33;
}
if 파동번호 == 3.34 Then
{
파동번호 = 3.35;
}
if 파동번호 == 3.4 Then
{
파동번호 = 3.5;
}
if 파동번호 == 4 Then
{
파동번호 = 5;
파동5번저점 = 저[1];
}
if 파동번호 == 5.4 Then
{
파동번호 = 5.5;
}
if 파동번호 == -1 Then
{
파동번호 = -2;
}
if 파동번호 == -3 Then
{
파동번호 = 1;
파동1번저점 = 저[1];
파동연장 = 0;
파동변화 = 0;
}
}
#---------------------------------------------------------#
# 하락전환
#---------------------------------------------------------#
else
{
if 파동번호 == 1 or 파동번호 == 1.5 Then
{
파동번호 = 2;
파동1번고점 = 고[1];
}
if 파동번호 == 3 Then
{
if 파동1번고점 >= 고[1] Then
{
if 파동변화 != 2 then
{
파동번호 = 2.3;
파동변화 = 2;
}
else
{
파동번호 = 3.2;
파동연장 = 3;
}
}
Else
{
파동번호 = 4;
파동3번고점 = 고[1];
}
}
if 파동번호 == 3.3 Then
{
파동번호 = 3.4;
}
if 파동번호 == 3.33 Then
{
파동번호 = 3.34;
}
if 파동번호 == 3.35 Then
{
파동번호 = 3.4;
}
if 파동번호 == 3.5 Then
{
파동번호 = 4;
파동3번고점 = 고[1];
}
if 파동번호 == 5 Then
{
파동번호 = -1;
파동5번고점 = 고[1];
}
if 파동번호 == 5.3 Then
{
파동번호 = 5.4;
}
if 파동번호 == 5.5 Then
{
파동번호 = -1;
파동5번고점 = 고[1];
}
if 파동번호 == -2 Then
{
파동번호 = -3;
}
}
}
#---------------------------------------------------------#
# 진행중
#---------------------------------------------------------#
if 파동번호 == 2 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 2.3 then
{
if 파동1번고점 < CC Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
else if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 3.2 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 저[1] > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
}
}
else if 파동번호 == 3.32 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 저[1] > CC Then
{
파동번호 = 3.2;
}
}
else if 파동번호 == 3.4 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 고[2] > CC Then
{
파동번호 = 3.32;
}
}
else if 파동번호 == 4 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 파동1번고점 > CC Then
{
파동번호 = 3.2;
파동연장 = 3;
}
}
else if 파동번호 == 5 Then
{
if (파동1번고점 - 파동1번저점) > (파동3번고점 - 파동3번저점) and
(CC - 파동5번저점) > (파동3번고점 - 파동3번저점) Then
{
파동번호 = 3.3;
파동연장 = 3;
}
}
else if 파동번호 == 5.4 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 고[2] > CC Then
{
파동번호 = -1;
}
}
else if 파동번호 == -1 then
{
if 파동연장 == 0 and
파동3번저점 > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 1;
}
}
else if 파동번호 == -2 then
{
if 파동연장 == 0 and
고[1] < CC Then
{
파동번호 = 5.3;
파동연장 = 5;
}
}
#---------------------------------------------------------#
# 지표식
#---------------------------------------------------------#
Plot1(파동번호,"파동번호",iff(int(파동번호)==1,RED,
iff(int(파동번호)==2,BLUE,
iff(int(파동번호)==3,MAGENTA,
iff(int(파동번호)==4,LBLUE,
iff(int(파동번호)==5,PINK,
iff(int(파동번호)==-1,CYAN,
iff(int(파동번호)==-2,GREEN,GRAY
)))))))); //막대그래프
식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
답변 1
예스스탁 예스스탁 답변
2012-08-27 14:18:54
안녕하세요
예스스탁입니다.
식상에 차트의 주기의 제한이 없습니다.
그대로 분봉에서 사용할 수 있는 지표식입니다.
실시간 차트는 최대 5000봉 까지만 과거데이터가 조회되므로
이 이기간안에 n으로 지정한 등락이 없으면 지표의 값이 나오지 않습니다.
n값 조절하시면 분봉에서 지표 출력됩니다.
즐거운 하루되세요
> 백진강 님이 쓴 글입니다.
> 제목 : 수식문의
> 아래 지표수식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
input:n(11);
Var:CC(0),상승(100),하락(-100),추세(0),j(0),상승률(0),하락률(0),
기준고(0),기준저(0),zz(0),파동번호(0),파동1번고점(0),파동1번저점(0),
파동3번고점(0),파동3번저점(0),파동5번고점(0),파동5번저점(0),
파동연장(0),파동변화(0);
Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0);
CC = data1(C);
상승률 = 1 + (n/100);
하락률 = 1 - (n/100);
for j = 1 to 9
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#---------------------------------------------------------#
# ZIGZAG 파동 계산
#---------------------------------------------------------#
if 기준고 <= CC or 기준고 == 0 then 기준고 = CC;
if 기준저 >= CC or 기준저 == 0 then 기준저 = CC;
if 기준저[1] * 상승률 > CC[1] and 기준저[1] * 상승률 <= CC then
추세 = 상승;
else if 기준고[1] * 하락률 < CC[1] and 기준고[1] * 하락률 >= CC then
추세 = 하락;
if 추세[1] == 상승 and 추세 == 하락 then
{
for j = 8 downto 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
ZZ = 기준고;
고Bar[1] = 0;
기준고 = CC;
기준저 = CC;
}
else if 추세[1] == 하락 and 추세 == 상승 then
{
for j = 8 downto 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
ZZ = 기준저;
저Bar[1] = 0;
기준저 = CC;
기준고 = CC;
}
else if 추세[1] == 하락 and 추세 == 하락 then
{
if 기준고[1] * 하락률 <= CC[1]
and 기준고[1] * 하락률 > CC
and 고[1] < 기준고 then
{
고[1] = 기준고;
ZZ = 기준고;
고Bar[1] = 0;
기준고 = CC;
}
}
else if 추세[1] == 상승 and 추세 == 상승 then
{
if 기준저[1] * 상승률 >= CC[1]
and 기준저[1] * 상승률 < CC
and 저[1] > 기준저 then
{
저[1] = 기준저;
ZZ = 기준저;
저Bar[1] = 0;
기준저 = CC;
}
}
if ZZ[1] != ZZ then
{
#---------------------------------------------------------#
# 상승전환
#---------------------------------------------------------#
if 추세 == 상승 then
{
if 파동번호 == 0 Then
{
파동번호 = 1;
파동1번저점 = 저[1];
}
if 파동번호 == 2 Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
if 파동번호 == 2.3 Then
{
if 저[2] > 저[1] Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
}
if 파동번호 == 3.2 Then
{
파동번호 = 3.3;
}
if 파동번호 == 3.32 Then
{
파동번호 = 3.33;
}
if 파동번호 == 3.34 Then
{
파동번호 = 3.35;
}
if 파동번호 == 3.4 Then
{
파동번호 = 3.5;
}
if 파동번호 == 4 Then
{
파동번호 = 5;
파동5번저점 = 저[1];
}
if 파동번호 == 5.4 Then
{
파동번호 = 5.5;
}
if 파동번호 == -1 Then
{
파동번호 = -2;
}
if 파동번호 == -3 Then
{
파동번호 = 1;
파동1번저점 = 저[1];
파동연장 = 0;
파동변화 = 0;
}
}
#---------------------------------------------------------#
# 하락전환
#---------------------------------------------------------#
else
{
if 파동번호 == 1 or 파동번호 == 1.5 Then
{
파동번호 = 2;
파동1번고점 = 고[1];
}
if 파동번호 == 3 Then
{
if 파동1번고점 >= 고[1] Then
{
if 파동변화 != 2 then
{
파동번호 = 2.3;
파동변화 = 2;
}
else
{
파동번호 = 3.2;
파동연장 = 3;
}
}
Else
{
파동번호 = 4;
파동3번고점 = 고[1];
}
}
if 파동번호 == 3.3 Then
{
파동번호 = 3.4;
}
if 파동번호 == 3.33 Then
{
파동번호 = 3.34;
}
if 파동번호 == 3.35 Then
{
파동번호 = 3.4;
}
if 파동번호 == 3.5 Then
{
파동번호 = 4;
파동3번고점 = 고[1];
}
if 파동번호 == 5 Then
{
파동번호 = -1;
파동5번고점 = 고[1];
}
if 파동번호 == 5.3 Then
{
파동번호 = 5.4;
}
if 파동번호 == 5.5 Then
{
파동번호 = -1;
파동5번고점 = 고[1];
}
if 파동번호 == -2 Then
{
파동번호 = -3;
}
}
}
#---------------------------------------------------------#
# 진행중
#---------------------------------------------------------#
if 파동번호 == 2 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 2.3 then
{
if 파동1번고점 < CC Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
else if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 3.2 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 저[1] > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
}
}
else if 파동번호 == 3.32 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 저[1] > CC Then
{
파동번호 = 3.2;
}
}
else if 파동번호 == 3.4 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 고[2] > CC Then
{
파동번호 = 3.32;
}
}
else if 파동번호 == 4 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 파동1번고점 > CC Then
{
파동번호 = 3.2;
파동연장 = 3;
}
}
else if 파동번호 == 5 Then
{
if (파동1번고점 - 파동1번저점) > (파동3번고점 - 파동3번저점) and
(CC - 파동5번저점) > (파동3번고점 - 파동3번저점) Then
{
파동번호 = 3.3;
파동연장 = 3;
}
}
else if 파동번호 == 5.4 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 고[2] > CC Then
{
파동번호 = -1;
}
}
else if 파동번호 == -1 then
{
if 파동연장 == 0 and
파동3번저점 > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 1;
}
}
else if 파동번호 == -2 then
{
if 파동연장 == 0 and
고[1] < CC Then
{
파동번호 = 5.3;
파동연장 = 5;
}
}
#---------------------------------------------------------#
# 지표식
#---------------------------------------------------------#
Plot1(파동번호,"파동번호",iff(int(파동번호)==1,RED,
iff(int(파동번호)==2,BLUE,
iff(int(파동번호)==3,MAGENTA,
iff(int(파동번호)==4,LBLUE,
iff(int(파동번호)==5,PINK,
iff(int(파동번호)==-1,CYAN,
iff(int(파동번호)==-2,GREEN,GRAY
)))))))); //막대그래프
식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
다음글
이전글