커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

예스종목검색식 변환요청

항상 감사드립니다.다음 신호조건식을 예스 종목검색식으로 변환부탁드립니다.수고하십시오..A=(L(11) + L(10)+L(9) + L(8) + L(7) + L(6) + L(5)+L(4) + L(3) + L(2) +L(1)+ L+L(20)+L(40)+L(60)+L(100)+L(120)+L(150)+L(200)+L+L)/21;A1=(L(11) + L(10)+L(9) + L(8) + L(7) + L(6) + L(5)+L(4) + L(3) + L(2) +L(1)+ L+L(40)+L(60)+L(100)+L(120)+L(150)+L(200)+L+L)/20;A2=(L(11) + L(10)+L(9) + L(8) + L(7) + L(6) + L(5)+L(4) + L(3) + L(2) +L(1)+ L+L(60)+L(100)+L(120)+L(150)+L(200)+L+L)/19;A3=(L(11) + L(10)+L(9) + L(8) + L(7) + L(6) + L(5)+L(4) + L(3) + L(2) +L(1)+ L+L(100)+L(120)+L(150)+L(200)+L+L)/18;B=max(A, A1, A2, A3);D=min(A, A1, A2, A3);E=(B+D)/2;Q=E*0.88;Z=L<=Q;M=floor(date/100)%100;B1=Lowestsince(1, M!=M(1), L);Z1=L==B1;Z && Z1
프로필 이미지
자유만세
2026-08-22
499
글번호 233358
종목검색
답변완료

요청 드립니다.

