커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

문의

거래량이 20이평 거래량보다 클때는 붉은색 작을 때는 검정색부탁드립니다
프로필 이미지
레전드
2025-12-01
93
글번호 228494
지표
답변완료

문의 드립니다.

//============================================================================== // Inputs //==============================================================================smoothingLength = input.int(5, "Price Smoothing Length", group = "SuperSmoother Settings") fastLength = input.int(20, "Fast MA", group = "Moving Average Settings") slowLength = input.int(50, "Slow MA", group = "Moving Average Settings") srcMA = input.source(close, "Source Data", group = "Moving Average Settings")atrLength = input.int(20, "ATR Length", group = "Signal Generation") atrMultiplier = input.float(1.2, "ATR Multiplier", group = "Signal Generation") signalSensitivity = input.float(0.03, "Signal Sensitivity", minval=0.01, maxval=1.0, step=0.01, group = "Signal Generation")showVortexFill = input.bool(true, "Show Vortex Fill", group = "Visualization") fillTransparency = input.int(85, "Fill Transparency", minval = 0, maxval = 100, group = "Visualization") enhancedColors = input.bool(true, "Enhanced Colors", group = "Visualization")enableCandleColor = input.bool(true, "Enable Candle Coloring", group = "Candle Colors") //============================================================================== // SuperSmoother Function //==============================================================================supersmoother(src, length) => a1 = math.exp(-1.414 * 3.14159 / length) b1 = 2.0 * a1 * math.cos(1.414 * 3.14159 / length) c2 = b1 c3 = -a1 * a1 c1 = 1 - c2 - c3 ss = 0.0 ss := c1 * (src + nz(src[1])) / 2 + c2 * nz(ss[1]) + c3 * nz(ss[2]) ss//============================================================================== // Calculations //==============================================================================smoothedPrice = supersmoother(srcMA, smoothingLength) fastMA = ta.ema(smoothedPrice, fastLength) slowMA = ta.ema(smoothedPrice, slowLength)// True oscillator calculation - difference between MAs oscillator = fastMA - slowMA// Normalize oscillator for better visualization oscillatorNormalized = oscillator / ta.atr(20) * 100// Enhanced color system accel_raw = oscillator - oscillator[1] accel_smooth = ta.ema(accel_raw, 3)tanh(x) => ex = math.exp(2 * x) (ex - 1) / (ex + 1)accel_norm = tanh(accel_smooth / (ta.atr(20) * 0.01)) hue_raw = 60 + accel_norm * 60 hue = na(hue_raw[1]) ? hue_raw : (hue_raw + hue_raw[1]) / 2hsv_to_rgb(h, s, v) => c = v * s x = c * (1 - math.abs((h / 60) % 2 - 1)) m = v - c r = 0.0, g = 0.0, b = 0.0 if h < 60 r := c, g := x, b := 0 else if h < 120 r := x, g := c, b := 0 else if h < 180 r := 0, g := c, b := x else if h < 240 r := 0, g := x, b := c else if h < 300 r := x, g := 0, b := c else r := c, g := 0, b := x color.rgb(int((r + m) * 255), int((g + m) * 255), int((b + m) * 255))oscillatorColor = enhancedColors ? hsv_to_rgb(hue, 1.0, 1.0) : color.yellow// Signal line (smoothed oscillator) signalLine = ta.ema(oscillator, 25)//============================================================================== // Signal Generation - Focus on Oscillator-Signal Line Crossovers //==============================================================================atr = ta.atr(atrLength) minSignalThreshold = atr * signalSensitivity// Primary signals: Oscillator crossing above/below signal line bullishSignal = ta.crossover(oscillator, signalLine) and math.abs(oscillator - signalLine) > minSignalThreshold bearishSignal = ta.crossunder(oscillator, signalLine) and math.abs(oscillator - signalLine) > minSignalThreshold// Additional confirmation: momentum direction oscillatorMomentum = oscillator - oscillator[1] signalMomentum = signalLine - signalLine[1]// Enhanced signals with momentum confirmation strongBullishSignal = bullishSignal and oscillatorMomentum > 0 strongBearishSignal = bearishSignal and oscillatorMomentum < 0//============================================================================== // Plots //==============================================================================// Zero line reference zeroLine = hline(0, "Zero Line", color.gray, hline.style_dashed)// Main oscillator oscillatorPlot = plot(oscillator, color = oscillatorColor, title = "Oscillator", linewidth = 2)// Signal line signalColor = enhancedColors ? #FF6B35 : color.orange signalPlot = plot(signalLine, color = signalColor, title = "Signal Line", linewidth = 1)// Histogram (optional visualization) histogramColor = oscillator > signalLine ? (enhancedColors ? #00FF7F : color.green) : (enhancedColors ? #FF1493 : color.red) plot(oscillator - signalLine, color = color.new(histogramColor, 70), style = plot.style_histogram, title = "Histogram")// Zero line as plot for fill compatibility zeroLinePlot = plot(0, color = color.new(color.gray, 100), title = "Zero Line Plot")// Oscillator fills oscillatorFillColor = showVortexFill ? (oscillator > 0 ? color.new(enhancedColors ? #00FF7F : color.green, fillTransparency) : color.new(enhancedColors ? #FF1493 : color.red, fillTransparency)) : nafill(oscillatorPlot, zeroLinePlot, color = oscillatorFillColor, title = "Oscillator Fill")// Signal crossover fill crossFillColor = showVortexFill ? (oscillator > signalLine ? color.new(color.blue, fillTransparency + 10) : color.new(color.purple, fillTransparency + 10)) : nafill(oscillatorPlot, signalPlot, color = crossFillColor, title = "Signal Fill")// Updated Signal Plots - Focus on Crossover Signals plotshape(bullishSignal, "Buy Signal", shape.triangleup, location.belowbar, color.green, 0, size = size.small, force_overlay = true) plotshape(bearishSignal, "Sell Signal", shape.triangledown, location.abovebar, color.red, 0, size = size.small, force_overlay = true)// Strong signals with momentum confirmation plotshape(strongBullishSignal, "Strong Buy", shape.triangleup, location.belowbar, color.lime, 0, size = size.normal, force_overlay = true) plotshape(strongBearishSignal, "Strong Sell", shape.triangledown, location.abovebar, color.maroon, 0, size = size.normal, force_overlay = true)// Signal line crossover areas for additional context bgcolor(bullishSignal ? color.new(color.green, 95) : na, title = "Bullish Signal BG") bgcolor(bearishSignal ? color.new(color.red, 95) : na, title = "Bearish Signal BG")// Candle plot based on signal convergence and divergence // Determine candle color based on oscillator position relative to signal line candleColor = if not enableCandleColor na else if oscillator > signalLine color.green else if oscillator < signalLine color.red else color.gray// Apply candle coloring barcolor(candleColor, title = "Candle Color")위 수식에서 히스토그램은 빼고 두 라인선만 추출해서 예스 지표로 만들어주시고 그 두 선이 교차할때 매수/매도 신호가 나오는 시스템 수식도 하나 더 만들어주세요.
프로필 이미지
신대륙발견
2025-12-01
600
글번호 228493
지표
답변완료

