커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

종목검색식으로 변환 부탁드립니다.

input : Period(20),N(5);var : T(0),상승(False),하락(False),조건(False);var : TH(0),TH상단(0);T = LRL(C,period) + LRS(C,period);상승=T>T[1]; 하락=T<T[1]; 조건=CountIf(하락, n)==n && CountIf(상승, n)[n]==n; if 조건 Then TH = T[n]; TH상단 = iff(T> TH, 0, TH);value1 = Ema(T, 20); value2 = Ema(value1, 20) ;value3 = Ema(value2, 20) ;if TH상단 > 0 and value1 > Value2 and Value2 > Value3 Then Find(1);위 수식에아래 수식을 추가로 넣고 싶습니다.c >= BollBandUp(20,2) and c >= BollBandUp(240,2) and c >= ma(C,240) and C == highest(C,299) and C > (H+L)/2 if m >= 10000000000 and C >= C[1] and C == highest(C,299) and O >= C[1]*1.045 또 위수식에 아래 수식을 넣고 싶습니다.var1 = OSCV(5,20);var2 = OSCV(5,60);var3 = OSCV(5,120);var4 = OSCV(5,300);if C >= C[1]*1.05 and C > H[1] and H == highest(H,60) and var1 >= 0 and var2 >= 0 and var3 >= 0 and var4 >= 0 Then Find(1);수식 배열을 정리해 주시면 감사하겠습니다.
프로필 이미지
까르멘
2025-12-26
189
글번호 229395
종목검색

까르멘 님에 의해서 삭제되었습니다.

프로필 이미지
까르멘
2025-12-26
3
글번호 229390
종목검색
답변완료

부탁드립니다

사용가능하도록 부탁드립니다.//@version=6indicator("Reverse RSI", overlay=false)rsi_length = input.int(14, title="RSI Length", minval=1)ob_level = input.int(75, title="Overbought Level")os_level = input.int(25, title="Oversold Level")invRSI(target, length) => target_rs = target / (100 - target) up = math.max(close-close[1], 0) down = math.max(close[1]-close, 0) prev_avg_up = ta.rma(up, length) prev_avg_down = ta.rma(down, length) price_up = target_rs * (prev_avg_down * (length - 1)) - (prev_avg_up * (length - 1)) + close price_down = (prev_avg_down * (length - 1) - (prev_avg_up * (length - 1)) / target_rs) + close current_rsi = ta.rsi(close, length) price = target > current_rsi ? price_up : price_down priceprice_ob = invRSI(ob_level, rsi_length)price_mid = invRSI(50, rsi_length)price_os = invRSI(os_level, rsi_length)upside = (price_ob-close)/close*100downside = (close-price_os)/close*100net = upside-downsideplot(upside, title="Upside Line", color=color.green)plot(downside, title="Downside Line", color=color.red)plot(net, title="Net Line", color=net>0?color.new(color.green, 30):color.new(color.red, 30), style=plot.style_columns)hline(0, "Zero Line")
프로필 이미지
다올
2025-12-26
316
글번호 229381
지표
답변완료

변환 부탁 드립니다.

