커뮤니티
지표식 문의드립니다~
2018-04-21 09:18:05
212
글번호 118376
안녕하세요~~ 매번 빠른 답변 감사드립니다.
아래는 수식지왕님의 자동추세선 수식입니다
날짜와는 상관없이 고점 저점이 변경될 때 마다
하락추세선은 고점과 직전고점을 연결하고
상승추세선은 저점과 직전저점을 연결하고 있습니다
이것을 당일에 한하여 추세선을 연결하여 나타내고
하락추세선은 고점과 당일고점을 연결하고
상승추세선은 저점과 당일저점을 연결되게 수정 부탁드립니다.
--- 아 래 ---
#==========================================#
# 지 표 명 : 자동추세선
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:n(5),단기(True),미완성사용(True);
Var:j(0),q(0),k(0),상단(200),하단(100),고점표시(0),저점표시(0),Exit(100),
고점갱신(False),저점갱신(False),
단기상단기울기(0),단기상단Bar(0),단기상단절편(0),단기하단기울기(0),
단기하단Bar(0),단기하단절편(0),
단기상단채널(0),단기하단채널(0);
Array:고[50](0),저[50](0),고Bar[50](0),저Bar[50](0);
#==========================================#
# 초기처리 (Initialize Routine)
#==========================================#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
for j = 20 to 49 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
단기상단Bar = 단기상단Bar + 1;
단기하단Bar = 단기하단Bar + 1;
고점표시=(O[n]+C[n])/2;
저점표시=(O[n]+C[n])/2;
#==========================================#
# 단기 파동선 계산
#==========================================#
# 전고점(Peak) 계산
#------------------------------------------#
//Highest(H,2)[3] <= H[2] and H[2] > Highest(H,2)
if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then {
if 미완성사용 == True then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = H[n];
고Bar[1] = n;
고점갱신 = True;
고점표시 = 고[1];
if 저Bar[1] > 고Bar[2] then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
k = n + 1;
for j = n + 2 to 고Bar[2]-1 {
if L[k] > L[j] then k = j;
}
저[1] = L[k];
저Bar[1] = k;
}
}
if 미완성사용 == False then {
if 고Bar[1] > 저Bar[1] then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
}
if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then {
고[1] = H[n];
고Bar[1] = n;
고점갱신 = True;
고점표시 = 고[1];
}
}
}
#------------------------------------------#
# 전저점(Trough) 계산
#------------------------------------------#
//Lowest(L,2)[3] >= L[2] and L[2] < Lowest(L,2)
if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then {
if 미완성사용 == True then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = L[n];
저Bar[1] = n;
저점갱신 = True;
저점표시 = 저[1];
if 고Bar[1] > 저Bar[2] then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
k = n + 1;
for j = n + 2 to 저Bar[2]-1 {
if H[k] < H[j] then k = j;
}
고[1] = H[k];
고Bar[1] = k;
}
}
if 미완성사용 == False then {
if 저Bar[1] > 고Bar[1] then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
}
if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then {
저[1] = L[n];
저Bar[1] = n;
저점갱신 = True;
저점표시 = 저[1];
}
}
}
#==========================================#
# 자동추세선 계산
#==========================================#
if 고Bar[1] == n then {
단기상단채널 = 0;
단기상단기울기 = 0;
for j = 2 to 49 {
if 고[1] < 고[j] and 단기상단기울기 == 0 then {
단기상단기울기 =((고[1]-고[j])/(고Bar[j]-고Bar[1]));
단기상단Bar = 고Bar[j];
단기상단절편 = 고[j];
j = Exit;
}
else if 고[j] <= 0 then j = Exit;
}
}
if 저Bar[1] == n then {
단기하단채널 = 0;
단기하단기울기 = 0;
for j = 2 to 49 {
if 저[1] > 저[j] and 단기하단기울기 == 0 then {
단기하단기울기 = ((저[1]-저[j])/(저Bar[j]-저Bar[1]));
단기하단Bar = 저Bar[j];
단기하단절편 = 저[j];
j = Exit;
}
else if 저[j] <= 0 then j = Exit;
}
}
if 단기상단기울기 < 0 then
단기상단채널 = 단기상단기울기 * 단기상단Bar + 단기상단절편;
if 단기하단기울기 > 0 then
단기하단채널 = 단기하단기울기 * 단기하단Bar + 단기하단절편;
#=================================#
# 지표식
#=================================#
if 고점표시 == H[n] then Plot1(고점표시,"전고점",YELLOW); //점그래프,수평이동
if 저점표시 == L[n] then Plot2(저점표시,"전저점",GREEN); //점그래프,수평이동
#------------------------------------------#
# 채널 표시
#------------------------------------------#
if 단기 == True then {
if 단기상단채널 > 0 then Plot3(단기상단채널,"단기상단채널",YELLOW); //점그래프
if 단기하단채널 > 0 then Plot4(단기하단채널,"단기하단채널",GREEN); //점그래프
}
답변 1
예스스탁 예스스탁 답변
2018-04-24 10:17:17
안녕하세요
예스스탁입니다.
올려주신 수식은 해당 구조로 변경이 가능하지 않은 수식입니다.
plot명령어는 출력되면 이전출력지점과 연결되는데
당일고점이나 저점이 갱신될때마자 이전 고점과 저점에서
다시 연결해서 그릴수 없습니다.
즐거운 하루되세요
> 선자 님이 쓴 글입니다.
> 제목 : 지표식 문의드립니다~
> 안녕하세요~~ 매번 빠른 답변 감사드립니다.
아래는 수식지왕님의 자동추세선 수식입니다
날짜와는 상관없이 고점 저점이 변경될 때 마다
하락추세선은 고점과 직전고점을 연결하고
상승추세선은 저점과 직전저점을 연결하고 있습니다
이것을 당일에 한하여 추세선을 연결하여 나타내고
하락추세선은 고점과 당일고점을 연결하고
상승추세선은 저점과 당일저점을 연결되게 수정 부탁드립니다.
--- 아 래 ---
#==========================================#
# 지 표 명 : 자동추세선
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:n(5),단기(True),미완성사용(True);
Var:j(0),q(0),k(0),상단(200),하단(100),고점표시(0),저점표시(0),Exit(100),
고점갱신(False),저점갱신(False),
단기상단기울기(0),단기상단Bar(0),단기상단절편(0),단기하단기울기(0),
단기하단Bar(0),단기하단절편(0),
단기상단채널(0),단기하단채널(0);
Array:고[50](0),저[50](0),고Bar[50](0),저Bar[50](0);
#==========================================#
# 초기처리 (Initialize Routine)
#==========================================#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
for j = 20 to 49 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
단기상단Bar = 단기상단Bar + 1;
단기하단Bar = 단기하단Bar + 1;
고점표시=(O[n]+C[n])/2;
저점표시=(O[n]+C[n])/2;
#==========================================#
# 단기 파동선 계산
#==========================================#
# 전고점(Peak) 계산
#------------------------------------------#
//Highest(H,2)[3] <= H[2] and H[2] > Highest(H,2)
if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then {
if 미완성사용 == True then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = H[n];
고Bar[1] = n;
고점갱신 = True;
고점표시 = 고[1];
if 저Bar[1] > 고Bar[2] then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
k = n + 1;
for j = n + 2 to 고Bar[2]-1 {
if L[k] > L[j] then k = j;
}
저[1] = L[k];
저Bar[1] = k;
}
}
if 미완성사용 == False then {
if 고Bar[1] > 저Bar[1] then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
}
if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then {
고[1] = H[n];
고Bar[1] = n;
고점갱신 = True;
고점표시 = 고[1];
}
}
}
#------------------------------------------#
# 전저점(Trough) 계산
#------------------------------------------#
//Lowest(L,2)[3] >= L[2] and L[2] < Lowest(L,2)
if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then {
if 미완성사용 == True then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = L[n];
저Bar[1] = n;
저점갱신 = True;
저점표시 = 저[1];
if 고Bar[1] > 저Bar[2] then {
for j = 48 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
k = n + 1;
for j = n + 2 to 저Bar[2]-1 {
if H[k] < H[j] then k = j;
}
고[1] = H[k];
고Bar[1] = k;
}
}
if 미완성사용 == False then {
if 저Bar[1] > 고Bar[1] then {
for j = 48 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
}
if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then {
저[1] = L[n];
저Bar[1] = n;
저점갱신 = True;
저점표시 = 저[1];
}
}
}
#==========================================#
# 자동추세선 계산
#==========================================#
if 고Bar[1] == n then {
단기상단채널 = 0;
단기상단기울기 = 0;
for j = 2 to 49 {
if 고[1] < 고[j] and 단기상단기울기 == 0 then {
단기상단기울기 =((고[1]-고[j])/(고Bar[j]-고Bar[1]));
단기상단Bar = 고Bar[j];
단기상단절편 = 고[j];
j = Exit;
}
else if 고[j] <= 0 then j = Exit;
}
}
if 저Bar[1] == n then {
단기하단채널 = 0;
단기하단기울기 = 0;
for j = 2 to 49 {
if 저[1] > 저[j] and 단기하단기울기 == 0 then {
단기하단기울기 = ((저[1]-저[j])/(저Bar[j]-저Bar[1]));
단기하단Bar = 저Bar[j];
단기하단절편 = 저[j];
j = Exit;
}
else if 저[j] <= 0 then j = Exit;
}
}
if 단기상단기울기 < 0 then
단기상단채널 = 단기상단기울기 * 단기상단Bar + 단기상단절편;
if 단기하단기울기 > 0 then
단기하단채널 = 단기하단기울기 * 단기하단Bar + 단기하단절편;
#=================================#
# 지표식
#=================================#
if 고점표시 == H[n] then Plot1(고점표시,"전고점",YELLOW); //점그래프,수평이동
if 저점표시 == L[n] then Plot2(저점표시,"전저점",GREEN); //점그래프,수평이동
#------------------------------------------#
# 채널 표시
#------------------------------------------#
if 단기 == True then {
if 단기상단채널 > 0 then Plot3(단기상단채널,"단기상단채널",YELLOW); //점그래프
if 단기하단채널 > 0 then Plot4(단기하단채널,"단기하단채널",GREEN); //점그래프
}
다음글
이전글