커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

예스트레이더 수식으로 변환 부탁 드립니다.

Volumatic Trend 지표를 예스로 변환 부탁 드립니다. 주말 행복하게 보내세요~ 감사합니다.^^ //@version=6 indicator("Volumatic Trend [ChartPrime]", overlay = true, max_bars_back = 5000) // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120400;&#120398;&#120384;&#120397; &#120388;&#120393;&#120395;&#120400;&#120399;&#120398; // --------------------------------------------------------------------------------------------------------------------{ int length = input.int(40) bool vol_h = input.bool(true, "Volume Histogram") color color_up = input.color(#247ac0, "Up Trend") color color_dn = input.color(#c88829, "Down Trend") var upper = float(na) var lower = float(na) var lower_vol = float(na) var upper_vol = float(na) var step_up = float(na) var step_dn = float(na) var last_index = int(na) // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120388;&#120393;&#120383;&#120388;&#120382;&#120380;&#120399;&#120394;&#120397; &#120382;&#120380;&#120391;&#120382;&#120400;&#120391;&#120380;&#120399;&#120388;&#120394;&#120393;&#120398; // --------------------------------------------------------------------------------------------------------------------{ ema_swma(x, length) => ta.ema(x[3] * 1 / 6 + x[2] * 2 / 6 + x[1] * 2 / 6 + x[0] * 1 / 6, length) atr = ta.atr(200) ema1 = ema_swma(close, length) ema2 = ta.ema(close, length) trend = ema1[1] < ema2 if trend != trend[1] upper := ema1 + atr * 3 lower := ema1 - atr * 3 lower_vol := lower + atr*4 upper_vol := upper - atr*4 step_up := (lower_vol-lower) / 100 step_dn := (upper-upper_vol) / 100 last_index := bar_index vol = int(volume / ta.percentile_linear_interpolation(volume, 1000, 100) * 100) vol_up = step_up * vol vol_dn = step_dn * vol // --------------------------------------------------------------------------------------------------------------------} // &#128204; &#120401;&#120388;&#120398;&#120400;&#120380;&#120391;&#120388;&#120405;&#120380;&#120399;&#120388;&#120394;&#120393; // --------------------------------------------------------------------------------------------------------------------{ color color = trend ? color_up : color_dn color grad_col = color.from_gradient(vol, 0, 25, chart.bg_color, color) color grad_col1 = color.from_gradient(vol, 0, 10, chart.bg_color, color) color col_vol_up = trend ? grad_col : color(na) color col_vol_dn = not trend ? grad_col : color(na) plotcandle(open, high, low, close, title='Volumatic Candles Trend', color = grad_col1, wickcolor=grad_col1, bordercolor = grad_col1, force_overlay = true) plotcandle(lower, lower, lower + vol_up, lower + vol_up, title='Volume Up Trend', color = col_vol_up, wickcolor=col_vol_up, bordercolor = col_vol_up, display = vol_h ? display.all : display.none, editable = false, force_overlay = true) plotcandle(upper, upper, upper - vol_dn, upper - vol_dn, title='Volume Down Trend', color = col_vol_dn, wickcolor=col_vol_dn, bordercolor = col_vol_dn, display = vol_h ? display.all : display.none, editable = false, force_overlay = true) plot(trend and vol_h ? na : upper, color = color, style = plot.style_linebr, display = vol_h ? display.all : display.none, editable = false, force_overlay = true) plot(trend and vol_h ? lower : na, color = color, style = plot.style_linebr, display = vol_h ? display.all : display.none, editable = false, force_overlay = true) plot(ema1, "Trend Line", color = color.new(color, 20), linewidth = 2, force_overlay = true) plotshape(trend != trend[1] ? ema1[1] : na, "Trend Change", shape.diamond, location.absolute, color = color, size = size.tiny, offset = -1, force_overlay = true) volume_ = close > open ? volume : -volume if barstate.islast delta = 0. total = 0. for i = 0 to (bar_index - last_index) total += volume[i] delta += volume_[i] lblb = label.new(bar_index, vol_h ? (trend ? lower + vol_up : upper - vol_dn) : ema1 , "Delta > "+str.tostring(delta, format.volume) + "₩n" + "--------------------" + "₩n" + "Total > "+str.tostring(total, format.volume) , textalign = text.align_left , style = label.style_label_left, color = grad_col1) label.delete(lblb[1])
프로필 이미지
니콜라스킹
2025-06-27
681
글번호 192157
지표
답변완료