트레이팅 뷰 지표입니다.사용가능 하도록 수정 부탁 드립니다.//@version=6indicator( title="Kalman Adjusted Average True Range [BackQuant]", shorttitle = "Kalman ATR [BackQuant]", overlay=true)// Define User Inputsconst string tooltip1 = "If T3 is selected as the moving average this will be the volume factor, if ALMA is selected it will be the sigma, ELSE it is nothing"simple bool showAtr = input.bool(true, "Plot Kalman Atr on Chart?")series float pricesource = input.source(close, "Kalman Price Source", group = "Calculation")simple float processNoise = input.float(0.01, title="Process Noise", step = 0.01, group = "Calculation")simple float measurementNoise = input.float(3.0, title="Measurement Noise", group = "Calculation")simple int N = input.int(5, title="Filter Order", minval=1, group = "Calculation")simple int periodAtr = input.int(5, "Period", group = "Kalman Atr")simple float factorAtr = input.float(0.5, "Factor", step = 0.01, group = "Kalman Atr")simple bool paintCandles = input.bool(false, "Paint Candles According to trend?")simple bool showMA = input.bool(false, "Show Atr Moving Average as Confluence?",group = "Confluence")string movingAverageType = input.string("Ema", title="MA Type", options=["SMA", "Hull", "Ema", "Wma", "Dema", "RMA", "LINREG", "ALMA"],group = "Confluence")simple float vfsig = input.float(0.7, "Volume Factor if T3, Sigma if ALMA", group = "Confluence", tooltip = "If T3 is selected as the moving average this will be the volume factor, if ALMA is selected it will be the sigma, ELSE it is nothing")simple int movingAveragePeriod = input.int(50, "Moving Average Period", group = "Confluence")simple color longColour = input.color(#00ff00, "Long Colour", group = "Colors")simple color shortColour = input.color(#ff0000, "Short Color", group = "Colors")/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////// Functionvar float[] stateEstimate = array.new_float(N, na)var float[] errorCovariance = array.new_float(N, 100.0)f_init(series float pricesource) => if na(array.get(stateEstimate, 0)) for i = 0 to N-1 array.set(stateEstimate, i, pricesource) array.set(errorCovariance, i, 1.0)f_kalman(series float pricesource) => // Prediction Step predictedStateEstimate = array.new_float(N) predictedErrorCovariance = array.new_float(N) for i = 0 to N-1 array.set(predictedStateEstimate, i, array.get(stateEstimate, i)) // Simplified prediction array.set(predictedErrorCovariance, i, array.get(errorCovariance, i) + processNoise) kalmanGain = array.new_float(N) for i = 0 to N-1 kg = array.get(predictedErrorCovariance, i) / (array.get(predictedErrorCovariance, i) + measurementNoise) array.set(kalmanGain, i, kg) array.set(stateEstimate, i, array.get(predictedStateEstimate, i) + kg * (pricesource - array.get(predictedStateEstimate, i))) array.set(errorCovariance, i, (1 - kg) * array.get(predictedErrorCovariance, i)) array.get(stateEstimate, 0)KalmanAtrWithBands(pricesource, lookback, atrFactor)=> f_init(pricesource) kalmanFilteredPrice = f_kalman(pricesource) atr = ta.atr(lookback) trueRange = atr * atrFactor kalmanatr = kalmanFilteredPrice kalmanatr := nz(kalmanatr[1], kalmanatr) trueRangeUpper = kalmanFilteredPrice + trueRange trueRangeLower = kalmanFilteredPrice - trueRange if trueRangeLower > kalmanatr kalmanatr := trueRangeLower if trueRangeUpper < kalmanatr kalmanatr := trueRangeUpper kalmanatr// Function Outkalmanatr = KalmanAtrWithBands(pricesource, periodAtr, factorAtr)/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////// Moving Average Switch TypemovingAverage(source, length, type, vfsig) => switch type "SMA" => ta.sma(source, length) "Hull" => ta.hma(source, length) "Ema" => ta.ema(source, length) "Wma" => ta.wma(source, length) "Dema" => ta.dema(source, length) "RMA" => ta.rma(source, length) "LINREG" => ta.linreg(source, length, 0) "ALMA" => ta.alma(source, length, 0, vfsig)maOut = movingAverage(kalmanatr, movingAveragePeriod, movingAverageType, vfsig)/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////// ConditionskalmanatrLong = ta.crossover(kalmanatr, kalmanatr[1])kalmanatrShort = ta.crossunder(kalmanatr, kalmanatr[1])// Colour Condtionsvar color Trend = #ffffffif kalmanatrLong Trend := longColourif kalmanatrShort Trend := shortColour// Plottingplot( showAtr ? kalmanatr : na, "ATR", color=Trend, linewidth = 2 )barcolor(paintCandles ? Trend : na)plot(showMA ? maOut : na, "Moving Average", color.white, 2, plot.style_line)/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////// Alertsalertcondition( kalmanatrLong, title="Kalman ATR Trend Up", message="Kalman ATR Trend Up - {{ticker}} - {{interval}}" )alertcondition( kalmanatrShort, title="Kalman ATR Trend Down", message="Kalman ATR Trend Down - {{ticker}} - {{interval}}" )
프로필 이미지
다올
2025-12-26
412
글번호 229373
지표
답변완료