안녕하세요항상 빠른 답변 감사 드립니다.아래 식을 지표식, 종목검색식 변환 요청 드립니다.혹 분봉 및 일봉 적용시 설정 값 변경을 해줘야 한다면 자세한 안내 부탁드립니다.그럼 좋은 하루 되세요// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/// © LuxAlgo//@version=5indicator("Liquidity Swings [LuxAlgo]" , overlay = true , max_lines_count = 500 , max_labels_count = 500 , max_boxes_count = 500)//------------------------------------------------------------------------------//Settings//-----------------------------------------------------------------------------{length = input(14, 'Pivot Lookback')area = input.string('Wick Extremity', 'Swing Area', options = ['Wick Extremity', 'Full Range'])intraPrecision = input(false, 'Intrabar Precision', inline = 'intrabar')intrabarTf = input.timeframe('1', '' , inline = 'intrabar')filterOptions = input.string('Count', 'Filter Areas By', options = ['Count', 'Volume'], inline = 'filter')filterValue = input.float(0, '' , inline = 'filter')//StyleshowTop = input(true, 'Swing High' , inline = 'top', group = 'Style')topCss = input(color.red, '' , inline = 'top', group = 'Style')topAreaCss = input(color.new(color.red, 50), 'Area', inline = 'top', group = 'Style')showBtm = input(true, 'Swing Low' , inline = 'btm', group = 'Style')btmCss = input(color.teal, '' , inline = 'btm', group = 'Style')btmAreaCss = input(color.new(color.teal, 50), 'Area', inline = 'btm', group = 'Style')labelSize = input.string('Tiny', 'Labels Size', options = ['Tiny', 'Small', 'Normal'], group = 'Style')//-----------------------------------------------------------------------------}//Functions//-----------------------------------------------------------------------------{n = bar_indexget_data()=> [high, low, volume][h, l, v] = request.security_lower_tf(syminfo.tickerid, intrabarTf, get_data())get_counts(condition, top, btm)=> var count = 0 var vol = 0. if condition count := 0 vol := 0. else if intraPrecision if n > length if array.size(v[length]) > 0 for [index, element] in v[length] vol += array.get(l[length], index) < top and array.get(h[length], index) > btm ? element : 0 else vol += low[length] < top and high[length] > btm ? volume[length] : 0 count += low[length] < top and high[length] > btm ? 1 : 0 [count, vol]set_label(count, vol, x, y, css, lbl_style)=> var label lbl = na var label_size = switch labelSize 'Tiny' => size.tiny 'Small' => size.small 'Normal' => size.normal target = switch filterOptions 'Count' => count 'Volume' => vol if ta.crossover(target, filterValue) lbl := label.new(x, y, str.tostring(vol, format.volume) , style = lbl_style , size = label_size , color = #00000000 , textcolor = css) if target > filterValue label.set_text(lbl, str.tostring(vol, format.volume))set_level(condition, crossed, value, count, vol, css)=> var line lvl = na target = switch filterOptions 'Count' => count 'Volume' => vol if condition if target[1] < filterValue[1] line.delete(lvl[1]) else if not crossed[1] line.set_x2(lvl, n - length) lvl := line.new(n - length, value, n, value , color = na) if not crossed[1] line.set_x2(lvl, n+3) if crossed and not crossed[1] line.set_x2(lvl, n) line.set_style(lvl, line.style_dashed) if target > filterValue line.set_color(lvl, css)set_zone(condition, x, top, btm, count, vol, css)=> var box bx = na target = switch filterOptions 'Count' => count 'Volume' => vol if ta.crossover(target, filterValue) bx := box.new(x, top, x + count, btm , border_color = na , bgcolor = css) if target > filterValue box.set_right(bx, x + count)//-----------------------------------------------------------------------------}//Global variables//-----------------------------------------------------------------------------{//Pivot highvar float ph_top = navar float ph_btm = navar bool ph_crossed = navar ph_x1 = 0var box ph_bx = box.new(na,na,na,na , bgcolor = color.new(topAreaCss, 80) , border_color = na)//Pivot lowvar float pl_top = navar float pl_btm = navar bool pl_crossed = navar pl_x1 = 0var box pl_bx = box.new(na,na,na,na , bgcolor = color.new(btmAreaCss, 80) , border_color = na)//-----------------------------------------------------------------------------}//Display pivot high levels/blocks//-----------------------------------------------------------------------------{ph = ta.pivothigh(length, length)//Get ph counts[ph_count, ph_vol] = get_counts(ph, ph_top, ph_btm)//Set ph area and levelif ph and showTop ph_top := high[length] ph_btm := switch area 'Wick Extremity' => math.max(close[length], open[length]) 'Full Range' => low[length] ph_x1 := n - length ph_crossed := false box.set_lefttop(ph_bx, ph_x1, ph_top) box.set_rightbottom(ph_bx, ph_x1, ph_btm)else ph_crossed := close > ph_top ? true : ph_crossed if ph_crossed box.set_right(ph_bx, ph_x1) else box.set_right(ph_bx, n+3)if showTop //Set ph zone set_zone(ph, ph_x1, ph_top, ph_btm, ph_count, ph_vol, topAreaCss) //Set ph level set_level(ph, ph_crossed, ph_top, ph_count, ph_vol, topCss) //Set ph label set_label(ph_count, ph_vol, ph_x1, ph_top, topCss, label.style_label_down)//-----------------------------------------------------------------------------}//Display pivot low levels/blocks//-----------------------------------------------------------------------------{pl = ta.pivotlow(length, length)//Get pl counts[pl_count, pl_vol] = get_counts(pl, pl_top, pl_btm)//Set pl area and levelif pl and showBtm pl_top := switch area 'Wick Extremity' => math.min(close[length], open[length]) 'Full Range' => high[length] pl_btm := low[length] pl_x1 := n - length pl_crossed := false box.set_lefttop(pl_bx, pl_x1, pl_top) box.set_rightbottom(pl_bx, pl_x1, pl_btm)else pl_crossed := close < pl_btm ? true : pl_crossed if pl_crossed box.set_right(pl_bx, pl_x1) else box.set_right(pl_bx, n+3)if showBtm //Set pl zone set_zone(pl, pl_x1, pl_top, pl_btm, pl_count, pl_vol, btmAreaCss) //Set pl level set_level(pl, pl_crossed, pl_btm, pl_count, pl_vol, btmCss) //Set pl labels set_label(pl_count, pl_vol, pl_x1, pl_btm, btmCss, label.style_label_up)//-----------------------------------------------------------------------------}
프로필 이미지
느와르
2026-08-21
1284
글번호 233357
지표
답변완료

종목검색이 잘 되지 않아서 문의

[3202] 파워종목검색에서 일봉 기준봉 0으로 사용하고 있습니다.키움 조건식은AA=TEMA(C,60);BB=(Highest(H,26)+Lowest(L,26))/2;CrossUp(BB,AA);입니다.예스트레이더에서는 키움 TEMA를AA=EMA(EMA(EMA(C,60),60),60);로 변환하고 BB는 동일하게 사용했습니다.현재봉 신규 발생만 검색하기 위해Condition1=BB>AA;if Condition1==true and Condition1[1]==False Then Find(1);로 작성하고 일봉 기준봉 0으로 검색했습니다.그런데 탑코미디어는 2026년 8월 3일경 이미 해당 돌파가 발생한 것으로 확인되는데, 2026년 8월 21일 기준봉 0 검색결과에도 나타납니다.별도로 BB>AA와 BB[1]<=AA[1]을 각각 검색했을 때는 탑코미디어가 두 조건 모두 검색되지 않습니다.동일 종목에서 개별 조건은 False인데 이를 신규 발생 조건으로 구성한 검색에서는 종목이 검색되는 이유와, 당일(0봉) 신규 돌파 종목만 검색하는 정확한 파워종목검색 작성 방법을 확인 부탁드립니다.
프로필 이미지
승승장구_대풍
2026-08-21
892
글번호 233352
검색
답변완료