문의 드립니다.

안녕하세요 본 시스템으로 시뮬레이션을 해보니 손절만 일어나고 익절 거래가 이루어 지지 않습니다. 검토 부탁드립니다. *일봉기준 1. 매수진입: 첫매수는 RSI(14) 55이하일때, 2회차부터는 RSI 55이하, 평균단가 이하일때, 전일보다 하락했을때만 매수, 총 40회차 매수 (원금대비 1/40씩 매수) 2. 청산: 손절 40회차 모두 매수 후 평균 단가에서 -10% 시 손절 익절: 40회차 모두 매수 후 평균 단가에서 +10% 시 익절 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 문의 드립니다. > 안녕하세요 예스스탁입니다. input : 총매수금(100000000); input : 최대누적진입횟수(40); input : 익절(10),손절(-10); var1 = rsi(14); if C < C[1] and var1 <= 55 Then { if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 최대누적진입횟수 and C < AvgEntryPrice) Then Buy("b",OnClose,Def,Floor((총매수금/40)/c)); } if MarketPosition == 1 and MaxEntries == 최대누적진입횟수 Then { ExitLong("익절",AtLimit,AvgEntryPrice*(1+익절/100)); ExitLong("손절",AtLimit,AvgEntryPrice*(1+손절/100)); } 즐거운 하루되세요
프로필 이미지
가자아이
2025-06-27
553
글번호 192155
지표
답변완료

문의드립니다,

문의드립니다. 아래수식에 추가해주세요. 1.data2 이동평균선매수신호진입한이후 3시5분 data1매수식 if data2(crossup(ma(c,5),ma(c,20))) Then buy(); if data2(crossdown(ma(c,5),ma(c,20))) Then sell(); 늘감사드립니다
프로필 이미지
2685up
2025-06-27
372
글번호 192150
시스템
답변완료

문의 드립니다.

안녕하세요 항상 감사합니다. 아래의 서식에서 40회차까지 모두 매수를 한 후에 손절과 익절이 실행될 수 있도록 수정 부탁드립니다. 40회 모두 매수 전까지누 손절, 익절 금지입니다. 감사합니다 input : 총매수금(100000000); input : 익절(10),손절(-10); var1 = rsi(14); if C < C[1] and var1 <= 55 Then { if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 40 and C < AvgEntryPrice) Then Buy("b",OnClose,Def,Floor((총매수금/40)/c)); } if MarketPosition == 1 Then { ExitLong("익절",AtLimit,AvgEntryPrice*(1+익절/100)); ExitLong("손절",AtLimit,AvgEntryPrice*(1+손절/100)); }
프로필 이미지
가자아이
2025-06-27
479
글번호 192147
지표
답변완료

호가잔량 표시

안녕하세요 선물잔량수치을 차트에표시할려구합니다 잔량수치을 천단위로 표시부탁합니다
프로필 이미지
질갱이
2025-06-27
419
글번호 192143
지표

오말리 님에 의해서 삭제되었습니다.

프로필 이미지
오말리
2025-06-27
0
글번호 192138
종목검색
답변완료

종목검색 부탁드립니다.

안녕하세요? 아래의 수식의 종목검색부탁드립니다. 감사합니다. CrossUp(h,BBandsUp(40, D1)) and c >= SAR(af,maxAF) and V > avg(V, 40) * Multiple && V > V(1) * Multiple and avg(c,MA1) >= (avg(c,MA2) or avg(c, MA3)) and Disparity(Period1) <= Percent percent 109 D1 2 af 0.007 MaxAF 0.1 Period1 224 Multiple 1.5 MA1 1 MA2 224 MA3 112
프로필 이미지
오말리
2025-06-27
512
글번호 192137
종목검색
답변완료

문의 드립니다.

추세는 호가잔량 이평 오실레이터 0선 기준으로 하고 호가잔량 이평 오실레이터 0선 위이고 20이평선을 주가가 아래서 위로 돌파시 매수진입 매수 후 20이평선을 위에서 아래로 이탈 시 매도 청산 완료 호가잔량 이평 오실레이터 0선 아래이고 20이평선을 주가가 위에서 아래로 돌파시 매도진입 매도 후 20이평선을 아래에서 위로 돌파 시 매수 청산 완료 부탁드립니다.
프로필 이미지
선물대장
2025-06-27
425
글번호 192135
시스템
답변완료

수식전환 요청드립니다.

