커뮤니티
질문...
2015-10-23 20:40:11
143
글번호 91643
분봉적용코드입니다
44613번 연관된 질문입니다
답변주신 코드에
IF VAR3 > 0 Then
FIND(1) ;
이렇게만 추가해서 종목검색을 했는데 종목이 하나도 안나옵니다
나와야 정상인데요...
다시 전체 코드 올려드립니다
보시고 어디가 잘못되었는지 부탁드립니다
검색은 10분봉이던 5분봉이던 상관없구요
검색에 필요한 최소기간을 500까지도 해봤습니다
코드가 틀린게 있다면 조건을 변수화한것뿐입니다
########################################################
INPUT : N(10),UDVol(0),VolRate(200) ;
var : V1(0),V2(0),cnt(0);
Array : V3[10](0);
var : Vcnt(0),PreDate(0),PreDayV(0),ndate(0);
var : Xcnt(0),Nbar(0);
Array : VV1[10](0);
Array : DD[10](0);
if date != date[1] Then{
for cnt = 1 to 9{
V3[cnt] = V3[cnt-1][1];
DD[cnt] = DD[cnt-1][1];
}
}
v1 = accumn(upvol,dayindex+1);
v2 = accumn(DOWNvol,dayindex+1);
V3[0] = V1 - V2 ;
DD[0] = sdate;
if date != date[1] Then{
PreDate = sdate[1];
for Vcnt = 1 to 9{
VV1[Vcnt] = VV1[Vcnt-1][1];
}
}
if PreDate > 0 Then{
for Vcnt = 1 to 1000 {
if stime[Vcnt] <= stime and sdate[Vcnt] == PreDate then{
PreDayV = DayVolume[Vcnt];
Vcnt = 10000;
}
}
}
VV1[0] = DayVolume/PreDayV*100 ;
ndate = 0;
for cnt = 0 to N{
if V3[cnt] > UDVol and VV1[cnt] > VolRate Then
ndate = dd[cnt];
}
if Ndate > 0 then{
Xcnt = 0;
for cnt = 0 to 2000{
if sdate[cnt] >= Ndate Then{
Xcnt = cnt;
}
}
nbar = Xcnt;
if nbar > 0 and nbar < 2000 then{
var1 = 0;
var2 = 0;
var3 = 0;
var4 = var3;
for cnt = nbar downto 0{
var1 = var1+Upvol[cnt];
var2 = var2+DownVol[cnt];
var3 = var1-var2;
if var3 > var4 Then
var4 = var3;
}
}
}
IF VAR3 > 0 Then
FIND(1) ;
답변 1
예스스탁 예스스탁 답변
2015-10-26 11:15:47
안녕하세요
예스스탁입니다.
해당식 아래와 같이
지표식으로 출력해서 차트에 적용해 보시면
조건만족봉에 1, 조건만족하지 않으면 0이 나타납니다.
해당 식으로 종목검색을 수행할때 종목이 검색이 되지 않는 것은
해당식이 검색에 시간이 많이 걸려 거부된 것입니다.
수식은 수식에서 요구되는 봉수보다
차트나 혹은 검색제공봉수가 작으면 결과값이 나오지 않습니다.
아래식은 for문의 루프도 400으로 줄였지만 종목이 나오지 않습니다.
사용자분이 가능한 수식의 루프횟수를 줄이거나 하셔서
로드를 줄이시는 방법뿐이 없습니다.
INPUT : N(10),UDVol(0),VolRate(200) ;
var : V1(0),V2(0),cnt(0);
Array : V3[10](0);
var : Vcnt(0),PreDate(0),PreDayV(0),ndate(0);
var : Xcnt(0),Nbar(0);
Array : VV1[10](0);
Array : DD[10](0);
if date != date[1] Then{
for cnt = 1 to 9{
V3[cnt] = V3[cnt-1][1];
DD[cnt] = DD[cnt-1][1];
}
}
v1 = accumn(upvol,dayindex+1);
v2 = accumn(DOWNvol,dayindex+1);
V3[0] = V1 - V2 ;
DD[0] = sdate;
if date != date[1] Then{
PreDate = sdate[1];
for Vcnt = 1 to 9{
VV1[Vcnt] = VV1[Vcnt-1][1];
}
}
if PreDate > 0 Then{
for Vcnt = 1 to 400{
if stime[Vcnt] <= stime and sdate[Vcnt] == PreDate then{
PreDayV = DayVolume[Vcnt];
Vcnt = 10000;
}
}
}
VV1[0] = DayVolume/PreDayV*100 ;
ndate = 0;
for cnt = 0 to N{
if V3[cnt] > UDVol and VV1[cnt] > VolRate Then
ndate = dd[cnt];
}
if Ndate > 0 then{
Xcnt = 0;
for cnt = 0 to 400{
if sdate[cnt] >= Ndate Then{
Xcnt = cnt;
}
}
nbar = Xcnt;
if nbar > 0 and nbar < 400 then{
var1 = 0;
var2 = 0;
var3 = 0;
var4 = var3;
for cnt = nbar downto 0{
var1 = var1+Upvol[cnt];
var2 = var2+DownVol[cnt];
var3 = var1-var2;
if var3 > var4 Then
var4 = var3;
}
}
}
IF VAR3 > 0 Then
plot1(1);
Else
plot1(0);
즐거운 하루되세요
> 9회말2아웃 님이 쓴 글입니다.
> 제목 : 질문...
> 분봉적용코드입니다
44613번 연관된 질문입니다
답변주신 코드에
IF VAR3 > 0 Then
FIND(1) ;
이렇게만 추가해서 종목검색을 했는데 종목이 하나도 안나옵니다
나와야 정상인데요...
다시 전체 코드 올려드립니다
보시고 어디가 잘못되었는지 부탁드립니다
검색은 10분봉이던 5분봉이던 상관없구요
검색에 필요한 최소기간을 500까지도 해봤습니다
코드가 틀린게 있다면 조건을 변수화한것뿐입니다
########################################################
INPUT : N(10),UDVol(0),VolRate(200) ;
var : V1(0),V2(0),cnt(0);
Array : V3[10](0);
var : Vcnt(0),PreDate(0),PreDayV(0),ndate(0);
var : Xcnt(0),Nbar(0);
Array : VV1[10](0);
Array : DD[10](0);
if date != date[1] Then{
for cnt = 1 to 9{
V3[cnt] = V3[cnt-1][1];
DD[cnt] = DD[cnt-1][1];
}
}
v1 = accumn(upvol,dayindex+1);
v2 = accumn(DOWNvol,dayindex+1);
V3[0] = V1 - V2 ;
DD[0] = sdate;
if date != date[1] Then{
PreDate = sdate[1];
for Vcnt = 1 to 9{
VV1[Vcnt] = VV1[Vcnt-1][1];
}
}
if PreDate > 0 Then{
for Vcnt = 1 to 1000 {
if stime[Vcnt] <= stime and sdate[Vcnt] == PreDate then{
PreDayV = DayVolume[Vcnt];
Vcnt = 10000;
}
}
}
VV1[0] = DayVolume/PreDayV*100 ;
ndate = 0;
for cnt = 0 to N{
if V3[cnt] > UDVol and VV1[cnt] > VolRate Then
ndate = dd[cnt];
}
if Ndate > 0 then{
Xcnt = 0;
for cnt = 0 to 2000{
if sdate[cnt] >= Ndate Then{
Xcnt = cnt;
}
}
nbar = Xcnt;
if nbar > 0 and nbar < 2000 then{
var1 = 0;
var2 = 0;
var3 = 0;
var4 = var3;
for cnt = nbar downto 0{
var1 = var1+Upvol[cnt];
var2 = var2+DownVol[cnt];
var3 = var1-var2;
if var3 > var4 Then
var4 = var3;
}
}
}
IF VAR3 > 0 Then
FIND(1) ;
다음글
이전글