커뮤니티
[오픈소스] PnF차트 상승전환 종목 검색식
2005-12-22 00:57:32
1229
글번호 9000
본 내용은 http://cafe.empas.com/systrader에 게시된 내용입니다.
위에서 작성한 검색식은 저항선을 돌파하는지 판별하는 것이었고 이번에는 그것보다 간단한
P&F 차트상에서 상승으로 전환된 종목을 찾는 검색식입니다.
앞의 수식에서 일부 내용을 삭제하고 방향이 하락에서 상승으로 바뀌었는지를 체크합니다.
/*작성자:수식지왕*/
input:bar_cnt(200);
var:j(0),g(0),r(0),k(0),n(0),point(0),figure(3),u(1),d(-1),이전방향(0);
array:기준가[10](0),Hi[100](0),Lo[100](0),방향[100](0);
#=====================================================#
# main
#=====================================================#
n = bar_cnt - 1;
if i == n then {
point = (highest(c,bar_cnt)-lowest(c,bar_cnt))/50;
기준가[0] = c[n];
k = 0;
방향[0] = 0;
Hi[0] = int(h[n]/point);
Lo[0] = int(l[n]/point);
for g = n - 1 downto 0 {
이전방향 = 방향[0]; //보통의 처리 루틴이라면 이전봉의 값은 방향[0][1]로
//표현할 수 있겠으나 본 검색식에서는 마지막봉에서 모든
//계산이 이루어지므로 이전봉에서의 값을 이런 식으로
//별도의 변수에 넣어 처리하여 함
for r = 9 downto 1 {
기준가[r] = 기준가[r-1];
}
if 방향[0] == 0 then {
if 기준가[0] + (point * figure) <= c[g] then {
기준가[0] = c[g];
방향[0] = u;
Hi[0] = max(Hi[0],int(h[g]/point));
Lo[0] = min(Lo[0],int(l[g]/point));
}
else if 기준가[0] - (point * figure) >= c[g] then {
기준가[0] = c[g];
방향[0] = d;
Hi[0] = max(Hi[0],int(h[g]/point));
Lo[0] = min(Lo[0],int(l[g]/point));
}
else {
Hi[0] = max(Hi[0],int(h[g]/point));
Lo[0] = min(Lo[0],int(l[g]/point));
}
}
else if 방향[0] == d then {
if 기준가[0] + (point * figure) <= c[g] then {
k = k + 1;
for j = min(k,99) downto 1 {
Hi[j] = Hi[j-1];
Lo[j] = Lo[j-1];
방향[j] = 방향[j-1];
}
기준가[0] = c[g];
방향[0] = u;
Hi[0] = int(h[g]/point);
Lo[0] = int(기준가[1]/point);
}
else {
기준가[0] = min(기준가[1],c[g]);
Hi[0] = max(Hi[0],int(h[g]/point));
Lo[0] = min(Lo[0],int(l[g]/point));
}
}
else if 방향[0] == u then {
if 기준가[0] - (point * figure) >= c[g] then {
k = k + 1;
for j = min(k,99) downto 1 {
Hi[j] = Hi[j-1];
Lo[j] = Lo[j-1];
방향[j] = 방향[j-1];
}
기준가[0] = c[g];
방향[0] = d;
Hi[0] = int(기준가[1]/point);
Lo[0] = int(l[g]/point);
}
else {
기준가[0] = max(기준가[1],c[g]);
Hi[0] = max(Hi[0],int(h[g]/point));
Lo[0] = min(Lo[0],int(l[g]/point));
}
}
}
}
#=====================================================#
# 검색식
#=====================================================#
if 이전방향 == d and 방향[0] == u then var1 = Hi[0];
else var1 = 0;
Find(var1);
- 1. snap0701.jpg (0.13 MB)
- 2. snap0702.jpg (0.09 MB)