커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁합니다.

안녕하세요.아래 내용을 변환부탁 합니다.환절기에 건강관리 잘하시고요.length1 = input(10, title="BB1 기간 (Length 1)", type=input.integer)mult1 = input(2.5, title="BB1 승수 (Mult 1)", type=input.float)length2 = input(20, title="BB2 기간 (Length 2)", type=input.integer)mult2 = input(2.0, title="BB2 승수 (Mult 2)", type=input.float)trend_length = input(10, title="중심선", type=input.integer)channel_offset = input(100.0, title="채널간격", type=input.float)flat_length = input(10, title="기간", type=input.integer)flat_threshold = input(0.0005, title="오차", type=input.float, step=0.0001)toggleBreaks_sr = input(true, title = "신호")leftBars_sr = input(10, title = "좌측")rightBars_sr = input(0, title = "우측")volumeThresh = input(20, title = "임계값")length_tl = input(20, 'Trendline')mult_tl = input(1.0, 'Slope', minval = 0, step = 0.1)calcMethod_tl = input(title='Method', type=input.string, options=['Atr','Stdev','Linreg'], defval='Atr')backpaint_tl = input(true, title='Backpaint')upCss_tl = input(color.Blue, 'Up', group = 'Style')dnCss_tl = input(color.red, 'Down', group = 'Style')showExt_tl = input(true, 'Lines')basis1 = sma(close, length1)dev1 = stdev(close, length1)upper1 = basis1 + mult1 * dev1 lower1 = basis1 - mult1 * dev1 basis2 = sma(close, length2)dev2 = stdev(close, length2)upper2 = basis2 + mult2 * dev2lower2 = basis2 - mult2 * dev2trend = sma(close, trend_length)trend_upper_channel = trend + channel_offsettrend_lower_channel = trend - channel_offsetema_5 = ema(close, 5)ema_10 = ema(close, 10)ema_20 = ema(close, 20)momentum_line_1 = (ema_5 + ema_10) / 2momentum_line_2 = (ema_10 + ema_20) / 2highUsePivot = fixnan(pivothigh(leftBars_sr, rightBars_sr)[1])lowUsePivot = fixnan(pivotlow(leftBars_sr, rightBars_sr)[1])short = ema(volume, 5)long = ema(volume, 10)osc = 100 * (short - long) / longvar upper_tl = 0.var lower_tl = 0.var slope_ph_tl = 0.var slope_pl_tl = 0.var offset_tl = backpaint_tl ? length_tl : 0n = bar_indexsrc = closeph_tl = pivothigh(length_tl, length_tl)pl_tl = pivotlow(length_tl, length_tl)slope_tl = 0.if calcMethod_tl == 'Atr' slope_tl := atr(length_tl) / length_tl * mult_tlelse if calcMethod_tl == 'Stdev' slope_tl := stdev(src, length_tl) / length_tl * mult_tlelse slope_tl := abs(linreg(src, length_tl, 0) - linreg(src[1], length_tl, 1)) * mult_tlslope_ph_tl := ph_tl ? slope_tl : slope_ph_tlslope_pl_tl := pl_tl ? slope_tl : slope_pl_tlupper_tl := ph_tl ? ph_tl : upper_tl - slope_ph_tllower_tl := pl_tl ? pl_tl : lower_tl + slope_pl_tlvar upos_tl = 0var dnos_tl = 0upos_tl := ph_tl ? 0 : close > upper_tl - slope_ph_tl * length_tl ? 1 : upos_tldnos_tl := pl_tl ? 0 : close < lower_tl + slope_pl_tl * length_tl ? 1 : dnos_tlbuy_signal = crossover(momentum_line_1, trend) sell_signal = crossunder(momentum_line_1, trend) upper_range = highest(upper2, flat_length) - lowest(upper2, flat_length)lower_range = highest(lower2, flat_length) - lowest(lower2, flat_length)is_flat = upper_range < flat_threshold and lower_range < flat_thresholdflat_breakout_buy = is_flat and crossover(close, upper2) flat_breakout_sell = is_flat and crossunder(close, lower2) retrace_buy_condition = low[1] < lower2[1] and close > lower2 retrace_sell_condition = high[1] > upper2[1] and close < upper2 retrace_buy_line = retrace_buy_condition ? close : naretrace_sell_line = retrace_sell_condition ? close : natouch_upper_and_up_candle = high >= upper2 and close > open touch_lower_and_down_candle = low <= lower2 and close < open candle_color = touch_upper_and_up_candle or touch_lower_and_down_candle ? color.yellow : nais_no_trade_zone = (trend_upper_channel > upper1) or (trend_lower_channel < lower1)no_trade_bgcolor = is_no_trade_zone ? color.new(color.red, 70) : na u1 = plot(upper1, title="Upper BB1", color=color.blue)u2 = plot(upper2, title="Upper BB2", color=color.navy)l1 = plot(lower1, title="Lower BB1", color=color.red)l2 = plot(lower2, title="Lower BB2", color=color.maroon)fill(u1, u2, color=color.new(color.blue, 80), title="Upper Fill")fill(l1, l2, color=color.new(color.red, 80), title="Lower Fill")plot(trend, title="MA", linewidth=2, color=color.black) plot(trend_upper_channel, title="상단", linewidth=1, color=color.white)plot(trend_lower_channel, title="하단", linewidth=1, color=color.white)is_channel_up = momentum_line_1 > momentum_line_2 and momentum_line_1 > momentum_line_1[1]is_channel_down = momentum_line_2 > momentum_line_1 and momentum_line_1 < momentum_line_1[1]momentum_channel_color = is_channel_up ? color.new(color.fuchsia, 70) : is_channel_down ? color.new(color.aqua, 70) : na m1 = plot(momentum_line_1, title="M1", linewidth=2, color=color.fuchsia) m2 = plot(momentum_line_2, title="M2", linewidth=2, color=color.aqua) fill(m1, m2, color=momentum_channel_color, title="Channel Fill")r_plot = plot(highUsePivot, color=change(highUsePivot) ? na : #FF0000, linewidth=3, offset=-1, title="Resistance")s_plot = plot(lowUsePivot, color=change(lowUsePivot) ? na : #233dee, linewidth=3, offset=-1, title="Support")plot(backpaint_tl ? upper_tl : upper_tl - slope_ph_tl * length_tl, 'Upper Trendline', color = ph_tl ? na : upCss_tl, offset = -offset_tl)plot(backpaint_tl ? lower_tl : lower_tl + slope_pl_tl * length_tl, 'Lower Trendline', color = pl_tl ? na : dnCss_tl, offset = -offset_tl)plot(retrace_buy_line, title="Retrace Buy Line", style=plot.style_circles, linewidth=4, color=color.green)plot(retrace_sell_line, title="Retrace Sell Line", style=plot.style_circles, linewidth=4, color=color.red)plotshape(flat_breakout_buy, location=location.belowbar, style=shape.circle, size=size.small, color=color.orange, title="Buy")plotshape(flat_breakout_sell, location=location.abovebar, style=shape.circle, size=size.small, color=color.purple, title="Sell")plotshape(buy_signal, location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green, title="Buy")plotshape(sell_signal, location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red, title="Sell")plotshape(toggleBreaks_sr and crossunder(close,lowUsePivot) and not (open - close < high - open) and osc > volumeThresh, title = "Sell", text = 'B', style = shape.labeldown, location = location.abovebar, color= color.red,textcolor = color.white, transp = 0, size = size.tiny) plotshape(toggleBreaks_sr and crossover(close,highUsePivot ) and not(open - low > close - open) and osc > volumeThresh, title = "Buy", text = 'B', style = shape.labelup, location = location.belowbar, color= color.green,textcolor = color.white, transp = 0, size = size.tiny)plotshape(upos_tl > upos_tl[1] ? low : na, "Upper" , shape.labelup , location.absolute , upCss_tl , text = "TL+" , textcolor = color.white , size = size.tiny)plotshape(dnos_tl > dnos_tl[1] ? high : na, "Lower" , shape.labeldown , location.absolute , dnCss_tl , text = "TL-" , textcolor = color.white , size = size.tiny)barcolor(candle_color)bgcolor(no_trade_bgcolor, title="Zone")alertcondition(upos_tl > upos_tl[1], 'Upward', 'upward')alertcondition(dnos_tl > dnos_tl[1], 'Downward', 'downward')alertcondition(crossunder(close,lowUsePivot) and osc > volumeThresh , title = "Support" , message = "Support")alertcondition(crossover(close,highUsePivot) and osc > volumeThresh, title = "Resistance" , message = "Resistance")
프로필 이미지
newstory
2025-11-19
267
글번호 228204
지표
답변완료

조건검색문의드립니다

2개 조건검색식 부탁드립니다 항상 감사드립니다^^[1]수식이평 = ma(C, 120);테마 = TEMA(C, 기간);기준 = (highest(high, 중간값)+lowest(low, 중간값))/2;돌파 = CrossUp(기준, 테마);돌파 && C > 이평지표변수기간 20중간값 26[2]수식(위수식에서 추가로 돌파시 1)거래량: V > MA(V,20) 2)ADX(14) > 20 2가지조건 추가해서 부탁드립니다)이평 = ma(C, 120);테마 = TEMA(C, 기간);기준 = (highest(high, 중간값)+lowest(low, 중간값))/2;돌파 = CrossUp(기준, 테마);돌파 && C > 이평지표변수기간 20중간값 26문의) 핸드폰 앱에서 예스스탁 내가만든조건검색기 종목 검색하는 방법이 있나요?
프로필 이미지
해피럭키
2025-11-19
199
글번호 228200
종목검색
답변완료

