커뮤니티
지표식 수정 부탁합니다...
2019-05-07 11:03:03
284
글번호 128438
수고하십니다...
아래 지표는 예전에 수식지왕님이 만든 지표식입니다.
SwingHigh(1,H,4,4,9) ,SwingLow(1,L,4,4,9) 라고 할 때
아래 식의 highest의 H, lowest의 L을 종가c 기준으로 변환 부탁드립니다.
즉, swinghigh의 해당 봉이 양봉이면 종가, 음봉이면 시가로 고점을 표시하여 연결하고 싶습니다.
또, swinglow의 해당 봉이 양봉이면 시가, 음봉이면 종가로 저점을 표시하여 연결하고 싶습니다.
수고하세요~~
###############
input:left(4),right(4),x(0.005);
var:j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),미완성(0),미완성bar(0),고점표시(0),저점표시(0),
예비고추세기울기(0),예비저추세기울기(0),예비고추세선(0),예비저추세선(0),
고추세기울기(0),저추세기울기(0),고추세선(0),저추세선(0);
array:고[10](0),저[10](0),고bar[10](0),저bar[10](0);
#================================================#
# 변곡점 계산
#================================================#
if highest(h[1],left) <= h then {
예비고 = h;
예비고bar = 0;
}
else
예비고bar = 예비고bar + 1;
if lowest(l[1],left) >= l then {
예비저 = l;
예비저bar = 0;
}
else
예비저bar = 예비저bar + 1;
고점표시 = (o[right] + c[right]) / 2;
저점표시 = (o[right] + c[right]) / 2;
for j = 1 to 9 {
고bar[j] = 고bar[j] + 1;
저bar[j] = 저bar[j] + 1;
}
if 예비고bar == right and highest(h,right) <= h[right] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
고점표시 = 예비고 + x;
고[1] = 예비고;
고bar[1] = 예비고bar;
if 저bar[1] > 고bar[2] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
미완성 = 0;
for j = 고bar[1] + 1 to 고bar[2] - 1 {
if 미완성 == 0 or 미완성 > l[j] then {
미완성 = l[j];
미완성bar = j;
}
}
저[1] = 미완성;
저bar[1] = 미완성bar;
}
}
if 예비저bar == right and lowest(l,right) >= l[right] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
저점표시 = 예비저 - x;
저[1] = 예비저;
저bar[1] = 예비저bar;
if 고bar[1] > 저bar[2] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
미완성 = 0;
for j = 저bar[1] + 1 to 저bar[2] - 1 {
if 미완성 < h[j] then {
미완성 = h[j];
미완성bar = j;
}
}
고[1] = 미완성;
고bar[1] = 미완성bar;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
예비고추세선 = 0;
예비저추세선 = 0;
for j = 1 to 9 {
if 예비고 < 고[j] then {
예비고추세기울기 = (예비고-고[j])/(고bar[j]-예비고bar);
예비고추세선 = 예비고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 1 to 9 {
if 저[j] < 예비저 and 저[j] > 0 then {
예비저추세기울기 = (예비저-저[j])/(저bar[j]-예비저bar);
예비저추세선 = 예비저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
고추세선 = 0;
저추세선 = 0;
for j = 2 to 9 {
if 고[1] < 고[j] then {
고추세기울기 = (고[1]-고[j])/(고bar[j]-고bar[1]);
고추세선 = 고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 2 to 9 {
if 저[j] < 저[1] and 저[j] > 0 then {
저추세기울기 = (저[1]-저[j])/(저bar[j]-저bar[1]);
저추세선 = 저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
#=====================================================#
# 지표출력
#=====================================================#
//Y축표시 : 가격
if 고점표시 > h[right] then plot1(고점표시,"전고점",blue);
if 저점표시 < l[right] then plot2(저점표시,"전저점",red);
if 예비고추세선>0 then plot3(예비고추세선,"예비고추세선",blue);
if 예비저추세선>0 then plot4(예비저추세선,"예비저추세선",red);
if 고추세선>0 then plot5(고추세선,"고추세선",blue);
if 저추세선>0 then plot6(저추세선,"저추세선",red);
답변 1
예스스탁 예스스탁 답변
2019-05-07 11:17:24
안녕하세요
예스스탁입니다.
input:left(4),right(4),x(0.005);
var:j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),미완성(0),미완성bar(0),고점표시(0),저점표시(0),
예비고추세기울기(0),예비저추세기울기(0),예비고추세선(0),예비저추세선(0),
고추세기울기(0),저추세기울기(0),고추세선(0),저추세선(0),hh(0),ll(0);
array:고[10](0),저[10](0),고bar[10](0),저bar[10](0);
hh = max(c,o);
ll = min(c,o);
#================================================#
# 변곡점 계산
#================================================#
if highest(hh[1],left) <= hh then {
예비고 = hh;
예비고bar = 0;
}
else
예비고bar = 예비고bar + 1;
if lowest(ll[1],left) >= ll then {
예비저 = ll;
예비저bar = 0;
}
else
예비저bar = 예비저bar + 1;
고점표시 = (hh[right] + ll[right]) / 2;
저점표시 = (hh[right] + ll[right]) / 2;
for j = 1 to 9 {
고bar[j] = 고bar[j] + 1;
저bar[j] = 저bar[j] + 1;
}
if 예비고bar == right and highest(hh,right) <= hh[right] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
고점표시 = 예비고 + x;
고[1] = 예비고;
고bar[1] = 예비고bar;
if 저bar[1] > 고bar[2] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
미완성 = 0;
for j = 고bar[1] + 1 to 고bar[2] - 1 {
if 미완성 == 0 or 미완성 > ll[j] then {
미완성 = ll[j];
미완성bar = j;
}
}
저[1] = 미완성;
저bar[1] = 미완성bar;
}
}
if 예비저bar == right and lowest(ll,right) >= ll[right] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
저점표시 = 예비저 - x;
저[1] = 예비저;
저bar[1] = 예비저bar;
if 고bar[1] > 저bar[2] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
미완성 = 0;
for j = 저bar[1] + 1 to 저bar[2] - 1 {
if 미완성 < hh[j] then {
미완성 = hh[j];
미완성bar = j;
}
}
고[1] = 미완성;
고bar[1] = 미완성bar;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
예비고추세선 = 0;
예비저추세선 = 0;
for j = 1 to 9 {
if 예비고 < 고[j] then {
예비고추세기울기 = (예비고-고[j])/(고bar[j]-예비고bar);
예비고추세선 = 예비고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 1 to 9 {
if 저[j] < 예비저 and 저[j] > 0 then {
예비저추세기울기 = (예비저-저[j])/(저bar[j]-예비저bar);
예비저추세선 = 예비저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
고추세선 = 0;
저추세선 = 0;
for j = 2 to 9 {
if 고[1] < 고[j] then {
고추세기울기 = (고[1]-고[j])/(고bar[j]-고bar[1]);
고추세선 = 고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 2 to 9 {
if 저[j] < 저[1] and 저[j] > 0 then {
저추세기울기 = (저[1]-저[j])/(저bar[j]-저bar[1]);
저추세선 = 저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
#=====================================================#
# 지표출력
#=====================================================#
//Y축표시 : 가격
if 고점표시 > hh[right] then plot1(고점표시,"전고점",blue);
if 저점표시 < ll[right] then plot2(저점표시,"전저점",red);
if 예비고추세선>0 then plot3(예비고추세선,"예비고추세선",blue);
if 예비저추세선>0 then plot4(예비저추세선,"예비저추세선",red);
if 고추세선>0 then plot5(고추세선,"고추세선",blue);
if 저추세선>0 then plot6(저추세선,"저추세선",red);
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 지표식 수정 부탁합니다...
> 수고하십니다...
아래 지표는 예전에 수식지왕님이 만든 지표식입니다.
SwingHigh(1,H,4,4,9) ,SwingLow(1,L,4,4,9) 라고 할 때
아래 식의 highest의 H, lowest의 L을 종가c 기준으로 변환 부탁드립니다.
즉, swinghigh의 해당 봉이 양봉이면 종가, 음봉이면 시가로 고점을 표시하여 연결하고 싶습니다.
또, swinglow의 해당 봉이 양봉이면 시가, 음봉이면 종가로 저점을 표시하여 연결하고 싶습니다.
수고하세요~~
###############
input:left(4),right(4),x(0.005);
var:j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),미완성(0),미완성bar(0),고점표시(0),저점표시(0),
예비고추세기울기(0),예비저추세기울기(0),예비고추세선(0),예비저추세선(0),
고추세기울기(0),저추세기울기(0),고추세선(0),저추세선(0);
array:고[10](0),저[10](0),고bar[10](0),저bar[10](0);
#================================================#
# 변곡점 계산
#================================================#
if highest(h[1],left) <= h then {
예비고 = h;
예비고bar = 0;
}
else
예비고bar = 예비고bar + 1;
if lowest(l[1],left) >= l then {
예비저 = l;
예비저bar = 0;
}
else
예비저bar = 예비저bar + 1;
고점표시 = (o[right] + c[right]) / 2;
저점표시 = (o[right] + c[right]) / 2;
for j = 1 to 9 {
고bar[j] = 고bar[j] + 1;
저bar[j] = 저bar[j] + 1;
}
if 예비고bar == right and highest(h,right) <= h[right] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
고점표시 = 예비고 + x;
고[1] = 예비고;
고bar[1] = 예비고bar;
if 저bar[1] > 고bar[2] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
미완성 = 0;
for j = 고bar[1] + 1 to 고bar[2] - 1 {
if 미완성 == 0 or 미완성 > l[j] then {
미완성 = l[j];
미완성bar = j;
}
}
저[1] = 미완성;
저bar[1] = 미완성bar;
}
}
if 예비저bar == right and lowest(l,right) >= l[right] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
저점표시 = 예비저 - x;
저[1] = 예비저;
저bar[1] = 예비저bar;
if 고bar[1] > 저bar[2] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
미완성 = 0;
for j = 저bar[1] + 1 to 저bar[2] - 1 {
if 미완성 < h[j] then {
미완성 = h[j];
미완성bar = j;
}
}
고[1] = 미완성;
고bar[1] = 미완성bar;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
예비고추세선 = 0;
예비저추세선 = 0;
for j = 1 to 9 {
if 예비고 < 고[j] then {
예비고추세기울기 = (예비고-고[j])/(고bar[j]-예비고bar);
예비고추세선 = 예비고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 1 to 9 {
if 저[j] < 예비저 and 저[j] > 0 then {
예비저추세기울기 = (예비저-저[j])/(저bar[j]-예비저bar);
예비저추세선 = 예비저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
고추세선 = 0;
저추세선 = 0;
for j = 2 to 9 {
if 고[1] < 고[j] then {
고추세기울기 = (고[1]-고[j])/(고bar[j]-고bar[1]);
고추세선 = 고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 2 to 9 {
if 저[j] < 저[1] and 저[j] > 0 then {
저추세기울기 = (저[1]-저[j])/(저bar[j]-저bar[1]);
저추세선 = 저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
#=====================================================#
# 지표출력
#=====================================================#
//Y축표시 : 가격
if 고점표시 > h[right] then plot1(고점표시,"전고점",blue);
if 저점표시 < l[right] then plot2(저점표시,"전저점",red);
if 예비고추세선>0 then plot3(예비고추세선,"예비고추세선",blue);
if 예비저추세선>0 then plot4(예비저추세선,"예비저추세선",red);
if 고추세선>0 then plot5(고추세선,"고추세선",blue);
if 저추세선>0 then plot6(저추세선,"저추세선",red);