커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
3371
글번호 230811
지표
답변완료

문의 드립니다.

///_____________________________________________________________________________________________________________________///Inputs///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾tf = input.timeframe("", title = "Timeframe")len = input.int(20, title = "Length", minval = 1)‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾get_vpc(_len) => //Main Logic var float h_vwap = high var float l_vwap = low float upper = na float lower = na hst = ta.highest(_len) lst = ta.lowest(_len) new_high = high == hst new_low = low == lst h_vwap := ta.vwap(high,new_high) l_vwap := ta.vwap(low,new_low) h_change = ta.change(h_vwap) l_change = ta.change(l_vwap) upper := new_high ? hst : (hst == hst[1] ? upper[1] + h_change : math.min(hst,upper[1] + h_change)) lower := new_low ? lst : (lst == lst[1] ? lower[1] + l_change : math.max(lst,lower[1] + l_change)) _avg = math.avg(upper,lower) //Trend Detection & Coloring var int dir = 0 var int dir2 = 0 dir := new_high?1:new_low?-1:0 dir2 := new_high?1:new_low?-1:dir2[1] [upper,lower,_avg,hst,lst,dir,dir2]//Calling Function[upper,lower,mid,hst,lst,dir,dir2] = request.security("",tf,get_vpc(len))///_____________________________________________________________________________________________________________________///Display///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾u = plot(upper, title = "Upper", color = dir == 1 ? color.rgb(0,0,0,100):color.rgb(255, 3, 62), style = plot.style_linebr)plot(mid, title = "Mid", color = color.gray, display = display.none)l = plot(lower, title = "Lower", color = dir == -1 ? color.rgb(0,0,0,100):color.rgb(61, 170, 69), style = plot.style_linebr)c = plot(close, display = display.none, editable = false)fill(u,c,dir2 == 1?color.rgb(0,0,0,100):color.rgb(255, 3, 62, 95), title = "Fill")fill(l,c,dir2 == -1?color.rgb(0,0,0,100):color.rgb(61, 170, 69, 95), title = "Fill")plot(hst, title = "DC Upper", color = #004d92, display = display.none)plot(lst, title = "DC Lower", color = #004d92, display = display.none)//<---nice트레이딩뷰 수식입니다.예스로 좀 바꿔주세요.
프로필 이미지
신대륙발견
2025-11-06
340
글번호 227692
지표
답변완료

crossup 수식 매매시점 문의

아래 예제에서 진입과 청산 매매 시점에 대해 문의 드립니다. 1. 20일 지수 이평이 300일 지수 이평 교차시 buy 하는데, 이는 일봉이 완성된 상태서 매수 하나요? 일봉 완성 된 후 진입한다면 너무 늦은거 같습니다. 실시간 현재가로 buy 하려면 어떻게 하나요?2. SetStopLoss(1.3); 진입가격에서 1.3% 손실하면 청산하는데 , 이는 실시간으로 이뤄지나요? 아니면 일봉이 끝난상태서 이뤄지나요?3. 만약 crossup 은 일봉기준, SetStopLoss 는 실시간 기준으로 작동한다면 함수별로 셋팅 되있는 default 값 을 어떻게 확인하나요? 예스랭귀지 편집기 - 사전 에서도 확인이 안됩니다. 4. 추가로 9분봉을 활용한 수식을 작성하고 싶습니다. 예를들어 9분봉 기준 20일 지수 이평이 300일 지수 이평 교차 시 buy 하고싶은데 crossup 함수를 9분봉 세계관에서 사용하려면 어떻게 작성해야할까요? 감사합니다.======= 예제 ========= 단기지수이평 = Ema(C,20); 장기지수이평 = Ema(C,300); #진입 If CrossUp(단기지수이평, 장기지수이평) Then Buy("Buy"); #손절 청산 SetStopLoss(1.3);
프로필 이미지
homepant
2025-11-06
273
글번호 227690
시스템
답변완료

수식문의

아래 수식, 잘 이용하고 있읍니다.(자동매매에) 쓰다보니 변별력을 높이기 위해 다음 사항을 추가하고 싶으나 직접 만들 자신없어 요청드립니다.1봉전 CrossUp(myZLMA ,myEMA) + 0봉전 RSI(14)>=60, -1~-5봉 RSI(14)<59.9 or 0봉전 CrossUp(myZLMA ,myEMA) + 0봉전 RSI(14)>=60, -1~-5봉 RSI(14)<59.9 ============================================================ input : 기간(15); var : myema(0),correction(0),myZLMA (0); myEMA = Ema(C, 기간); correction = C + (C - myEMA); myZLMA = Ema(correction, 기간) ; var1 = Ema(C,200);if CrossUp(myZLMA ,myEMA) and V>= V[1]*2 and C>C[1]*1.02 and countif(myZLMA > myZLMA[1] and myEMA > myEMA[1] and var1 > var1[1],2) == 2 Then Find(1);
프로필 이미지
ksks
2025-11-05
272
글번호 227689
종목검색
답변완료

