커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3218
글번호 230811
답변완료
부탁합니다.
안녕하세요.아래 트레딩뷰 지표 변환부탁 드리며, 추운 날씨에 건강관리 잘하세요.//@version=4// MACDsrc1 = closewindow_len = 28v_len = 14price_spread = stdev(high-low, window_len)v = cum(sign(change(src1)) * volume)smooth = sma(v, v_len)v_spread = stdev(v - smooth, window_len)shadow = (v - smooth) / v_spread * price_spreadout = shadow > 0 ? high + shadow : low + shadowlen10=input(1,title="OBV Length ")obvema=ema(out,len10)//src = obvematype = input(defval="DEMA", title="MA Type", options=["TDEMA", "TTEMA", "TEMA", "DEMA", "EMA", "AVG", "THMA", "ZLEMA", "ZLDEMA", "ZLTEMA", "DZLEMA", "TZLEMA", "LLEMA", "NMA"])showma = truelen = input(9, title="MA Length ")showma1 = falselen1 = 26showma2 =falselen2 = 52nma(src, length1, length2) => lambda = length1 / length2 alpha = lambda * (length1 - 1) / (length1 - lambda) ma1 = ema(src, length1) ma2 = ema(ma1, length2) nma = (1 + alpha) * ma1 - alpha * ma2 dema(src, len) => ma1 = ema(src, len) ma2 = ema(ma1, len) 2 * ma1 - ma2tema(src, len) => ma1 = ema(src, len) ma2 = ema(ma1, len) ma3 = ema(ma2, len) 3 * (ma1 - ma2) + ma3tdema(src, len) => ma1 = dema(src, len) ma2 = dema(ma1, len) ma3 = dema(ma2, len) 3 * (ma1 - ma2) + ma3ttema(src, len) => ma1 = tema(src, len) ma2 = tema(ma1, len) ma3 = tema(ma2, len) 3 * (ma1 - ma2) + ma3tnma(src, len) => ma1 = nma(src, len, 3) ma2 = nma(ma1, len, 3) ma3 = nma(ma2, len, 3) 3 * (ma1 - ma2) + ma3hma(src, len) => wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))thma(src, len) => ma1 = hma(src, len) ma2 = hma(ma1, len) ma3 = hma(ma2, len) 3 * (ma1 - ma2) + ma3zlema(src, len) => lag = round((len - 1) / 2) zlsrc = src + (src - src[lag]) ema(zlsrc, len)zldema(src, len) => lag = round((len - 1) / 2) zlsrc = src + (src - src[lag]) dema(zlsrc, len) zltema(src, len) => lag = round((len - 1) / 2) zlsrc = src + (src - src[lag]) tema(zlsrc, len) dzlema(src, len) => ma1 = zlema(src, len) ma2 = zlema(ma1, len) 2 * ma1 - ma2tzlema(src, len) => ma1 = zlema(src, len) ma2 = zlema(ma1, len) ma3 = zlema(ma2, len) 3 * (ma1 - ma2) + ma3llema(src, len) => srcnew = 0.25*src + 0.5*src[1] + 0.25*src[2] ema(srcnew, len) lltema(src, len) => srcnew = 0.25*src + 0.5*src[1] + 0.25*src[2] tema(srcnew, len)myma(src, len) => if type == "EMA" ema(src, len) else if type == "DEMA" dema(src, len) else if type == "TEMA" tema(src, len) else if type == "TDEMA" tdema(src, len) else if type == "TTEMA" ttema(src, len) else if type == "THMA" thma(src, len) else if type == "ZLEMA" zlema(src, len) else if type == "ZLDEMA" zldema(src, len) else if type == "ZLTEMA" zltema(src, len) else if type == "DZLEMA" dzlema(src, len) else if type == "TZLEMA" tzlema(src, len) else if type == "LLEMA" llema(src, len) else if type == "NMA" nma(src, len, len1) else avg(ttema(src, len), tdema(src, len)) ma = showma ? myma(src, len) : naslow_length = input(title="MACD Slow Length", type=input.integer, defval=26)//signal_length = input(title="MACD Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)src12=closeplot(0,linewidth=3,color=color.black)// Calculating MACDslow_ma = ema(src12, slow_length)macd =ma-slow_ma//signal_length=input(9)//signal = ema(macd, signal_length)//plot(signal,linewidth=2)src5 = macdlen5 = input(2)offset = 0calcSlope(src5, len5) => sumX = 0.0 sumY = 0.0 sumXSqr = 0.0 sumXY = 0.0 for i = 1 to len5 val = src5[len5-i] per = i + 1.0 sumX := sumX + per sumY := sumY + val sumXSqr := sumXSqr + per * per sumXY := sumXY + val * per slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX) average = sumY / len5 intercept = average - slope * sumX / len5 + slope [slope, average, intercept]var float tmp = na[s, a5, i] = calcSlope(src5, len5)tt1=(i + s * (len5 - offset))//---p = 1,src15=tt1b5 = 0.,dev5 = 0.,oc = 0n5 = cum(1) - 1a15 = cum(abs(src15 - nz(b5[1],src15)))/n5*pb5 := src15 > nz(b5[1],src15) + a15 ? src15 : src15 < nz(b5[1],src15) - a15 ? src15 : nz(b5[1],src15)//----dev5 := change(b5) ? a15 : nz(dev5[1],a15)//----oc := change(b5) > 0 ? 1 : change(b5) < 0 ? -1 : nz(oc[1])//----cs = oc == 1 ? color.blue : color.red//change(oc)>0plot(b5,color=cs,linewidth=4,transp=50)//down = change(oc)<0 up = change(oc)>0showsignal=input(false)plot(showsignal and up ?tt1 :na, style=plot.style_cross, color=color.blue, linewidth=4, transp=0,offset=-1)plot(showsignal and down ?tt1 :na, style=plot.style_cross, color=color.red, linewidth=4, transp=0,offset=-1)
2026-02-05
534
글번호 230336
답변완료
문의 드립니다
var : xClose(0),xOpen(0),xHigh(0),xLow(0);if Bdate != Bdate[1] Then { xOpen = open; xClose = (O+H+L+C+c)/5; xHigh = MaxList( high, xOpen, xClose); xLow = MinList( low, xOpen,xClose);}else{ xClose = (O+H+L+C+c)/5; xOpen = (xOpen [1] + xClose [1])/2 ; xHigh = MaxList(High, xOpen, xClose) ; xLow = MinList(Low, xOpen, xClose) ;} if date != date[1] Then{var1 = 0;var2 = 0;var3 = 0;}var1 = var1+1;if XClose > Xopen Thenvar2 = var2+1;if XClose < Xopen Thenvar3 = var3+1;Var4 = Var2 - Var3;if var4> 0 Thenplot1(var4,"1",REd);Elseplot1(var4,"1",BLUe);PlotBaseLine1(0, "기준선");--------------------------------위식을 야간선물용으로 수정 부탁드립니다저녁 6시부터 다음날 새벽 5시30분 까지의 데이타만 나오게..감사합니다
2026-02-04
201
글번호 230335
답변완료
관심종목내에서 종목선정가능한가요?
관심종목내에서만종목선정하는 방법이 있는지 문의드립니다.
2026-02-04
157
글번호 230334
답변완료
NH트레이더에서는 종목검색문의
시스템트레이딩 메뉴에서 [6109]Yes Language에 종목검색으로 검색식을 추가까지는 하였는데, 이 추가한 검색식이 NH트레이더의 [5201] 종목검색에 검색식이 안 나옵니다.참고로 NH트레이더는 처음입니다.
2026-02-04
152
글번호 230333
답변완료
검색식과 종목검색식 부탁 드립니다1
트레이딩뷰의 RSI DIVERGENCE 지표입니다.한번 더 검색식과 종목검색식 부탁드립니다 조건은 1) divergence 값이 0보다 작고 2) divergence 지표의 색상이 red에서 lime으로 바뀔 때 입니다input : len_fast(5),len_slow(14);var : src_fast(0),src_slow(0);var : alpha_fast(0),up_fast(0),down_fast(0),rsi_fast(0);var : alpha_slow(0),up_Slow(0),down_slow(0),rsi_slow(0);var : divergence(0);src_fast = C;var1 = max(src_fast-src_fast[1],0);Var2 = -min(src_fast-src_fast[1],0);src_slow = C;var3 = max(src_slow-src_slow[1],0);Var4 = -min(src_slow-src_slow[1],0);alpha_fast = 1/len_fast;up_fast = 0;up_fast = IFf(IsNan(up_fast[1])== true, ma(var1,len_fast),alpha_fast*var1+(1 - alpha_fast)*up_fast[1]);down_fast = 0;down_fast = IFf(IsNan(down_fast[1])== true, ma(var2,len_fast),alpha_fast*var2+(1 - alpha_fast)*down_fast[1]);rsi_fast = iff(down_fast == 0 , 100 , IFf( up_fast == 0 , 0 , 100 - (100 / (1 + up_fast / down_fast))));alpha_slow = 1/len_slow;up_slow = 0;up_slow = IFf(IsNan(up_slow[1])== true, ma(Var3,len_slow),alpha_slow*Var3+(1 - alpha_slow)*up_slow[1]);down_slow = 0;down_slow = IFf(IsNan(down_slow[1])== true, ma(Var4,len_slow),alpha_slow*Var4+(1 - alpha_slow)*down_slow[1]);rsi_slow = iff(down_slow == 0 , 100 , iff(up_slow == 0 , 0 , 100 - (100 / (1 + up_slow / down_slow))));divergence = rsi_fast - rsi_slow;plot1(divergence, "divergence",iff(divergence > 0 , lime,red));PlotBaseLine1(0);
2026-02-04
211
글번호 230332
답변완료
부탁 드립니다.
주봉 배열에 담긴 신호를 가져와 제어를 하고 싶읍니다. 신호 종류가 매수 신호가 [[아닐 때]] 를 표현 하려고 하는데 !( Ronman[0].signalKind == 1) 표현이 맞는지? Ronman[0].signalKind != 1 표현이 맞는지? 제작중 질문 드립니다.항상 감사 합니다.
2026-02-04
131
글번호 230331
답변완료
수식문의드립니다
if ( CrossDown(SDL1,SDL3) or ( SDL1[1] > SDL3[1] and SDL1 < SDL3 ) ) and C <= EE5m and C > O and Condition3 == true and S3과6상승전환선데드표시 == 1 then{ Plot40(표시가격40, "S3과6상승전환선데드신호"); #검은색-일자형 3단 if Index != tx9_Idx Then { tx9 = Text_New(sDate,sTime,S3과6상승전환선데드가격,"◇"); tx9_Idx = Index; } Else { Text_SetLocation(tx9, sDate, sTime, S3과6상승전환선데드가격); Text_SetString(tx9, "◇"); } Text_SetColor(tx9,LimE); #Black, White, Blue Text_SetStyle(tx9,2,0); # 좌우:중앙(2), 상하:상단(0) -> 좌표 아래로 글자가 매달림}==============================================위와 같은 수식을 구성하여 차트에 적용해보면 plot방식의 신호는 과거봉이던 현재봉이던 잘 표시가 되는데,text방식으로 표현된 신호수식은 과거봉은 잘 표시가 되나 현재봉에서만큼은 신호표시가 되지 않는 이유가 뭔가요?
2026-02-04
218
글번호 230330
답변완료
차트 모양이 다릅니다
안녕하십니까수고가 많으십니다프로그램사용법에 글을 올렸는데 2일 지나도 답변이 없어서 여기에 올립니다기존에 사용하던 전략실행차트와 새로 다운로드한 HTS의 차트가 다릅니다1번 파일(그림1)은 기존 사용하던 차트입니다2번 파일(그림2)은 컴을 초기화 후 HTS를 새로 다운로드해서 실행한 차트입니다1번과 2번의 차이는 상단바의 모양이 다르다는 것입니다어떻게 하면 2번을 1번과 같이 변경할 수 있습니까?
2026-02-04
423
글번호 230328
답변완료
피보나치 입력시간
입력 or 시스템 등록 이후에 매수신호 발생 원합니다. (항시 설정 아니고, 필요 시간에만 설정함)그림처럼 입력을 11시17분에 하면, 이후 신호가 나오기를 원하는데 ,입력 이전 시간에 이미 발생되어 의도와 다릅니다.입력시간 이전 데이터는 무시하거나, 진입시간을 설정하거나 하여,입력 시간 이후에 각 선마다 한번씩 매수 신호 발생하게 수정 부탁드립니다.input : 고점(789.70),저점(784.95);var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);var1 = 고점;Var2 = 저점;Var3 = 저점-(고점-저점)*0.587;Var4 = 저점-(고점-저점)*0.95;Var5 = 저점-(고점-저점)*1.537;if Index == 1 Then{ TL1 = TL_New(sDate,sTime,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(sDate,sTime,var2,NextBarSdate,NextBarStime,var2); TL3 = TL_New(sDate,sTime,var3,NextBarSdate,NextBarStime,var3); TL4 = TL_New(sDate,sTime,var4,NextBarSdate,NextBarStime,var4); TL5 = TL_New(sDate,sTime,var5,NextBarSdate,NextBarStime,var5); TL_SetExtRight(TL1,true); TL_SetExtRight(TL2,true); TL_SetExtRight(TL3,true); TL_SetExtRight(TL4,true); TL_SetExtRight(TL5,true); TL_SetColor(TL1,Magenta); TL_SetColor(TL2,Gold); TL_SetColor(TL3,Green); TL_SetColor(TL4,Blue); TL_SetColor(TL5,Magenta); TL_SetSize(TL2,2); }if Bdate != Bdate[1] Then{ Condition1 = False; Condition2 = False; Condition3 = False;}if MarketPosition == 1 Then{ if IsEntryName("b3") == true Then Condition1 = true; if IsEntryName("b4") == true Then Condition2 = true; if IsEntryName("b5") == true Then Condition3 = true;}if Condition1 == False and L > var3 Then Buy("b3",AtLimit,var3);if Condition2 == False and L > var4 Then Buy("b4",Atlimit,var4);if Condition3 == False and L >= var5 Then Buy("b5",Atlimit,var5);if MarketPosition == 1 and BarsSinceEntry == 1 Then ExitLong("bx");
2026-02-04
463
글번호 230327