커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5522
글번호 230811
답변완료
잘 부탁드립니다
//@version=4
//By Glaz, Modified
//
study("QQE MOD")
RSI_Period = input(6, title='RSI Length')
SF = input(5, title='RSI Smoothing')
QQE = input(3, title='Fast QQE Factor')
ThreshHold = input(3, title="Thresh-hold")
//
src = input(close, title="RSI Source")
//
//
Wilders_Period = RSI_Period * 2 - 1
Rsi = rsi(src, RSI_Period)
RsiMa = ema(Rsi, SF)
AtrRsi = abs(RsiMa[1] - RsiMa)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
dar = ema(MaAtrRsi, Wilders_Period) * QQE
longband = 0.0
shortband = 0.0
trend = 0
DeltaFastAtrRsi = dar
RSIndex = RsiMa
newshortband = RSIndex + DeltaFastAtrRsi
newlongband = RSIndex - DeltaFastAtrRsi
longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ?
max(longband[1], newlongband) : newlongband
shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ?
min(shortband[1], newshortband) : newshortband
cross_1 = cross(longband[1], RSIndex)
trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1)
FastAtrRsiTL = trend == 1 ? longband : shortband
////////////////////
length = input(50, minval=1, title="Bollinger Length")
mult = input(0.35, minval=0.001, maxval=5, step=0.1, title="BB Multiplier")
basis = sma(FastAtrRsiTL - 50, length)
dev = mult * stdev(FastAtrRsiTL - 50, length)
upper = basis + dev
lower = basis - dev
color_bar = RsiMa - 50 > upper ? #00c3ff : RsiMa - 50 < lower ? #ff0062 : color.gray
//
// Zero cross
QQEzlong = 0
QQEzlong := nz(QQEzlong[1])
QQEzshort = 0
QQEzshort := nz(QQEzshort[1])
QQEzlong := RSIndex >= 50 ? QQEzlong + 1 : 0
QQEzshort := RSIndex < 50 ? QQEzshort + 1 : 0
//
Zero = hline(0, color=color.white, linestyle=hline.style_dotted, linewidth=1)
////////////////////////////////////////////////////////////////
RSI_Period2 = input(6, title='RSI Length')
SF2 = input(5, title='RSI Smoothing')
QQE2 = input(1.61, title='Fast QQE2 Factor')
ThreshHold2 = input(3, title="Thresh-hold")
src2 = input(close, title="RSI Source")
//
//
Wilders_Period2 = RSI_Period2 * 2 - 1
Rsi2 = rsi(src2, RSI_Period2)
RsiMa2 = ema(Rsi2, SF2)
AtrRsi2 = abs(RsiMa2[1] - RsiMa2)
MaAtrRsi2 = ema(AtrRsi2, Wilders_Period2)
dar2 = ema(MaAtrRsi2, Wilders_Period2) * QQE2
longband2 = 0.0
shortband2 = 0.0
trend2 = 0
DeltaFastAtrRsi2 = dar2
RSIndex2 = RsiMa2
newshortband2 = RSIndex2 + DeltaFastAtrRsi2
newlongband2 = RSIndex2 - DeltaFastAtrRsi2
longband2 := RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] ?
max(longband2[1], newlongband2) : newlongband2
shortband2 := RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1] ?
min(shortband2[1], newshortband2) : newshortband2
cross_2 = cross(longband2[1], RSIndex2)
trend2 := cross(RSIndex2, shortband2[1]) ? 1 : cross_2 ? -1 : nz(trend2[1], 1)
FastAtrRsi2TL = trend2 == 1 ? longband2 : shortband2
//
// Zero cross
QQE2zlong = 0
QQE2zlong := nz(QQE2zlong[1])
QQE2zshort = 0
QQE2zshort := nz(QQE2zshort[1])
QQE2zlong := RSIndex2 >= 50 ? QQE2zlong + 1 : 0
QQE2zshort := RSIndex2 < 50 ? QQE2zshort + 1 : 0
//
hcolor2 = RsiMa2 - 50 > ThreshHold2 ? color.silver :
RsiMa2 - 50 < 0 - ThreshHold2 ? color.silver : na
plot(FastAtrRsi2TL - 50, title='QQE Line', color=color.white, transp=0, linewidth=2)
plot(RsiMa2 - 50, color=hcolor2, transp=50, title='Histo2', style=plot.style_columns)
Greenbar1 = RsiMa2 - 50 > ThreshHold2
Greenbar2 = RsiMa - 50 > upper
Redbar1 = RsiMa2 - 50 < 0 - ThreshHold2
Redbar2 = RsiMa - 50 < lower
plot(Greenbar1 and Greenbar2 == 1 ? RsiMa2 - 50 : na, title="QQE Up", style=plot.style_columns, color=#00c3ff, transp=0)
plot(Redbar1 and Redbar2 == 1 ? RsiMa2 - 50 : na, title="QQE Down", style=plot.style_columns, color=#ff0062, transp=0)
2023-06-21
1833
글번호 169941
답변완료
일목균형표 문의 드립니다.
함수 정의할때 일목균형표 선행스팬1,2 문의 드립니다.
선행스팬1,2는 지금 현재 캔들이 있는 선행스팬1,2와 이미 앞에 나와있는 선행스팬1,2 두가지가 있는데요 각각 어떻게 함수 정의를 해야 하나요?
A=현재 캔들이 있는 선행스팬1
B=26봉 전 앞에 나와있는 선행스팬1(앞구름)
C=현재 캔들이 있는 선행스팬2
D=26봉 전 앞에 나와있는 선행스팬2(앞구름)
로 분류해서 설명 부탁드립니다.
2023-06-21
1497
글번호 169940
답변완료
차트에 한계선표시하기
예스트레이더에서 국선 차트에 표시하는 코드좀 부탁드립니다.
아래와 같습니다.
국선 한계선 표시
1. 시가 상승 한계선 1차 : 시가대비 2.5포인트 상승 지점에 라인 표시
2. 시가 상승 한계선 2차 : 시가대비 3 포인트 상승 지점에 라인 표시
3. 시가 하락 한계선 1차 : 시가대비 2.5포인트 하락 지점에 라인 표시
4. 시가 하락 한계선 2차 : 시가대비 3 포인트 하락 지점에 라인 표시
1. 저점 대비 상승 한계선 1차 : 저점 대비 2.5포인트 상승 지점에 라인 표시
2. 저점 대비 상승 한계선 2차 : 저점 대비 3 포인트 상승 지점에 라인 표시
3. 고점 대비 하락 한계선 1차 : 고점 대비 2.5포인트 하락 지점에 라인 표시
4. 고점 대비 하락 한계선 2차 : 고점 대비 3 포인트 하락 지점에 라인 표시
2.5포인트나 3포인트는 INPUT을 써서 수치를 조정 가능하게 하면 좋음
라인 색상은 사용자 조정가능하게 해주면 좋음
2023-06-21
1139
글번호 169939
답변완료
문의드립니다
//기본차트 MACD
macdv = macd(short,long);
macds = Ema(macdv,sig);
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+1);
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;
TF1 = TM%분1;
TF2 = TM%분2;
//15분봉 MACD
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분1 > 1 and TF1 < TF1[1]) or
(Bdate == Bdate[1] and 분1 > 1 and TM >= TM[1]+분1) or
(Bdate == Bdate[1] and 분1 == 1 and TM > TM[1]) Then
{
i1 = i1 + 1;
Prexma11 = xma11[1];
Prexma12 = xma12[1];
PreMACDS1 = MACDS1[1];
}
if i1 <= 1 then
{
xma11 = C;
xma12 = C;
MACDV1 = xma11-xma12;
MACDS1 = MACDV1;
}
else
{
xma11 = C * EP1 + Prexma11 * (1-EP1);
xma12 = C * EP2 + Prexma12 * (1-EP2);
MACDV1 = xma11-xma12;
MACDS1 = MACDV1 * EP3 + PreMACDS1 * (1-EP3);
}
//20분봉 MACD
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분2 > 1 and TF2 < TF2[1]) or
(Bdate == Bdate[1] and 분2 > 1 and TM >= TM[1]+분2) or
(Bdate == Bdate[1] and 분2 == 1 and TM > TM[1]) Then
{
i2 = i2 + 1;
Prexma21 = xma11[1];
Prexma22 = xma12[1];
PreMACDS2 = MACDS2[1];
}
if i2 <= 1 then
{
xma21 = C;
xma22 = C;
MACDV2 = xma21-xma22;
MACDS2 = MACDV2;
}
else
{
xma21 = C * EP1 + Prexma21 * (1-EP1);
xma22 = C * EP2 + Prexma22 * (1-EP2);
MACDV2 = xma21-xma22;
MACDS2 = MACDV2 * EP3 + PreMACDS2 * (1-EP3);
}
시간 변경은 어떻게하나요?
예) 현재차트 60분봉
15분봉--->120분봉
20분봉--->240분봉
2023-06-21
1196
글번호 169934
질갱이 님에 의해서 삭제되었습니다.
2023-06-21
546
글번호 169930
답변완료
날짜 필터
비가 많이 오네요 감기 조심하십쇼!
일봉에서 사용할 날짜 필터를 만들고 싶습니다.
약3개 또는 4개 정도의 특정 구간동안 매매를 안하길 원합니다.
각 날짜의 시작 및 종료 기간은 변수로 입력할 수 있도록 부탁드립니다.
예를 들어, 변수1에 20170820을, 변수 2에 20171001을 입력하면
2017년 8월 20일부터 2017년 10월 1일까지는 매매를 안들어가게 했으면 좋겠습니다.
도움 부탁드립니다
2023-06-21
867
글번호 169927
답변완료
기간요약을 현재가 기준으로 항상표시
수고하십니다....
5분봉 차트에서 첨부사진처럼 기간용약을 현재봉에서부터 N봉(120개)까지 차트에
자동으로 봉 생성시 마다 현재봉 기준으로 차트에 표시하고싶습니다...
봉생성시 마다 오른쪽으로 한칸씩 손으로 움직여야해서..
자동으로 가능할까요??
수고해서요...^^
2023-06-21
717
글번호 169924
2wnwn 님에 의해서 삭제되었습니다.
2023-06-21
26
글번호 169923
답변완료
시스템 부탁드립니다
1. 상장일 관련 함수가 있나요?
2. 없으면 상장후 6개월 이후 1영업일이후에 매수하는 코드를 만들고 싶습니다.
예) 들어 2022년 01월 02일에 상장한 종목을 2022년 07월 03일 이후부터 매수하고 싶다는 조건을 넣고 싶은데 2022년 01월 02일이라는 input이나 수식에 넣어서 가능할까요?
3. 또는 특정일 이후부터 매수 조건 가능할까요?
예) 2022년 07월 03일 이후부터 매수
봉 갯수를 줄이면 수식에 이평선관련 코드가 들어있어서 작동을 안합니다
그래서 봉 갯수를 10,000개, 최대로 해두고 실행시키고 싶습니다.
감사합니다!
2023-06-21
1147
글번호 169922