수식요청

안녕하세요 수식 부탁드립니다 아래식에서 수식 수정 부탁드립니다 매수식 sw2선이 양선인 상태에서 10 이평선 밑에 있고 10이평선 이 sw2선위에 있는 상태에서 캔들이 양봉으로 이평 10선 상향 돌파시 매수.매도식 sw2선이 음선이고 10 이평 위에 위치하고 이평선이 sw2 선 아래에 있는 상태에서 10이평선을 하향 돌파시Inputs : Period(20), Sence(1.5), CC_DN(Yellow); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0),T(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); If STime == 180000 Then DBN = 0; DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H-L; JustChanged = FALSE; if CurrentBar <= Var2 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H-L) /2; end; if CurrentBar == Var1 then begin if Highs[Var2] >= Highs[Var3] then begin UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); #Plot1(VLineUp,"VLineUp"); end; if Highs[Var2] < Highs[Var3] then begin DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6,Var2)); #Plot2(VLineDn,"VLineDn"); end; end; if CurrentBar > Var1 then begin if DnWave[1] and Close > VLineDn then begin DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; end; if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; end; if JustChanged == FALSE then begin if Close > HHighest then HHighest = Close; else if Close < LLowest then LLowest = Close; end; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); VLineDn = LLowest + (Var5 * MA(Var6,Var2)); if UpWave[1] then T = 1; else if DnWave[1] then T = -1; end; Input : BBP(20), MultiD(2),P(30); var : BBmd(0),BBup(0),BBdn(0),mav(0); BBmd = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); mav = ma(C,P); if CrossDown(C,BBup) and t == -1 and c > mav Then sell(); if crossup(C,BBdn) and t == 1 and c < mav Then buy(); 첨부 https://www.yesstock.com/community/file-download?name=193585_sw2.yin&post_key=192729(sw2선)
프로필 이미지
아트정
2025-11-05
673
글번호 227688
시스템
답변완료

사용하고있는 시스템에 강제청산 계속 되는것 보고싶습니다

안녕하세요 수고 많으십니다1, 해선는 나스닥 골드 크로드오일 에서 360분차트 하여 봉 두개 만들어지면 무조건 강제청산 부탁합니다 청산안되요?국선는 input : 시작시간(70000),종료시간(151000); // 시작시간 종료 시간도 사용하고 있습니다 국선는 140분차트해선는 input : 시작시간(20000),종료시간(10000); // 시작시간 종료 시간도 사용하고 있습니다조건 뭐든지 하였을때buy (); 신호 는 한봉마다 발생하고있다 실재거래조건 뭐든지 하였을때 sell (); 한봉 마다 신호 발생하고있다 실재거래 아래 식 에서 봉이 8개 만들었는데 청산 안되고있다 어떤건 4개 만들었는데 강제 청산 안되고있다## 무조건 2개 봉이 만들어지면 청산 안되네요 ???## 7시 시작하여 360분차트 사용하였을때 아래식은 2개마다 청산 안되고있습니다 해결할수있나요input : N(2); ==> 숫자 2 를 넣었는데 봉 2개마다 강재 청산 안된다??? if MarketPosition == 1 and BarsSinceEntry == N Then ExitLong();if MarketPosition == -1 and BarsSinceEntry == N Then ExitShort();2, 윗글 봉 2개마다 청산 안되므로 다른 아이디어 추가 하겠습니다 방법는 시간으로 청산 하겠습니다 예를들어 국선 140분차트 사용하는경 우 280분마다 청산 계속되게 해주세요 예를들어 해선 360분차트 사용하는경 우 720분마다 청산 계속되게 해주세요 시간으로 모든 포지션 청산정리 한후 새로운 신호 받겠습니다 대단히 감사합니다
프로필 이미지
놀이터
2025-11-05
277
글번호 227687
시스템
답변완료

지표 부탁드립니다

