커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

파라볼릭 박스

아래 차트의 선만 있을 때는 박스 오류가 안보이는데, (근본적인 한계인지?)윗 차트의 박스를 주가 상하단에 맞춰 왼쪽으로 옮기니, 상하가 일치하지 않습니다.선물 400틱 차트입니다. 검토 부탁드립니다.Input : af(0.02), maxAF(0.2);var : T(0),TL(0),B(0),S(0),tx(0),txx(0),HH(0),HD(0),HT(0),LL(0),LD(0),LT(0),box(0);var : B1(0),B2(0),S1(0),S2(0),H1(0),H2(0),L1(0),L2(0);var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);var1 = CSar(af,maxAF);plot1(var1, "CSAR",IFF(c>var1,Red,Green)); if CrossUp(C,var1) Then{ B = var1; T = 1; B1 = B[1]; B2 = B1[1]; HD = sDate; HT = sTime; HH = H; H1 = HH[1]; H2 = H1[1]; if LL > 0 Then box = Box_New(LD,LT,LL,HD,HT,HH); if abs(S-LL) < 1.25 Then Text_Delete(tx); tx = Text_New(sDate,sTime,HH,NumToStr(abs(HH-B),2)); Text_SetColor(tx,Red); Text_SetSize(tx,22); Text_SetStyle(tx,1,1); Text_SetBold(tx,1); Condition1 = False;}if CrossDown(C,var1) Then{ S = var1; T = -1; S1 = S[1]; S2 = S1[1]; LD = sDate; LT = sTime; LL = L; L1 = LL[1]; L2 = L1[1]; if HH > 0 Then box = Box_New(HD,HT,HH,LD,LT,LL); if abs(B-HH) < 1.25 Then Text_Delete(tx); tx = Text_New(sDate,sTime,LL,NumToStr(abs(LL-S),2)); Text_SetColor(tx,Blue); Text_SetSize(tx,22); Text_SetStyle(tx,1,0); Text_SetBold(tx,1); Condition1 = False; }Else{ if T == 1 Then { if H >= HH Then { HD = sDate; HT = sTime; HH = H; } Text_SetString(tx,NumToStr(abs(HH-B),2)); Text_SetLocation(tx,sDate,sTime,HH); Box_SetEnd(box,HD,HT,HH); if HH < LL+1.5 Then { Box_SetColor(box,Magenta); Box_SetFill(box,true,60); } Else if HH >= LL+1.5 and HH < LL+3.5 Then { Box_SetColor(box,Gray); Box_SetFill(box,true,60); } Else { Box_SetColor(box,Orange); Box_SetFill(box,true,40); } if abs(HH-LL) >= 2 Then { if Condition1 == False Then { Condition1 = true; tx1 = Text_New(HD,HT,HH+abs(HH-LL)*0.618,"●"); tx2 = Text_New(HD,HT,HH+abs(HH-LL)*1.000,"●"); tx3 = Text_New(HD,HT,HH+abs(HH-LL)*1.618,"●"); Text_SetStyle(tx1,2,2); Text_SetStyle(tx2,2,2); Text_SetStyle(tx3,2,2); Text_SetColor(tx1,Red); Text_SetColor(tx2,Blue); Text_SetColor(tx3,Red); tx4 = Text_New(HD,HT,LL-abs(HH-LL)*0.618,"●"); tx5 = Text_New(HD,HT,LL-abs(HH-LL)*1.000,"●"); tx6 = Text_New(HD,HT,LL-abs(HH-LL)*1.618,"●"); Text_SetStyle(tx4,2,2); Text_SetStyle(tx5,2,2); Text_SetStyle(tx6,2,2); Text_SetColor(tx4,Red); Text_SetColor(tx5,Blue); Text_SetColor(tx6,Red); } Else { Text_SetLocation(tx1,HD,HT,HH+abs(HH-LL)*0.618); Text_SetLocation(tx2,HD,HT,HH+abs(HH-LL)*1.000); Text_SetLocation(tx3,HD,HT,HH+abs(HH-LL)*1.618); Text_SetLocation(tx4,HD,HT,LL-abs(HH-LL)*0.618); Text_SetLocation(tx5,HD,HT,LL-abs(HH-LL)*1.000); Text_SetLocation(tx6,HD,HT,LL-abs(HH-LL)*1.618); } } } if T == -1 Then { if L <= LL Then { LD = sDate; LT = sTime; LL = L; } Text_SetString(tx,NumToStr(abs(LL-S),2)); Text_SetLocation(tx,sDate,sTime,LL); Box_SetEnd(box,LD,LT,LL); if LL > HH-1.5 Then { Box_SetColor(box,Lime); Box_SetFill(box,true,80); } Else if LL <= HH-1.5 and LL > HH-3.5 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,70); } Else { Box_SetColor(box,Cyan); Box_SetFill(box,true,50); } if abs(HH-LL) >= 2 Then { if Condition1 == False Then { Condition1 = true; tx1 = Text_New(LD,LT,HH+abs(HH-LL)*0.618,"●"); tx2 = Text_New(LD,LT,HH+abs(HH-LL)*1.000,"●"); tx3 = Text_New(LD,LT,HH+abs(HH-LL)*1.618,"●"); Text_SetStyle(tx1,2,2); Text_SetStyle(tx2,2,2); Text_SetStyle(tx3,2,2); Text_SetColor(tx1,Red); Text_SetColor(tx2,Blue); Text_SetColor(tx3,Red); tx4 = Text_New(LD,LT,LL-abs(HH-LL)*0.618,"●"); tx5 = Text_New(LD,LT,LL-abs(HH-LL)*1.000,"●"); tx6 = Text_New(LD,LT,LL-abs(HH-LL)*1.618,"●"); Text_SetStyle(tx4,2,2); Text_SetStyle(tx5,2,2); Text_SetStyle(tx6,2,2); Text_SetColor(tx4,Red); Text_SetColor(tx5,Blue); Text_SetColor(tx6,Red); } Else { Text_SetLocation(tx1,LD,LT,HH+abs(HH-LL)*0.618); Text_SetLocation(tx2,LD,LT,HH+abs(HH-LL)*1.000); Text_SetLocation(tx3,LD,LT,HH+abs(HH-LL)*1.618); Text_SetLocation(tx4,LD,LT,LL-abs(HH-LL)*0.618); Text_SetLocation(tx5,LD,LT,LL-abs(HH-LL)*1.000); Text_SetLocation(tx6,LD,LT,LL-abs(HH-LL)*1.618); } } }}
프로필 이미지
고성
2026-01-15
557
글번호 229818
지표
답변완료

