커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

차트데이타

마이크로 나스닥을 연결선물로 설정하고 60분봉으로 22.1.1.-25.12.20.으로 설정하면 22.4.16.부터 데이타가 있고 차트도 그때부터 그렵집니다. 그런데 15분봉으로 같은기간을 설정해도 22.4.19.부터 25.12.20.까지 그려집니다. 원인이 무엇인가요? 봉갯수 제한도 아닌것 같은데요? 시각하는 기간을 더 앞으로 땡겨도 역시나 22.4.16.부터 그려집니다.
프로필 이미지
산수유
2025-12-26
744
글번호 229401
시스템
답변완료

종목 검색식 부탁드려요

M5 = ma(C, 5);M20 = ma(C, 20);M60 = ma(C, 60);M12 = ma(C, 120);배열A = M5>M20 && M20>M60 && M60>M12;H50 = Highest(H, 500);조건 = 배열A && H50==H;조건1 = ABS(M5 / M12 - 1) < 0.01;bs = BarsSince(조건 && 조건1);신호 = bs>0 && CrossUp(m5, M12);
프로필 이미지
redcon
2025-12-26
376
글번호 229400
종목검색
답변완료

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

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
475
글번호 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
928
글번호 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
1449
글번호 229373
지표
답변완료

부탁드립니다

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

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

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

질문 드립니다

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