커뮤니티
수식 질문입니다..
2015-03-27 08:26:52
222
글번호 84451
빠른 답변 덕분에 많이 알아가고 있어서 감사드립니다..
내일이 주말이라 기초 지식은 좀 있어야 공부가 쉬울거 같아 질문이 좀 많네요^^;;
질문 01) Force Index
당일 0봉기준 아래의 Condition과 봉조건에 맞는 종목 검색식을 만들고 싶은데...
잘 안되네요^^;;
input : P1(2),P2(15);
Variables: fval(0),fis(0),fil(0);
fval= ((Close - Close[1]) * Volume) ;
fis = Ema(fval, P1);
fil = Ema(fval, P2);
Condition1 = fis <= 0 and fil <= 0;
Condition2 = fis >= 0 and fil >= 0;
Condition3 = fis >= 0 and fil <= 0;
if ( ?if(Condition1(5) == true,3) == 0 잘모르겠네요^^;; ---- ) Then
find(1);
여기에서 당일종가 0봉을 기준으로
5봉전은 Condition1에 만족,
4봉전은 Condition3에 만족,
3봉전은 Condition1에 만족,
2봉전은 Condition2에 만족,
1봉전은 Condition2에 만족,
0봉전은 Condition2에 만족하는 검색식을 만들고 싶습니다.
그리고 이 검색식을 테스트하기 위하여
당일 0봉을 기준으로하는 검색이 아닌
20봉 전을 기준으로 검색하고도 싶습니다.
fval (20)하면 될까요?
------------------
질문02)
어제 답변주신 수식중에서 화살표 부분의 의미가 궁금합니다.
input : P1(5),P2(20);
var : aa(0),bb(0),xx(0),cc(0),dd(0),yy(0),ee(0),ff(0),zz(0); # <----- '0'의 의미
var : gg(false),hh(false); # <----- 'false'의 의미
var : mav1(0),mav2(0); # <----- '0'의 의미
aa=(C[4] + C[3] + C[2])/3;
.
.
.
.
.
ff=(H[2] + L[1] + O[0])/3;
zz=(ff-ee);
mav1 = ma(c,P1);
mav2 = ma(C,P2);
gg = C[1] < O[0];
hh = O[0] < C[0];
if gg and hh and xx<0 and yy<0 and zz<0 Then
find(1); 에서
- gg(false),hh(false); 의미가 궁금합니다. false말고 ture를 사용하면 어떤 의미가 될까요?
- var에서 '0'의 의미가 알고 싶습니다.
- Variables: Fval(0),FvalFast(0),FvalSlow(0); 여기서 Fval은 무슨 뜻이 있나요?
- Input과 Inputs는 뭐가 다른가요?
- var 와 Variables는 다른 의미인가요?
(직접 설명을 달아주시니가 훨씬 이해가 빠른데...
아니면 도움말 어느부분을 공부하라고 해주셔요 상관없습니다.)
------------------
질문 03)
아래 수식에서 검색 기준봉이 0봉이 아닌 20봉전으로 검색하게하려면 뭘 바꿔야할까요?
그러니까 당일 기준 20봉전부터 22봉까지를 검색하고 싶습니다.
검색식의 결과를 알기 위해서입니다.
Inputs: ShortPeriod(5),LongPeriod(20);
Variables: Fval(0),FvalFast(0),FvalSlow(0);
Fval = ((Close - Close[1]) * Volume) ;
FvalFast = Ema(Fval, ShortPeriod);
FvalSlow = Ema(Fval, LongPeriod);
#동시 0이하이면 true 아니면 false
Condition1 = FvalFast <= 0 and FvalSlow <= 0;
#최근 3개봉에 동시 0이하인 경우가 없는 종목검색
if countif(Condition1 == true,3) == 0 Then
find(1);
----------------
질문 04)
검색식 안에 추가할 내용인데 적당할까요/
#전일 거래량
Condition7= 100000 < volumed( 1) And volumed (1) =< 999999999999
#전일 거래 대금 (대략)
Condition8= ( volumed(1 ) * opend(1 )) > 100000000
#주가범위
Condition9 = 3000 < closed And closed < 50000
-------------------
질문 05)
60봉중 최대거래량이 터진날을 기준수량으로하여
당일 거래량이 최대거래량 대비 30%이하로 줄어든 종목을 검색하는 수식 부탁드립니다.
-------------------
질문 06)
마지막 질문입니다.
3번 수식에서 이어지는 질문인데요...
Condition1 = FvalFast >= 0 and FvalSlow >= 0;
Condition2 = FvalFast <= 0 and FvalSlow >= 0;
Condition3 = FvalFast >= 0 and FvalSlow <= 0;
Condition4 = FvalFast <= 0 and FvalSlow <= 0;
3번수식에 만족한 결과내 검색을 한번 더 하는데...
만약 20봉을 검색하는데...
Condition3이 발생한 횟수보다
Condition1이나 2가 발생한 횟수가 더 많은 종목을 검색할 수 있을까요?
말도 안되는 질문이면 패스하셔도 상관없습니다.^^*
감사합니다^^*
답변 1
예스스탁 예스스탁 답변
2015-03-27 09:46:36
안녕하세요
예스스탁입니다.
1.
현재봉에서 3가지 조건 중 하나를 만족하는 종목을 검색하고자
하시면 아래와 같이 작성하시면 됩니다.
input : P1(2),P2(15);
Variables: fval(0),fis(0),fil(0);
fval= ((Close - Close[1]) * Volume) ;
fis = Ema(fval, P1);
fil = Ema(fval, P2);
Condition1 = fis <= 0 and fil <= 0;
Condition2 = fis >= 0 and fil >= 0;
Condition3 = fis >= 0 and fil <= 0;
#3가지 조건 중 하나 만족하는 종목검색
if Condition1 or Condition2 or Condition3 Then
find(1);
5봉전은 Condition1에 만족,
4봉전은 Condition3에 만족,
3봉전은 Condition1에 만족,
2봉전은 Condition2에 만족,
1봉전은 Condition2에 만족,
0봉전은 Condition2에 만족
내용이시면 아래와 같습니다.
input : P1(2),P2(15);
Variables: fval(0),fis(0),fil(0);
fval= ((Close - Close[1]) * Volume) ;
fis = Ema(fval, P1);
fil = Ema(fval, P2);
Condition1 = fis <= 0 and fil <= 0;
Condition2 = fis >= 0 and fil >= 0;
Condition3 = fis >= 0 and fil <= 0;
if Condition1[5] == true And #5봉전은 Condition1에 만족,
Condition3[4] == true And #4봉전은 Condition3에 만족,
Condition1[3] == true And#3봉전은 Condition1에 만족,
Condition2[2] == true And#2봉전은 Condition2에 만족,
Condition2[1] == true And#1봉전은 Condition2에 만족,
Condition2 == true then#0봉전은 Condition2에 만족
find(1);
2.
-변수 기초값
내부변수(var)는 저정되는 값의 타입에 따라 선언을 달리해주셔야 합니다.
var : aa(0),bb(false),CC(" ");
숫자가 저장되는 변수는 (숫자)
true나 false가 저장되는 변수는 (false)나 (true)
텍스트가 저장되는 변수는 (" ") 입니다.
일반적으로 숫자를 저장하는 변수는 (0)으로 많이 선언합니다.
(100),(-1)등과 같이 다른 숫자를 기본값으로 선언하셔도 관계는 없습니다.
단순 해당 변수에 숫자가 들어간다는 의미이고 변수에 값이 할당되기 전에 0을 가지는 것일뿐입니다.
true나 false가 저장되는 변수는 보통 (false)로 선언하는데
조건에 만족하면 true아니면 false가 해당 변수에 저장되므로
기초값을 true로 선언하면 차트상 첫봉에서 true이므로 혼동의 여지가 있으므로 false로 많이 선언합니다.
텍스트 저장변수도 같습니다. (" ")로 하셔도 되고 ("가나다라")와 같이 특정텍스트를 기초값으로 주셔도 됩니다.
- Variables: Fval(0),FvalFast(0),FvalSlow(0); 여기서 Fval은 무슨 뜻이 있나요?
변수의 이름 자체는 큰의미가 없습니다.
변수는 작성자가 특정값을 저장하기 위해 임의로 만드는 단어입니다.
- Input과 Inputs는 뭐가 다른가요?
- var 와 Variables는 다른 의미인가요?
2개는 다른점이 없습니다.
외부변수와 내부변수 선언할때 위 단어들중 하나를 사용하시면 됩니다.
3.
Inputs: ShortPeriod(5),LongPeriod(20);
Variables: Fval(0),FvalFast(0),FvalSlow(0);
Fval = ((Close - Close[1]) * Volume) ;
FvalFast = Ema(Fval, ShortPeriod);
FvalSlow = Ema(Fval, LongPeriod);
Condition1 = FvalFast <= 0 and FvalSlow <= 0;
var1 = countif(Condition1 == true,3);
#20개봉 전에 var1에 저장된 값이 0인 종목을 검색
if var1[20] == 0 Then
find(1);
4.
일간거래량은 dayvolume입니다.
dayvolume(1)이 전일거래량입니다.
이상/이하를 표현하실떄는 부등호가 앞 등호가 뒤입니다.
<= (0)
= < (X)
일간거래대금은 따로 계산식을 만들어 사용하셔야 합니다.
아래식 참고하시기 바랍니다.
#전일 거래량
Condition7= 100000 < dayvolume(1) And dayvolume(1) <= 999999999999;
#전일 거래 대금 (대략)
var : sumMoney(0),PresumMoney(0);
if date != date[1] Then{
sumMoney = 0;
PresumMoney = sumMoney[1];
}
sumMoney = sumMoney + money;
Condition8= (PresumMoney * opend(1 )) > 100000000 ;
#주가범위
Condition9 = 3000 < C And C < 50000 ;
5.
Inputs: ShortPeriod(5),LongPeriod(20);
Variables: Fval(0),FvalFast(0),FvalSlow(0);
Fval = ((Close - Close[1]) * Volume) ;
FvalFast = Ema(Fval, ShortPeriod);
FvalSlow = Ema(Fval, LongPeriod);
Condition1 = FvalFast <= 0 and FvalSlow <= 0;
Condition2 = FvalFast <= 0 and FvalSlow >= 0;
Condition3 = FvalFast >= 0 and FvalSlow <= 0;
Condition4 = FvalFast <= 0 and FvalSlow <= 0;
var1 = countif(Condition1 == true,3);
value1 = countif(Condition1 == true,20);//20개봉 동안 1번조건 만족횟수
value2 = countif(Condition2 == true,20);//20개봉 동안 2번조건 만족횟수
value3 = countif(Condition3 == true,20);//20개봉 동안 3번조건 만족횟수
value4 = countif(Condition4 == true,20);//20개봉 동안 4번조건 만족횟수
#var1에 저장된 값이 0이고, 20개봉 동안 1번이나 2번조건이 3번조건보다 많이 발생한 종목을 검색
if var1 == 0 and (value1 > value3 or value2 > value3) Then
find(1);
20개봉전~22개봉전 사이이면
아래와 같이 [20]을 추가해 주시면 됩니다.
#var1에 저장된 값이 0이고, 20개봉 동안 1번이나 2번조건이 3번조건보다 많이 발생한 종목을 검색
if var1[20] == 0 and (value1[20] > value3[20] or value2[20] > value3[20]) Then
find(1);
즐거운 하루되세요
> HI_bi****** 님이 쓴 글입니다.
> 제목 : 수식 질문입니다..
> 빠른 답변 덕분에 많이 알아가고 있어서 감사드립니다..
내일이 주말이라 기초 지식은 좀 있어야 공부가 쉬울거 같아 질문이 좀 많네요^^;;
질문 01) Force Index
당일 0봉기준 아래의 Condition과 봉조건에 맞는 종목 검색식을 만들고 싶은데...
잘 안되네요^^;;
input : P1(2),P2(15);
Variables: fval(0),fis(0),fil(0);
fval= ((Close - Close[1]) * Volume) ;
fis = Ema(fval, P1);
fil = Ema(fval, P2);
Condition1 = fis <= 0 and fil <= 0;
Condition2 = fis >= 0 and fil >= 0;
Condition3 = fis >= 0 and fil <= 0;
if ( ?if(Condition1(5) == true,3) == 0 잘모르겠네요^^;; ---- ) Then
find(1);
여기에서 당일종가 0봉을 기준으로
5봉전은 Condition1에 만족,
4봉전은 Condition3에 만족,
3봉전은 Condition1에 만족,
2봉전은 Condition2에 만족,
1봉전은 Condition2에 만족,
0봉전은 Condition2에 만족하는 검색식을 만들고 싶습니다.
그리고 이 검색식을 테스트하기 위하여
당일 0봉을 기준으로하는 검색이 아닌
20봉 전을 기준으로 검색하고도 싶습니다.
fval (20)하면 될까요?
------------------
질문02)
어제 답변주신 수식중에서 화살표 부분의 의미가 궁금합니다.
input : P1(5),P2(20);
var : aa(0),bb(0),xx(0),cc(0),dd(0),yy(0),ee(0),ff(0),zz(0); # <----- '0'의 의미
var : gg(false),hh(false); # <----- 'false'의 의미
var : mav1(0),mav2(0); # <----- '0'의 의미
aa=(C[4] + C[3] + C[2])/3;
.
.
.
.
.
ff=(H[2] + L[1] + O[0])/3;
zz=(ff-ee);
mav1 = ma(c,P1);
mav2 = ma(C,P2);
gg = C[1] < O[0];
hh = O[0] < C[0];
if gg and hh and xx<0 and yy<0 and zz<0 Then
find(1); 에서
- gg(false),hh(false); 의미가 궁금합니다. false말고 ture를 사용하면 어떤 의미가 될까요?
- var에서 '0'의 의미가 알고 싶습니다.
- Variables: Fval(0),FvalFast(0),FvalSlow(0); 여기서 Fval은 무슨 뜻이 있나요?
- Input과 Inputs는 뭐가 다른가요?
- var 와 Variables는 다른 의미인가요?
(직접 설명을 달아주시니가 훨씬 이해가 빠른데...
아니면 도움말 어느부분을 공부하라고 해주셔요 상관없습니다.)
------------------
질문 03)
아래 수식에서 검색 기준봉이 0봉이 아닌 20봉전으로 검색하게하려면 뭘 바꿔야할까요?
그러니까 당일 기준 20봉전부터 22봉까지를 검색하고 싶습니다.
검색식의 결과를 알기 위해서입니다.
Inputs: ShortPeriod(5),LongPeriod(20);
Variables: Fval(0),FvalFast(0),FvalSlow(0);
Fval = ((Close - Close[1]) * Volume) ;
FvalFast = Ema(Fval, ShortPeriod);
FvalSlow = Ema(Fval, LongPeriod);
#동시 0이하이면 true 아니면 false
Condition1 = FvalFast <= 0 and FvalSlow <= 0;
#최근 3개봉에 동시 0이하인 경우가 없는 종목검색
if countif(Condition1 == true,3) == 0 Then
find(1);
----------------
질문 04)
검색식 안에 추가할 내용인데 적당할까요/
#전일 거래량
Condition7= 100000 < volumed( 1) And volumed (1) =< 999999999999
#전일 거래 대금 (대략)
Condition8= ( volumed(1 ) * opend(1 )) > 100000000
#주가범위
Condition9 = 3000 < closed And closed < 50000
-------------------
질문 05)
60봉중 최대거래량이 터진날을 기준수량으로하여
당일 거래량이 최대거래량 대비 30%이하로 줄어든 종목을 검색하는 수식 부탁드립니다.
-------------------
질문 06)
마지막 질문입니다.
3번 수식에서 이어지는 질문인데요...
Condition1 = FvalFast >= 0 and FvalSlow >= 0;
Condition2 = FvalFast <= 0 and FvalSlow >= 0;
Condition3 = FvalFast >= 0 and FvalSlow <= 0;
Condition4 = FvalFast <= 0 and FvalSlow <= 0;
3번수식에 만족한 결과내 검색을 한번 더 하는데...
만약 20봉을 검색하는데...
Condition3이 발생한 횟수보다
Condition1이나 2가 발생한 횟수가 더 많은 종목을 검색할 수 있을까요?
말도 안되는 질문이면 패스하셔도 상관없습니다.^^*
감사합니다^^*
이전글