진입 수량 및 청산 관련 문의

(중략)var: SL1(1000);If SL1 > 0 Then setstoploss((SL1/BigPointValue),PointStop);청산 관련하여 위 수식을 사용 중에 있는데손절은 1,000달러로 고정하여 청산하도록 청산 수식을 걸었고, 한번 진입 시 진입 수량을 5개 매수하도록 세팅하였습니다.이 경우, 위 청산 수식에 따라 해당 진입으로 인해 진입 수량 5개의 전체 손실 금액이 1,000달러 인 경우 청산하는 것인지 (총 손실 1,000달러 시 청산)아니면 진입 수량 5개 각각의 손실 금액이 1,000달러인 경우 청산하는 것인지 (총 5,000달러 손실 시 청산)문의 드립니다.
프로필 이미지
강우
2026-01-15
244
글번호 229817
시스템
답변완료

수식 요청드립니다.

안녕하세요.수식 문의드립니다.피라미딩으로 누적 5계약까지 매수 또는 매도 진입한다고 하였을때5계약이 모두 진입된 상태에서 손실이 200pt가 되면 모두 손절하는 수식을 부탁드립니다.감사합니다.
프로필 이미지
트레이더365
2026-01-15
95
글번호 229816
시스템
답변완료

문의드립니다.