안녕하세요. 운영자님 다음 지표수식을 예스트레이더에서 작동될 수 있도록 전환을 부탁드립니다. 감사합니다. //@version=6 indicator("High Volume Node - ML", overlay = true, max_boxes_count = 500, max_lines_count = 500) // INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ len = input.int(300, "len") bins = input.int(100, "bins") prf_col = input.color(color.rgb(0, 187, 212, 60), "Profile") poc_col = input.color(color.blue, "High Volume Node") delta_col1 = input.color(color.aqua, "Output+", inline = "1") delta_col2 = input.color(color.red, "Output-", inline = "1") profile1 = input.bool(true, "VP1", inline = "vp") profile2 = input.bool(true, "VP2", inline = "vp") profile3 = input.bool(true, "VP3", inline = "vp") profile4 = input.bool(true, "VP4", inline = "vp") // } // CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{ profile(length, bins, poc_mult, style = true)=> values = array.new<float>() vol_bins = array.new<float>(bins) tot_vol = array.new<float>() delta_vol = array.new<float>() max_val = float(na) min_val = float(na) step = float(na) var bin_levels = array.new<line>() var bin_labels = array.new<label>() poly = array.new<chart.point>() if barstate.islast for i = 0 to length - 1 values.push(high[i]) values.push(low[i]) max_val := values.max() min_val := values.min() step := (max_val-min_val)/bins if barstate.islast for i = 0 to bins - 1 vol_bins.set(i, 0) for i = 0 to length - 1 c_top = math.max(close[i], open[i]) c_low = math.min(close[i], open[i]) c = close[i] o = open[i] vol = volume[i] tot_vol.push(vol) delta_vol.push(c > o ? vol : -vol) for j = 0 to bins - 1 lower = min_val + step * j upper = lower + step mid = math.avg(lower, upper) if c <= upper + step*1.5 and c >= lower - step*1.5 vol_bins.set(j, vol_bins.get(j) + vol) if barstate.islast check = false if bin_levels.size() > 0 for k = 0 to bin_levels.size() - 1 line.delete(bin_levels.get(k)) if bin_labels.size() > 0 for k = 0 to bin_labels.size() - 1 label.delete(bin_labels.get(k)) for i = 0 to bins - 1 lower = min_val + step * i upper = lower + step mid = math.avg(upper, lower) vol = int(vol_bins.get(i) / vol_bins.max() * 25) start = bar_index - length end = start +vol var midd = float(na) poly.push(chart.point.from_index(i == 0 ? start : i == bins - 1 ? start : end+1, mid)) if vol_bins.get(i) == vol_bins.max() and not check check := true bin_labels.push(label.new(start, mid, str.tostring(vol_bins.get(i), format.volume), style = label.style_label_right, color = color.new(poc_col, 25), force_overlay = true)) bin_levels.push(line.new(start, mid, start + int(length/poc_mult), mid, color = poc_col, force_overlay = true, width = 3)) bin_levels.push(line.new(start, max_val, bar_index, max_val, color = chart.fg_color, style = style ? line.style_solid : line.style_dashed)) bin_levels.push(line.new(start, min_val, bar_index, min_val, color = chart.fg_color, style = style ? line.style_solid : line.style_dashed)) bin_levels.push(line.new(start, max_val, start, min_val, color = chart.fg_color, style = line.style_solid)) bin_levels.push(line.new(start, max_val, start, min_val, color = chart.fg_color, style = line.style_solid)) bin_labels.push(label.new(start, max_val, "Total₩n" + str.tostring(tot_vol.sum(), format.volume), style = label.style_label_down, text_font_family = font.family_monospace, size = size.small, tooltip = "Total Volume over VolumeProfile period", color = color.blue)) bin_labels.push(label.new(start, min_val, str.tostring(delta_vol.sum(), format.volume) + "₩nOutput", style = label.style_label_up, text_font_family = font.family_monospace, size = size.small, tooltip = "Output Volume over VolumeProfile period", color = delta_vol.sum() < 0 ? delta_col2 : delta_col1)) polyline.delete( polyline.new(poly, line_color = #00e67700, fill_color = prf_col)[1] ) if profile1 profile(len, bins, 2) if profile2 profile(int(len/2), bins, 2, false) if profile3 profile(int(len/4), bins, 2, false) if profile4 profile(int(len/8), bins, 1, false) // }
프로필 이미지
고박사122
2025-06-27
900
글번호 192134
지표