문의드립니다.

질문1var1 = ma(c,20); var2 = ma(c,60); if crossup(var1,var2) then plot1(1); 이런식으로 골드크로스 날만 지표값을 1로 만들어서(막대그래프) 확인해 보고 싶은데 차트 전체가 아니라 혹시 25년 8월 20일 이렇게 특정 날짜부터 시작해서 표시할 수 있나요??질문2plotbaseline을 시용하면 가로로 선을 그을 수 있는데 혹시 세로로 특정 날짜에 선을 긎는 방법도 있는지 궁금합니다.
프로필 이미지
확실한수익
2025-11-19
154
글번호 228197
지표
답변완료

종목검색 부탁 드립니다.

수고가 많으십니다.아래의 신호 수식을 검색식으로 부탁 드립니다.감사합니다.A=Highest(Dayclose(),60);B=Lowest(Dayclose(),60);D=Sum(Countsince(Date!=Date(1),Dayclose()>=A(1)));X1=Floor(((A-B)*0.618)+B);D(1)-D(10)>=1 && L<=X1 && Dayclose()>=B && Dayclose()*0.98<=X1
프로필 이미지
포이순
2025-11-19
156
글번호 228196
검색
답변완료

부탁드립니다

var : tx1(0),tx2(0); if abs(c-o) <= (h-L)*(1/3) Then { if c > o Then { tx1 = Text_New(sDate,sTime,l,"●"); Text_SetStyle(tx1,2,0); Text_SetColor(tx1,Red); } if c < o Then { tx1 = Text_New(sDate,sTime,h,"●"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,Blue); } } if abs(c-o) <= (h-L)*(1/5) Then { if c > o Then { tx2 = Text_New(sDate,sTime,l-PriceScale*5,"●"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,Magenta); } if c < o Then { tx2 = Text_New(sDate,sTime,h+PriceScale*5,"●"); Text_SetStyle(tx2,2,1); Text_SetColor(tx2,Cyan); } } 위의 수식에서 음양봉 기준이 아닌 꼬리기준으로 수정 부탁드립니다 - 아래꼬리가 길면 아래꼬리 아래에 빨강점을 - 윗꼬리가 길면 윗꼬리 위에 파랑점으로 - 비율이 같다면 음양봉 기분으로 수정부탁드립니다
프로필 이미지
와우리
2025-11-19
115
글번호 228195
지표
답변완료

