커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1495
글번호 230811
답변완료
문의 드립니다
안녕하세요1. 예스랭귀지에서 장중 선물(KOSPI200)/현물(KOSPI)의 “실시간 외국인 누적 순매수(투자자별 매매동향)” 값을 어떤 함수명 또는 데이터명으로 참조할 수 있나요?- ex) 내장변수/내장함수/특정 데이터 필드/지표 형태 등- “누적 순매수”가 직접 제공되지 않으면, 매수/매도 실시간 데이터가 따로 제공되는지도 궁금합니다.- 만약 없다면 예스랭귀지에 사용자함수 등으로 구현을 할 수 있는 방법이 있는지 문의 드립니다2. 위 데이터가 예스랭귀지에서 장중 실시간으로 갱신되는 값인가요?- 갱신 주기(틱/초/봉 마감 등)가 있다면 알려주세요.3. 가능하다면, 예스랭귀지로 아래를 포함한 최소 예제 코드를 부탁드립니다.-10분봉 기준으로 선물/현물 외국인 누적 순매수 값을 읽는 방법- 두 값이 같은 방향일 때만 선물 매수/매도(각 1계약)- 종가 무조건 청산(SetStopEndOfDay)감사합니다.
2026-02-16
140
글번호 230577
답변완료
다시 문의드립니다.
수고 많으십니다.매수 진입봉을 끼고 4양봉후 4음봉시 청산하는 식을 구합니다.즉, 매수진입봉 이전봉이나 매수진입봉이나 매수진입봉 이후봉이나 매수진입봉을 끼고서 합쳐 양봉이 4개 연속되면 1차 조건 만족이고,그 다음 달아서 2차조건인 음봉이 3개 나오면 청산입니다.CountIf(C > O,4)[BarsSinceEntry] == 4 and CountIf(C < O,3) == 3 Then 위의 식을 쓰면 매수진입봉부터 3양봉이 되버립니다.(매수진입봉 이전부터도 매수진입봉만 끼고 4양봉이면 1차조건 만족입니다)CountIf(C > O,4) == 4 and CountIf(C < O,3) == 3 Then 그리고 위의 식대로 하면 아예 안먹힙니다.미리 노고에 감사드립니다~
2026-02-15
107
글번호 230575
답변완료
수식작성 요청드립니다.
다음 조건에 맞는 수식 작성 부탁드립니다. <최초 매수조건>거래금액은 100만원이고 당일의 시가가 전일 종가대비 -4 ~ +4% 이내일 때 시초가 매수<익절조건>1. 매수 후 매입가대비 +5%이상이면 청산2. 매수 후 매입가대비 +4%이상 상승 후 다시 매입가대비 +0.5%까지 하락해도 청산즉, 청산은 1또는 2의 경우가 발생하면 청산합니다.<손절조건>매입가 대비 -3%이상 하락하면 청산<재진입 조건>손절 후 현재가가 다시 최초매입가 도달시 재매수. 익절의 경우에는 다시 매수하지 않습니다. 재진입 횟수는 10회로 하되 임의로 조정할 수 있도록 부탁드립니다. <재진입 이후 익절조건과 손절조건>최초 매수시 익절조건 및 손절조건과 동일합니다. <당일매매종료>당일 15시19분 기준으로 포지션이 존재할 경우 전량 매도-끝감사합니다.
2026-02-15
106
글번호 230574
답변완료
종목 검색식 부탁드립니다.
1. 가중 3이평 이 가중 120 이평을 돌파할때(골든크로스) 종목 검색식 부탁드립니다.2. 아래의 3가지 골든크로스를 1개의 예스트레이더 종목 검색식 부탁드려요. 1) 가중 3 이평 가중 120 이평 골든크로스 2) 가중 4이평 가중 120 이평 골든크로스 3) 가중5 이평 가중 120 이평 골든크로스3. 양봉 캔들이 가중 120 이평을 돌파할때 종목 검색식 부탁드립니다.4. 가중 120 이평을 기준으로 상단 하단 1%에 있는 모든 종목 검색식 부탁드려요,(양봉 음봉 모두)5. 가중 120 이평을 기준으로 "상단 하단 0.5%에 있는 양봉캔들" 모든 종목 검색식 부탁드려요,-----------------------------------------------------------------6. 아래의 수식을 참고하여, " a 가 기준선 0 위에 있는 " 모든 종목검색식 부탁드립니다. 7'. 아래의 수식을 참고하여, " a 가 기준선 0 을 돌파할때 " 모든 종목검색식 부탁드립니다. --아래-- a=avg(c,240); b=(a(0)/c)-(a(1)/c); 기준선 0-----------------------------------------8 아래의 수식을 참고하여, "지표" 부탁드립니다. ---아래--- a=avg(c,240); b=(a(0)/c)-(a(1)/c); 기준선 0
2026-02-15
127
글번호 230572
등정 님에 의해서 삭제되었습니다.
2026-02-15
1
글번호 230571
답변완료
수식 부탁합니다
input : Signal(9);var : OBVval(0),OBVsig(0);OBVval = OBV;OBVsig = ma(OBVval,Signal);Plot1(OBVval, "OBV");OBV 분봉에서 obv값이 상승하다 전봉보다 작아질때 지표식 부탁합니다예를 들어 10분봉이면 분봉이 진행중 이면 나타나지 않고 분봉이 완료되면 나타나는 지표식 부탁합니다.즐거운 설 명절 보내세요,
2026-02-14
112
글번호 230570
답변완료
이평선 쓰리바닥시 매수진입, 헤더앤숄더(쓰리봉)시 매도진입
해외선물 진입시 참고하고자 합니다.Q&A에 있을 것 같아서 찾아 보았으나 제가 찾지를 못해 질문을 올립니다.1. 5이평선이 쓰리바닥이고 마지막 바닥이 쓰리바닥 중 가장 높은 위치에 있을 때 매수진입2. 5이평선이 헤드앤숄더(쓰리봉)이고 쓰리봉 중 마지막 봉우리가 가장 낮은 위치에 있을 때 매도진입하는 식을 부탁드립니다.
2026-02-14
109
글번호 230569
답변완료
문의 드립니다
obv signal 수식 부탁드립니다
2026-02-14
76
글번호 230568
답변완료
지표식 주석
항상 감사드립니다아래지표식 주석 부탁드립니다#### AI-Weighted RSI ###input : rsiLen(14);input : sigLen(20);input : learnLen(20);var : retLog(0),rsiVal(0),alpha(0),ATRV(0),atrPct(0),vol(0),volLogChg(0),y_rsi(0);var : x_ret(0),x_rsi(0),x_atrp(0),x_vchg(0),x_vol(0);retLog = log(close / iff(isnan(close[1])==true, close,close[1]));rsiVal = rsi(rsiLen);alpha = 1 / 200 ;ATRV = IFf(IsNan(ATRV[1]) == true, ema(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATRV[1])==true,0,ATRV[1]));atrPct = ATRV / close;vol = volume;volLogChg = log(vol / iff(isnan(vol[1])==true, vol,vol[1]));y_rsi = rsiVal[1];x_ret = iff(IsNan(retLog[1])==true,0,retLog[1]);x_rsi = iff(IsNan(rsiVal[1])==true,0,rsiVal[1]); x_atrp = iff(IsNan(atrPct[1])==true,0,atrPct[1]);x_vchg = iff(IsNan(volLogChg[1])==true,0,volLogChg[1]);x_vol = iff(IsNan(vol[1])==true,0,vol[1]);var1 = CoefficientR(y_rsi, x_ret, learnLen);var2 = CoefficientR(y_rsi, x_rsi, learnLen);var3 = CoefficientR(y_rsi, x_atrp, learnLen);var4 = CoefficientR(y_rsi, x_vchg, learnLen);var5 = CoefficientR(y_rsi, x_vol, learnLen);var : corrs_abs_ret(0),corrs_abs_rsi(0),corrs_abs_atrp(0),corrs_abs_vchg(0),corrs_abs_vol(0);corrs_abs_ret = abs(iff(IsNan(var1)==true,0,var1));corrs_abs_rsi = abs(iff(IsNan(var2)==true,0,var2));corrs_abs_atrp = abs(iff(IsNan(var3)==true,0,var3));corrs_abs_vchg = abs(iff(IsNan(var4)==true,0,var4));corrs_abs_vol = abs(iff(IsNan(var5)==true,0,var5));Array : corrs[5](0);corrs[0] = corrs_abs_ret;corrs[1] = corrs_abs_rsi;corrs[2] = corrs_abs_atrp;corrs[3] = corrs_abs_vchg;corrs[4] = corrs_abs_vol;var : i(0),j(0),n(0);Array : tmp[5](0),topIdx[5](0);var : maxI(0),maxV(0),vj(0),take(False);for i = 0 to 4{ tmp[i] = iff(IsNan(corrs[i])==true,0,corrs[i]); topIdx[i] = 0;}for n = 0 to 4{ maxI = 0; maxV = tmp[0]; for j = 1 to 4 { vj = tmp[j]; take = isnan(maxV) == true or (IsNan(vj) == False and vj > maxV); if take Then { maxV = vj; maxI = j; } } topIdx[n] = maxI; tmp[maxI] = nan;}var : xz_ret(0),xz_rsi(0),xz_atrp(0),xz_vchg(0),xz_vol(0);var : m1(0),s1(0),fz1(0);var : m2(0),s2(0),fz2(0);var : m3(0),s3(0),fz3(0);var : m4(0),s4(0),fz4(0);var : m5(0),s5(0),fz5(0);Array : featz[5](0);m1 = ema(x_ret, learnLen);s1 = std(x_ret, learnLen);fz1 = iff(s1 > 0 , (x_ret - m1) / s1 , 0);m2 = ema(x_rsi, learnLen);s2 = std(x_rsi, learnLen);fz2 = iff(s2 > 0 , (x_rsi - m2) / s2 , 0);m3 = ema(x_atrp, learnLen);s3 = std(x_atrp, learnLen);fz3 = iff(s3 > 0 , (x_atrp - m3) / s3 , 0);m4 = ema(x_vchg, learnLen);s4 = std(x_vchg, learnLen);fz4 = iff(s4 > 0 , (x_vchg - m4) / s4 , 0);m5 = ema(x_vol, learnLen);s5 = std(x_vol, learnLen);fz5 = iff(s5 > 0 , (x_vol - m5) / s5 , 0);xz_ret = iff(isnan(fz1) ==true,0,fz1);xz_rsi = iff(isnan(fz2) ==true,0,fz2);xz_atrp = iff(isnan(fz3) ==true,0,fz3);xz_vchg = iff(isnan(fz4) ==true,0,fz4);xz_vol = iff(isnan(fz5) ==true,0,fz5);featZ[0] = xz_ret;featZ[1] = xz_rsi;featZ[2] = xz_atrp;featZ[3] = xz_vchg;featZ[4] = xz_vol;value1 = CoefficientR(y_rsi, x_ret, learnLen);value3 = CoefficientR(y_rsi, x_atrp, learnLen);value4 = CoefficientR(y_rsi, x_vchg, learnLen);value5 = CoefficientR(y_rsi, x_vol, learnLen);var : coef_ret(0),coef_rsi(0),coef_atrp(0),coef_vchg(0),coef_vol(0);coef_ret = iff(IsNan(value1)==true,0,value1);coef_rsi = 1.0; // Hardcoded: always 1, since x_rsi == y_rsicoef_atrp = iff(IsNan(value3)==true,0,value3);coef_vchg = iff(IsNan(value4)==true,0,value4);coef_vol = iff(IsNan(value5)==true,0,value5);Array : coef[5](0);coef[0] = coef_ret;coef[1] = coef_rsi;coef[2] = coef_atrp;coef[3] = coef_vchg;coef[4] = coef_vol;var : s(0),idx(0),g(0),z(0),pred_rsi_z(0);s = 0.0;pred_rsi_z = 0;for i = 0 to 4{ idx = topIdx[i]; g = coef[idx]; z = featZ[idx]; pred_rsi_z = pred_rsi_z + (iff(isnan(g)==true,0,g) * IFf(IsNan(z)==true,0,z));}var : rsi_mean(0),rsi_std(0),pred_rsi(0);var : rsiWeight(0),ema_rsi(0);rsi_mean = ema(y_rsi, learnLen);rsi_std = std(y_rsi, learnLen);pred_rsi = iff(isnan(rsi_mean)==true,0,rsi_mean) + iff(isnan(rsi_std)==true,0,rsi_std) * pred_rsi_z;rsiWeight = max(-2, min(2, (50 - iff(isnan(pred_rsi)==true,0,pred_rsi)) / 50)) * -1;ema_rsi = ema(rsiWeight,sigLen);//종목검색/* IF (rsiWeight[1]<=-0.5 OR rsiWeight<=-0.5) && CrossUP(rsiWeight,-0.5) && C>O TheN Find(1); */if CrossUp(rsiWeight,ema_rsi) Then var91=0.5 ;if CrossDown(rsiWeight,ema_rsi) Then var91=-0.5 ;
2026-02-14
187
글번호 230567