종목검색식 요청드립니다.

아래 키움수식라인을 N봉(수정가능하게)이내 돌파한 종목을 검색하는 검색식과 지표를 만들고 싶습니다. 도움 부탁드립니다.* 키움수식라인 (Period - 14) Valuewhen(2,RSI(Period)<30,H);항상 감사합니다.^^
프로필 이미지
onlypsn
2025-11-30
116
글번호 228492
종목검색
답변완료

부탁드립니다

금일 Pivot이 전일 Pivot 보다 크다를 어떻게 표현하는지요?Pivot(1)Pivot[1]위의 두가지 차이가 무었입니까?
프로필 이미지
와우리
2025-11-30
102
글번호 228490
지표
답변완료

파라볼릭 강세약세

파라볼릭의 상승과 하락을, 강세 약세 박스로 표시. 감사합니다.
파라볼릭강세약세
프로필 이미지
고성
2025-11-30
106
글번호 228489
지표
답변완료

시스템식 질문입니다

1주식 1분봉 통합차트 에서조건 A 만족 종가의 진입가격 범위를 KRX 기준으로 상한가 하한가 사이 만족시스템식 입니다통합차트에서 단순히 dayclose(1) closeD(1) 를 불어오면 nxt 마지막값을 불어오게 되어서 상하한가 잘못불어오게 되더라구요2진입 후SL TP 설정으로 청산이 된 봉에는 (같은봉) 진입 금지 조건을 만들고싶습니다감사합니다
프로필 이미지
파인애플
2025-11-30
238
글번호 228488
시스템
답변완료

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

항상 고맙고 감사 드립니다. 1.파일2. 파일 입니다. 종목 검색식 부탁드립니다.
프로필 이미지
치치야
2025-11-29
149
글번호 228487
종목검색
답변완료

수식 압축하는 방법

