커뮤니티
이 지표를 이용하여 검색식을 만들고싶습니다.
2016-08-12 14:36:49
149
글번호 100975
이 조건을 검색하는 검색식을 만들고싶습니다.
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0),TL1(0),TL2(0),TL3(0),TL4(0);
Array : HH[10](0),HD[10](0),HT[10](0);
Array : LL[10](0),LD[10](0),LT[10](0);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
HD[0] = sdate; #날짜 저장
HT[0] = stime; #시간저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
LD[0] = sdate; #저가날짜저장
LT[0] = stime;
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
HD[cnt] = HD[cnt-1][1];
HT[cnt] = HT[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
LD[cnt] = LD[cnt-1][1];
LT[cnt] = LT[cnt-1][1];
}
}
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
HH[1] < HH[0];
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
}
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
#고가가 상단밴드 위에 있는 경우에는
#직전과 전전을 기준으로 그림
if H > upline Then{
#직전고점이 전전고점볻다 클 경우만 출력
if HH[1] > HH[2] and LL[1] > LL[2] then{
TL1 = TL_New(HD[1],HT[1],HH[1],LD[1],LT[1],LL[1]);
TL2 = TL_New(LD[2],LT[2],LL[2],HD[1],HT[1],HH[1]);
TL3 = TL_New(HD[2],HT[2],HH[2],LD[2],LT[2],LL[2]);
TL4 = TL_New(LD[3],LT[3],LL[3],HD[2],HT[2],HH[2]);
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetSize(TL3,1);
TL_SetSize(TL4,1);
}
}
Else{ #고가가 상단밴드 아래있는 경우에는 최근과 직전을 연결해 그림
#최근 고점이 직전고점보다 높은 경우만 출력
if HH[0] > HH[1] and LL[0] > LL[1] then{
TL1 = TL_New(HD[0],HT[0],HH[0],LD[0],LT[0],LL[0]);
TL2 = TL_New(LD[1],LT[1],LL[1],HD[0],HT[0],HH[0]);
TL3 = TL_New(HD[1],HT[1],HH[1],LD[1],LT[1],LL[1]);
TL4 = TL_New(LD[2],LT[2],LL[2],HD[1],HT[1],HH[1]);
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetSize(TL3,1);
TL_SetSize(TL4,1);
}
}
답변 1
예스스탁 예스스탁 답변
2016-08-12 18:19:51
안녕하세요? 예스스탁입니다.
문의하신 내용으로 검색식(종목검색 아님)으로 적용해 보려고 차트에 적용해 보니 아주 짧은 구간(100봉)에서는 그려지는데, 그 이후 구간으로 늘리면 그려지지 않고 있습니다.
수식에 어떤 오류가 있거나 문제가 있어서 계속 루프를 도는것으로 보여집니다.
식보다는 식 내용을 설명해서 올려주시는 것이 답변드리기 더 좋을것 같습니다.
수식담당자 휴가 중이라서 다음주 수요일 이후에 다시 한번 설명을 올려주시길 부탁드립니다.
감사합니다.
> stockric 님이 쓴 글입니다.
> 제목 : 이 지표를 이용하여 검색식을 만들고싶습니다.
> 이 조건을 검색하는 검색식을 만들고싶습니다.
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0),TL1(0),TL2(0),TL3(0),TL4(0);
Array : HH[10](0),HD[10](0),HT[10](0);
Array : LL[10](0),LD[10](0),LT[10](0);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
HD[0] = sdate; #날짜 저장
HT[0] = stime; #시간저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
LD[0] = sdate; #저가날짜저장
LT[0] = stime;
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
HD[cnt] = HD[cnt-1][1];
HT[cnt] = HT[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
LD[cnt] = LD[cnt-1][1];
LT[cnt] = LT[cnt-1][1];
}
}
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
HH[1] < HH[0];
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
}
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
#고가가 상단밴드 위에 있는 경우에는
#직전과 전전을 기준으로 그림
if H > upline Then{
#직전고점이 전전고점볻다 클 경우만 출력
if HH[1] > HH[2] and LL[1] > LL[2] then{
TL1 = TL_New(HD[1],HT[1],HH[1],LD[1],LT[1],LL[1]);
TL2 = TL_New(LD[2],LT[2],LL[2],HD[1],HT[1],HH[1]);
TL3 = TL_New(HD[2],HT[2],HH[2],LD[2],LT[2],LL[2]);
TL4 = TL_New(LD[3],LT[3],LL[3],HD[2],HT[2],HH[2]);
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetSize(TL3,1);
TL_SetSize(TL4,1);
}
}
Else{ #고가가 상단밴드 아래있는 경우에는 최근과 직전을 연결해 그림
#최근 고점이 직전고점보다 높은 경우만 출력
if HH[0] > HH[1] and LL[0] > LL[1] then{
TL1 = TL_New(HD[0],HT[0],HH[0],LD[0],LT[0],LL[0]);
TL2 = TL_New(LD[1],LT[1],LL[1],HD[0],HT[0],HH[0]);
TL3 = TL_New(HD[1],HT[1],HH[1],LD[1],LT[1],LL[1]);
TL4 = TL_New(LD[2],LT[2],LL[2],HD[1],HT[1],HH[1]);
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetSize(TL3,1);
TL_SetSize(TL4,1);
}
}
다음글
이전글