커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3293
글번호 230811
까르멘 님에 의해서 삭제되었습니다.
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
495
글번호 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
723
글번호 229373
답변완료
부탁드립니다
1 1봉전에 1000원 이상인 종목 검색식 부탁 드립니다
2025-12-26
150
글번호 229371
답변완료
종목검색 수식 부탁드립니다.
타 증권사에서 쓰던 수식인데..CrossDown(DIMinus(14),25)이 신호가 일봉상 6개월동안 발생빈도가 5회 이상 발생한 종목 검색감사합니다.
2025-12-26
141
글번호 229370
답변완료
질문 드립니다
안녕하세요일반 차트에 스토캐스틱 지표를 적용하고위의 차트를 갭보정(gapless)로 차트 설정을 변경하면지표 또한 갭보정으로 변경 되는 것으로 알고 있읍니다.차트를 갭보정하고 지표도 따라서 갭보정으로 변경 된다면,수식으로 갭보정을 할 필요가 없지 않나요?아니면, 갭보정이 적용된 차트에서 표시 되는 지표는 오차가 발생해서 그런가요?시스템을 로직을 만들 때도갭보정이 된 차트에 적용하면, 로직에 갭보정을 할 필요가 없을 듯해서...감사 합니다.
2025-12-26
217
글번호 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
206
글번호 229368
답변완료
종목검색식 부탁드립니다
1. 일봉차트에서, 주봉 60 이평선을 그어서 일봉차트에서주봉 60이평선 상하 1%에 있는 종목검색식 부탁드립니다. (일봉에서) (음봉 양봉 모두 포함)
2025-12-26
128
글번호 229367
답변완료
지표문의
185247번 볼린저밴드 중심선(이평선) 추가 부탁드립니다
2025-12-26
150
글번호 229366