커뮤니티
문의드립니다.
2005-10-11 08:56:40
1418
글번호 8488
안녕하세요.
자동 추세선의 매수 신호표시시 종목을 검색할수 있는 검색식을 부탁드립니다.
수고하세요.
답변 2
예스스탁 예스스탁 답변
2005-10-11 14:24:23
안녕하세요
예스스탁입니다.
보조도구의 자동추세선은 식으로 작성할 수 없으므로
검색식으로 작성할 수 없습니다.
즐거운 하루되세요
> 괌 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
자동 추세선의 매수 신호표시시 종목을 검색할수 있는 검색식을 부탁드립니다.
수고하세요.
수식지왕
2005-10-12 00:36:45
자동추세선 상향돌파 종목 검색식입니다.(괌님이 제 카페에도 질문을 올리셨네요.)
구조적으로 보조도구의 자동추세선을 100% 완벽하게 일치하도록 작성하는 것은 불가능하지만 로직면에서는 일치한다고 여겨집니다.
특히 보조도구의 매수신호는 Swing 변곡점이 확정되기 전에 발생하는 경우도 있어
실제 매매에서는 불가능하며 오히려 후행적이기는 하나 아래 검색식에 의한 돌파 매수가 더 현실적이라고 보여집니다.
자동추세선 관련 수식 설명은 커뮤니티 > 시스템트레이딩 토론실 35~40번 게시물을 참조하세요. 내용을 이해하셔야 응용이 가능합니다.
[검색식]
/*작성자:수식지왕*/
input:left(5),right(5);
var:j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),미완성(0),미완성bar(0),value1(0),
고추세기울기(0),저추세기울기(0),고점추세선(0),저점추세선(0);
array:고[10](0),저[10](0),고bar[10](0),저bar[10](0);
#================================================#
# 변곡점 계산
#================================================#
if highest(h[1],left) <= h then {
예비고 = h;
예비고bar = 0;
}
else
예비고bar = 예비고bar + 1;
if lowest(l[1],left) >= l then {
예비저 = l;
예비저bar = 0;
}
else
예비저bar = 예비저bar + 1;
for j = 1 to 9 {
고bar[j] = 고bar[j] + 1;
저bar[j] = 저bar[j] + 1;
}
if 예비고bar == right and highest(h,right) <= h[right] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
고[1] = 예비고;
고bar[1] = 예비고bar;
if 저bar[1] > 고bar[2] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
미완성 = 0;
for j = 고bar[1] + 1 to 고bar[2] - 1 {
if 미완성 == 0 or 미완성 > l[j] then {
미완성 = l[j];
미완성bar = j;
}
}
저[1] = 미완성;
저bar[1] = 미완성bar;
}
}
if 예비저bar == right and lowest(l,right) >= l[right] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
저[1] = 예비저;
저bar[1] = 예비저bar;
if 고bar[1] > 저bar[2] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
미완성 = 0;
for j = 저bar[1] + 1 to 저bar[2] - 1 {
if 미완성 < h[j] then {
미완성 = h[j];
미완성bar = j;
}
}
고[1] = 미완성;
고bar[1] = 미완성bar;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
고점추세선 = 0; //이전값을 가지고 있으므로 0으로 초기화
저점추세선 = 0;
for j = 2 to 9 {
if 고[1] < 고[j] then {
고추세기울기 = (고[1]-고[j])/(고bar[j]-고bar[1]);
고점추세선 = 고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 2 to 9 {
if 저[j] < 저[1] and 저[j] > 0 then {
저추세기울기 = (저[1]-저[j])/(저bar[j]-저bar[1]);
저점추세선 = 저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
#=====================================================#
# 종목검색
#=====================================================#
if 고점추세선>0 and
고추세기울기[1] == 고추세기울기[0] and //추세선의 기울기가 동일 => 연장선상에 있는 동일 추세선 판단
crossup(c,고점추세선) then
{
if C==C[1] Then
value1 = 0.001;
Else
value1 = (C-C[1])/C[1]*100;
}
Else
value1 = 0;
Find(value1);
이전글