예스스탁
예스스탁 답변
2022-04-11 15:56:37
안녕하세요
예스스탁입니다.
1
input : n(7),기간(250),비율(9),signal(50);
input : DIP(14),rsip(10),sto1(10),sto2(5),disp(50),P1(10),P2(20);
input : N1(50),N2(7),X(1);
var : v1(0),v2(0),v3(0),v4(0),v5(0),v6(0);
var : T(0),S(0),cond1(False),cond2(False),condAll(False);
#기준선
var1 = Lowest(L,기간)[n];
var11 = highest(H,기간)[n];
Var2 = Ema(var1,signal);
Var21 = Ema(var2,signal);
Var3 = Var2*(1+비율/100)*(1+비율/100);
Var31 = Var21*(1-비율/100)*(1-비율/100);
#특정조건에 사용되는 지표
v1 = DiMinus(DIP);
v2 = rsi(RSIP);
v3 = StochasticsK(sto1,sto2);
v4 = Disparity(disp);
v5 = Ema(C,P1);
v6 = Ema(C,P2);
#특정조건변수
Condition1 = v1 >= 50;
Condition2 = v2 <= 60;
Condition3 = v3 <= 60;
Condition4 = abs(v4-100) < 5;
Condition5 = v5 > v6;
#특정조건1
cond1 = Condition1 and Condition2 and Condition3 and Condition4 and Condition5;
#특정조건2
cond2 = iff(Condition1,1,0)+iff(Condition2,1,0)+IFf(Condition3,1,0) == 2;
#통합특정조건
condAll = cond1 and Cond2;
#기준선 상향돌파
if CrossUp(h,var11) or CrossUp(h,Var21) Then
{
#T는 1
T = 1;
#인덱스 저장
value1 = Index;
#카운트 변수는 0으로 초기화
Value2 = 0;
}
Else
{
#기준선도파 후 N1(50)봉 이내
if Index > value1 and Index < value1+N1 Then
{
#7봉이내에 하향이탈
if T == 1 and Index <= value1+N2 and
(CrossDown(L,var11) or CrossDown(l,Var21)) Then
{
#T는 2
T = 2;
}
#T가 2이 된 이후
#특정조건1이나 특정조건2가 전봉에서는 조건이 만족하지 않아다가 현재봉에서 만족(시작)하면 카운트
#아래와 같이 변경하면 조건만족종료를 의미합니다.
#T == 2 and condAll == False and condAll[1] == true
if T == 2 and condAll == true and condAll[1] == False Then
{
#카운트
Value2 = Value2+1;
#카운트가 X(1)번째인 종목 검색
if Value2 == X Then
Find(1);
}
}
}
2
input : n(7),기간(250),비율(9),signal(50);
input : DIP(14),rsip(10),sto1(10),sto2(5),disp(50),P1(10),P2(20);
input : N1(50),N2(7),X1(1),X2(1);
var : v1(0),v2(0),v3(0),v4(0),v5(0),v6(0);
var : T(0),S(0),cond1(False),cond2(False),condAll(False);
#기준선
var1 = Lowest(L,기간)[n];
var11 = highest(H,기간)[n];
Var2 = Ema(var1,signal);
Var21 = Ema(var2,signal);
Var3 = Var2*(1+비율/100)*(1+비율/100);
Var31 = Var21*(1-비율/100)*(1-비율/100);
#특정조건에 사용되는 지표
v1 = DiMinus(DIP);
v2 = rsi(RSIP);
v3 = StochasticsK(sto1,sto2);
v4 = Disparity(disp);
v5 = Ema(C,P1);
v6 = Ema(C,P2);
#특정조건변수
Condition1 = v1 >= 50;
Condition2 = v2 <= 60;
Condition3 = v3 <= 60;
Condition4 = abs(v4-100) < 5;
Condition5 = v5 > v6;
#특정조건1
cond1 = Condition1 and Condition2 and Condition3 and Condition4 and Condition5;
#특정조건2
cond2 = iff(Condition1,1,0)+iff(Condition2,1,0)+IFf(Condition3,1,0) == 2;
#통합특정조건
condAll = cond1 and Cond2;
#기준선 하향이탈
if CrossDown(L,var1) or CrossDown(L,Var2) Then
{
#T는 1
T = 1;
#인덱스 저장
value1 = Index;
#카운트 변수는 0으로 초기화
Value2 = 0;
}
Else
{
#기준선도파 후 N1(50)봉 이내
if Index > value1 and Index < value1+N1 Then
{
#7봉이내에 상향돌파
if T == 1 and Index <= value1+N2 and
(CrossUp(H,var1) or CrossUp(H,Var2)) Then
{
#T는 2
T = 2;
}
#T가 2이 된 이후
#특정조건1이나 특정조건2가 전봉에서는 조건이 만족하지 않다가 현재봉에서만족(시작)하면 카운트
#아래와 같이 변경하면 조건만족종료를 의미합니다.
#T == 2 and condAll == False and condAll[1] == true
if T == 2 and condAll == true and condAll[1] == False Then
{
#카운트
Value2 = Value2+1;
#카운트가 X1(1)번째인 종목 검색
if Value2 == X1 Then
Find(1);
}
if T == 2 and CrossUp(C,Var3) Then
{
#카운트
Value3 = Value3+1;
#카운트가 X2(1)번째인 종목 검색
if Value3 == X2 Then
Find(1);
}
}
}
3
input : n(7),기간(250),비율(9),signal(50);
input : DIP(14),rsip(10),sto1(10),sto2(5),disp(50),P1(10),P2(20);
input : N1(50),N2(7),X(1);
var : v1(0),v2(0),v3(0),v4(0),v5(0),v6(0);
var : T(0),S(0),cond1(False),cond2(False),condAll(False);
#기준선
var1 = Lowest(L,기간)[n];
var11 = highest(H,기간)[n];
Var2 = Ema(var1,signal);
Var21 = Ema(var2,signal);
Var3 = Var2*(1+비율/100)*(1+비율/100);
Var31 = Var21*(1-비율/100)*(1-비율/100);
#특정조건에 사용되는 지표
v1 = DiMinus(DIP);
v2 = rsi(RSIP);
v3 = StochasticsK(sto1,sto2);
v4 = Disparity(disp);
v5 = Ema(C,P1);
v6 = Ema(C,P2);
#특정조건변수
Condition1 = v1 >= 50;
Condition2 = v2 <= 60;
Condition3 = v3 <= 60;
Condition4 = abs(v4-100) < 5;
Condition5 = v5 > v6;
#특정조건1
cond1 = Condition1 and Condition2 and Condition3 and Condition4 and Condition5;
#특정조건2
cond2 = iff(Condition1,1,0)+iff(Condition2,1,0)+IFf(Condition3,1,0) == 2;
#통합특정조건
condAll = cond1 and Cond2;
#기준선 상향돌파
if CrossUp(C,var11) or CrossUp(C,Var21) Then
{
#T는 1
T = 1;
#돌파봉 종가
S = C;
#인덱스 저장
value1 = Index;
#카운트 변수는 0으로 초기화
Value2 = 0;
}
Else
{
#기준선도파 후 N1(50)봉 이내
if Index > value1 and Index < value1+N1 Then
{
#7봉이내에 상향돌파한 종목검색
if T == 1 and Index <= value1+N2 and
(CrossUp(C,S) or CrossUp(C,S)) Then
{
#T는 2
T = 2;
#검색
Find(1);
}
#7봉이내 상향돌파를 하지 않았으면
#T가 1이 된 이후
#condAll이 전봉에서는 조건이 만족하지 않다가 현재봉에서만족(시작)하면 카운트
#아래와 같이 변경하면 조건만족종료를 의미합니다.
#T == 1 and condAll == False and condAll[1] == true
if T == 1 and condAll == true and condAll[1] == False Then
{
#카운트
Value2 = Value2+1;
}
#T는 1이고 조건만족횟수는 1이상이고 S를 상향돌파
if T == 1 and Value2 >= X and CrossUp(C,S) Then
{
T = 2;
Find(1);
}
}
}
즐거운 하루되세요
> downlord 님이 쓴 글입니다.
> 제목 : 종목검색식 작성문의드립니다..
> 종목검색3가지 부탁드립니다..
수고하세요. 감사합니다.
종목검색1
( 기준선1-1 또는 기준선2-1 )를 고가(H)가 상향돌파 후 0봉~7봉이내 하향이탈 한 종목이
이후 언제가 되었든' 첫번째/두번째/세번째 '특정조건1 또는 2'를 (충족할 시 또는 충족했다가 조건이 해제될 시) 종목검색
(질문1: 언제가 되었든이 N봉 기간이 어디까지 설정이 가능한지 궁금합니다. 예) N봉전돌파후이탈 1봉전 첫번째 조건달성)
종목검색2
( 기준선1 또는 기준선2 )를 저가(L)가 하향돌파 후 0봉~7봉이내 상향돌파 한 종목이
이후 언제가 되었든' 첫번째/두번째/세번째 '특정조건1 또는 2'를 (충족할 시 또는 충족했다가 조건이 해제될 시) ""또는 '언제가 되었든' 처음으로 '기준선3'을 종가로 돌파할 시 종목검색""
종목검색3
( 기준선1-1 또는 기준선2-1 )를 {종가(C)가 상향돌파 후 0봉~7봉 이내에 상향돌파한 봉의 종가를 '재'상향돌파 할때} 또는 {
이후 '언제가 되었든' '특정조건1 또는 2'를 한번이라도 만족한 후에 상향돌파했던 봉의 종가를 '재'상향돌파 할때 종목검색
-----------------------------------------------------
특정조건변수:
1. di- 값 50이상
2. rsi 값 60이하
3. 스토캐스틱 슬로우 값 60이하
4. 주가가 이동평균선(단순) 50선 5% 이격도로 근처일 때
5. 이동평균선(지수) 10선이 이동평균선(지수)20선을 상향돌파 할때
특정조건1.
1/2/3/4/5 번이 모두 충족할 시 특정조건1
특정조건2.
1/2/3 중 두가지만 충족할 시 특정조건2
예) 1/2 충족 또는 2/3충족 또는 1/3충족
-----------------------------------------------------
규칙1. 특정조건1과 2는 카운트를 같이 한다.
예) 조건2 달성 후 조건1 달성 시 두번째 카운트 완료
규칙2. 특정조건(1과1 또는 1과2 또는 2과2) 는 서로 붙어있다면 카운트를 1개로 적용한다.
예) (첫번째/두번째/세번째 특정조건은 서로 붙지 않아야 카운트가 증가한다.)
39봉전 (기준선1-1 또는 기준선2-1) 을 고가가 상향돌파 후 종가는 바로 하향이탈 (0봉전 상향돌파 후 0봉전 하향돌파) = 기준선 조건충족
...
..
.
5봉전 조건2 달성 = 첫번째 카운트1 도중 = 첫번째 특정조건 충족할 시에 속하므로 종목검색O
4봉전 조건달성안함 = 5봉전 카운트1 완료 = 첫번째 특정조건 충족했다가 조건이 해제될 시 에 속하므로 종목검색O
3봉전 조건달성안함 = 검색X 둘다 속하지 않음
2봉전 조건1 달성 = 두번째 카운트2 도중 = 두번째 특정조건 충족할 시에 속하므로 종목검색O
1봉전 조건2 달성 또는 조건1 달성 = 두번째 카운트2 도중 = 두번째 특정조건 충족할 시에 속하므로 종목검색O
0봉전 조건달성안함 = 1봉전/2봉전 조건이 서로 붙어 있으므로 카운트1개로 간주함. 카운트완료2 = 두번째 특정조건 충족했다가 조건이 해제될 시에 속하므로 종목검색O
-----------------------------------------------------
기준선1: '기간'의 최저가 라인값
영웅문 수식예시:
Lowest(L(n), 기간)
기준선1-1: '기간'의 최고가 라인값
영웅문 수식예시:
Highest(H(n), 기간)
기준선2: 기준선1을 시그널 수치만큼 지수이동시킨 값
영웅문 수식예시:
LL=Lowest(L(n), 기간);
eavg(LL, signal)
기준선2-1: 기준선1-1을 시그널 수치만큼 지수이동시킨 값
영웅문 수식예시:
HH=Highest(H(n), 기간);
eavg(HH, signal)
기준선3: 기준선2를 9% 곱하기 2 증가시킨 값
영웅문 수식예시:
eavg(LL, signal)*(1+비율/100)*(1+비율/100)
기준선3-1: 기준선2-1를 9% 곱하기 2 감소시킨 값
영웅문 수식예시:
eavg(HH, signal)*(1-비율/100)*(1-비율/100)
수치:
n=7
기간=250
비율=9
signal=50