종목조건검색식 문의드립니다

안녕하세요 ^^ 1. 항상 전일자 기준으로 1분봉에서 지수60이평선을 캔들고가가 골든크로스 할때를 성과검증을 위해 특정 시간과 분( 예를들어 2025년11월18일 9시23분)을 변수입력창에 입력하여 종목들이 검색되는 검색식을 알려주시면 감사하겠습니다 ^^ 더 좋은 방법도 부탁드립니다^^ 감사합니다2.그리고 1분봉 이라면 하루 몇시몆분으로 몇개의 봉을 말하는 건가요^^
프로필 이미지
감땡
2025-11-19
128
글번호 228194
종목검색
답변완료

진입시간 관련 문의드립니다.

항상 많은 도움 감사드립니다.예를들어 한 시스템 안에매수A매수B매도A매도B가 있습니다. 전체적인 거래 가능 시간 설정은 해 놓은 상태입니다. 그런데 매수A의 시간과 매도A의 거래 가능 시간을 전체 설정된 시간과 별도로 설정하려면 어떻게 해야 하나요?전체 거래 가능시간은 24시간을 해 놓은 상태인데. 매수A는 현지시간 기준 8시부터 16시까지는 거래 불가로 하고 싶습니다.매수A에 !(sTime>080000 && sTime<160000) 이 수식을 넣으니 다른 수식까지 그 시간에 작동을 안 하는 현상이 발생합니다.각각의 진입시간을 따로 설정할 수 있는 방법 도와 주셨으면 합니다. 감사합니다.
프로필 이미지
비정성시
2025-11-19
135
글번호 228193
시스템
답변완료

