커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3449
글번호 230811
답변완료
종목검색식 부탁드립니다
1. 주봉 20 이평 (단순) 을 캔들이 양봉으로 돌파하거나,
주봉 20이평선에(단순) 캔들이 상하(위, 아래)
각각 1% 이내로 근접하고 양봉일때 ,
종목검색식 부탁드립니다.
2. 다음 수식을 참조하여 종목 검색식 부탁드려요
아래수식을 1) ~ 5) 까지 OR (또는) 해서, 1개의 종목검색식으로 부탁드립니다.
----------
1) M= Macd(12,26);
Ms=eavg(M,9);
골든크로스 첫봉 때
2) S=StochasticsSlow(12,5);
Ss=eavg(S,3);
골든크로스 첫봉때
3) CC=CCi(9);
Cs=eavg(CC,12);
골든크로스 첫봉때
4) R=Rsi(14);
Rs=eavg(R,9);
골든크로스 첫봉때
5) Dp =DiPlus(14);
Dm=DiMinus(14);
골든크로스 첫봉때
2025-08-06
268
글번호 193022
답변완료
문의드립니다.
1.var1이 0이 아닌 경우만 배열변수로 저장해서 외부변수의 기간(5)갯수의 배열변수의 합을 구하는 식
input : 기간(5);
vars : cnt(0),cnt2(0);
Array : array1[100](0),array2[100](0);
If var1 != 0 Then
{array1[0] = Var1;
for cnt = 1 to 99{
array1[cnt] = array1[cnt-1][1];}}
for cnt = 0 to 기간 - 1
{ cnt2 = cnt2 + array1[cnt][0];}
2.var1이 0이 아닌 경우의 과거 봉은 제외하고
input : 기간(5);
vars : cnt(0),cnt2(0);
if var1 != 0 Then
for cnt = 0 to 기간 - 1
{ cnt2 = cnt2 + var1[cnt];}
var1이 0이 아닐 때의 값 기간의 합을 구하고 싶은데요 수치가 제대로 안나와요. 과거전봉의 갯수 상관없이 var1 != 0 이 아닌 5개봉(input값)ㅠ.ㅠ
어떻게 수정해야 하죠?
답변부탁드립니다..수고하세요^^
2025-08-05
213
글번호 193021
답변완료
도움 부탁드립니다
안녕하세요
무더운 여름 잘 보내시길 바랍니다.
아래 지표는 커뮤니티에서 다운받은 지표인데 궁금한것이 챠트캔들위에 나타나는 삼각형의
표시가 캔들이 몇개이상 지나고 난 후에 캔들위에 표시가 되는데 궁금한것은
1. 보통 캔들이 완성된후에 생기는데 이처럼 여러개의 캔들이 지나서 나타나는 이유.
2. 후행성이 아닌 실시간 켄들에 나타나게 할 수는 없는지요.
3. 2번째 질문에 답이 안된다면 캔들 표식이 아닌 다른 방법으로도 실시간 알수는 없는지요
감사합니다.
input : len(3);
input : mult(0.6);
input : color_t_up(Lime);
var : color_t(orange);
input : color_t_dn(Red);
var : p_h(nan);
var : p_l(nan);
var : trend(False);
var : market_state(""),ph(0),pl(0),tx(0);
market_state = "Range";
if SwingHigh(1,h,len,len,len+len+1) != -1 Then
{
p_h = h[len];
tx = Text_New(sDate[len],sTime[len],p_h,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Blue);
Text_SetSize(tx,12);
}
if SwingLow(1,l,len,len,len+len+1) != -1 Then
{
p_l = l[len];
tx = Text_New(sDate[len],sTime[len],p_l,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Red);
Text_SetSize(tx,12);
}
var : avgv(0),ATrv(0),hl2(0),upper(0),lower(0),tx1(0);
avgv = (p_h+p_l)/2;
atrv = atr(200)*mult;
upper = avgv + atrv;
lower = avgv - atrv;
hl2 = (h+l)/2;
if hl2 > upper Then
{
color_t = color_t_up;
trend = true;
market_state = "Momentum Up";
}
if hl2 < lower Then
{
color_t = color_t_dn;
trend = false;
market_state = "Momentum Down";
}
// -----------------------------------}
// VISUALIZATIONS
// -----------------------------------{
plot1(avgv, "MidLine",color_t);
plot2(upper, "Upper");
plot3(lower, "Lower");
2025-08-05
309
글번호 193020
답변완료
트레이닝 궁굼합니다. 가능할까요?
아래 지표설정대로 제가 지정하는 종목에(1개~다수) 대해서 일봉기준으로 매매하고 싶습니
다.
1. 매수후 중복으로 나오는 매수신호는 무시
2. 지정하는 종목(1~다수)
3. 매도신호시 청산(통합주문2101에서 해도 무방한가요?)
input : length(15);
input : show_levl(true);
var : up(0),dn(0),A(0),emaValue(0),correction(0),zlma(0);
var : signalUp(False),signalDn(False),zlma_color(0),ema_col(0);
var : TOP(0),BTM(0),box(0),tx(0),tx1(0),check_signals(False);
up = Black;
dn = Blue;
#var box1 = box(na) // Variable to store the box
a = atr(200);
emaValue = ema(close, length);
correction = close + (close - emaValue);
zlma = ema(correction, length);
signalUp = CrossUp(zlma, emaValue);
signalDn = CrossDown(zlma, emaValue);
zlma_color = iff(zlma > zlma[3] , up , iff(zlma < zlma[3] , dn , Nan));
ema_col = iff(emaValue < zlma , up , dn);
plot1(zlma, "ZLMA",zlma_color); // Plot ZLMA
plot2(emaValue,"EMA",ema_col);
if signalUp Then
{
Top = zlma;
BTM = zlma-A;
box = box_new(sDate,sTime,Top,NextBarSdate,NextBarStime,BTM);
Box_SetColor(box,up);
Box_SetFill(box,true);
var3 = (Top+BTM)/2;
tx = Text_New(NextBarSdate,NextBarStime,var3,NumToStr(C,2));
Text_SetStyle(tx,1,2);
}
else if signalDn Then
{
Top = zlma+A;
BTM = zlma;
box = box_new(sDate,sTime,Top,NextBarSdate,NextBarStime,BTM);
Box_SetColor(box,dn);
Box_SetFill(box,true);
var3 = (Top+BTM)/2;
tx = Text_New(NextBarSdate,NextBarStime,var3,NumToStr(C,2));
Text_SetStyle(tx,1,2);
}
Else
{
Box_SetEnd(box,sDate,sTime,BTM);
Text_SetLocation(tx,sDate,sTime,var3);
}
check_signals = signalUp or signalDn;
if CrossDown(high, BTM) and emaValue > zlma Then
{
tx1 = Text_New(sDate[1],sTime[1],H[1],"▼");
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,dn);
}
if CrossUp(low, Top) and emaValue < zlma Then
{
tx1 = Text_New(sDate[1],sTime[1],L[1],"▲");
Text_SetStyle(tx1,2,0);
Text_SetColor(tx1,up);
}
2025-08-05
329
글번호 193019
답변완료
아래 93786 관련
500봉에서 8월5일 장끝나고 검색을 하면 나오는 50 종목중 제가 원하는건 crossup(c,var2) 에 해당되는 종목인데
var1 에 해당되는 종목,var 에 해당되는 종목 , 이도저도 아닌 정체불명의 종목,그리고 원하는 crossup(c,var2) 에 해당되는 종목이 다 뒤섞여서 검색이 됩니다. 실제 원하는 종목은 25종목 검색 되구요.
수고스럽지만 다시한번 검토 부탁드립니다.
2025-08-05
230
글번호 193018
답변완료
지정가격 선긋기
지정된 가격에 선을 긋고 선을 그은 가격이 표시되는 수식좀 알려주세요.
첨부된 사진과 같이 432.75, 432.60, 432.40, 432.15, 432.10 이렇게 5개의 선을 긋고 그 가격이 표시되도록 하는 수식좀 알려주시면 됩니다.
또, 432.75와 432.10 은 선을 굵게 표시해주세요.
2025-08-05
327
글번호 193017
제너리 님에 의해서 삭제되었습니다.
2025-08-05
1
글번호 193016
답변완료
잘 만들어 주신 Kalman지표를 시스템으로 변환하는 과정에서 오류
검증 과정은 잘 거쳤는데, 적용하는 과정에서 오류가 발생합니다.
"논리값이나 논리표현식이 와야 합니다"
저가 변경한 식은 다음과 같습니다.
input : short_len(50);
input : long_len(150);
input : retest_sig(false);
input : candle_color(true);
input : upper_col(Green);
input : lower_col(Maroon);
var : alpha(0),AR(0),A(0);
var : R(0.01),Q(0.1);
var : short_estimate(Nan),short_error_est(1.0),short_error_meas(R * (short_len));
var : short_kalman_gain(0),short_prediction(Nan),short_kalman(0);
var : Long_estimate(Nan),Long_error_est(1.0),Long_error_meas(R * (Long_len));
var : Long_kalman_gain(0),Long_prediction(Nan),Long_kalman(0);
var : trend_up(False);
var : trend_col(0),trend_col1(0),candle_col(0);
var : tx1(0),tx2(0),box1(0),box2(0);
alpha = 1 / 200 ;
A = iff(IsNan(A[1]) == true , ma(TrueRange, 200) , alpha * TrueRange + (1 - alpha) * iff(IsNan(A[1]) == true,0,A[1]));
AR = A*0.5;
if isnan(short_estimate) == true Then
short_estimate = C[1];
short_prediction = short_estimate;
short_kalman_gain = short_error_est / (short_error_est + short_error_meas);
short_estimate = short_prediction + short_kalman_gain * (C - short_prediction);
short_error_est = (1 - short_kalman_gain) * short_error_est + Q / (short_len);
short_kalman = short_estimate;
if isnan(Long_estimate) == true Then
Long_estimate = C[1];
Long_prediction = Long_estimate;
Long_kalman_gain = Long_error_est / (Long_error_est + Long_error_meas);
Long_estimate = Long_prediction + Long_kalman_gain * (C - Long_prediction);
Long_error_est = (1 - Long_kalman_gain) * Long_error_est + Q / (Long_len);
Long_kalman = Long_estimate;
trend_up = short_kalman > long_kalman;
trend_col = iff(trend_up , upper_col , lower_col);
trend_col1 = iff(short_kalman > short_kalman[2] , upper_col , lower_col);
if (short_kalman > short_kalman[2]) Then
{
Buy();
}
if (short_kalman < short_kalman[2]) Then
{
Sell();
}
candle_col = iff(candle_color ,
IFf(trend_up == true and short_kalman > short_kalman[2] , upper_col ,
iff(trend_up == False and short_kalman < short_kalman[2] , lower_col , gray)) , Black);
if Crossup(short_kalman,long_kalman) Then
{
Buy();
}
Else
Box_SetEnd(box1,sDate,stime,var2);
if CrossDown(short_kalman,long_kalman) Then
{
Sell();
}
Else
Box_SetEnd(box2,sDate,stime,var4);
2025-08-05
402
글번호 193014
답변완료
수식작성 질문입니다
안녕하세요, 선생님.
매도 조건이 여러 가지일 경우, 아래와 같은 상황에서 00시 이후부터 매도 조건 평가를 시작하려고 합니다.
예를 들어,
8월 5일 03시에 매수 신호가 발생하였고,
익절 조건도, 손절 조건도 충족되지 않아 포지션을 유지한 채 8월 5일 23시 59분을 넘긴 경우,
8월 6일 00시 이후부터 새로운 매도 조건이 충족되면 즉시 청산되도록 만들고 싶습니다.
즉,익절/손절 조건이 없을 경우 → 자정(00시)을 넘기고 나서부터 매도 조건을 평가하는 로직이 필요합니다.
이와 같은 수식 구조를 어떻게 짜야 좋을지 문의드립니다.
감사합니다.
2025-08-05
245
글번호 193004