커뮤니티
수식문의
2014-12-06 20:32:45
155
글번호 81123
아래 지그재그지표식에서 고점이 만들어질때 그앞전봉의 저점에 수평선을 만들어주세요 그리고 반대로 저점이 형성될때에 그앞전봉의 고점에 수평선을 만들어주세요 그리고 자동으로 다음 고저점이만들어질때까지 수평선이 지속되게해주세요
Input:상승률(0.17),하락률(0.17);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
var : hbody(0),lbody(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
if 색깔 == 빨강 Then{
Plot1(이중파동,"Zigzag",blue);
var2 = 이중파동;
var3 = -1;
}
Else{
Plot1(이중파동,"Zigzag",red);
var1 = 이중파동;
var3 = 1;
}
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= Hbody || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = Hbody;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= Lbody || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = Lbody;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > Hbody && 기준저 * (1 + (상승률/100)) < Lbody Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > Hbody Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < Lbody Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else {
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
}
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > Hbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else {
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
}
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < Lbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",blue);
Text_New(sdate,stime,저[1],NumToStr(저[1],2));
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
if var3 == -1 Then{
plot2(var2);
}
if var3 == 1 Then{
plot2(var1);
}
답변 2
예스스탁 예스스탁 답변
2014-12-08 11:23:37
안녕하세요
예스스탁입니다.
input:상승률(0.17),하락률(0.17);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
var : hbody(0),lbody(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
if 색깔 == 빨강 Then{
Plot1(이중파동,"Zigzag",blue);
var2 = 이중파동;
var3 = -1;
}
Else{
Plot1(이중파동,"Zigzag",red);
var1 = 이중파동;
var3 = 1;
}
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= Hbody || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = Hbody;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= Lbody || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = Lbody;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > Hbody && 기준저 * (1 + (상승률/100)) < Lbody Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > Hbody Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < Lbody Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else {
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
}
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > Hbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else {
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
}
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < Lbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",blue);
Text_New(sdate,stime,저[1],NumToStr(저[1],2));
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
if 고[1] != 고[1][1] Then
value1 = 저[1];
if 저[1] != 저[1][1] Then
value1 = 고[1];
plot2(value1);
plot3(value2);
즐거운 하루되세요
> 백진강 님이 쓴 글입니다.
> 제목 : 수식문의
> 아래 지그재그지표식에서 고점이 만들어질때 그앞전봉의 저점에 수평선을 만들어주세요 그리고 반대로 저점이 형성될때에 그앞전봉의 고점에 수평선을 만들어주세요 그리고 자동으로 다음 고저점이만들어질때까지 수평선이 지속되게해주세요
Input:상승률(0.17),하락률(0.17);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
var : hbody(0),lbody(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
if 색깔 == 빨강 Then{
Plot1(이중파동,"Zigzag",blue);
var2 = 이중파동;
var3 = -1;
}
Else{
Plot1(이중파동,"Zigzag",red);
var1 = 이중파동;
var3 = 1;
}
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= Hbody || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = Hbody;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= Lbody || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = Lbody;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > Hbody && 기준저 * (1 + (상승률/100)) < Lbody Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > Hbody Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < Lbody Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else {
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
}
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > Hbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else {
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
}
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < Lbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",blue);
Text_New(sdate,stime,저[1],NumToStr(저[1],2));
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
if var3 == -1 Then{
plot2(var2);
}
if var3 == 1 Then{
plot2(var1);
}
백진강
2014-12-08 12:22:44
추가질의입니다 현고저점의 수평선이 아니고요 현고저점그앞전봉의 수평선을부탁합니다
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의
>
안녕하세요
예스스탁입니다.
input:상승률(0.17),하락률(0.17);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
var : hbody(0),lbody(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
if 색깔 == 빨강 Then{
Plot1(이중파동,"Zigzag",blue);
var2 = 이중파동;
var3 = -1;
}
Else{
Plot1(이중파동,"Zigzag",red);
var1 = 이중파동;
var3 = 1;
}
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= Hbody || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = Hbody;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= Lbody || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = Lbody;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > Hbody && 기준저 * (1 + (상승률/100)) < Lbody Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > Hbody Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < Lbody Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else {
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
}
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > Hbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else {
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
}
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < Lbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",blue);
Text_New(sdate,stime,저[1],NumToStr(저[1],2));
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
if 고[1] != 고[1][1] Then
value1 = 저[1];
if 저[1] != 저[1][1] Then
value1 = 고[1];
plot2(value1);
plot3(value2);
즐거운 하루되세요
> 백진강 님이 쓴 글입니다.
> 제목 : 수식문의
> 아래 지그재그지표식에서 고점이 만들어질때 그앞전봉의 저점에 수평선을 만들어주세요 그리고 반대로 저점이 형성될때에 그앞전봉의 고점에 수평선을 만들어주세요 그리고 자동으로 다음 고저점이만들어질때까지 수평선이 지속되게해주세요
Input:상승률(0.17),하락률(0.17);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
var : hbody(0),lbody(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
if 색깔 == 빨강 Then{
Plot1(이중파동,"Zigzag",blue);
var2 = 이중파동;
var3 = -1;
}
Else{
Plot1(이중파동,"Zigzag",red);
var1 = 이중파동;
var3 = 1;
}
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= Hbody || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = Hbody;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= Lbody || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = Lbody;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > Hbody && 기준저 * (1 + (상승률/100)) < Lbody Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > Hbody Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < Lbody Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강 ;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else {
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
}
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > Hbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else {
plot1(저[1],"Zigzag",blue);
var2 = 저[1];
var3 = -1;
}
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < Lbody Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = Lbody;
기준저Bar = 0;
기준고 = Hbody;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = Hbody;
기준고Bar = 0;
기준저 = Lbody;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",RED);
var1 = 고[1];
var3 = 1;
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",blue);
Text_New(sdate,stime,저[1],NumToStr(저[1],2));
var2 = 저[1];
var3 = -1;
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
if var3 == -1 Then{
plot2(var2);
}
if var3 == 1 Then{
plot2(var1);
}