커뮤니티
질문입니다
2015-10-20 20:21:49
159
글번호 91498
주식 종목검색식입니다
1. 전일 상한가 및 하한가 제외
2. 100일봉 기간동안 평균 거래대금 (종가*거래량)이 5억원 이상
(위 조건설정이 불가한 경우에는 100일봉 평균 거래량 10만주 이상)
3. 1거래일 전 캔들의 종가와 5일이평선(가중)의 이격도 2%이내
4. 설정한 날짜(ex 10일)동안 모두 20일 이평선을 기준으로 5, 10, 60일 이평선과의 이격도가 2% 이내
(즉, 20-5, 20-10, 20-60의 이격도, 이평선은 가중방식이며 20-60 이격도는 설정해 주시되 적용안되게 주석처리)
5. 1거래일전 일봉기준 스토캐스틱 슬로우(12,5) (K-D)절대값이 10이하
6. 30분봉 주기 스토캐스틱 슬로우(12,5) (K-D)절대값이 10 이하
7. 30분봉 주기 스토캐스틱 슬로우(12,5) K값이 20이하
8. 60일봉 내에 (100일봉 기간 평균 거래량)의 5배 이상의 거래량이 있는 일봉 존재
시스템입니다.
1. 30분봉 주기 스토캐스틱 슬로우(12,5) K가 D를 상향돌파시 매수
매수시 설정금액 (ex 100만원)만큼 매수 매수시 진입시점에서 1분 단위로 3차례에 걸쳐
각각 30% 40% 30% 매수
2. 30분봉 주기 스토캐스틱 슬로우(12,5) K값이 60이상이고 K가 변곡점일때 매도
(위 조건이 불가하면 K값이 60이상이고 (K-D)절대값이 10이하일때 매도)
매도시 최초매도 시점에서 1분단위로 3차례에 걸쳐 각각 30% 40% 나머지 전량 매도
3. 진입가격보다 3% 하락시 1분단위로 3차례에 걸쳐 각각 30% 40% 나머지 전량 손절
3번 조건은 2번조건보다 우선함
각 조건별로 뒤에 숫자로 주석처리 부탁드립니다
감사합니다
답변 1
예스스탁 예스스탁 답변
2015-10-21 10:21:12
안녕하세요
예스스탁입니다.
1.
종목검색은 제공되는 봉수가 500봉까지만 제공됩니다.
주기가 다른 조건은 각각 작성해서
종목검색화면에서 조합해 검색하셔야 합니다.
특히나 문의하신 내용과 같이 일봉의 기간이 많이 필요한 내용은
분주기 자체에서 일봉값을 따로 계산을 할수없고
스토케스틱과 같은 경우는 과거 봉수에 따라 값이 변하므로
위와 같은 경우에는 주기별로 따로 작성하셔서
종목검색화면에서 조합해 검색하셔야 합니다.
일봉기준내용과 30분 따로 작성해 드립니다.
1-1. 일봉
input : P(100),P1(5),P2(10),P3(20),P4(60),sto1(12),sto2(5),sto3(5);
var : maCV(0),ma1(9),ma2(0),ma3(0),ma4(0),stok(0),stod(0);
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else if date >= 20050328 and date < 20150615 Then
DnLimit = (BP * 0.15);
Else
DnLimit = (BP * 0.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
dn1 = int(DnLimit/100)*100;
dn2 = int(DnLimit/100)*100;
dn3 = int(DnLimit/100)*100;
dn4 = int(DnLimit/50)*50;
dn5 = int(DnLimit/10)*10;
dn6 = int(DnLimit/5)*5;
dn7 = int(DnLimit/1)*1;
}
else {
dn1 = int(DnLimit/1000)*1000;
dn2 = int(DnLimit/500)*500;
dn3 = int(DnLimit/100)*100;
dn4 = int(DnLimit/50)*50;
dn5 = int(DnLimit/10)*10;
dn6 = int(DnLimit/10)*10;
dn7 = int(DnLimit/1)*1;
}
}
Else {
dn1 = int(DnLimit/1000)*1000;
dn2 = int(DnLimit/500)*500;
dn3 = int(DnLimit/100)*100;
dn4 = int(DnLimit/50)*50;
dn5 = int(DnLimit/10)*10;
dn6 = int(DnLimit/5)*5;
dn7 = int(DnLimit/1)*1;
}
if CodeCategory() == 1 or CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
하한가 = BP-dn1;
Else If BP >= 100000 Then
하한가 = BP-dn2;
Else If BP >= 50000 Then
하한가 = BP-dn3;
Else If BP >= 10000 Then
하한가 = BP-dn4;
Else If BP >= 5000 Then
하한가 = BP-dn5;
Else If BP >= 1000 Then
하한가 = BP-dn6;
Else
하한가 = BP-dn6;
}
else{
If BP >= 500000 Then
하한가 = BP-dn1;
Else If BP >= 100000 Then
하한가 = BP-dn2;
Else If BP >= 50000 Then
하한가 = BP-dn3;
Else If BP >= 10000 Then
하한가 = BP-dn4;
Else If BP >= 5000 Then
하한가 = BP-dn5;
Else If BP >= 1000 Then
하한가 = BP-dn6;
Else
하한가 = BP-dn7;
}
}
else if CodeCategory() == 8 or CodeCategory() == 9 then {
하한가 = BP-dn6;
}
}
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
maCV = ma(C*V,P);
ma1 = wma(C,P1);
ma2 = wma(C,P2);
ma3 = wma(C,P3);
ma4 = wma(c,P4);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
if C[1] < 상한가 and C[1] > 하한가 and #1
maCV >= 500000000 and #2
C[1] <= ma1[1]*1.02 and C[1] >= ma1[1]*0.98 and#3
countif(ma1 <= ma3*1.02 and ma1 >= ma3*0.98,10) == 10 and #4
countif(ma2 <= ma3*1.02 and ma2 >= ma3*0.98,10) == 10 and#4
#countif(ma4 <= ma3*1.02 and mav4 >= ma3*0.98,10) == 10 and#4
abs(stok[1]-stod[1]) <= 10 and #5
countif(V>=maCV*5,60) >= 1 Then#8
find(1);
1-2, 분봉
input : sto1(12),sto2(5),sto3(5);
var : stok(0),stod(0);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
if abs(stok-stod) <= 10 and #6
stok < 20 Then#7
find(1);
2,
해당 내용 가능하지 않습니다.
수식은 봉단위로 계산합니다.
하나의 봉안에서 분단위로 내용을 처리할수는 없습니다.
즐거운 하루되세요
> 가이츠 님이 쓴 글입니다.
> 제목 : 질문입니다
> 주식 종목검색식입니다
1. 전일 상한가 및 하한가 제외
2. 100일봉 기간동안 평균 거래대금 (종가*거래량)이 5억원 이상
(위 조건설정이 불가한 경우에는 100일봉 평균 거래량 10만주 이상)
3. 1거래일 전 캔들의 종가와 5일이평선(가중)의 이격도 2%이내
4. 설정한 날짜(ex 10일)동안 모두 20일 이평선을 기준으로 5, 10, 60일 이평선과의 이격도가 2% 이내
(즉, 20-5, 20-10, 20-60의 이격도, 이평선은 가중방식이며 20-60 이격도는 설정해 주시되 적용안되게 주석처리)
5. 1거래일전 일봉기준 스토캐스틱 슬로우(12,5) (K-D)절대값이 10이하
6. 30분봉 주기 스토캐스틱 슬로우(12,5) (K-D)절대값이 10 이하
7. 30분봉 주기 스토캐스틱 슬로우(12,5) K값이 20이하
8. 60일봉 내에 (100일봉 기간 평균 거래량)의 5배 이상의 거래량이 있는 일봉 존재
시스템입니다.
1. 30분봉 주기 스토캐스틱 슬로우(12,5) K가 D를 상향돌파시 매수
매수시 설정금액 (ex 100만원)만큼 매수 매수시 진입시점에서 1분 단위로 3차례에 걸쳐
각각 30% 40% 30% 매수
2. 30분봉 주기 스토캐스틱 슬로우(12,5) K값이 60이상이고 K가 변곡점일때 매도
(위 조건이 불가하면 K값이 60이상이고 (K-D)절대값이 10이하일때 매도)
매도시 최초매도 시점에서 1분단위로 3차례에 걸쳐 각각 30% 40% 나머지 전량 매도
3. 진입가격보다 3% 하락시 1분단위로 3차례에 걸쳐 각각 30% 40% 나머지 전량 손절
3번 조건은 2번조건보다 우선함
각 조건별로 뒤에 숫자로 주석처리 부탁드립니다
감사합니다
다음글
이전글