커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3396
글번호 230811
답변완료
문의드립니다
안녕하세요?
추세선에 관하여 2가지질문을 드리고싶습니다 .
수식에 지식이 적은 사람이오니 양해해주시기를 미리 당부드립니다.
감사합니다
1. 추세선이 몇번이고 변하다가 고점또는저점이 확인되어 고정추세선이 생기기까지는 일정봉갯수 이후이다
란걸 몇차례 여러분들에 대한 답변의 글을읽고 알게되었습니다 그렇다면 사진의 예처럼 확정된 추세선이 생기기전까지 몇차례고 갱신되며 예비추세선이 생겼던 흔적을 그봉에 1.2.3~숫자로써지게 된다면 가장좋고 그게안된다면? 점이나 또는 어떠한형식이든
표현할수있는 방법이있는지 궁금합니다
2.사진에서보면 현재봉의 전전봉에 가격의 차후변화에 따라 추세선의 모양이 어떻게 변할지? 모르지만, 예비추세선이 일단 만들어져서 눈으로 볼수있습니다
그렇다면 저렇게 예비추세선을 계산하여 만들어 보여주고있는 근거는
아래수식에서 어느부분인지 궁금합니다 ,혹시 plot1 ,plot2 가 아닌가? 생각되는데
만약 맞다면 plot1,plot2는 일정봉수이후 확인추세선이 생기기전(예비추세선포함)까지 계속 챠트에 형현되게 하여주는 기능을 하는것인가요?
항상 도움주심에 감사드립니다
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Highest(H,length) == H and lastHiVal <> H;
Condition2 = Lowest(L,length) == L and lastLoVal <> L;
If Condition1 Then lastHiVal = H;
If Condition2 Then lastLoVal = L;
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],
sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,4);
TL_SetColor(TL1,YELLOW);
Plot1(Highest(H,length));
Plot2(Lowest(L,length));
2020-04-27
1130
글번호 138364
답변완료
수식수정부탁드립니다
input :N1(1),카운팅시작일자(20200417), 카운팅시작시간(070000);
input : n(13),x(8);
var : Tcond(false),T(0),상승량(0), 하락량(0), 이평선(0), 상승(0), 하락(0),cnt(0);
Array : V1[10](0),V2[10](0);
var : idx(0),hh(0),ll(0),dd(0),tt(0);
var : tl1(0),tl2(0),tl3(0),tl4(0);
if sdate >= 카운팅시작일자 and stime >= 카운팅시작시간 Then
Tcond = true;
if Tcond == true Then
{
if (sdate != sdate[1] and stime >= 카운팅시작시간) or
(sdate == sdate[1] and stime >= 카운팅시작시간 and stime[1] < 카운팅시작시간) Then
{
var1 = 0;
var2 = 0;
상승량 = 0;
하락량 = 0;
}
Condition1 = 상승량+V >상승량+V[1];
for cnt = 0 to N1-1{
IF O[cnt] < C[cnt] Then {
IF H[cnt]-C[cnt] >=0.15 AND
H[cnt]-C[cnt] > Abs(O[cnt]-C[cnt]) AND
H[cnt]-C[cnt] >= O[cnt]-L[cnt]
Then
하락량 = V[cnt];
ELse
상승량 = V[cnt];
}
ELse IF O[cnt] > C[cnt] Then {
IF C[cnt]-L[cnt] >=0.15 AND
C[cnt]-L[cnt] > Abs(O[cnt]-C[cnt]) AND
C[cnt]-L[cnt] >= H[cnt]-O[cnt]
Then
상승량 = V[cnt];
ELse
하락량 = V[cnt];
}
ELse {
IF H[cnt]-C[cnt] < C[cnt]-L[cnt] Then
상승량 = V[cnt];
ELse IF H[cnt]-C[cnt] > C[cnt]-L[cnt] Then
하락량 = V[cnt];
ELse{
하락량 = V[cnt];
상승량 = V[cnt];
}
}
if dayindex >= 0 Then{
if C > O or (C == O and C >= C[1]) Then
value1 =상승량;
Else
value1 = 하락량;
value13=상승량-하락량;
if value13 > value13[1] Then
T = 1;
if value13 < value13[1] Then
T = -1;
var21 = highest(H,n);
var22 = lowest(L,n);
Condition21 = C <= var21[1] and C >= var22[1];
if Condition21 == true and Condition21[1] == false Then
{
idx = 0;
hh = c;
ll = c;
dd = sdate;
tt = stime;
}
if Condition21 == true Then
{
idx = idx+1;
if c > hh Then
hh = c;
if c < ll Then
ll = c;
if idx == x Then
{
tl1 = TL_New(dd,tt,hh,dd,tt,ll);
tl2 = TL_New(dd,tt,hh,sdate,stime,hh);
tl3 = TL_New(dd,tt,ll,sdate,stime,ll);
tl4 = TL_New(sdate,stime,hh,sdate,stime,ll);
}
if idx > x Then
{
TL_SetBegin(tl1,dd,tt,hh);
TL_SetEnd(tl1,dd,tt,ll);
TL_SetBegin(tl2,dd,tt,hh);
TL_SetEnd(tl2,sdate,stime,hh);
TL_SetBegin(tl3,dd,tt,ll);
TL_SetEnd(tl3,sdate,stime,ll);
TL_SetBegin(tl4,sdate,stime,hh);
TL_SetEnd(tl4,sdate,stime,ll);
value21 = HH;
value22 = LL;
}
}
If hh <= C Then
{
TL_SetColor(TL1,WHITE);
TL_SetColor(TL2,WHITE);
TL_SetColor(TL3,WHITE);
TL_SetColor(TL4,WHITE);
}
Else
{
TL_SetColor(TL1,WHITE);
TL_SetColor(TL2,WHITE);
TL_SetColor(TL3,WHITE);
TL_SetColor(TL4,WHITE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,1); //상단가로선 굵기
TL_SetSize(TL3,1); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
if Condition1[1]==true and T == 1 and Condition1[1]==True and crossup(value13,0) or crossup(C,value21) Then
buy();
if Condition1[1]==true and T == -1and Condition1[1]==True and crossdown(value13,0)or CrossDown(C,value22) Then
sell();
}}}
상기 수식을 실행하니 buy,sell 조건에 상이하게 표현됩니다
수식검토 부탁드립니다
2020-04-27
923
글번호 138363
답변완료
문의 드립니다.
안녕하세요
항상 빠른 답변 감사드립니다.
시스템 관련 공부를 하다 보니 사용자가 많은 영웅문 관련식 중에
괜찮은게 있어 예스식으로 차용해 보려고 하는데 어렵네요.
1. 지표식
수식1
캔들=if(v>1.5*평균(V,20) and c>o, (c+o)/2, valuewhen(1,v>1.5*평균(V,20) and c>o,(c+o)/2))
수식2
캔들=if(v>1.5*평균(V,20), (c+o)/2, valuewhen(1,v>1.5*평균(V,20), (c+o)/2));
지수평균(캔들, 기간)
2 검색식
A 시가총액:현재가기준 1000십억원 이하
B [일]0봉전 10봉 평균거래량 100000이상 999999999이하
C 신고가:[일]0봉전 고가가 59봉중 신고가에 -10%이내 근접
D [일]0봉전 Bollinger Band(52,1.8) 종가가 상한선이상
E 주가등락률:[일]1봉전(중) 종가대비 0봉전 종가등락률 6%이상
F 주가비교:[일]0봉전 종가 > 0봉전 (고가+저가)/2
G 기간내 등락률:[일]1봉전 1봉이내에서 전일종가대비종가 12% 이하
H 전일동시간대 대비 거래량비율 100%이상
I [일]거래대금(일:백만, 분:천) 5000이상 100000000이하
A and B and C and D and E and F and G and H and I
3. 검색식_혹 분봉에서 검색해야 한다면 N일 검색이 가능하게 요청드립니다.
A 시가총액:현재가기준 500십억원 이하
B [일]0봉전 10봉 평균거래량 100000이상 999999999이하
C 가격-이동평균 비교:[일]0봉전 (종가 60)이평 < 종가
D 이평이격도:[5분]0봉전(종가 90, 종가 120) 1%이내 근접 1회이상
E [5분]0봉전 Bollinger Band(80,2) 종가가 상한선이상
F 기간내 등락률:[일]0봉전 25봉이내에서 종가대비고가 15% 이상
G 이평이격도:[5분]0봉전(종가 20, 종가 120) 2%이내 근접 1회이상
A and B and C and D and E and F and G
주말동안 공부하다 보니 질문량이 많아 조심스럽습니다.
그럼 좋은 하루 되세요^^
2020-04-27
1276
글번호 138362
답변완료
수식 부탁드려요~~
쿠르드오일 분봉기준입니다.
매수진입 조건
1. DMI(14) DI+ > DI- 구간
2. 5분봉 이평 위에 있는 봉
3. ADX(14) 우상향
4. envelope(5) 저항선 0.5% 초과 상태 > EnvelopeC(4,0.5)
(4번 조건은 빈번한 신호안뜬게 하기위함)
1. 2. 3, 4 조건의 교집합시 매수 진입
매수 청산
종가가 5분봉 평균이동평균 하향 이탈시 청산
-----------------------------------------------------------------------------
매도 진입 조건
1. DMI(14) DI+ < DI- 구간
2. 5분봉 이평 아래 있는 봉
3. ADX(14) 우상향
4. envelope(5) 지지선 0.5% 하향 상태 > EnvelopeC(4,0.5)
(4번 조건은 빈번한 신호안뜬게 하기위함)
1. 2. 3, 4 조건의 교집합시 매도 진입
매도 청산
종가가 5분봉 평균이동평균 상향 돌파시 청산
2020-04-25
829
글번호 138361
답변완료
시스템 수식전환 부탁
<지표수식>
IFF(기준선_매수1단계 == 2, RED,
IFF(기준선_매수1단계 == 1, RGB(255,200,200),
IFF(기준선_1분_매도1단계 == -2, BLUE,
IFF(기준선_1분_매도1단계 == -1, RGB(130,165,255),
GRAY)))), DEF,5);
일목균형표에서 기준선을 위와 같이 표현되도록 정했을 때 아래의 경우의 시스템수식 부탁드려요.
<1>매수1단계 RED 발생시 매수진입, 매수1단계 RGB(255,200,200) 발생시 매도진입
<2>매도1단계 BLUE 발생시 매도진입, RGB(130,165,255) 발생시 매수진입
<3>매도1단계 BLUE 발생 -> 매도1단계 RGB(130,165,255) ->매수1단계 red 3개가 연달아 발생시 매수진입
매수1단계 RED 발생 -> 매수1단계 RGB(255,200,200) 발생->매도1단계 blue
3개가 연달아 발생시 매도진입
<4>위 <1>조건을 1분봉/5분봉/10분봉/30분봉 기준 동일하게 만족할 때 시스템 수식
<5>위 <2>조건을 1분봉/5분봉/10분봉/30분봉 기준 동일하게 만족할 때 시스템 수식
.<6>위 <3>조건을 1분봉/5분봉/10분봉/30분봉 기준 동일하게 만족할 때 시스템 수식
다음과 같이 전환선을 지표수식으로 표현되도록 하였을때
IFF(전환선 <기준선, GREEN, LGREEN),DEF,5);
<7>전환선이 GREEN이 발생하면 매수진입, LGREEN이 발생하면 매도진입
<8>최근 100봉이내에서 최고점과 최저점을 찾은후에 최고점과 최저점을 기준으로 피보나치 수열이 자동으로 구현되게 하는 지표수식부탁요
(피보니치 기본수열 0/25/38.2/50/61.8/75/100/125/150/200
<9>위 <8>을 변형하여 최고점과 최저점을 자기가 직접 입력했을때 피보나치 수열 자동구현하는 수식지표
2020-04-26
1049
글번호 138360
답변완료
신호설정 검색식 부탁드리겠습니다.
- 수식 -
S=sum(1);
M=ma(C,기간);
MH=valuewhen(1,M>M(1), M);
HH=HighestSince(1, crossup(S, 전체봉수-표시봉수), MH);
CrossUP(C,HH) &&
HH=HH(1) && HH(1)==HH(2)
- 지표변수 -
전체봉수 600
기간 25
표시봉수 120
이 함수식의 신호설정 부탁드리겟습니다.
2020-04-25
1167
글번호 138359
답변완료
부탁드립니다
$,안녕하세요,관리자님 질문드립니다.
1,증권사HTS에 공시되어있는 기업정보에서 해당기업의 년간 최근데이타를 불러와서 추세선
으로 출력할수 있다면 아래와 같은가격을 Plot선으로 출력되게 도움 부탁드립니다.
Plot1,BPS(주당순자산)값을 좌우추세선그리기
Plot2,EPS(주당순이익)×10 값을 좌우추세선그리기
Plot3,ROE(%무시,소수점이하삭제)× EPS 값을 좌우추세선그리기
2,아래수식에서 TL11,TL12영역과TL21,TL22영역을 색채우기하려 합니다,외부변수처리해서
plot선으로 해야할까요? 도움부탁드립니다.
Input: 잉태(0),장악(0);
var : tl11(0),tl12(0);
var : tl21(0),tl22(0);
var : tl31(0),tl32(0);
var : tl41(0),tl42(0);
if c[1] < o[1] and c > o and
C >= O[1]+PriceScale*장악 and
O <= C[1]-PriceScale*장악 Then
{
var11 = index;
var12 = c;
var13 = o;
tl11 = TL_New(sdate,stime,var12,NextBarSdate,NextBarStime,var12);
tl12 = TL_New(sdate,stime,var13,NextBarSdate,NextBarStime,var13);
TL_SetColor(tl11,RED);
TL_SetColor(tl12,RED);
TL_Setsize(tl11,1);
TL_Setsize(tl12,1);
}
Else
{
if var11 > 0 and index < var11+5 Then
{
TL_SetEnd(tl11,NextBarSdate,NextBarStime,var12);
TL_SetEnd(tl12,NextBarSdate,NextBarStime,var13);
}
}
if c[1] < o[1] and c > o and
C <= O[1]-PriceScale*잉태 and
O >= C[1]+PriceScale*잉태 Then
{
var21 = index;
var22 = c[1];
var23 = o[1];
tl21 = TL_New(sdate[1],stime[1],var22,NextBarSdate,NextBarStime,var22);
tl22 = TL_New(sdate[1],stime[1],var23,NextBarSdate,NextBarStime,var23);
TL_SetColor(tl21,MAGENTA);
TL_SetColor(tl22,MAGENTA);
TL_Setsize(tl21,1);
TL_Setsize(tl22,1);
}
Else
{
if var21 > 0 and index < var21+5 Then
{
TL_SetEnd(tl21,NextBarSdate,NextBarStime,var22);
TL_SetEnd(tl22,NextBarSdate,NextBarStime,var23);
}
}
$$,고맙습니다.
2020-04-26
814
글번호 138358
2wnwn 님에 의해서 삭제되었습니다.
2020-04-27
11
글번호 138357
답변완료
부탁 드립니다.
도움에 감사 드립니다.
타주기(타분봉용) 지표가
1)일봉지표가
2)주봉지표가
3)월봉지표가 분봉에 나타 나도록 부탁 드립니다.
input : Ntime1(60),p1(9),sig(5);
var : TF(0),S1(0),D1(0),TM(0),cnt(0),idx(0);
var : H1(0),L1(0),jh_line(0),sum(0),mav(0);
Array : HH[50](0),LL[50](0),diff[50](999999999);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
diff[cnt] = diff[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
if HH[p1-1] > 0 and LL[p1-1] > 0 then
{
H1 = HH[0];
L1 = LL[0];
for cnt = 0 to p1-1
{
if HH[cnt] > H1 Then
H1 = HH[cnt];
if LL[cnt] < L1 Then
L1 = LL[cnt];
}
jh_line = (H1 + L1)/2;
diff[0] = C-jh_line;
}
if diff[sig-1] < 999999999 Then
{
sum = 0;
for cnt = 0 to sig-1
{
sum = sum + diff[cnt];
}
mav = sum/sig;
}
}
2020-04-25
550
글번호 138356