커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1583
글번호 230811
답변완료
수식 부탁드려요!
30 거래량 가중 이동평균선이
10 종가단순이동평균선
위에 있는(역배열) 종목을 찾을 수 있는
검색식 좀 만들어주세요~
2025-03-25
384
글번호 189547
답변완료
수식부탁드립니다.
1.파라볼릭이 매수신호상태이고
dm+가 dm-를 상향돌파한 상태이고
adx가 전봉보다 크면 매수한다 식 좀 부탁드립니다.
2025-03-25
375
글번호 189546
답변완료
부탁드립니다
키움식 아래를
기준봉=C>C(1)*1.15;
cnt=Countsince(기준봉==1, 조건);
cnt==1 && cnt(1)==0
예스로 바꾸고 싶습니다, 부탁드립니다
2025-03-25
483
글번호 189545
답변완료
문의
안녕하세요.
국내선물 거래시 자동으로 아래와 같이 수평선이 생길 수 있는 수식 부탁드립니다.
그림과 같은 선의 굵기 행사가(2.5)기준으로 자동으로 생성될 수 있도록 부탁드리며
선 오른쪽 맨 끝에 수치 표시도 부탁드립니다. (수치표시가 마지막봉과 붙어 있지 않도록)
행사가는 진한검정색으로
안쪽에 선(점선포함)은 회색으로 부탁드립니다.
2025-03-25
449
글번호 189544
답변완료
문의
아래방식으로 저가갱신을 체크하는 방법은 시뮬레이션 때 시간이 많이 걸립니다.
시간을 좀 더 단축할 수 있는 수식이 있다면 요청 드립니다.
항상 고맙습니다.
*********************************************************************************
input : 저가갱신수2(5),저가갱신수3(7);
if MarketPosition == 0 and #현재 무포지션이고
EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고
MarketPosition(1) == -1 and #직전거래가 매도거래이고
countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수2 Then #청산이후 당일저가 갱신이 n회이상 있었으면
{
sell("s2");
}
if MarketPosition == 0 and #현재 무포지션이고
EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고
MarketPosition(1) == 1 and #직전거래가 매수거래이고
countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수3 Then #청산이후 당일저가 갱신이 n회이상 있었으면
{
sell("s3");
}
2025-03-25
440
글번호 189542
답변완료
질문드리겠습니다
죄송합니다만 지난번에 질문드릴때 "cc값이 10일 이상인경우" 는 별개로 여쭤봤었는데 답변 주실때 통합이 돼서 식이 더 복잡해 진거 같습니다
그러면 10일이상일 경우" 라는 조건은 빼고,,, cc 값을 ttl 에 넣어서,,,(cc[0] 은 ttl[0]
cc[1] 은 ttl[1] ...이런식으로..)
ttl[5] 까지 우측 연장 해주시면 감사합니다
번거롭게 죄송합니다
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0),cd[50](0);
if Bdate != Bdate[1] Then
DD = DD+1;
if h>l*1.07 Then
{
d1 = dd;
d2 = d1[1];
if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
# tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999);
# TL_SetSize(tl,0);
# TL_SetColor(tl,Black);
For cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
Var20=Money/100000000;
if Var20>30 Then
{
For cnt = 49 DownTo 1
{
cc[cnt]= cc[cnt-1];
cd[cnt]= cd[cnt-1];
}
cc[0]=value1*0.9;
cd[0]=dd;
For cnt = 9 DownTo 1
{
ttl[cnt] =ttl[cnt-1];
}
2025-03-25
430
글번호 189538
답변완료
수식의뢰 드립니다.
안녕하세요!
아래는 자동 행사가가 표시되는 수식입니다.
2.5 간격의 3가격 행사가와 행사가격 사이마다 자동으로 1.25의 중간값 선들처럼
이 같은 조건으로 쿠르드오일, S&P500, 항생 상품도 변경되어 자동 표시되게 끔 수식 수정을 요청 드립니다.
감사합니다.
var : pv(0),r1(0),s1(0);
var1 = Floor(c/2.5);
var2 = var1*2.5;
var3 = c-var2;
if var3 >= 1.25 Then
pv = var2+2.5;
Else
pv = var2;
r1 = pv+2.5;
s1 = pv-2.5;
plot1(pv);
plot2(r1);
plot3(s1);
2025-03-25
576
글번호 189536
답변완료
질문드리겠습니다
지난 답변 감사드립니다
알려주신 식에서 ttl 추세선이 cc[] 값과 1:1 대응하게 되나요?
cc[0] 이 ttl[0] 값과 같고, cc[1] 이 ttl[1] ... 이런식으로 대응하는건지
아니면 cc값이 이어질때 조건만족봉이 3번 나온다면 cc[0] 값이 ttl[0], ttl[1],ttl[2] 로 나눠져서 대응되는건지 궁금합니다
추세선으로 변환시킨 이유가 ,,, 지난 추세선 (즉 지난 cc값들) 을 우측연장시켜서 최근 봉들과 조금더 시각적으로 직관적으로 비교해서 보려는 취지인데요,,
ttl 을 우측연장해서 cc[5] 번에 해당하는 ttl 까지만 표시되게 해주실 수 있을까요
감사합니다
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0),cd[50](0);
if Bdate != Bdate[1] Then
DD = DD+1;
if h>l*1.07 Then
{
d1 = dd;
d2 = d1[1];
if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
# tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999);
# TL_SetSize(tl,0);
# TL_SetColor(tl,Black);
For cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
Var20=Money/100000000;
if Var20>30 Then
{
For cnt = 49 DownTo 1
{
cc[cnt]= cc[cnt-1];
cd[cnt]= cd[cnt-1];
}
cc[0]=value1*0.9;
cd[0]=dd;
For cnt = 9 DownTo 1
{
ttl[cnt] =ttl[cnt-1];
}
Condition1 = False;
if CC[1] == 0 or (CC[1] > 0 and CD[0] >= CD[1]+10) Then
{
Condition1 = true;
ttl[0]=tl_new(sDate,sTime,cc[0],NextBarSdate,NextBarStime,CC[0]);
}
}
}
}
Else
{
if Condition1 == true Then
TL_SetEnd(ttl[0],sDate,sTime,CC[0]);
}
if Condition1 == true Then
Plot1(cc[0],"hma",DarkRed,Def,1);
Else
NoPlot(1);
2025-03-25
517
글번호 189525
답변완료
수식 문의드립니다.
아래식 A와 B가 데드크로스 나는 수식 문의드립니다.
기준선 A 수식입니다
input : Period(120);
var : VWAP(0);
VWAP = ma((h+l+c)/3 * volume, Period) / ma(volume, Period);
Plot1(VWAP);
---------------------------
다음은 b식입니다.
Input:상승률(1),하락률(1);
Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#==========================================#
# 이중파동 처리
#==========================================#
If 이중파동 > 0 Then
{
Plot1(이중파동,"Zigzag",Iff(색깔==빨강,RED,BLUE));
이중파동 = 0;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= H || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = H;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= L || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = L;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준고 * (1 - (하락률/100)) > H && 기준저 * (1 + (상승률/100)) < L Then
{
추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락));
}
Else If 기준고 * (1 - (하락률/100)) > H Then 추세 = 하락;
Else If 기준저 * (1 + (상승률/100)) < L Then 추세 = 상승;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 추세[1] == 상승 && 추세 == 하락 Then
{
For j = 18 DownTo 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
If 이중파동[1] > 0 Then 이중파동 = 고[1];
Else plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
If 추세[1] == 하락 && 추세 == 하락 &&
고[1] < 기준고 &&
기준고 * (1 - (하락률/100)) > H Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
If 추세[1] == 하락 && 추세 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
If 저[2] > 저[1] Then 색깔 = 파랑;
If 이중파동[1] > 0 Then 이중파동 = 저[1];
Else plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
If 추세[1] == 상승 && 추세 == 상승 &&
저[1] > 기준저 &&
기준저 * (1 + (상승률/100)) < L Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
If 고[2] < 고[1] Then 색깔 = 빨강;
plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
If 추세 == 양방향 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
저[1] = 기준저;
저Bar[1] = 기준저Bar;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
추세 = 추세[1];
If 추세[1] == 상승 Then
{
If 고[2] < 고[1] Then 색깔 = 빨강;
Plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 저[2] > 저[1] Then 색깔 = 파랑;
이중파동 = 저[1];
}
Else
{
If 저[2] > 저[1] Then 색깔 = 파랑;
Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE));
If 고[2] < 고[1] Then 색깔 = 빨강;
이중파동 = 고[1];
}
}
#==========================================#
# 마무리
#==========================================#
If LastBarOnChart == 1 && 기준고Bar > 0 && 기준저Bar > 0 Then
{
If 추세 == 상승 Then
{
If 고[1] < 기준고 Then 색깔 = 빨강;
Plot1(기준고,"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
Else
{
If 저[1] > 기준저 Then 색깔 = 파랑;
Plot1(기준저,"Zigzag",Iff(색깔==빨강,RED,BLUE));
}
}
if 추세 == 상승 and 추세[1] != 상승 Then
var1 = L[1]*(1+상승률/100);
if 추세 == 하락 and 추세[1] != 하락 Then
var1 = H[1]*(1-하락률/100);
plot2(var1);
감사합니다.
2025-03-25
455
글번호 189524