예스스탁
예스스탁 답변
2022-04-12 11:42:01
안녕하세요
예스스탁입니다.
예스랭귀지에서 ema가 지수이평함수입니다. 단순이평은 ma, 가중이평은 wma입니다.
동시만족이 아니면 or로 바꾸시면 됩니다.
현재 수식이 condAll조건을 묶음으로 판단하고 있습니다.
현재 X번째 만족중인 종목을 검색하게 변경해 드립니다.
시작시간과 종료시점은 기존과 같이 변경하시면 됩니다.
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 or 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 or 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);
}
}
즐거운 하루되세요
> downlord 님이 쓴 글입니다.
> 제목 : 76716번 재문의드립니다.
> 76716번 재문의드립니다.
검색식 만들어 주신 부분 진심으로 감사드립니다.
그런데 몇가지부분이 잘 안되거나 이해가 안되어 송구하지만 재질문을 드려봅니다..
변수질문.
v5, v6 이 이동평균선 종류의 지수가 맞나요?
특정조건변수5를 v5, v6변수를 이동평균선 (종류:단순)으로 수정하고 (골든크로스 또는 2%근접) 으로 변경하고 싶습니다.
v5 = Ema(C,P1);
v6 = Ema(C,P2);
Condition5 = v5 > v6;
1번.
고점상향돌파 후 하향이탈 (검색 잘되는거같습니다.)
조건 1 또는 2 충족하는 봉들을 이어져있다면 (or로 처리되야 할까요?)
(condAll = cond1 and Cond2;)
조건 1 과 2 둘 중 하나만 충족한다 하더라도 카운트는 이어집니다.
첫번째/두번째/세번째= 라는 것은 고점돌파+고점이탈 조건이 성립한 이후 '첫번째로/두번째로/세번째로 조건1 또는 2가 만족한다는 뜻'입니다.
카운트=(조건1 또는 조건2 로 이어져 있는 '묶음N봉'들입니다.(1개일수도있습니다.)
카운트가 봉1개를 말하는 것이 아니라
'조건이 충족되었을때부터 조건이 해제되었을때까지' 의 이어진 묶음 봉들을 카운트로 판단합니다.
검색1-1. 카운트 시작 or 도중 검색식
검색1-2. 카운트 완료 검색식
3가지 조건으로 2개의 검색식이 만들어지면 좋습니다..(완료시에는 완료된 봉 다음봉부턴 검색X)
카운트도 5정도까지 늘릴 수 있다면 좋을 것 같습니다.
2번.
저점하향이탈 후 1번과 같은 방법으로 부탁드리겠습니다.
검색 2-1. 저점하향이탈 후 상향돌파 후 조건1또는2 첫번째/두번째/세번째 (시작또는도중) 검색식
검색 2-2. 저점하향이탈 후 상향돌파 후 조건1또는2 첫번째/두번째/세번째 (완료) "또는" 기준선3 상향돌파 시 검색식
3번. 기존의 검색식은 유지하고 '시가'만 추가하고싶습니다.
( 기준선1-1 또는 기준선2-1 )를 {종가(C)또는 "시가")가 상향돌파 후 0봉~7봉 이내에 (기준선1-1 또는 기준선2-1)를 (종가 또는 시가 )가 '재'상향돌파 할때} 또는 {
하향이탈 이후 '언제가 되었든' '특정조건1 또는 2'를 한번이라도 만족한 후에 상향돌파했던 봉의 종가를 (종가 또는 시가 )가 '재'상향돌파 할때 종목검색
예시)
---------------------------------------------------------------------------------
40봉전 고점돌파.. 고점돌파 조건성립 T=1
39봉전 고점이탈.. 고점이탈 조건성립 T=2
...
..
25봉전 조건1 충족 = 카운트1 시작 (카운트1 시작 으로 검색되게 해주세요.)
24봉전 조건2 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
23봉전 조건1 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
22봉전 조건1 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
21봉전 조건2 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
>>25봉전~21봉전을 묶어서 첫번째 카운트1 ( T=2 이후 처음으로 만족한 묶음)으로 판단합니다.
20봉전 조건1과2 둘다 충족X = 카운트1 완료 (20봉/19봉/18봉전 중 20봉에서만 카운트1완료로 검색이 되게 해주세요.)
19봉전 조건1과2 둘다 충족X = (카운트1 완료된 다음봉부터는 검색이 되지 않게 해주세요.)
18봉전 조건1과2 둘다 충족X = (카운트1 완료된 다음봉부터는 검색이 되지 않게 해주세요.)
17봉전 조건2 충족 = 카운트2 시작 (카운트2 시작 으로 검색되게 해주세요.)
16봉전 조건1 충족 = 카운트2 도중 (카운트2 도중 으로 검색되게 해주세요.)
15봉전 조건1과2 둘다 충족X = 카운트2 완료 (17봉/16봉/15봉전 중 15봉에서만 카운트2완료로 검색이 되게 해주세요.)
>> 17봉전~15봉전을 묶어서 두번째 카운트2 ( T=2 이후 두번째로 만족한 묶음)로 판단합니다.
14봉전 조건2 충족 = 카운트3 시작 (카운트3 시작 으로 검색되게 해주세요.)
13봉전 조건1과2 둘다 충족X = 카운트3 완료 (14/13봉전 중 13봉에서만 카운트3완료로 검색이 되게 해주세요.)
>>14봉전 봉 1개를 세번째 카운트3 ( T=2 이후 세번째로 만족한 묶음)로 판단합니다.
---------------------------------------------------------------------------------
downlord
2022-04-12 12:44:41
제가 잘 이해를 못하는 것 같은데요..
4가지 경우가 있는데
질문1.
경우1일때 도중일때도 검색이 되는건가요?
질문2.
4번의 경우 검색이 안되는게 맞나요? 카운트 완료가 된 후 시간이 지난 종목도 검색이 되는 듯해서 여쭤봅니다.
질문3. 카운트 첫번째( X=1 ) 경우도 검색하고
두번째 (Y=2 ?) 세번째 (Z=3 ?) 묶음도 검색되게 부탁드려요
질문4. X=1 첫번째 묶음만 검색되는게 아니라 4번째 5번째 묶음도 검색이 되네요..
경우1 경우2 경우3 경우4
전봉 만족 만족 불만족 불만족
지금봉 만족 불만족 만족 불만족
카운트 도중 완료 시작 X
검색 O O O X
#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);
}
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 76716번 재문의드립니다.
>
안녕하세요
예스스탁입니다.
예스랭귀지에서 ema가 지수이평함수입니다. 단순이평은 ma, 가중이평은 wma입니다.
동시만족이 아니면 or로 바꾸시면 됩니다.
현재 수식이 condAll조건을 묶음으로 판단하고 있습니다.
현재 X번째 만족중인 종목을 검색하게 변경해 드립니다.
시작시간과 종료시점은 기존과 같이 변경하시면 됩니다.
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 or 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 or 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);
}
}
즐거운 하루되세요
> downlord 님이 쓴 글입니다.
> 제목 : 76716번 재문의드립니다.
> 76716번 재문의드립니다.
검색식 만들어 주신 부분 진심으로 감사드립니다.
그런데 몇가지부분이 잘 안되거나 이해가 안되어 송구하지만 재질문을 드려봅니다..
변수질문.
v5, v6 이 이동평균선 종류의 지수가 맞나요?
특정조건변수5를 v5, v6변수를 이동평균선 (종류:단순)으로 수정하고 (골든크로스 또는 2%근접) 으로 변경하고 싶습니다.
v5 = Ema(C,P1);
v6 = Ema(C,P2);
Condition5 = v5 > v6;
1번.
고점상향돌파 후 하향이탈 (검색 잘되는거같습니다.)
조건 1 또는 2 충족하는 봉들을 이어져있다면 (or로 처리되야 할까요?)
(condAll = cond1 and Cond2;)
조건 1 과 2 둘 중 하나만 충족한다 하더라도 카운트는 이어집니다.
첫번째/두번째/세번째= 라는 것은 고점돌파+고점이탈 조건이 성립한 이후 '첫번째로/두번째로/세번째로 조건1 또는 2가 만족한다는 뜻'입니다.
카운트=(조건1 또는 조건2 로 이어져 있는 '묶음N봉'들입니다.(1개일수도있습니다.)
카운트가 봉1개를 말하는 것이 아니라
'조건이 충족되었을때부터 조건이 해제되었을때까지' 의 이어진 묶음 봉들을 카운트로 판단합니다.
검색1-1. 카운트 시작 or 도중 검색식
검색1-2. 카운트 완료 검색식
3가지 조건으로 2개의 검색식이 만들어지면 좋습니다..(완료시에는 완료된 봉 다음봉부턴 검색X)
카운트도 5정도까지 늘릴 수 있다면 좋을 것 같습니다.
2번.
저점하향이탈 후 1번과 같은 방법으로 부탁드리겠습니다.
검색 2-1. 저점하향이탈 후 상향돌파 후 조건1또는2 첫번째/두번째/세번째 (시작또는도중) 검색식
검색 2-2. 저점하향이탈 후 상향돌파 후 조건1또는2 첫번째/두번째/세번째 (완료) "또는" 기준선3 상향돌파 시 검색식
3번. 기존의 검색식은 유지하고 '시가'만 추가하고싶습니다.
( 기준선1-1 또는 기준선2-1 )를 {종가(C)또는 "시가")가 상향돌파 후 0봉~7봉 이내에 (기준선1-1 또는 기준선2-1)를 (종가 또는 시가 )가 '재'상향돌파 할때} 또는 {
하향이탈 이후 '언제가 되었든' '특정조건1 또는 2'를 한번이라도 만족한 후에 상향돌파했던 봉의 종가를 (종가 또는 시가 )가 '재'상향돌파 할때 종목검색
예시)
---------------------------------------------------------------------------------
40봉전 고점돌파.. 고점돌파 조건성립 T=1
39봉전 고점이탈.. 고점이탈 조건성립 T=2
...
..
25봉전 조건1 충족 = 카운트1 시작 (카운트1 시작 으로 검색되게 해주세요.)
24봉전 조건2 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
23봉전 조건1 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
22봉전 조건1 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
21봉전 조건2 충족 = 카운트1 도중 (카운트1 도중 으로 검색되게 해주세요.)
>>25봉전~21봉전을 묶어서 첫번째 카운트1 ( T=2 이후 처음으로 만족한 묶음)으로 판단합니다.
20봉전 조건1과2 둘다 충족X = 카운트1 완료 (20봉/19봉/18봉전 중 20봉에서만 카운트1완료로 검색이 되게 해주세요.)
19봉전 조건1과2 둘다 충족X = (카운트1 완료된 다음봉부터는 검색이 되지 않게 해주세요.)
18봉전 조건1과2 둘다 충족X = (카운트1 완료된 다음봉부터는 검색이 되지 않게 해주세요.)
17봉전 조건2 충족 = 카운트2 시작 (카운트2 시작 으로 검색되게 해주세요.)
16봉전 조건1 충족 = 카운트2 도중 (카운트2 도중 으로 검색되게 해주세요.)
15봉전 조건1과2 둘다 충족X = 카운트2 완료 (17봉/16봉/15봉전 중 15봉에서만 카운트2완료로 검색이 되게 해주세요.)
>> 17봉전~15봉전을 묶어서 두번째 카운트2 ( T=2 이후 두번째로 만족한 묶음)로 판단합니다.
14봉전 조건2 충족 = 카운트3 시작 (카운트3 시작 으로 검색되게 해주세요.)
13봉전 조건1과2 둘다 충족X = 카운트3 완료 (14/13봉전 중 13봉에서만 카운트3완료로 검색이 되게 해주세요.)
>>14봉전 봉 1개를 세번째 카운트3 ( T=2 이후 세번째로 만족한 묶음)로 판단합니다.
---------------------------------------------------------------------------------