1.전에 만들어 주신 파라볼릭 계산하는 수식입니다. 이게 변수 바로 아래 너무 길게 있어서 변수하고 진입과 청산식을 한번에 보기가 어렵습니다. 혹시 단 몇줄로 압축한다든가 하는 방법이 있으면 좀 알려주세요! if EP != 0 Then { if Direction == 1 then { EP = HighValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if High > HighValue then { HighValue = High; AF_Value = AF_Value + AF; if AF_Value >= AFmaX then AF_Value = AFmaX; } if Low < SAR_Value then { Direction = -1; SAR_Value = EP; AF_Value = 0; EP = 0; LowValue = low; } } else { EP = LowValue; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if Low < LowValue then { LowValue = Low; AF_Value = AF_Value + Af; if AF_Value >= AFmaX then AF_Value = AFmaX; } if High > SAR_Value then { Direction = 1; SAR_Value = EP; AF_Value = 0; EP = 0; HighValue = High; } } Sarv = SAR_Value; } else { if SAR_Value != 0 && EP == 0 then { if Direction == 1 then { EP = HighValue; AF_Value = AF; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if High > HighValue then { HighValue = High; AF_Value = AF_Value + AF; if AF_Value >= AFmaX then AF_Value = AFmaX; } } else { EP = LowValue; AF_Value = Af; SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value); if Low < LowValue then { LowValue = Low; AF_Value = AF_Value + AF; if AF_Value >= AFmaX then AF_Value = AFmaX; } } Sarv = SAR_Value; } else { if Direction == 0 then { if Close > Close[1] then Direction = 1; else if Close < Close[1] then Direction = -1; } else { if Direction == 1 then { if Close < Close[1] then { Direction = -1; SAR_Value = HighValue; Sarv = SAR_Value; } } if Direction == -1 then { if Close > Close[1] then { Direction = 1; SAR_Value = LowValue; Sarv = SAR_Value; } } } LowValue = min(Low, LowValue); HighValue = max(High, HighValue); } 2..일봉상 ema를 가져오고 60분봉상 adx를 가져와서 시장판단만 하고 지표계산은 60분봉으로 하여60분봉으로 진입청산식을 만드는게 가능한가요? 예를 들면 아래와 같이 Var :DailyEMA200(0), ADX(0),regime(0); DailyEMA200 = EMA(Close of Data2, 200); (60분봉상 )ad = ADX(14 ); Regime = 0; { 1=상승장, -1=하락장/폭락장, 0=횡보 } If Close of Data2 > DailyEMA200 and ADX > 20 then Regime = 1 { 상승장 } Else If Close of Data2 < DailyEMA200 and ADX > 20 then Regime = -1 { 하락장 } Else Regime = 0 { 횡보 / 박스권 } 시장판단을 하고 { --- 60분봉상 메인 지표 계산 --- } Var Sarv(0), MC(0), MS(0), OS(0); Sarv = SAR(0.02, 0.2); MC = MACD(10,21); MS = EMA(MC,7); OS = MC - MS; If Regime = 1 and CrossUp(Close, Sarv) and OS > 0 and Close > Close[1] then Begin Buy("Long") next bar at market; 만약 위의 식이 잘못 되었다면 일봉의 데이터를 적용하고 분봉상으로 매매진입하는 방법을 좀 알려주세요 3.. mvar1 = Sarv+(AF_value)*(EP-SAR_Value); mvar2 = MAX(var1,EntryPrice- EntryATR*ATr1); mvar3 = Min(var1,EntryPrice+ EntryATR*1.5); if marketPosition == -1 and Direction == -1 Then { ExitShort("sx1",AtStop,mvar3); ExitShort("sx3",AtLimit,EntryPrice-entryatr*5,"",1,1); } 이 청산식은 파라볼릭반전신호와 atr*1.5 중 비교하여 으로 손절을하라는 내용과 파라볼릭반전신호와 atr*5값중에서 둘중에 먼저 도달하는 지표에 청산하라는 내용이 다 들어간게 맞는건가요? 요지는 파라볼릭 돌파가 손절과 익절에 모두 작동하는지요? 질문이 너무 길어서 죄송합니다.
프로필 이미지
산수유
2025-11-29
173
글번호 228485
시스템
답변완료

지표 부탁드립니다.

안녕하세요.1분봉차트에서 5분봉 스토캐스틱 이 1분봉 스토캐스틱과 같이 표현할수있게 부탁드립니다.노고에 감사드립니다.
프로필 이미지
2025-11-29
106
글번호 228484
지표