다음수식의 종목검색식 부탁드립니다.R = RSI(7);V_MA = avg(V, 10);AvgValue = avg(C * V, 5);BigMoney = (C * V) > (AvgValue * 0.5);MA40 = ma(C, 40);MA30 = ma(C, 50);MA20 = ma(C, 60);TrendUp = (C > MA20) && (MA20 > MA40);Range = H - L;UpperTail = if(C > O, H - C, H - O);TailCond = Range > 0 && (UpperTail < Range * 0.65);BreakOut = Highest(H, 120, 1) < H;Disparity20 = (C / MA20) * 100;SafeZone = Disparity20 < 10;MyOBV = OBV();OBV_Strong = MyOBV >= Highest(MyOBV, 20, 1) * 0.18;MainCond = BigMoney && TrendUp && TailCond && BreakOut && IsRsiCrossUp30 = CrossUp(R, 30)&& SafeZone && OBV_Strong;MainCond && !MainCond(1)감사합니다.
프로필 이미지
쭈니이리
2026-01-15
347
글번호 229815
종목검색
답변완료

시스템매매로 변환부탁드립니다...

아래 수식은 예스 지표수식입니다...청색라인에서 매수 하는 시스템 매매로 변환 부탁드립니다..input : ATRperiod(14);input : BBperiod(20);input : BBdeviation(1.5);input : UseATRfilter(true);input : showsignals(true);var : BBupper(0),BBlower(0),alpha(0),atrValue(0);var : FollowLine(Nan),BBSignal(0),iTrend(0);BBUpper = ma(close, BBperiod) + std(close, BBperiod) * BBdeviation;BBLower = ma(close, BBperiod) - std(close, BBperiod) * BBdeviation;alpha = 1 / ATRperiod ;atrValue = IFf(IsNan(atrValue[1]) == true, ma(TrueRange,ATRperiod) , alpha * TrueRange + (1 - alpha) * IFf(isnan(atrValue[1])==true,0,atrValue[1]));if (close > BBUpper) Then BBSignal = 1;else if (close < BBLower) Then BBSignal = -1;if (BBSignal == 1) Then{ if (UseATRfilter) Then { FollowLine = low - atrValue; } else { FollowLine = low; } if (FollowLine < iff(IsNan(FollowLine[1])==true,0,FollowLine[1])) Then { FollowLine = iff(IsNan(FollowLine[1])==true,0,FollowLine[1]); }}if (BBSignal == -1) Then{ if (UseATRfilter) Then { FollowLine = high + atrValue; } else { FollowLine = high; } if (FollowLine > iff(IsNan(FollowLine[1])==true,0,FollowLine[1])) Then { FollowLine = iff(IsNan(FollowLine[1])==true,0,FollowLine[1]); }}if iff(IsNan(FollowLine)==true,0,FollowLine) > iff(IsNan(FollowLine[1])==true,0,FollowLine[1]) Then iTrend = 1;else if iff(IsNan(FollowLine)==true,0,FollowLine) < iff(IsNan(FollowLine[1])==true,0,FollowLine[1]) Then iTrend = -1;var : lineColor(0),B(0),S(0),tx(0);lineColor = iff(iTrend > 0 , Gold , Blue);b = iff(iTrend[1]==-1 and iTrend==1 , 1 , 0);s = iff(iTrend[1]==1 and iTrend==-1 , 1 , 0);plot1(FollowLine, "Follow Line", lineColor);if B == 1 and showsignals Then{ tx = text_new(sDate,stime,L,"▲"); Text_SetColor(tx,ReD); Text_SetStyle(tx,2,0);}if S == 1 and showsignals Then{ tx = text_new(sDate,stime,H,"▼"); Text_SetColor(tx,WhitE); Text_SetStyle(tx,2,1);}
프로필 이미지
서민순
2026-01-14
245
글번호 229814
시스템
답변완료

거래량과 이평

안녕하세요 종목 마이크로 나스닥 1전략어제하루 치 데이터 5분차트 6분차트 7분차트 각 각 분 마 다 거래량중 가장 많은 거개량 기억한다각각 분마다 나온 거래량 최고점거래량 양봉 큰값 기억하여가장큰 양봉거래량 을 돌파시 당일 현재가가단순이평선 10선이 30선 상향돌파시 매수어제하루 치 데이터 5분차트 6분차트 7분차트 각 각 분 마 다 거래량중 가장 많은 거개량 기억한다각각 분마다 나온 거래량 최고점거래량 음봉 큰값 기억하여가장큰 음봉거래량 을 돌파시 당일 현재가가단순이평선 10선이 30선 하향돌파시 매도 가능 한가요 ?대단히감사합니다
프로필 이미지
놀이터
2026-01-14
150
글번호 229813
시스템
답변완료