예스종목검색식 변환 요청

죄송하고 감사합니다.다음 조건식 예스 종목검색식으로 변환 부탁드립니다.분기 = (floor(date/100)%100)%3;A=Valuewhen(1, 분기==1 && 분기(1)==0, H);crossup(C, A)제가 한 번 해봤더니 엉뚱한 것들만 검색되네요..=====================var : 분기(0),A(Nan);분기 = (floor(date/100)%100)%3;if 분기==1 && 분기[1]==0 ThenA = H;if CrossUp(C, H) ThenFind(1);==================
프로필 이미지
자유만세
2026-08-21
272
글번호 233350
종목검색
답변완료

수고하십니다. 키움수식 파워종목 검색식 부탁드립니다.

A=(highest(high,9)+lowest(low,9))/2;B=(highest(high,26)+lowest(low,26))/2;B1=(avg(C*V,10)-avg(C*V,20))/avg(C*V,10)*100;B2=CMO(9);(CROSSUP(C,A) or CROSSUP(C,B) or CROSSUP(A,B)) AND B1>B1(1) AND (CROSSUP(B2,-50) OR CROSSUP(B2,0))감사합니다
프로필 이미지
foxdie08
2026-08-21
399
글번호 233342
종목검색
답변완료

예스종목검색식 변환 요청

항상 죄송하고 감사합니다.다음 조건식을 예스 종목검색식으로 변환 부탁드립니다.A=macd(12, 26);b=EAVG(a, 3);Y=VALUEWHEN(1, a>B, L);조건=C-Y;D=valuewhen(1, crossdown(조건, 0), L);A=macd(12, 26);b=EAVG(a, 3);Y1=VALUEWHEN(1, a<B, L);조건1=C-Y1;D1=valuewhen(1, crossup(조건1,0),L);E=valuewhen(1, L>D1, L, 0);조건2=D>E && C>D;K=valuewhen(1, 조건2, L);조건3=crossup(C, K) && C>K;cnt=countsince(조건3, ma(C,5) > ma(C, 6) && ma(C, 5)>K)==1;cnt && !cnt(1)
프로필 이미지
자유만세
2026-08-21
330
글번호 233341
종목검색
답변완료

예스종목검색식 변환 요청

항상 빠른 답변 감사드립니다.다음 조건식을 예스 종목검색식으로 변환 부탁드립니다.수고하십시오...A=macd(12, 26);b=EAVG(a, 3);Y=VALUEWHEN(1, a>B, L);조건=C-Y;D=valuewhen(1, crossdown(조건, 0), L);A=macd(12, 26);b=EAVG(a, 3);Y1=VALUEWHEN(1, a<B, L);조건1=C-Y1;D1=valuewhen(1, crossup(조건1,0),L);E=valuewhen(1, L>D1, L, 0);조건2=D>E && C>D;K=valuewhen(1, 조건2, L);crossup(C, K)
프로필 이미지
자유만세
2026-08-21
274
글번호 233340
종목검색
답변완료

수식 부탁드립니다.

옵션 가격을 불러오는데 a컴퓨터는 잘불러옴 그런데 b 컴퓨터는 종목을 찾을수가 없다고 함 객체 속성도 맞추었는데 ,,
프로필 이미지
구름달
2026-08-21
149
글번호 233339
지표
답변완료

시스템 포트폴리오 분석 해석

안녕하세요.전략식을 만들고, 시스템 포트폴리오 분석을 통하여 전략식을 분석하려고 하는데, cagr이랑 mdd를 어떻게 구하는지 모르겠어서 질문 드립니다.제가 다른 프로그램을 사용하다가 예스트레이딩으로 넘어와서 제가 못 찾은 건지, 다른 분들은 어떻게 하시는 건지 궁금합니다.연평균 손익과, 최대손실폭이 cagr이랑 mdd인거 같은데 다른 곳에서는 %로 나타났었는데, 여기서는 다르게 표현이 되서 혹시 %로 보려면 어떻게 볼 수 있는지 궁금합니다.해석하기가 힘듭니당.. ㅠ
프로필 이미지
차트꺽어브러
2026-08-20
314
글번호 233338
시스템