커뮤니티
지표와 종목검색식 수정 문의드립니다.
2016-08-10 12:46:16
129
글번호 100898
1. 먼저 지표 수식인데요. 1차 고점보다 2차 고점이 높아야합니다. 2차저점은 1차 저점보다 높아야합니다. hh[n] < hh[x] 이렇게 해야할지 어떻게 해야할지 모르겠네요.
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{
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]);
}
Else{ #고가가 상단밴드 아래있는 경우에는 최근과 직전을 연결해 그림
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]);
}
2. 종목검색식입니다.
1차고점보다 2차고점이 높아야 하며, 그리고 현재가가 2차고점을 돌파해야합니다. 1차저점보다 2차저점이 높아야 합니다.이런 파동이 발생한지 30봉이내로 검색하고싶습니다. 검색에 필요한 최소기준봉과는 다른 개념이겠지요. 노고에 감사드립니다.
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0);
Array : HH[10](0),LL[10](0);;
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
CP_HaramiCrossDnTrend(Num, Num, Num)
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
}
#현재 상단위에서 고가가 있으면 직전 고점보다 큰종목
#현재 상단아래에 고가가 있으면 최근 고점보다 큰종목
if (H > upline and C > HH[1] and HH[1] > 0) or (H < upLine and C > HH[0] and HH[0] > 0) Then
find(1);
답변 3
예스스탁 예스스탁 답변
2016-08-10 12:45:07
안녕하세요
예스스탁입니다.
1.
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] 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]);
}
}
Else{ #고가가 상단밴드 아래있는 경우에는 최근과 직전을 연결해 그림
#최근 고점이 직전고점보다 높은 경우만 출력
if HH[0] > HH[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]);
}
}
2
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0);
Array : HH[10](0),LL[10](0),HI[10](0);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
HI[0] = index;#봉번호 저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
#봉번호 저장
HI[0] = index;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
}
#현재 상단위에서 고가가 있으면 종가가 직전 고점보다 크고 직전고점이 전전고점보다 크고 직전고점과 30개봉 이내인 종목
#현재 상단아래에 고가가 있으면 종가가 최근 고점보다 크고 최근고점이 직전고점보다 크고 최근고점과 30개봉 이내인 종목
if (H > upline and C > HH[1] and HH[1] > 0 and HH[1] > HH[2] and index <= HI[1]+30) or
(H < upLine and C > HH[0] and HH[0] > 0 and HH[0] > HH[1] and index <= HI[0]+30) Then
find(1);
즐거운 하루되세요
> stockric 님이 쓴 글입니다.
> 제목 : 지표와 종목검색식 수정 문의드립니다.
> 1. 먼저 지표 수식인데요. 1차 고점보다 2차 고점이 높아야합니다. hh[n] < hh[x] 이렇게 해야할지 어떻게 해야할지 모르겠네요.
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{
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]);
}
Else{ #고가가 상단밴드 아래있는 경우에는 최근과 직전을 연결해 그림
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]);
}
2. 종목검색식입니다.
1차고점보다 2차고점이 높아야 하며, 그리고 현재가가 2차고점을 돌파해야합니다. 이런 파동이 발생한지 30봉이내로 검색하고싶습니다. 검색에 필요한 최소기준봉과는 다른 개념이겠지요. 노고에 감사드립니다.
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0);
Array : HH[10](0),LL[10](0);;
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
CP_HaramiCrossDnTrend(Num, Num, Num)
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
}
#현재 상단위에서 고가가 있으면 직전 고점보다 큰종목
#현재 상단아래에 고가가 있으면 최근 고점보다 큰종목
if (H > upline and C > HH[1] and HH[1] > 0) or (H < upLine and C > HH[0] and HH[0] > 0) Then
find(1);
stockric
2016-08-10 12:47:16
답변 감사드립니다. 두 지표와 검색식에 1차저점보다 2차저점이 높아야 한다는 조건을 추가하고싶습니다. 이것을빼먹었네요. 죄송합니다.
예스스탁 예스스탁 답변
2016-08-10 16:51:00
안녕하세요
예스스탁입니다.
1.
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]);
}
}
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]);
}
}
2
Input : Period(20), Percent(3);
var : UPline(0),DNline(0),cnt(0);
Array : HH[10](0),LL[10](0),HI[10](0);
UPline = EnvelopeUp(Period, Percent);
Dnline = EnvelopeDown(Period, Percent);
#고가가 상단선 돌파
if crossup(H,upline) Then{
#상단 위 최고가의 기준값
HH[0] = H; #고가저장
HI[0] = index;#봉번호 저장
#최고가 이후 최저가의 기준값
LL[0] = L; #저가저장
#이전의 값들
for cnt = 1 to 9{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
#고가가 상단선 위해서 최고가 갱신
if H > upline and H > HH[0] Then{
#최고가값과 날짜 시간을 현재봉으로 변경
HH[0] = H;
#봉번호 저장
HI[0] = index;
#최고가 이후 최저가의 기준값과 날짜 시간 현재봉으로 변경
LL[0] = L;
}
#최저가가 갱신되면 최저가 값과 날짜시간 변경
if L < LL[0] Then{
LL[0] = L;
}
#현재 상단위에서 고가가 있으면
#종가가 직전 고점보다 크고 직전고점이 전전고점보다 크고 직전저점이 전전저점보다 크고 직전고점과 30개봉 이내인 종목
#현재 상단아래에 고가가 있으면
#종가가 최근 고점보다 크고 최근고점이 직전고점보다 크고 최근저점이 직전저점보다 크고 최근고점과 30개봉 이내인 종목
if (H > upline and C > HH[1] and HH[1] > 0 and HH[1] > HH[2] and LL[1] > LL[2] and index <= HI[1]+30) or
(H < upLine and C > HH[0] and HH[0] > 0 and HH[0] > HH[1] and LL[0] > LL[2] and index <= HI[0]+30) Then
find(1);
즐거운 하루되세요
> stockric 님이 쓴 글입니다.
> 제목 : Re : Re : 지표와 종목검색식 수정 문의드립니다.
>
답변 감사드립니다. 두 지표와 검색식에 1차저점보다 2차저점이 높아야 한다는 조건을 추가하고싶습니다. 이것을빼먹었네요. 죄송합니다.
다음글
이전글