수식 문의 드립니다

프로그램 수식 문의 드립니다.1) 매수: 이전 5봉중 최 고점의 5.5% 를 상향함과 동시 매수2) 매수: 이전 1봉 중 1봉의 종가를 5.5% 상향함과 동시 매수3) 매수: 바로1봉전 매도점대비 5.5% 상향함과 동시 매수4) 매수: 현재 동일봉에서 매도점 대비 5.5% 상향함과 동시 매수==> 같은 봉에서 target 도달하여 매도 이루어지고, 그매도점 대비 5.5% 상승시 재 매수 되어야 하는데, 매수가 되지 않고 있음.=> 이부분 식으로 구현해 주시면 감사 하겠습니다.5) 매수: 봉이 양종이고 bollinger band(20,1) 상한선 위에 엤으면 동시 매수6) 매도: 이전 매수 점을 5.5% 하향 과 동시 매도 7) 매도: 이전 1봉중 1봉의 종가를 5.5% 하향과 동시매도8) 매도: 매수가 대비 5.5% 상향과 동시 매도9) 매도: 20이평선을 5,5% 하향과 동시매도10) 매도: 매수후 양봉이면 27분 후 매도11) 매도: 매수후 양봉이고 bolingerband (20,5) 상한선위에 있으면 27분 후 매도12) 매도: 매수후 양봉이고 5이평선 선위에 있으면 27분 후 매도13) 매도: 매수후 음봉이면 1봉전 종가대비 5.5% 하락시 동시매도14) 매도: 15시09분에 매수청산15) 매도: 양봉일경우 매월 29일 1200시 매수 청산16) 매도: 매수후 양봉이면 종가에 매도
프로필 이미지
기관장
2026-01-14
232
글번호 229812
시스템
답변완료

조건검색 문의

//@version=5indicator("RSI Shift Zone - Lower Breakout Only", overlay = true, max_labels_count = 500)// --------------------------------------------------------------------------------------------------------------------// [Inputs]rsi_len = input.int(14, "RSI length")upper_level = input.int(70, "Upper RSI Level", minval = 50)lower_level = input.int(30, "Lower RSI Level", maxval = 50)min_channel_len = input.int(15, "Minimal bars length of the channel")rsi_filter_val = input.int(40, "Min RSI for Signal")upper_line_width = input.int(2, "Upper Line Width")lower_line_width = input.int(3, "Lower Line Width")center_line_width = input.int(2, "Center Line Width")upper_col = input.color(color.new(#21c997, 50), "Upper Color")lower_col = input.color(color.new(#cc24e2, 50), "Lower Color")lower_line_col = input.color(#FF5252, "Lower Line Signal Color")// --------------------------------------------------------------------------------------------------------------------// [Calculations]var int start = navar bool trigger = falsevar float upper = na var float lower = navar color channel_color = color(na)var bool is_upper_zone = false rsi = ta.rsi(close, rsi_len)channel_upper = ta.crossover(rsi, upper_level) and not trigger channel_lower = ta.crossunder(rsi, lower_level) and not trigger rsi_color = color.from_gradient(rsi, lower_level, upper_level, lower_col, upper_col)if channel_upper start := bar_index trigger := true upper := high lower := low channel_color := rsi_color is_upper_zone := true if channel_lower start := bar_index trigger := true upper := high lower := low channel_color := rsi_color is_upper_zone := false if bar_index - start >= min_channel_len trigger := falsetrigger_change = (channel_upper != channel_upper[1]) or (channel_lower != channel_lower[1])active_upper_line = trigger_change ? na : upperactive_lower_line = trigger_change ? na : lowermiddle_line = trigger_change ? na : math.avg(upper, lower)// --------------------------------------------------------------------------------------------------------------------// [Signal Logic]// Only signals when price crosses Lower Line formed by Upper RSI levellow_breakout = ta.crossover(close, active_lower_line) and is_upper_zone and rsi > rsi_filter_val// --------------------------------------------------------------------------------------------------------------------// [Plotting]plot(active_upper_line, "Upper Line", color = channel_color, style = plot.style_linebr, linewidth = upper_line_width)plot(active_lower_line, "Lower Line", color = channel_color, style = plot.style_linebr, linewidth = lower_line_width)p1 = plot(active_upper_line, display = display.none)p2 = plot(active_lower_line, display = display.none)fill(p1, p2, color.new(channel_color, 90))plot(middle_line, "Center Line", color = color.gray, style = plot.style_linebr, linewidth = center_line_width)plotshape(low_breakout, title="Lower Breakout", style=shape.triangleup, location=location.belowbar, color=lower_line_col, size=size.small, text="LOW")// --------------------------------------------------------------------------------------------------------------------// [Alerts]alertcondition(low_breakout, title="Lower Breakout Alert", message="Price crossed Lower Shift Zone")일봉상 위 신호가 나온 종목을 검출 할 수 있도록 해주시면 감사 드리겠습니다 (__)
프로필 이미지
사공하늘
2026-01-14
483
글번호 229811
검색
답변완료

