커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표 변환 부탁 드립니다

// ====================================================================================================================} // INPUTS // ===================================================================================================================={ // User inputs for customization len = input.int(10, "Length") dsl_mode = input.string("Fast", "DSL Lines Mode", ["Fast", "Slow"]) == "Fast" ? 2 : 1 // Color definitions color_up = #8BD8BD color_dn = #436cd3 // Condition for a dashed line bool dashed = bool(bar_index % 2) // ====================================================================================================================} // CALCULATIONS // ===================================================================================================================={ // Calculate RSI with a period of 10 RSI = ta.rsi(close, 10) // Zero-Lag Exponential Moving Average function zlema(src, length) => lag = math.floor((length - 1) / 2) ema_data = 2 * src - src[lag] ema2 = ta.ema(ema_data, length) ema2 // Discontinued Signal Lines dsl_lines(src, length)=> up = 0. dn = 0. up := (src > ta.sma(src, length)) ? nz(up[1]) + dsl_mode / length * (src - nz(up[1])) : nz(up[1]) dn := (src < ta.sma(src, length)) ? nz(dn[1]) + dsl_mode / length * (src - nz(dn[1])) : nz(dn[1]) [up, dn] // Calculate DSL lines for RSI [lvlu, lvld] = dsl_lines(RSI, len) // Calculate DSL oscillator using ZLEMA of the average of upper and lower DSL Lines dsl_osc = zlema((lvlu + lvld) / 2, 10) // Calculate DSL Lines for the oscillator [level_up, level_dn] = dsl_lines(dsl_osc, 10) // Determine color based on oscillator position relative to its DSL Lines color = color.from_gradient(dsl_osc, level_dn, level_up, color_dn, color_up) // ====================================================================================================================} // PLOT // ===================================================================================================================={ // Plot upper and lower DSL Lines plot(level_up, color = dashed ? color.new(color_up, 20) : na, editable = false) plot(level_dn, color = dashed ? color.new(color_dn, 20) : na, editable = false) // Plot the DSL oscillator plot(dsl_osc, color = color, linewidth = 2) // Detect crossovers for signal generation up = ta.crossover(dsl_osc, level_dn) and dsl_osc < 55 dn = ta.crossunder(dsl_osc, level_up) and dsl_osc > 50 // Plot signals on the oscillator plotshape(up ? dsl_osc[1] : na, "", shape.circle, location.absolute, color_up, -1, "", chart.fg_color, false, size.tiny) plotshape(dn ? dsl_osc[1] : na, "", shape.circle, location.absolute, color_dn, -1, "", chart.fg_color, false, size.tiny) // Plot signals on the chart plotshape(up, "", shape.triangleup, location.bottom, color_up, 0, "Enter", chart.fg_color, true, size.tiny, force_overlay = true) plotshape(dn, "", shape.triangledown, location.top, color_dn, 0, "Exit", chart.fg_color, true, size.tiny, force_overlay = true) // Color the background on signal occurrences bgcolor(up ? color.new(color_up, 90) : na, force_overlay = true, editable = false) bgcolor(dn ? color.new(color_dn, 90) : na, force_overlay = true, editable = false) // Color candles based on signals candle_col = up ? color.new(color_up, 0) : dn ? color.new(color_dn, 0) : na plotcandle(open, high, low, close, "", candle_col, candle_col, bordercolor = candle_col, force_overlay = true, editable = false) // Plot horizontal lines for visual reference h = plot(75, display = display.none, editable = false) m = plot(50, display = display.none, editable = false) l = plot(25, display = display.none, editable = false) // Fill areas between horizontal lines fill(m, h, 120, 50, color_up, na, editable = false) fill(m, l, 50, -20, na, color_dn, editable = false) // ====================================================================================================================}
프로필 이미지
재벌후손
2025-05-03
441
글번호 190565
지표
답변완료

NthHighest 관련 질문입니다.

안녕하세요. NthHighest(N, Value, Length) 함수가 궁금한데 예시를 통해 질문 드립니다. 1) 첫번째 질문입니다. 지난 30일 동안 20일이동평균의 값 중 가장 큰 값부터 위에서 아래로 3번째로 큰 값을 찾고 싶습니다. 그러면, NthHighest(3, 20일이동평균, 30) 이렇게 사용하면 될까요? 2) 두번째 질문입니다. 만약에 1번이 맞다고하면, 말도 안되는 가정이지만 NthHighest(3, 20일이동평균, 30) 수식을 사용했을 때 30일 기간 중 20일이동평균의 값이 1과 2 딱 2가지 밖에 없다고 한다면, 그럼 그 결과 값은 어떤게 나오는 건가요? 3번째 큰 값이 없어서요.. 늘 감사합니다 좋은 하루 보내세요.
프로필 이미지
이루나라
2025-05-04
363
글번호 190564
종목검색
답변완료

