커뮤니티
수식문의
2015-01-13 13:59:52
144
글번호 82198
안녕하세요
나름 만들어봤는데 잘 안맞네요.
수정 부탁드립니다.
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
if
L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then
if
L >= var1 Then
buy("매수1",atlimit,var1);
if
L >= var2 Then
buy("매수2",atlimit,var2);
이렇게 하면 안되나요?
ma2160 > ma4320 이 조건이 안먹히네요.
감사합니다.
그리고 과거 하한가가 있는 종목을 검색하려 하는데 이건 어떻게 해야하나요?
답변 3
예스스탁 예스스탁 답변
2015-01-13 14:10:55
안녕하세요
예스스탁입니다.
1.
변수명만 지정하시면 안됩니다.
해단 변수에 값을 저장하고 사용하셔야 합니다.
var : ma2160(0),ma4320(0),ma90(0);
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
ma2160 = ma(C,2160);
ma4320 = ma(C,4320);
ma90 = ma(c,90);
if L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then{
if L >= var1 Then
buy("매수1",atlimit,var1);
if L >= var2 Then
buy("매수2",atlimit,var2);
}
2.
최근 N일간 한번이상 하한가 발생한 종목을 찾는 식입니다.
참고하시기 바랍니다.
input : N(10);
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else
DnLimit = (BP * 0.15);
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 countif(L <= 하한가,N) >= 1 Then
find(1);
즐거운 하루되세요
> HI_ki**** 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
나름 만들어봤는데 잘 안맞네요.
수정 부탁드립니다.
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
if
L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then
if
L >= var1 Then
buy("매수1",atlimit,var1);
if
L >= var2 Then
buy("매수2",atlimit,var2);
이렇게 하면 안되나요?
ma2160 > ma4320 이 조건이 안먹히네요.
감사합니다.
그리고 과거 하한가가 있는 종목을 검색하려 하는데 이건 어떻게 해야하나요?
회원
2015-01-13 14:38:55
그럼 최근 5000일간 하한가가 있는 종목수식이 이렇게 되나요?
input : N(5000);
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else
DnLimit = (BP * 0.15);
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 countif(L <= 하한가,N) >= 1 Then
find(1);
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의
> 안녕하세요
예스스탁입니다.
1.
변수명만 지정하시면 안됩니다.
해단 변수에 값을 저장하고 사용하셔야 합니다.
var : ma2160(0),ma4320(0),ma90(0);
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
ma2160 = ma(C,2160);
ma4320 = ma(C,4320);
ma90 = ma(c,90);
if L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then{
if L >= var1 Then
buy("매수1",atlimit,var1);
if L >= var2 Then
buy("매수2",atlimit,var2);
}
2.
최근 N일간 한번이상 하한가 발생한 종목을 찾는 식입니다.
참고하시기 바랍니다.
input : N(10);
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else
DnLimit = (BP * 0.15);
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 countif(L <= 하한가,N) >= 1 Then
find(1);
즐거운 하루되세요
> HI_ki**** 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
나름 만들어봤는데 잘 안맞네요.
수정 부탁드립니다.
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
if
L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then
if
L >= var1 Then
buy("매수1",atlimit,var1);
if
L >= var2 Then
buy("매수2",atlimit,var2);
이렇게 하면 안되나요?
ma2160 > ma4320 이 조건이 안먹히네요.
감사합니다.
그리고 과거 하한가가 있는 종목을 검색하려 하는데 이건 어떻게 해야하나요?
예스스탁 예스스탁 답변
2015-01-13 14:44:14
안녕하세요
예스스탁입니다.
N을 원하시는 기간으로 지정하시면 됩니다.
다만 종목검색은 모든 주기에서 최대 500봉 까지만 제공됩니다.
5000일까지는 검색이 되지 않습니다.
즐거운 하루되세요
> HI_ki**** 님이 쓴 글입니다.
> 제목 : Re : Re : 수식문의
> 그럼 최근 5000일간 하한가가 있는 종목수식이 이렇게 되나요?
input : N(5000);
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else
DnLimit = (BP * 0.15);
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 countif(L <= 하한가,N) >= 1 Then
find(1);
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의
> 안녕하세요
예스스탁입니다.
1.
변수명만 지정하시면 안됩니다.
해단 변수에 값을 저장하고 사용하셔야 합니다.
var : ma2160(0),ma4320(0),ma90(0);
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
ma2160 = ma(C,2160);
ma4320 = ma(C,4320);
ma90 = ma(c,90);
if L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then{
if L >= var1 Then
buy("매수1",atlimit,var1);
if L >= var2 Then
buy("매수2",atlimit,var2);
}
2.
최근 N일간 한번이상 하한가 발생한 종목을 찾는 식입니다.
참고하시기 바랍니다.
input : N(10);
var : 하한가(0), DnLimit(0);
var : dn1(0), dn2(0), dn3(0), dn4(0), dn5(0),dn6(0),dn7(0);
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
DnLimit = (BP * 0.12);
Else
DnLimit = (BP * 0.15);
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 countif(L <= 하한가,N) >= 1 Then
find(1);
즐거운 하루되세요
> HI_ki**** 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
나름 만들어봤는데 잘 안맞네요.
수정 부탁드립니다.
var1 = EnvelopeDown(120,10);
var2 = EnvelopeDown(240,10);
if
L < Daylow(1)*0.98 And
L < min(daylow(1),daylow(2),daylow(3)) And
ma2160 > ma4320 And
L <= ma90*0.95 Then
if
L >= var1 Then
buy("매수1",atlimit,var1);
if
L >= var2 Then
buy("매수2",atlimit,var2);
이렇게 하면 안되나요?
ma2160 > ma4320 이 조건이 안먹히네요.
감사합니다.
그리고 과거 하한가가 있는 종목을 검색하려 하는데 이건 어떻게 해야하나요?
다음글
이전글