안녕하세요 늘 도움주셔서 감사합니다.아래 지표 변환 부탁드립니다.length =input(10,minval=1,title="bb period")dev = input(1,minval=0.0001,title="deviations")//MACDfastlength=input(12,minval=1)slowlength=input(26,minval=1)signallength=input(9,minval=1)fastMA = ema(close,fastlength)slowMA=ema(close,slowlength)macd = fastMA-slowMA//Bollinger Bandsstd=stdve(mad,length)upper=(std*dev+(sma(macd,length)))lowr=((sma(macd,length))-(std*dev))band1=plot(upper,color=gray,style=line,linewidth=2,title="upper band")band2=plot(lower,color=gray,style=line,linewidth=2,title="lower band")fill(band1,band2,color=blue, transp=75,title="fill")mc=macd>=upper?blue:red
MACD볼린져밴드
프로필 이미지
라몬
2025-11-05
247
글번호 227686
지표
답변완료

종목검색식 문의

글번호 227653 에서 " 위 그림과 같이 아이원플러스, 모니터랩은 그 이후에도 만족한 날짜가 있습니다. 즉 30일중 여러날 만족하면 가장최근 날짜가 결과값으로 표시됩니다." 라는 답변을 받았습니다. 그렇다면 30일치 검색을 하였을때, 종목이 각 다른 날에 중첩되어 검색이 되더라도 검색된 날 각 표시가 되게 할 수 는 없을까요? 예를 들어 오늘을 기준으로 30일치를 한번에 검색할때 11월 1일에 삼성전자가 검색이 되고11월 5일에도 삼성전자가 검색이 된다면, 글번호 227653에서 제가 작성한 식으로는 11월 5일 삼성전자만 표시가 됩니다. 제가 원하는 것은 11월 1일에도 삼성전자가 나오고, 11월 5일에도 삼성전자가 나오게 하는 것입니다. (중복일시 가장 최근에 검색된 것만 검색된 날짜만 표시되는 것이 아닌 ! ) 모든 날짜에 표시가 되게 할 수 있도록 아래 수식을 변경해주시면 감사하겠습니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/* 조건식 변환본 (최근 30일치 자동검색 버전) 원식: A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q*/var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);var : Nn(false), Oo(false), Pp(false), Qq(false);var : d(false);var : VALUE1(0);/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */A = (H - C[1]) / C[1] * 100 >= 15;/* B: 0봉전 시가 < 0봉전 종가 */B = O < C;/* C: [일]거래대금(일:백만) 20000이상 999999999이하 → 원단위로 변환: 20000000000 ~ 999999999000000*/Cc = m >= 20000000000 and m <= 999999999000000;/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Ee = (C - C[1]) / C[1] * 100 <= 29.65;/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* G: 2봉전 시가 < 2봉전 종가 */Gg = O[2] < C[2];/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */Hh = (H[2] - C[3]) / C[3] * 100 >= 15;/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;/* J: 3봉전 시가 < 3봉전 종가 */Jj = O[3] < C[3];/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */Kk = (H[3] - C[4]) / C[4] * 100 >= 15;/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Nn = (C - C[1]) / C[1] * 100 <= 29.65;/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;/* 최종식 */d = A and B and Cc and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) ) and Nn and Oo and Pp and Qq;/* 조건 충족일 기록 */if d then VALUE1 = sDate;/* 최근 30일 내 조건이 한 번이라도 발생한 종목만 출력 */if CountIf(d == true, 30) >= 1 then Find(VALUE1);
프로필 이미지
마을
2025-11-05
408
글번호 227685
종목검색
답변완료

종목검색되게 조건검색식 부탁드립니다

조건검색식 코드수식 부탁드립니다 1.일목구름수치값 : ShortPeriod 40 ,midPeriod 125, Longperiod 250 (첨부한 구름대는 26일 앞당긴 구름입니다(현재캔들위치와 구름색깔이 양운인지 바로알수있게 해놨슴) 2. 반드시 양운구름안으로 한번은 캔들이 들어갔다가 캔들이 양운위로 나오는 순간 or 돌파완료시 검색식에 나타나게 해주세요. (최근 5일 내 캔들이 구름 안에 들어간 적이 있고,오늘(또는 최근 1일) 종가가 구름 상단을 돌파할 때 종목이 포착되게 해주고,5일 평균대비 거래량도 150% 급증종목이면 좋겠습니다)
프로필 이미지
해피럭키
2025-11-05
297
글번호 227684
종목검색
답변완료

예스종목검색으로 변환요쳥합니다...

아래는 키움 신호검색 200일 신고가 신호수식입니다...이것을 신고가 첫봉(일봉기준) 예스 종목검색으로 요청합니다..highest(C(1), 200) < C
프로필 이미지
서민순
2025-11-05
199
글번호 227683
종목검색