주문가능금액 실시간 조회 함수에 대해서 질문 있습니다.

현재 한국투자증권 eFriend Global Yestrader로 해외선물거래 중인데요.현재 거래하는 해외선물종목이 10개가 넘어가다보니 실제 주문가능금액을 조회해서 주문을 내려고 합니다.예스랭귀지에서 주문가능금액을 구하기 위해서 아래와 같이 GetUnclearedDeposits 함수로 예수금을 조회하고 GetOpenOrderInitialMargin 함수로 위탁증거금을 조회한 다음에 주문가능금액을 구해 보았습니다.deposit = GetUnclearedDeposits(acc); // 예수금 / 예탁총액 조회openOrderMargin = GetOpenOrderInitialMargin(acc); // 위탁증거금(오픈오더 사용중인 증거금)orderable = deposit - openOrderMargin; // 주문가능금액 계산그런데, 위탁증거금 조회함수인 GetOpenOrderInitialMargin 가 실시간으로 위탁증거금을 받아오지 못하는 거 같습니다.그래서, 좀 더 알아보니 주문가능금액을 리턴하는 GetBalanceETCinfo 이라는 함수가 있던데 (https://www.yesstock.com/community/qna-type3-dtl?postNo=223743) 한국투자증권 eFriend Global Yestrader에서는 이 함수는 존재하지 않는 함수라고 나오네요.예스트레이더 입문 클래스 강의자료(https://help.yesstock.com/im/class1)라는 페이지에 보면 또, 아래와 같은 함수들이 있는 걸로 확인되는데,카) 잔고함수GetAccount 계좌목록의 계좌 중 지정한 순번의 계좌번호를 리턴GetAccountStatus 가원장 구축상태를 리턴(구축 :1, 미구축 : 0)GetAccountType 계좌종류,(1:위탁, 2:저축, 3:선/옵션)GetNumAccounts 보유계좌의 총갯수GetNumPositions 지정한 계좌의 보유 총 종목수GetOpenOrderInitialMargin 지정한 계좌의 위탁증거금GetPositionSymbol 계좌의 종목들 중에서 지정한 순번의 종목코드(단축코드)를 리턴GetPositionAveragePrice 지정한 계좌의 지정한 종목의 평균가GetPositionMarketValue 지정한 계좌의 지정한 종목의 현재가GetPositionOpenPL 지정한 계좌의 지정한 종목의 평가손익GetPositionQuantity 지정한 계좌의 지정한 종목의 보유수량GetUnclearedDeposits 지정한 계좌의 예수금(선/옵인 경우 예탁총액, 위탁/저축인 경우 예수금)여기에도 해외선물의 경우 직접적으로 주문가능금액을 리턴하는 함수는 보이지 않습니다.거래 중인 종목이 10개가 넘으니 각 종목당 포지션을 서로 조회해서 위탁증거금을 계산해서 주문가능금액을 계산해야 하는지, 아니면 다른 어떤 방법을 써야 할지 좀 어렵습니다.주문시 주문가능금액을 실시간으로 계산하는 기능이 절실히 필요합니다.꼭 도와주세요.감사합니다.
프로필 이미지
zapster
2025-11-18
1225
글번호 228191
시스템
답변완료

문의 드립니다

파일첨부
프로필 이미지
nams60
2025-11-18
129
글번호 228190
종목검색