검색식 부탁드립니다

수식만 들어가면 에러가 나서 캡쳐해서 보냅니다
프로필 이미지
nams60
2025-05-02
359
글번호 190563
종목검색

nams60 님에 의해서 삭제되었습니다.

프로필 이미지
nams60
2025-05-02
1
글번호 190562
종목검색
답변완료

종목검색식 부탁드림니다.

항상 노고에 감사드림니다. 아래의 수식을 종목검색식으로 부탁드림니다. A=Max(C, O); B=Min(C, O); B1=Highest(A, 60); B2=Lowest(B, 60); B3=(B1-B2)/B2*100; 최종= B3(1)<30 && Crossup(C, B1(1)) && Highest(V, 60, 1)<V
프로필 이미지
존슨비치
2025-05-02
406
글번호 190553
종목검색
답변완료

검색식 부탁 드립니다._(__)_

항상 도와주심에 감사드립니다. _(__)_ 0봉전에서 20일선이 60일선을 골든 크로스를 한 시점의 20일선과 ..... 몇 봉전인지는 모르지만 20일선이 60일선을 데드크로스를 한 시점의 20일선의 값이 3.5프로이내인 종목 검색식을 부탁드립니다.
프로필 이미지
한칼부르스
2025-05-02
379
글번호 190550
종목검색

사공하늘 님에 의해서 삭제되었습니다.

프로필 이미지
사공하늘
2025-05-02
124
글번호 190549
검색
답변완료

시작시간 문의

늘 감사합니다. 전일의 14시00분 부터 15시35분 사이에 최고점과 최저점을 수평선으로 연결해 주세요. 다음날 장으로 연결됩니다. data2용으로 만들어 주세요. 감사합니다.
프로필 이미지
상암동
2025-05-02
313
글번호 190548
지표
답변완료

수식변환 부탁드립니다.

안녕하세요 수식변환 부탁드립니다. .// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // author &#169; KivancOzbilgic // developer &#169; KivancOzbilgic //@version=5 indicator('AlphaTrend', shorttitle='AT', overlay=true, format=format.price, precision=2, timeframe='') coeff = input.float(1, 'Multiplier', step=0.1) AP = input(14, 'Common Period') ATR = ta.sma(ta.tr, AP) src = input(close) showsignalsk = input(title='Show Signals?', defval=true) novolumedata = input(title='Change calculation (no volume data)?', defval=false) upT = low - ATR * coeff downT = high + ATR * coeff AlphaTrend = 0.0 AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT color1 = AlphaTrend > AlphaTrend[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3) k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3) fill(k1, k2, color=color1) buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2]) sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2]) K1 = ta.barssince(buySignalk) K2 = ta.barssince(sellSignalk) O1 = ta.barssince(buySignalk[1]) O2 = ta.barssince(sellSignalk[1]) plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0)) plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0)) alertcondition(buySignalk and O1 > K2, title='Potential BUY Alarm', message='BUY SIGNAL!') alertcondition(sellSignalk and O2 > K1, title='Potential SELL Alarm', message='SELL SIGNAL!') alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!') alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!') alertcondition(ta.cross(close, AlphaTrend), title='Price Cross Alert', message='Price - AlphaTrend Crossing!') alertcondition(ta.crossover(low, AlphaTrend), title='Candle CrossOver Alarm', message='LAST BAR is ABOVE ALPHATREND') alertcondition(ta.crossunder(high, AlphaTrend), title='Candle CrossUnder Alarm', message='LAST BAR is BELOW ALPHATREND!') alertcondition(ta.cross(close[1], AlphaTrend[1]), title='Price Cross Alert After Bar Close', message='Price - AlphaTrend Crossing!') alertcondition(ta.crossover(low[1], AlphaTrend[1]), title='Candle CrossOver Alarm After Bar Close', message='LAST BAR is ABOVE ALPHATREND!') alertcondition(ta.crossunder(high[1], AlphaTrend[1]), title='Candle CrossUnder Alarm After Bar Close', message='LAST BAR is BELOW ALPHATREND!')
프로필 이미지
이글루
2025-05-02
559
글번호 190547
지표