부탁드립니다

1 1봉전에 1000원 이상인 종목 검색식 부탁 드립니다
프로필 이미지
님이랑
2025-12-26
122
글번호 229371
종목검색
답변완료

종목검색 수식 부탁드립니다.

타 증권사에서 쓰던 수식인데..CrossDown(DIMinus(14),25)이 신호가 일봉상 6개월동안 발생빈도가 5회 이상 발생한 종목 검색감사합니다.
프로필 이미지
gaara
2025-12-26
106
글번호 229370
종목검색
답변완료

질문 드립니다

안녕하세요일반 차트에 스토캐스틱 지표를 적용하고위의 차트를 갭보정(gapless)로 차트 설정을 변경하면지표 또한 갭보정으로 변경 되는 것으로 알고 있읍니다.차트를 갭보정하고 지표도 따라서 갭보정으로 변경 된다면,수식으로 갭보정을 할 필요가 없지 않나요?아니면, 갭보정이 적용된 차트에서 표시 되는 지표는 오차가 발생해서 그런가요?시스템을 로직을 만들 때도갭보정이 된 차트에 적용하면, 로직에 갭보정을 할 필요가 없을 듯해서...감사 합니다.
프로필 이미지
유리알유희
2025-12-26
160
글번호 229369
지표
답변완료

문의드립니다.

아래 식에서 조정하려고 합니다. (아래 식은 주가가 하단선 또는 상단선을 닿거나 돌파한 경우 즉 선과 붙어 있을 때만 신호가 발행하는데 선과 떨어져 있어도 신호 발생을 원합니다.) 우선 매수 경우 볼린져 하단선을 닿거나 돌파 할 것(주가가 하단선을 벗어나 붙어 있지 않거나 또는 다시 하단선 위로 올라 온 경우라도 적용되기를 원함) 다음으로 TRIX 0선 아래이고 골든 크로스 발생 할 때 매수 (피라미딩 방식) 청산은 제가 직접 할 것입니다. 매도 경우 볼린져 상단선을 닿거나 돌파 할 것(주가가 상단선을 벗어나 붙어 있지 않거나 또는 다시 상단선 아래로 내려온 경우라도 적용되기를 원함) 다음으로 TRIX 0선 위이고 데드 크로스 발생 할 때 매도 (피라미딩 방식) 청산은 제가 직접 할 것입니다. 부탁드립니다.1Input : Period(5), sigPeriod(3),BBP(20),DV(1);var : TRIXv(0),TRIXs(0),BBdn(0);TRIXv = TRIX(Period);TRIXs = ema(TRIXv,sigPeriod);BBdn = BollBandDown(BBP,dv);if L <= BBdn and CrossUp(TRIXv,TRIXs) and TRIXv < 0 Then Buy("B",OnClose,def);2Input : Period(5), sigPeriod(3),BBP(20),DV(1);var : TRIXv(0),TRIXs(0),BBup(0);TRIXv = TRIX(Period);TRIXs = ema(TRIXv,sigPeriod);BBup = BollBandUp(BBP,dv);if H >= BBup and CrossDown(TRIXv,TRIXs) and TRIXv > 0 Then Sell("S",OnClose,def);
프로필 이미지
선물대장
2025-12-26
147
글번호 229368
시스템
답변완료

종목검색식 부탁드립니다

1. 일봉차트에서, 주봉 60 이평선을 그어서 일봉차트에서주봉 60이평선 상하 1%에 있는 종목검색식 부탁드립니다. (일봉에서) (음봉 양봉 모두 포함)
프로필 이미지
일지매7
2025-12-26
99
글번호 229367
종목검색