커뮤니티
문의드립니다
2013-06-06 22:07:30
231
글번호 64046
Input:기간단위(1), //1(일단위),2(주단위),3(월단위),4(년단위),그외(전기간)
추세강화판단(5); //최종 저점이후 얼마 지나야 추세강화를 판단할 지 입력
//여기서는 5봉 이후에 판단하라는 의미
//이 값이 커지면 추세강화처리 빈도가 작아진다
Var:j(0),k(0),n(0),Yes(1),No(0),
최종저Bar(0), //입력변수 추세강화판단과 비교하기 위해 내부 카운트 변수
추세선추가(0), //추세이탈 발생시 추세선을 추가할지 말지 구분자
기울기(0),
추세강화(0); //추세강화를 한번만 처리하기 위해 발생 여부 구분
Array:기준저[100](0), //기본형과 달리 추세강화 처리시 기준저 값이 바뀌므로
기준저Bar[100](0), //배열로 선언
저[100](0),저Bar[100](0),
추세선[100](0),
체크Bit[100](0); //기준저와 저점의 값은 그대로 유지하면서 추세선값만
//지울 때 사용.
//추세강화 처리시 이전 추세선의 연장을 막음
#==========================================#
# 기준점들의 index 값 증가
#==========================================#
최종저Bar = 최종저Bar + 1;
For j = 1 To 99
{
기준저Bar[j] = 기준저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
#==========================================#
# 기간단위별 초기화
#==========================================#
If (기간단위 == 1 && Date[1] < Date) ||
(기간단위 == 2 && Date[1] < Date && _DayOfWeek[1] >= _DayOfWeek) || //사용자함수
(기간단위 == 3 && Int(Date/100)[1] < Int(Date/100)) ||
(기간단위 == 4 && Int(Date/10000)[1] < Int(Date/10000)) Then
{
For j = 1 To 99
{
추세선[j] = 0;
기준저[j] = 0;
체크Bit[j] = No;
}
n = 0;
최종저Bar = 0;
추세강화 = No;
}
#==========================================#
# 추세의 출발점 찾기
#==========================================#
If 기준저[n] == 0 &&
((기간단위 == 1 && L[1] == DayLow) ||
(기간단위 == 2 && L[1] == _WeekLow(0)) || //사용자함수
(기간단위 > 2 && L[1] == _MonthLow(0))) && //사용자함수
L[1] < L Then
{
n = n + 1;
기준저[n] = L[1];
기준저Bar[n] = 1;
저[n] = L;
저Bar[n] = 0;
체크Bit[n] = Yes; //현재 추세선이 유효하다고 세팅
추세선추가 = No; //추세를 찾는 초기이기 때문에 추세선이 자리잡을 때까지
//추세이탈이 발생해도 추세선을 새로 추가하지 못하도록 한다
}
#==========================================#
# 추세선 계산
#==========================================#
For j = 1 To n //증가된 n만큼 추세선을 재계산
{
추세선[j] = ((저[j]-기준저[j])/(기준저Bar[j]-저Bar[j]) * 기준저Bar[j] + 기준저[j]) * 체크Bit[j];
}
#==========================================#
# 추세선 유효성 판단
#==========================================#
If 기준저[n] > 0 && 기준저[n] < L Then //출발점보다 저가가 높은 상태를 유지
{
#------------------------------------------#
# 저가가 추세선 하향 이탈시 신규 추세선 추가
#------------------------------------------#
If 추세선[n] > L Then //추세이탈 발생
{
If 추세선추가 == Yes Then //추세선 추가 가능
{
If 추세강화 == Yes Then //현재 추세선이 추세강화에 의해 출발점이 변경된 경우라면
{
For j = n - 1 DownTo 1 //추세강화에 의한 추세선은 현재 추세선보다 위에 존재하고
{ //밑에 존재하는 추세선은 원래의 추세선밖에 없다.
If 추세선[n] >= 추세선[j] && //추세강화에 의한 추세선 밑에
추세선[j] > 0 && //원래 출발점으로부터의 추세선이 있고
추세선[j] > L Then //그 원추세선을 이탈하였다면
{
For k = n DownTo j + 1 //추세강화에 의해 산출된 추세선들은
{
추세선[k] = 0; //더 이상의 의미가 없으므로
기준저[k] = 0; //삭제한다.
체크Bit[k] = No;
}
n = j; //지우고 나서 가장 최근 추세선의 번호
추세강화 = No; //더 이상 추세강화 없음
j = 1; //For문에서 중간에 빠져나가기 위해 j에 1을 대입
}
}
}
n = n + 1; //추세선 추가
기준저[n] = 기준저[n-1]; //출발점을 직전 추세선과 동일하게 유지
기준저Bar[n] = 기준저Bar[n-1];
추세선추가 = No; //가격이 게속 하락할 경우 신규 추세선을
} //추가 못하도록 불가로 세팅
저[n] = L;
저Bar[n] = 0;
최종저Bar = 0;
체크Bit[n] = Yes; //새로 추가되는 추세선이 유효하다는 의미
추세선[n] = ((저[n]-기준저[n])/(기준저Bar[n]-저Bar[n]) * 기준저Bar[n] + 기준저[n]) * 체크Bit[n];
}
Else If 추세선[n] > 0 Then
{
#------------------------------------------#
# 추세강화시 새로운 출발점의 추세선을 추가
#------------------------------------------#
If 추세강화 == No && //추세강화가 아직 발생 안했고
최종저Bar > 추세강화판단 Then //일정 기간동안 추세이탈이 일어나지 않고 있다면
{ //추세강화로 보고 새로운 출발점 찾는다
n = n + 1; //추세선 추가
기준저[n] = 저[n-1]; //이전 추세선의 B점을 신규 출발점으로 한다
기준저Bar[n] = 저Bar[n-1];
#------------------------------------------#
# 출발점부터 현재봉까지 추세선 소급 계산
#------------------------------------------#
저[n] = L[기준저Bar[n]-1]; //출발점의 바로 다음 봉의 저가
기울기 = (저[n]-기준저[n]);
저Bar[n] = 기준저Bar[n]-1;
For j = 2 To 기준저Bar[n] //출발점부터 현재 봉까지 아무 것도 계산된 게
{ //없으니 소급해서 추세선을 계산
추세선[n] = 기울기 * j + 기준저[n];
If 추세선[n] > L[기준저Bar[n]-j] Then
{
저[n] = L[기준저Bar[n]-j];
기울기 = (저[n]-기준저[n])/j;
저Bar[n] = 기준저Bar[n]-j;
최종저Bar = 저Bar[n];
추세선[n] = 기울기 * j + 기준저[n];
}
}
체크Bit[n] = Yes;
For k = n - 2 DownTo 1 //추가된 추세선이 기존 추세선과 크로스되는 것을 방지하기 위해
{ //기존의 원추세선중 마지막 추세선 이전 것들은
체크Bit[k] = No; //사용 못하도록 막아 놓는다.
추세선[k] = 0;
}
추세강화 = Yes; //추세강화가 발생했음으로 세팅, 두번 이상 발생을 차단
추세선추가 = No;
}
Else If 저[n] < L && 저Bar[n] > 1 Then 추세선추가 = Yes;
}
}
#------------------------------------------#
# 출발점의 유효성 판단
#------------------------------------------#
Else If 기준저[n] > 0 && 기준저[n] >= L Then //출발점보다 저가가 낮아지면
{
For j = n DownTo 1
{
If 기준저[j] > 0 && 기준저[j] >= L Then //출발점이 무너진 추세선만 초기화
{
추세선[j] = 0;
기준저[j] = 0;
체크Bit[j] = No;
n = j - 1;
}
}
최종저Bar = 0;
추세강화 = No;
}
#==========================================#
# 지표식 출력
#==========================================#
If 추세선[1] > 0 Then Plot1(추세선[1]);
If 추세선[2] > 0 Then Plot2(추세선[2]);
If 추세선[3] > 0 Then Plot3(추세선[3]);
If 추세선[4] > 0 Then Plot4(추세선[4]);
If 추세선[5] > 0 Then Plot5(추세선[5]);
If 추세선[6] > 0 Then Plot6(추세선[6]);
If 추세선[7] > 0 Then Plot7(추세선[7]);
If 추세선[8] > 0 Then Plot8(추세선[8]);
If 추세선[9] > 0 Then Plot9(추세선[9]);
If 추세선[10] > 0 Then Plot10(추세선[10]);
If 추세선[11] > 0 Then Plot11(추세선[11]);
If 추세선[12] > 0 Then Plot12(추세선[12]);
If 추세선[13] > 0 Then Plot13(추세선[13]);
If 추세선[14] > 0 Then Plot14(추세선[14]);
If 추세선[15] > 0 Then Plot15(추세선[15]);
If 추세선[16] > 0 Then Plot16(추세선[16]);
If 추세선[17] > 0 Then Plot17(추세선[17]);
If 추세선[18] > 0 Then Plot18(추세선[18]);
If 추세선[19] > 0 Then Plot19(추세선[19]);
If 추세선[20] > 0 Then Plot20(추세선[20]);
If 추세선[21] > 0 Then Plot21(추세선[21]);
If 추세선[22] > 0 Then Plot22(추세선[22]);
If 추세선[23] > 0 Then Plot23(추세선[23]);
If 추세선[24] > 0 Then Plot24(추세선[24]);
If 추세선[25] > 0 Then Plot25(추세선[25]);
If 추세선[26] > 0 Then Plot26(추세선[26]);
If 추세선[27] > 0 Then Plot27(추세선[27]);
If 추세선[28] > 0 Then Plot28(추세선[28]);
If 추세선[29] > 0 Then Plot29(추세선[29]);
If 추세선[30] > 0 Then Plot30(추세선[30]);
If 추세선[31] > 0 Then Plot31(추세선[31]);
If 추세선[32] > 0 Then Plot32(추세선[32]);
If 추세선[33] > 0 Then Plot33(추세선[33]);
If 추세선[34] > 0 Then Plot34(추세선[34]);
If 추세선[35] > 0 Then Plot35(추세선[35]);
If 추세선[36] > 0 Then Plot36(추세선[36]);
If 추세선[37] > 0 Then Plot37(추세선[37]);
If 추세선[38] > 0 Then Plot38(추세선[38]);
If 추세선[39] > 0 Then Plot39(추세선[39]);
이수식을넣으면
선언되지않은이름dayofweek,weeklow,monthlow가사용되었다고나오는데무엇을어떻게해야하는지좀알려주세요...감사합니다
답변 1
예스스탁 예스스탁 답변
2013-06-07 10:35:55
안녕하세요
예스스탁입니다.
해당 식에는 사용자가 직접 만든 함수가 사용이 되어 있습니다.
식안에 해당 내용 추가했습니다.
Input:기간단위(1), //1(일단위),2(주단위),3(월단위),4(년단위),그외(전기간)
추세강화판단(5); //최종 저점이후 얼마 지나야 추세강화를 판단할 지 입력
//여기서는 5봉 이후에 판단하라는 의미
//이 값이 커지면 추세강화처리 빈도가 작아진다
Var:j(0),k(0),n(0),Yes(1),No(0),
최종저Bar(0), //입력변수 추세강화판단과 비교하기 위해 내부 카운트 변수
추세선추가(0), //추세이탈 발생시 추세선을 추가할지 말지 구분자
기울기(0),
추세강화(0); //추세강화를 한번만 처리하기 위해 발생 여부 구분
Array:기준저[100](0), //기본형과 달리 추세강화 처리시 기준저 값이 바뀌므로
기준저Bar[100](0), //배열로 선언
저[100](0),저Bar[100](0),
추세선[100](0),
체크Bit[100](0); //기준저와 저점의 값은 그대로 유지하면서 추세선값만
//지울 때 사용.
//추세강화 처리시 이전 추세선의 연장을 막음
var : _WeekLow(0),_MonthLow(0);
if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then
_WeekLow = L;
if L < _WeekLow Then
_WeekLow = L;
if date > date[1]+30 Then
_MonthLow = L;
if L < _MonthLow Then
_MonthLow = L;
#==========================================#
# 기준점들의 index 값 증가
#==========================================#
최종저Bar = 최종저Bar + 1;
For j = 1 To 99
{
기준저Bar[j] = 기준저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
#==========================================#
# 기간단위별 초기화
#==========================================#
If (기간단위 == 1 && Date[1] < Date) ||
(기간단위 == 2 && Date[1] < Date && DayOfWeek(sdate[1]) >= DayOfWeek(sdate)) || //사용자함수
(기간단위 == 3 && Int(Date/100)[1] < Int(Date/100)) ||
(기간단위 == 4 && Int(Date/10000)[1] < Int(Date/10000)) Then
{
For j = 1 To 99
{
추세선[j] = 0;
기준저[j] = 0;
체크Bit[j] = No;
}
n = 0;
최종저Bar = 0;
추세강화 = No;
}
#==========================================#
# 추세의 출발점 찾기
#==========================================#
If 기준저[n] == 0 &&
((기간단위 == 1 && L[1] == DayLow) ||
(기간단위 == 2 && L[1] == _WeekLow) || //사용자함수
(기간단위 > 2 && L[1] == _MonthLow)) && //사용자함수
L[1] < L Then
{
n = n + 1;
기준저[n] = L[1];
기준저Bar[n] = 1;
저[n] = L;
저Bar[n] = 0;
체크Bit[n] = Yes; //현재 추세선이 유효하다고 세팅
추세선추가 = No; //추세를 찾는 초기이기 때문에 추세선이 자리잡을 때까지
//추세이탈이 발생해도 추세선을 새로 추가하지 못하도록 한다
}
#==========================================#
# 추세선 계산
#==========================================#
For j = 1 To n //증가된 n만큼 추세선을 재계산
{
추세선[j] = ((저[j]-기준저[j])/(기준저Bar[j]-저Bar[j]) * 기준저Bar[j] + 기준저[j]) * 체크Bit[j];
}
#==========================================#
# 추세선 유효성 판단
#==========================================#
If 기준저[n] > 0 && 기준저[n] < L Then //출발점보다 저가가 높은 상태를 유지
{
#------------------------------------------#
# 저가가 추세선 하향 이탈시 신규 추세선 추가
#------------------------------------------#
If 추세선[n] > L Then //추세이탈 발생
{
If 추세선추가 == Yes Then //추세선 추가 가능
{
If 추세강화 == Yes Then //현재 추세선이 추세강화에 의해 출발점이 변경된 경우라면
{
For j = n - 1 DownTo 1 //추세강화에 의한 추세선은 현재 추세선보다 위에 존재하고
{ //밑에 존재하는 추세선은 원래의 추세선밖에 없다.
If 추세선[n] >= 추세선[j] && //추세강화에 의한 추세선 밑에
추세선[j] > 0 && //원래 출발점으로부터의 추세선이 있고
추세선[j] > L Then //그 원추세선을 이탈하였다면
{
For k = n DownTo j + 1 //추세강화에 의해 산출된 추세선들은
{
추세선[k] = 0; //더 이상의 의미가 없으므로
기준저[k] = 0; //삭제한다.
체크Bit[k] = No;
}
n = j; //지우고 나서 가장 최근 추세선의 번호
추세강화 = No; //더 이상 추세강화 없음
j = 1; //For문에서 중간에 빠져나가기 위해 j에 1을 대입
}
}
}
n = n + 1; //추세선 추가
기준저[n] = 기준저[n-1]; //출발점을 직전 추세선과 동일하게 유지
기준저Bar[n] = 기준저Bar[n-1];
추세선추가 = No; //가격이 게속 하락할 경우 신규 추세선을
} //추가 못하도록 불가로 세팅
저[n] = L;
저Bar[n] = 0;
최종저Bar = 0;
체크Bit[n] = Yes; //새로 추가되는 추세선이 유효하다는 의미
추세선[n] = ((저[n]-기준저[n])/(기준저Bar[n]-저Bar[n]) * 기준저Bar[n] + 기준저[n]) * 체크Bit[n];
}
Else If 추세선[n] > 0 Then
{
#------------------------------------------#
# 추세강화시 새로운 출발점의 추세선을 추가
#------------------------------------------#
If 추세강화 == No && //추세강화가 아직 발생 안했고
최종저Bar > 추세강화판단 Then //일정 기간동안 추세이탈이 일어나지 않고 있다면
{ //추세강화로 보고 새로운 출발점 찾는다
n = n + 1; //추세선 추가
기준저[n] = 저[n-1]; //이전 추세선의 B점을 신규 출발점으로 한다
기준저Bar[n] = 저Bar[n-1];
#------------------------------------------#
# 출발점부터 현재봉까지 추세선 소급 계산
#------------------------------------------#
저[n] = L[기준저Bar[n]-1]; //출발점의 바로 다음 봉의 저가
기울기 = (저[n]-기준저[n]);
저Bar[n] = 기준저Bar[n]-1;
For j = 2 To 기준저Bar[n] //출발점부터 현재 봉까지 아무 것도 계산된 게
{ //없으니 소급해서 추세선을 계산
추세선[n] = 기울기 * j + 기준저[n];
If 추세선[n] > L[기준저Bar[n]-j] Then
{
저[n] = L[기준저Bar[n]-j];
기울기 = (저[n]-기준저[n])/j;
저Bar[n] = 기준저Bar[n]-j;
최종저Bar = 저Bar[n];
추세선[n] = 기울기 * j + 기준저[n];
}
}
체크Bit[n] = Yes;
For k = n - 2 DownTo 1 //추가된 추세선이 기존 추세선과 크로스되는 것을 방지하기 위해
{ //기존의 원추세선중 마지막 추세선 이전 것들은
체크Bit[k] = No; //사용 못하도록 막아 놓는다.
추세선[k] = 0;
}
추세강화 = Yes; //추세강화가 발생했음으로 세팅, 두번 이상 발생을 차단
추세선추가 = No;
}
Else If 저[n] < L && 저Bar[n] > 1 Then 추세선추가 = Yes;
}
}
#------------------------------------------#
# 출발점의 유효성 판단
#------------------------------------------#
Else If 기준저[n] > 0 && 기준저[n] >= L Then //출발점보다 저가가 낮아지면
{
For j = n DownTo 1
{
If 기준저[j] > 0 && 기준저[j] >= L Then //출발점이 무너진 추세선만 초기화
{
추세선[j] = 0;
기준저[j] = 0;
체크Bit[j] = No;
n = j - 1;
}
}
최종저Bar = 0;
추세강화 = No;
}
#==========================================#
# 지표식 출력
#==========================================#
If 추세선[1] > 0 Then Plot1(추세선[1]);
If 추세선[2] > 0 Then Plot2(추세선[2]);
If 추세선[3] > 0 Then Plot3(추세선[3]);
If 추세선[4] > 0 Then Plot4(추세선[4]);
If 추세선[5] > 0 Then Plot5(추세선[5]);
If 추세선[6] > 0 Then Plot6(추세선[6]);
If 추세선[7] > 0 Then Plot7(추세선[7]);
If 추세선[8] > 0 Then Plot8(추세선[8]);
If 추세선[9] > 0 Then Plot9(추세선[9]);
If 추세선[10] > 0 Then Plot10(추세선[10]);
If 추세선[11] > 0 Then Plot11(추세선[11]);
If 추세선[12] > 0 Then Plot12(추세선[12]);
If 추세선[13] > 0 Then Plot13(추세선[13]);
If 추세선[14] > 0 Then Plot14(추세선[14]);
If 추세선[15] > 0 Then Plot15(추세선[15]);
If 추세선[16] > 0 Then Plot16(추세선[16]);
If 추세선[17] > 0 Then Plot17(추세선[17]);
If 추세선[18] > 0 Then Plot18(추세선[18]);
If 추세선[19] > 0 Then Plot19(추세선[19]);
If 추세선[20] > 0 Then Plot20(추세선[20]);
If 추세선[21] > 0 Then Plot21(추세선[21]);
If 추세선[22] > 0 Then Plot22(추세선[22]);
If 추세선[23] > 0 Then Plot23(추세선[23]);
If 추세선[24] > 0 Then Plot24(추세선[24]);
If 추세선[25] > 0 Then Plot25(추세선[25]);
If 추세선[26] > 0 Then Plot26(추세선[26]);
If 추세선[27] > 0 Then Plot27(추세선[27]);
If 추세선[28] > 0 Then Plot28(추세선[28]);
If 추세선[29] > 0 Then Plot29(추세선[29]);
If 추세선[30] > 0 Then Plot30(추세선[30]);
If 추세선[31] > 0 Then Plot31(추세선[31]);
If 추세선[32] > 0 Then Plot32(추세선[32]);
If 추세선[33] > 0 Then Plot33(추세선[33]);
If 추세선[34] > 0 Then Plot34(추세선[34]);
If 추세선[35] > 0 Then Plot35(추세선[35]);
If 추세선[36] > 0 Then Plot36(추세선[36]);
If 추세선[37] > 0 Then Plot37(추세선[37]);
If 추세선[38] > 0 Then Plot38(추세선[38]);
If 추세선[39] > 0 Then Plot39(추세선[39]);
즐거운 하루되세요
> 하얀그림자 님이 쓴 글입니다.
> 제목 : 문의드립니다
> Input:기간단위(1), //1(일단위),2(주단위),3(월단위),4(년단위),그외(전기간)
추세강화판단(5); //최종 저점이후 얼마 지나야 추세강화를 판단할 지 입력
//여기서는 5봉 이후에 판단하라는 의미
//이 값이 커지면 추세강화처리 빈도가 작아진다
Var:j(0),k(0),n(0),Yes(1),No(0),
최종저Bar(0), //입력변수 추세강화판단과 비교하기 위해 내부 카운트 변수
추세선추가(0), //추세이탈 발생시 추세선을 추가할지 말지 구분자
기울기(0),
추세강화(0); //추세강화를 한번만 처리하기 위해 발생 여부 구분
Array:기준저[100](0), //기본형과 달리 추세강화 처리시 기준저 값이 바뀌므로
기준저Bar[100](0), //배열로 선언
저[100](0),저Bar[100](0),
추세선[100](0),
체크Bit[100](0); //기준저와 저점의 값은 그대로 유지하면서 추세선값만
//지울 때 사용.
//추세강화 처리시 이전 추세선의 연장을 막음
#==========================================#
# 기준점들의 index 값 증가
#==========================================#
최종저Bar = 최종저Bar + 1;
For j = 1 To 99
{
기준저Bar[j] = 기준저Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
#==========================================#
# 기간단위별 초기화
#==========================================#
If (기간단위 == 1 && Date[1] < Date) ||
(기간단위 == 2 && Date[1] < Date && _DayOfWeek[1] >= _DayOfWeek) || //사용자함수
(기간단위 == 3 && Int(Date/100)[1] < Int(Date/100)) ||
(기간단위 == 4 && Int(Date/10000)[1] < Int(Date/10000)) Then
{
For j = 1 To 99
{
추세선[j] = 0;
기준저[j] = 0;
체크Bit[j] = No;
}
n = 0;
최종저Bar = 0;
추세강화 = No;
}
#==========================================#
# 추세의 출발점 찾기
#==========================================#
If 기준저[n] == 0 &&
((기간단위 == 1 && L[1] == DayLow) ||
(기간단위 == 2 && L[1] == _WeekLow(0)) || //사용자함수
(기간단위 > 2 && L[1] == _MonthLow(0))) && //사용자함수
L[1] < L Then
{
n = n + 1;
기준저[n] = L[1];
기준저Bar[n] = 1;
저[n] = L;
저Bar[n] = 0;
체크Bit[n] = Yes; //현재 추세선이 유효하다고 세팅
추세선추가 = No; //추세를 찾는 초기이기 때문에 추세선이 자리잡을 때까지
//추세이탈이 발생해도 추세선을 새로 추가하지 못하도록 한다
}
#==========================================#
# 추세선 계산
#==========================================#
For j = 1 To n //증가된 n만큼 추세선을 재계산
{
추세선[j] = ((저[j]-기준저[j])/(기준저Bar[j]-저Bar[j]) * 기준저Bar[j] + 기준저[j]) * 체크Bit[j];
}
#==========================================#
# 추세선 유효성 판단
#==========================================#
If 기준저[n] > 0 && 기준저[n] < L Then //출발점보다 저가가 높은 상태를 유지
{
#------------------------------------------#
# 저가가 추세선 하향 이탈시 신규 추세선 추가
#------------------------------------------#
If 추세선[n] > L Then //추세이탈 발생
{
If 추세선추가 == Yes Then //추세선 추가 가능
{
If 추세강화 == Yes Then //현재 추세선이 추세강화에 의해 출발점이 변경된 경우라면
{
For j = n - 1 DownTo 1 //추세강화에 의한 추세선은 현재 추세선보다 위에 존재하고
{ //밑에 존재하는 추세선은 원래의 추세선밖에 없다.
If 추세선[n] >= 추세선[j] && //추세강화에 의한 추세선 밑에
추세선[j] > 0 && //원래 출발점으로부터의 추세선이 있고
추세선[j] > L Then //그 원추세선을 이탈하였다면
{
For k = n DownTo j + 1 //추세강화에 의해 산출된 추세선들은
{
추세선[k] = 0; //더 이상의 의미가 없으므로
기준저[k] = 0; //삭제한다.
체크Bit[k] = No;
}
n = j; //지우고 나서 가장 최근 추세선의 번호
추세강화 = No; //더 이상 추세강화 없음
j = 1; //For문에서 중간에 빠져나가기 위해 j에 1을 대입
}
}
}
n = n + 1; //추세선 추가
기준저[n] = 기준저[n-1]; //출발점을 직전 추세선과 동일하게 유지
기준저Bar[n] = 기준저Bar[n-1];
추세선추가 = No; //가격이 게속 하락할 경우 신규 추세선을
} //추가 못하도록 불가로 세팅
저[n] = L;
저Bar[n] = 0;
최종저Bar = 0;
체크Bit[n] = Yes; //새로 추가되는 추세선이 유효하다는 의미
추세선[n] = ((저[n]-기준저[n])/(기준저Bar[n]-저Bar[n]) * 기준저Bar[n] + 기준저[n]) * 체크Bit[n];
}
Else If 추세선[n] > 0 Then
{
#------------------------------------------#
# 추세강화시 새로운 출발점의 추세선을 추가
#------------------------------------------#
If 추세강화 == No && //추세강화가 아직 발생 안했고
최종저Bar > 추세강화판단 Then //일정 기간동안 추세이탈이 일어나지 않고 있다면
{ //추세강화로 보고 새로운 출발점 찾는다
n = n + 1; //추세선 추가
기준저[n] = 저[n-1]; //이전 추세선의 B점을 신규 출발점으로 한다
기준저Bar[n] = 저Bar[n-1];
#------------------------------------------#
# 출발점부터 현재봉까지 추세선 소급 계산
#------------------------------------------#
저[n] = L[기준저Bar[n]-1]; //출발점의 바로 다음 봉의 저가
기울기 = (저[n]-기준저[n]);
저Bar[n] = 기준저Bar[n]-1;
For j = 2 To 기준저Bar[n] //출발점부터 현재 봉까지 아무 것도 계산된 게
{ //없으니 소급해서 추세선을 계산
추세선[n] = 기울기 * j + 기준저[n];
If 추세선[n] > L[기준저Bar[n]-j] Then
{
저[n] = L[기준저Bar[n]-j];
기울기 = (저[n]-기준저[n])/j;
저Bar[n] = 기준저Bar[n]-j;
최종저Bar = 저Bar[n];
추세선[n] = 기울기 * j + 기준저[n];
}
}
체크Bit[n] = Yes;
For k = n - 2 DownTo 1 //추가된 추세선이 기존 추세선과 크로스되는 것을 방지하기 위해
{ //기존의 원추세선중 마지막 추세선 이전 것들은
체크Bit[k] = No; //사용 못하도록 막아 놓는다.
추세선[k] = 0;
}
추세강화 = Yes; //추세강화가 발생했음으로 세팅, 두번 이상 발생을 차단
추세선추가 = No;
}
Else If 저[n] < L && 저Bar[n] > 1 Then 추세선추가 = Yes;
}
}
#------------------------------------------#
# 출발점의 유효성 판단
#------------------------------------------#
Else If 기준저[n] > 0 && 기준저[n] >= L Then //출발점보다 저가가 낮아지면
{
For j = n DownTo 1
{
If 기준저[j] > 0 && 기준저[j] >= L Then //출발점이 무너진 추세선만 초기화
{
추세선[j] = 0;
기준저[j] = 0;
체크Bit[j] = No;
n = j - 1;
}
}
최종저Bar = 0;
추세강화 = No;
}
#==========================================#
# 지표식 출력
#==========================================#
If 추세선[1] > 0 Then Plot1(추세선[1]);
If 추세선[2] > 0 Then Plot2(추세선[2]);
If 추세선[3] > 0 Then Plot3(추세선[3]);
If 추세선[4] > 0 Then Plot4(추세선[4]);
If 추세선[5] > 0 Then Plot5(추세선[5]);
If 추세선[6] > 0 Then Plot6(추세선[6]);
If 추세선[7] > 0 Then Plot7(추세선[7]);
If 추세선[8] > 0 Then Plot8(추세선[8]);
If 추세선[9] > 0 Then Plot9(추세선[9]);
If 추세선[10] > 0 Then Plot10(추세선[10]);
If 추세선[11] > 0 Then Plot11(추세선[11]);
If 추세선[12] > 0 Then Plot12(추세선[12]);
If 추세선[13] > 0 Then Plot13(추세선[13]);
If 추세선[14] > 0 Then Plot14(추세선[14]);
If 추세선[15] > 0 Then Plot15(추세선[15]);
If 추세선[16] > 0 Then Plot16(추세선[16]);
If 추세선[17] > 0 Then Plot17(추세선[17]);
If 추세선[18] > 0 Then Plot18(추세선[18]);
If 추세선[19] > 0 Then Plot19(추세선[19]);
If 추세선[20] > 0 Then Plot20(추세선[20]);
If 추세선[21] > 0 Then Plot21(추세선[21]);
If 추세선[22] > 0 Then Plot22(추세선[22]);
If 추세선[23] > 0 Then Plot23(추세선[23]);
If 추세선[24] > 0 Then Plot24(추세선[24]);
If 추세선[25] > 0 Then Plot25(추세선[25]);
If 추세선[26] > 0 Then Plot26(추세선[26]);
If 추세선[27] > 0 Then Plot27(추세선[27]);
If 추세선[28] > 0 Then Plot28(추세선[28]);
If 추세선[29] > 0 Then Plot29(추세선[29]);
If 추세선[30] > 0 Then Plot30(추세선[30]);
If 추세선[31] > 0 Then Plot31(추세선[31]);
If 추세선[32] > 0 Then Plot32(추세선[32]);
If 추세선[33] > 0 Then Plot33(추세선[33]);
If 추세선[34] > 0 Then Plot34(추세선[34]);
If 추세선[35] > 0 Then Plot35(추세선[35]);
If 추세선[36] > 0 Then Plot36(추세선[36]);
If 추세선[37] > 0 Then Plot37(추세선[37]);
If 추세선[38] > 0 Then Plot38(추세선[38]);
If 추세선[39] > 0 Then Plot39(추세선[39]);
이수식을넣으면
선언되지않은이름dayofweek,weeklow,monthlow가사용되었다고나오는데무엇을어떻게해야하는지좀알려주세요...감사합니다
다음글
이전글