조건검색 문의

//@version=5indicator("RSI Shift Zone - Middle Breakout Only", overlay = true, max_labels_count = 500)// --------------------------------------------------------------------------------------------------------------------// [Inputs]rsi_len = input.int(14, "RSI length")upper_level = input.int(70, "Upper RSI Level", minval = 50)lower_level = input.int(30, "Lower RSI Level", maxval = 50)min_channel_len = input.int(15, "Minimal bars length of the channel")rsi_filter_val = input.int(40, "Min RSI for Signal")upper_line_width = input.int(2, "Upper Line Width")lower_line_width = input.int(2, "Lower Line Width")center_line_width = input.int(3, "Center Line Width")upper_col = input.color(color.new(#21c997, 50), "Upper Color")lower_col = input.color(color.new(#cc24e2, 50), "Lower Color")center_line_col = input.color(#2196F3, "Center Color")// --------------------------------------------------------------------------------------------------------------------// [Calculations]var int start = navar bool trigger = falsevar float upper = na var float lower = navar color channel_color = color(na)var bool is_upper_zone = false rsi = ta.rsi(close, rsi_len)channel_upper = ta.crossover(rsi, upper_level) and not trigger channel_lower = ta.crossunder(rsi, lower_level) and not trigger rsi_color = color.from_gradient(rsi, lower_level, upper_level, lower_col, upper_col)if channel_upper start := bar_index trigger := true upper := high lower := low channel_color := rsi_color is_upper_zone := true if channel_lower start := bar_index trigger := true upper := high lower := low channel_color := rsi_color is_upper_zone := false if bar_index - start >= min_channel_len trigger := falsetrigger_change = (channel_upper != channel_upper[1]) or (channel_lower != channel_lower[1])active_upper_line = trigger_change ? na : upperactive_lower_line = trigger_change ? na : lowermiddle_line = trigger_change ? na : math.avg(upper, lower)// --------------------------------------------------------------------------------------------------------------------// [Signal Logic]// Only signals when price crosses Middle Line formed by Upper RSI levelmid_breakout = ta.crossover(close, middle_line) and is_upper_zone and rsi > rsi_filter_val// --------------------------------------------------------------------------------------------------------------------// [Plotting]plot(active_upper_line, "Upper Line", color = channel_color, style = plot.style_linebr, linewidth = upper_line_width)plot(active_lower_line, "Lower Line", color = channel_color, style = plot.style_linebr, linewidth = lower_line_width)p1 = plot(active_upper_line, display = display.none)p2 = plot(active_lower_line, display = display.none)fill(p1, p2, color.new(channel_color, 90))plot(middle_line, "Center Line", color = center_line_col, style = plot.style_linebr, linewidth = center_line_width)plotshape(mid_breakout, title="Middle Breakout", style=shape.triangleup, location=location.belowbar, color=center_line_col, size=size.small, text="MID")// --------------------------------------------------------------------------------------------------------------------// [Alerts]alertcondition(mid_breakout, title="Middle Breakout Alert", message="Price crossed Middle Shift Zone")일봉상 위 신호가 나오게 해주시면 감사드리겠습니다 (__)
프로필 이미지
사공하늘
2026-01-14
323
글번호 229810
검색