예스스탁
예스스탁 답변
2021-12-27 13:13:54
안녕하세요
예스스탁입니다.
1.갯수
해당 수식은 고점과 저점을 표시하고
최근 5개(갯수)의 고점값과 저점값은 현재봉까지 선으로 그리는 식입니다.
2.간격
고저점을 판단하는 기준입니다.
고점은 5봉전 고가가 0~4봉전 최고가보다 크고
5봉전 고가가 6~10봉전 최고가보다 크면 고점으로 인정되고
저점은 5봉전 저가가 0~4봉전 최저가보다 작고
5봉전 저가가 6~10봉전 최저가보다 작으면 저점점으로 인정됩니다.
3
2번조건으로 판별된 고점이나 저점은 속이 꽉찬 빨간색, 파란색 동그라미로 그립니다.
고점조건 만족후 저점조건 만족없이 고점조건이 또 만족하면
고점과 고점사이의 최저가를 속이 빈 파란색 동그라미로 표시합니다.
저점조건 만족후 고점조건 만족없이 저점조건이 또 만족하면
저점과 저점사이의 최저가를 속이 빈 빨란색 동그라미로 표시합니다.
4
아래 수식에 고점부분에 주석을 붙여 드립니다.
저점은 해당 내용과 같습니다.
input : 간격(5),갯수(5);
var : T(0),cnt(0);
var : HH1(0),HI1(0),HI2(0),LL1(0),LI1(0),LI2(0);
var : LD(0),LT(0),LL(0),HD(0),HT(0),HH(0),TX(0);
Array : HTL[100](0),LTL[100](0);
#고점발생
#5(간격)봉전 고가가 최근 5(간격)개봉 최고가보다 크고 6(간격+1)봉전 기준 5(간격)개봉최고가보다 크면
if H[간격] > Highest(H,간격) and H[간격] > Highest(H,간격)[간격+1] Then
{
#조건만족 부분값은 1
T = 1;
#HH1에 5(간격)봉전 고가 저장
HH1 = H[간격];
#Hi1에 5(간격)봉전 봉번호 저장
Hi1 = index[간격];
#Hi2에 직전조검만족시 봉번호 저장
Hi2 = HI1[1];
#고점부터 현재봉 까지 추세선을 그림
HTL[0] = TL_New(sdate[간격],stime[간격],HH1,sdate,stime,HH1);
#추세선 색상은 빨강
TL_SetColor(HTL[0],RED);
#추세선을 차트 마지막봉까지 확장
TL_SetExtRight(HTL[0],true);
#동그라미 출력
TX = Text_New(sdate[간격],stime[간격],HH1,"●");
#동그라미는 빨간색
Text_SetColor(TX,RED);
#동그라미는 좌우 중앙으로 정렬
Text_SetStyle(TX,2,2);
#이전 고점추세선의 아이디를 다음배열로 옮김
#HTL[1]에는 HTL[0]의 한봉전값
#HTL[2]에는 HTL[1]의 한봉전값
#HTL[3]에는 HTL[2]의 한봉전값......
for cnt = 1 to 99
{
HTL[cnt] = HTL[cnt-1][1];
}
#이전 추세선 중 5(갯수)전 표시는 삭제
TL_Delete(HTL[갯수]);
#고점 다음 고점이 발생했을 경우
if t == t[1] then
{
#직전고점과 현재고점사이의 최저가와 해당봉의 날짜,시간 계산
LD = 0;
LT = 0;
LL = 0;
for cnt = index-HI1 to index-HI2
{
if LL == 0 or (LL > 0 and L[cnt] < LL) Then
{
LL = L[cnt];
LD = sdate[cnt];
LT = stime[cnt];
}
}
#최저가 추세선을 그림
LTL[0] = TL_New(ld,lt,ll,sdate,stime,ll);
#추세선의 색상은 파랑
TL_SetColor(LTL[0],blue);
#추세선을 차트 마지막봉까지 확장
TL_SetExtRight(LTL[0],true);
#최저가봉에 속빈 동그라미 출력
TX = Text_New(LD,LT,LL,"○");
#동그라미 색상은 파랑
Text_SetColor(TX,BLUE);
#동그라미는 중앙으로 정렬
Text_SetStyle(TX,2,2);
#이전 저점추세선의 아이디를 다음배열로 옮김
#LTL[1]에는 LTL[0]의 한봉전값
#LTL[2]에는 LTL[1]의 한봉전값
#LTL[3]에는 LTL[2]의 한봉전값......
for cnt = 1 to 99
{
LTL[cnt] = LTL[cnt-1][1];
}
#이전 추세선 중 5(갯수)전 표시는 삭제
TL_Delete(LTL[갯수]);
}
}
if L[간격] < Lowest(L,간격) and L[간격] < Lowest(L,간격)[간격+1] Then
{
T = -1;
LL1 = L[간격];
LI1 = index[간격];
LI2 = LI1[1];
LTL[0] = TL_New(sdate[간격],stime[간격],LL1,sdate,stime,LL1);
TL_SetColor(LTL[0],blue);
TL_SetExtRight(LTL[0],true);
TX = Text_New(sdate[간격],stime[간격],LL1,"●");
Text_SetColor(TX,BLUE);
Text_SetStyle(TX,2,2);
for cnt = 1 to 99
{
LTL[cnt] = LTL[cnt-1][1];
}
TL_Delete(LTL[갯수]);
if t == t[1] then
{
HD = 0;
HT = 0;
HH = 0;
for cnt = index-LI1 to index-LI2
{
if HH == 0 or (HH > 0 and H[cnt] > HH) Then
{
HH = H[cnt];
HD = sdate[cnt];
HT = stime[cnt];
}
}
HTL[0] = TL_New(HD,HT,HH,sdate,stime,HH);
TL_SetColor(HTL[0],RED);
TL_SetExtRight(HTL[0],true);
TX = Text_New(HD,HT,HH,"○");
Text_SetColor(TX,RED);
Text_SetStyle(TX,2,2);
for cnt = 1 to 99
{
HTL[cnt] = HTL[cnt-1][1];
}
TL_Delete(HTL[갯수]);
}
}
즐거운 하루되세요
> 매너모드 님이 쓴 글입니다.
> 제목 : 지표식 내용을 수정하려고 합니다.
> 아래 지표식은 수식작성 Q&A에서 지지저항을 그려주는 수식으로 검색된 내용입니다.
수식의 의미에 대해서 대략 설명이 가능한가요? (변수명의 의미만이라도)
시간이 많이 걸리시면 변수명의 의미만 알려주셔도 됩니다.
오늘도 감사드립니다.
-------------------------------------------------------------------------
input : 간격(5),갯수(5);
var : T(0),cnt(0);
var : HH1(0),HI1(0),HI2(0),LL1(0),LI1(0),LI2(0);
var : LD(0),LT(0),LL(0),HD(0),HT(0),HH(0),TX(0);
Array : HTL[100](0),LTL[100](0);
if H[간격] > Highest(H,간격) and H[간격] > Highest(H,간격)[간격+1] Then
{
T = 1;
HH1 = H[간격];
Hi1 = index[간격];
Hi2 = HI1[1];
HTL[0] = TL_New(sdate[간격],stime[간격],HH1,sdate,stime,HH1);
TL_SetColor(HTL[0],RED);
TL_SetExtRight(HTL[0],true);
TX = Text_New(sdate[간격],stime[간격],HH1,"●");
Text_SetColor(TX,RED);
Text_SetStyle(TX,2,2);
for cnt = 1 to 99
{
HTL[cnt] = HTL[cnt-1][1];
}
TL_Delete(HTL[갯수]);
if t == t[1] then
{
LD = 0;
LT = 0;
LL = 0;
for cnt = index-HI1 to index-HI2
{
if LL == 0 or (LL > 0 and L[cnt] < LL) Then
{
LL = L[cnt];
LD = sdate[cnt];
LT = stime[cnt];
}
}
LTL[0] = TL_New(ld,lt,ll,sdate,stime,ll);
TL_SetColor(LTL[0],blue);
TL_SetExtRight(LTL[0],true);
TX = Text_New(LD,LT,LL,"○");
Text_SetColor(TX,BLUE);
Text_SetStyle(TX,2,2);
for cnt = 1 to 99
{
LTL[cnt] = LTL[cnt-1][1];
}
TL_Delete(LTL[갯수]);
}
}
if L[간격] < Lowest(L,간격) and L[간격] < Lowest(L,간격)[간격+1] Then
{
T = -1;
LL1 = L[간격];
LI1 = index[간격];
LI2 = LI1[1];
LTL[0] = TL_New(sdate[간격],stime[간격],LL1,sdate,stime,LL1);
TL_SetColor(LTL[0],blue);
TL_SetExtRight(LTL[0],true);
TX = Text_New(sdate[간격],stime[간격],LL1,"●");
Text_SetColor(TX,BLUE);
Text_SetStyle(TX,2,2);
for cnt = 1 to 99
{
LTL[cnt] = LTL[cnt-1][1];
}
TL_Delete(LTL[갯수]);
if t == t[1] then
{
HD = 0;
HT = 0;
HH = 0;
for cnt = index-LI1 to index-LI2
{
if HH == 0 or (HH > 0 and H[cnt] > HH) Then
{
HH = H[cnt];
HD = sdate[cnt];
HT = stime[cnt];
}
}
HTL[0] = TL_New(HD,HT,HH,sdate,stime,HH);
TL_SetColor(HTL[0],RED);
TL_SetExtRight(HTL[0],true);
TX = Text_New(HD,HT,HH,"○");
Text_SetColor(TX,RED);
Text_SetStyle(TX,2,2);
for cnt = 1 to 99
{
HTL[cnt] = HTL[cnt-1][1];
}
TL_Delete(HTL[갯수]);
}
}