예스스탁
예스스탁 답변
2022-05-09 17:11:18
안녕하세요
예스스탁입니다.
올리신 수식은 지표선으로 보는 내용입니다.
지표위에 숫자가 표시되게 추가해 드립니다.
파동번호가 소숫점2자리까지 지정되어 있어 소숫점 2자리까지 텍스트가 표시되게 작성해 드립니다.
Input:상승률(7.2), //지그재그 파동의 상승률
하락률(11.9), //지그재그 파동의 하락률
참조종목(1); //2 이상이면 참조종목의 파동을 이용
Var:CC(0),j(0),k(0),
추세(0),상승(100),하락(-100),
전고점(1),전저점(2),연속고(3),연속저(4),
기준고(0),기준저(0),
변곡점(0),
파동번호(0),
파동1번고점(0),파동1번저점(0),
파동3번고점(0),파동3번저점(0),
파동5번고점(0),파동5번저점(0),
파동연장(0), 파동변화(0);
Array:고[10](0),저[10](0);
#==============================================================================#
# 초기처리 (Initialize Routine)
#==============================================================================#
if 참조종목 == 1 then CC = data1(C);
//else CC = data2(C);
변곡점 = 0; //매번 0값으로 초기화
#=========================================================#
# ZIGZAG 파동 계산
#=========================================================#
if 기준고 <= CC or 기준고 == 0 or IsNaN(기준고) == true then 기준고 = CC;
if 기준저 >= CC or 기준저 == 0 or IsNaN(기준저) == true then 기준저 = CC;
if 기준저[1] * (1 + (상승률/100)) > CC[1] and 기준저[1] * (1 + (상승률/100)) <= CC then
추세 = 상승;
else if 기준고[1] * (1 - (하락률/100)) < CC[1] and 기준고[1] * (1 - (하락률/100)) >= CC then
추세 = 하락;
if 추세[1] == 상승 and 추세 == 하락 then
{
for j = 8 downto 1
{
고[j+1] = 고[j];
}
고[1] = 기준고;
기준고 = CC;
기준저 = CC;
변곡점 = 전고점;
}
else if 추세[1] == 하락 and 추세 == 상승 then
{
for j = 8 downto 1
{
저[j+1] = 저[j];
}
저[1] = 기준저;
기준저 = CC;
기준고 = CC;
변곡점 = 전저점;
}
else if 추세[1] == 하락 and 추세 == 하락 then
{
if 기준고[1] * (1 - (하락률/100)) <= CC[1]
and 기준고[1] * (1 - (하락률/100)) > CC
and 고[1] < 기준고 then
{
고[1] = 기준고;
기준고 = CC;
변곡점 = 연속고;
}
}
else if 추세[1] == 상승 and 추세 == 상승 then
{
if 기준저[1] * (1 + (상승률/100)) >= CC[1]
and 기준저[1] * (1 + (상승률/100)) < CC
and 저[1] > 기준저 then
{
저[1] = 기준저;
기준저 = CC;
변곡점 = 연속저;
}
}
#=========================================================#
# 하락전환
#=========================================================#
if 변곡점 == 전고점 or 변곡점 == 연속고 then
{
if 파동번호 == 1 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번고점 = max(고[3],고[2],고[1]);
}
if 파동번호 == -2 Then
{
파동번호 = -3;
}
}
#=========================================================#
# 상승전환
#=========================================================#
if 변곡점 == 전저점 or 변곡점 == 연속저 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;
}
}
#=========================================================#
# 진행중
#=========================================================#
if 파동번호 == 2 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 2.3 then
{
if 파동1번고점 > 0 and
파동1번고점 < CC Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
else if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 3.2 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
파동연장 = 0;
}
else if 저[1] > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 0;
}
}
else if 파동번호 == 3.32 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
파동연장 = 0;
}
else if 저[1] > CC Then
{
파동번호 = 3.2;
}
}
else if 파동번호 == 3.4 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
파동연장 = 0;
}
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;
파동연장 = 0;
}
else if 고[2] > CC Then
{
파동번호 = -1;
파동연장 = 0;
}
}
else if 파동번호 == -1 then
{
if 파동연장 == 0 and
파동3번저점 > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 1;
}
}
else if 파동번호 == -2 then
{
if 고[1] < CC Then
{
if 파동연장 == 1 or 파동연장 == 3 Then
{
파동번호 = 5;
}
Else
{
파동번호 = 5.3;
파동연장 = 5;
}
}
}
else if 파동번호 == 1 then
{
if 파동5번고점 > 0 and
파동5번고점 < CC Then
{
파동번호 = 5.3;
파동연장 = 5;
}
}
var1 = 파동번호 ;
plot1(var1,"파동번호");
var : tx(0);
if var1 != var1[1] Then
{
tx = Text_New_Self(sDate,sTime,var1,NumToStr(var1,2));
if var1 > 0 Then
Text_SetStyle(tx,2,1);
Else
Text_SetStyle(tx,2,0);
}
즐거운 하루되세요
> 왕팡 님이 쓴 글입니다.
> 제목 : 문의합니다.
> 보조지표식 위에 파동번호가 표시되지않고 있습니다.
체크바랍니다.
감사합니다.
--------------------
Input:상승률(7.2), //지그재그 파동의 상승률
하락률(11.9), //지그재그 파동의 하락률
참조종목(1); //2 이상이면 참조종목의 파동을 이용
Var:CC(0),j(0),k(0),
추세(0),상승(100),하락(-100),
전고점(1),전저점(2),연속고(3),연속저(4),
기준고(0),기준저(0),
변곡점(0),
파동번호(0),
파동1번고점(0),파동1번저점(0),
파동3번고점(0),파동3번저점(0),
파동5번고점(0),파동5번저점(0),
파동연장(0), 파동변화(0);
Array:고[10](0),저[10](0);
#==============================================================================#
# 초기처리 (Initialize Routine)
#==============================================================================#
if 참조종목 == 1 then CC = data1(C);
//else CC = data2(C);
변곡점 = 0; //매번 0값으로 초기화
#=========================================================#
# ZIGZAG 파동 계산
#=========================================================#
if 기준고 <= CC or 기준고 == 0 or IsNaN(기준고) == true then 기준고 = CC;
if 기준저 >= CC or 기준저 == 0 or IsNaN(기준저) == true then 기준저 = CC;
if 기준저[1] * (1 + (상승률/100)) > CC[1] and 기준저[1] * (1 + (상승률/100)) <= CC then
추세 = 상승;
else if 기준고[1] * (1 - (하락률/100)) < CC[1] and 기준고[1] * (1 - (하락률/100)) >= CC then
추세 = 하락;
if 추세[1] == 상승 and 추세 == 하락 then
{
for j = 8 downto 1
{
고[j+1] = 고[j];
}
고[1] = 기준고;
기준고 = CC;
기준저 = CC;
변곡점 = 전고점;
}
else if 추세[1] == 하락 and 추세 == 상승 then
{
for j = 8 downto 1
{
저[j+1] = 저[j];
}
저[1] = 기준저;
기준저 = CC;
기준고 = CC;
변곡점 = 전저점;
}
else if 추세[1] == 하락 and 추세 == 하락 then
{
if 기준고[1] * (1 - (하락률/100)) <= CC[1]
and 기준고[1] * (1 - (하락률/100)) > CC
and 고[1] < 기준고 then
{
고[1] = 기준고;
기준고 = CC;
변곡점 = 연속고;
}
}
else if 추세[1] == 상승 and 추세 == 상승 then
{
if 기준저[1] * (1 + (상승률/100)) >= CC[1]
and 기준저[1] * (1 + (상승률/100)) < CC
and 저[1] > 기준저 then
{
저[1] = 기준저;
기준저 = CC;
변곡점 = 연속저;
}
}
#=========================================================#
# 하락전환
#=========================================================#
if 변곡점 == 전고점 or 변곡점 == 연속고 then
{
if 파동번호 == 1 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번고점 = max(고[3],고[2],고[1]);
}
if 파동번호 == -2 Then
{
파동번호 = -3;
}
}
#=========================================================#
# 상승전환
#=========================================================#
if 변곡점 == 전저점 or 변곡점 == 연속저 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;
}
}
#=========================================================#
# 진행중
#=========================================================#
if 파동번호 == 2 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 2.3 then
{
if 파동1번고점 > 0 and
파동1번고점 < CC Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
else if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 3.2 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
파동연장 = 0;
}
else if 저[1] > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 0;
}
}
else if 파동번호 == 3.32 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
파동연장 = 0;
}
else if 저[1] > CC Then
{
파동번호 = 3.2;
}
}
else if 파동번호 == 3.4 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
파동연장 = 0;
}
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;
파동연장 = 0;
}
else if 고[2] > CC Then
{
파동번호 = -1;
파동연장 = 0;
}
}
else if 파동번호 == -1 then
{
if 파동연장 == 0 and
파동3번저점 > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 1;
}
}
else if 파동번호 == -2 then
{
if 고[1] < CC Then
{
if 파동연장 == 1 or 파동연장 == 3 Then
{
파동번호 = 5;
}
Else
{
파동번호 = 5.3;
파동연장 = 5;
}
}
}
else if 파동번호 == 1 then
{
if 파동5번고점 > 0 and
파동5번고점 < CC Then
{
파동번호 = 5.3;
파동연장 = 5;
}
}
var1 = 파동번호 ;
plot1(var1,"파동번호");