커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

양산박 님에 의해서 삭제되었습니다.

프로필 이미지
양산박
2025-11-06
17
글번호 227703
지표
답변완료

검색식 부탁드립니다

ATR값 = ATR(기간_ATR); ATR퍼센트 = (ATR값 / CLOSE)*100; 소스값 = ATR퍼센트; // 볼린저밴드 계산 중간선 = AVG(소스값, 기간_BB); 편차 = STDEV(소스값, 기간_BB); 상단밴드 = 중간선+ (편차 * 표준편차_배수); 하단밴드 = 중간선 - (편차 *표준편차_배수); 하단밴드 지표조건 기간_ATR 22 기간_BB 20 표준편차_배수 2 1,ATR지표값이 1봉전보 하락하고 BB 하단선을 크로스 다운한 검색식 부탁 드립니다 2, ATR 지표값을 BB상단선이 돌파한 검색식 부탁드립니다rsiVolweight = if(rsiVal <30 and Volweight > 1.2,0.8, if(rsiVal > 70 and volweight > 1.2,1.3,1,0));weightedDis = baseDis*rsiweight*volweight*rsivolweight;smoothedweightedDis = avg(weightedDis,3)지표조건per 20volper20rsiper14지표값이 1 이하인 검색식 부탁 드립니다
프로필 이미지
님이랑
2025-11-06
237
글번호 227698
종목검색
답변완료

중심가

감사합니다. 아래 지표 부탁드립니다 1. N년도 기준, N년간 최고가와 최저가의 중심가를 구하는 지표2. 당해년도 기준, 연간 최고가와 최저가의 중심가를 구하는 지표 3. N년도 마지막 분기의 최고가와 최저가의 중심가 지표가 그 이후 년도에도 그대로 동일하게 계속 그려지는 N년도 마지막 분기 중심가를 구하는 지표4. 당해년도 기준, 각 분기별 중심가 지표가 당해년도 마지막까지 직선으로 표시되는 지표(1, 2, 3분기 중심가지표가 각각 분기별로 다르게 4분기까지 직선으로 그려지는 지표)5. N년도 기준, 각 분기별 중심가 지표가 그 이후 년도에도 계속 직선으로 표시되는 지표(N년도의 1, 2, 3, 4분기 중심가지표가 각각 분기별로 다르게 직선으로 그려지고 그 이후 현재까지 그려지는 지표)
년간최고최저 분기별최고최저
프로필 이미지
jdavid
2025-11-06
208
글번호 227693
지표
답변완료

문의 드립니다.

///_____________________________________________________________________________________________________________________///Inputs///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾tf = input.timeframe("", title = "Timeframe")len = input.int(20, title = "Length", minval = 1)‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾get_vpc(_len) => //Main Logic var float h_vwap = high var float l_vwap = low float upper = na float lower = na hst = ta.highest(_len) lst = ta.lowest(_len) new_high = high == hst new_low = low == lst h_vwap := ta.vwap(high,new_high) l_vwap := ta.vwap(low,new_low) h_change = ta.change(h_vwap) l_change = ta.change(l_vwap) upper := new_high ? hst : (hst == hst[1] ? upper[1] + h_change : math.min(hst,upper[1] + h_change)) lower := new_low ? lst : (lst == lst[1] ? lower[1] + l_change : math.max(lst,lower[1] + l_change)) _avg = math.avg(upper,lower) //Trend Detection & Coloring var int dir = 0 var int dir2 = 0 dir := new_high?1:new_low?-1:0 dir2 := new_high?1:new_low?-1:dir2[1] [upper,lower,_avg,hst,lst,dir,dir2]//Calling Function[upper,lower,mid,hst,lst,dir,dir2] = request.security("",tf,get_vpc(len))///_____________________________________________________________________________________________________________________///Display///‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾u = plot(upper, title = "Upper", color = dir == 1 ? color.rgb(0,0,0,100):color.rgb(255, 3, 62), style = plot.style_linebr)plot(mid, title = "Mid", color = color.gray, display = display.none)l = plot(lower, title = "Lower", color = dir == -1 ? color.rgb(0,0,0,100):color.rgb(61, 170, 69), style = plot.style_linebr)c = plot(close, display = display.none, editable = false)fill(u,c,dir2 == 1?color.rgb(0,0,0,100):color.rgb(255, 3, 62, 95), title = "Fill")fill(l,c,dir2 == -1?color.rgb(0,0,0,100):color.rgb(61, 170, 69, 95), title = "Fill")plot(hst, title = "DC Upper", color = #004d92, display = display.none)plot(lst, title = "DC Lower", color = #004d92, display = display.none)//<---nice트레이딩뷰 수식입니다.예스로 좀 바꿔주세요.
프로필 이미지
신대륙발견
2025-11-06
267
글번호 227692
지표
답변완료

crossup 수식 매매시점 문의

아래 예제에서 진입과 청산 매매 시점에 대해 문의 드립니다. 1. 20일 지수 이평이 300일 지수 이평 교차시 buy 하는데, 이는 일봉이 완성된 상태서 매수 하나요? 일봉 완성 된 후 진입한다면 너무 늦은거 같습니다. 실시간 현재가로 buy 하려면 어떻게 하나요?2. SetStopLoss(1.3); 진입가격에서 1.3% 손실하면 청산하는데 , 이는 실시간으로 이뤄지나요? 아니면 일봉이 끝난상태서 이뤄지나요?3. 만약 crossup 은 일봉기준, SetStopLoss 는 실시간 기준으로 작동한다면 함수별로 셋팅 되있는 default 값 을 어떻게 확인하나요? 예스랭귀지 편집기 - 사전 에서도 확인이 안됩니다. 4. 추가로 9분봉을 활용한 수식을 작성하고 싶습니다. 예를들어 9분봉 기준 20일 지수 이평이 300일 지수 이평 교차 시 buy 하고싶은데 crossup 함수를 9분봉 세계관에서 사용하려면 어떻게 작성해야할까요? 감사합니다.======= 예제 ========= 단기지수이평 = Ema(C,20); 장기지수이평 = Ema(C,300); #진입 If CrossUp(단기지수이평, 장기지수이평) Then Buy("Buy"); #손절 청산 SetStopLoss(1.3);
프로필 이미지
homepant
2025-11-06
228
글번호 227690
시스템
답변완료

수식문의

아래 수식, 잘 이용하고 있읍니다.(자동매매에) 쓰다보니 변별력을 높이기 위해 다음 사항을 추가하고 싶으나 직접 만들 자신없어 요청드립니다.1봉전 CrossUp(myZLMA ,myEMA) + 0봉전 RSI(14)>=60, -1~-5봉 RSI(14)<59.9 or 0봉전 CrossUp(myZLMA ,myEMA) + 0봉전 RSI(14)>=60, -1~-5봉 RSI(14)<59.9 ============================================================ input : 기간(15); var : myema(0),correction(0),myZLMA (0); myEMA = Ema(C, 기간); correction = C + (C - myEMA); myZLMA = Ema(correction, 기간) ; var1 = Ema(C,200);if CrossUp(myZLMA ,myEMA) and V>= V[1]*2 and C>C[1]*1.02 and countif(myZLMA > myZLMA[1] and myEMA > myEMA[1] and var1 > var1[1],2) == 2 Then Find(1);
프로필 이미지
ksks
2025-11-05
237
글번호 227689
종목검색
답변완료

수식요청

안녕하세요 수식 부탁드립니다 아래식에서 수식 수정 부탁드립니다 매수식 sw2선이 양선인 상태에서 10 이평선 밑에 있고 10이평선 이 sw2선위에 있는 상태에서 캔들이 양봉으로 이평 10선 상향 돌파시 매수.매도식 sw2선이 음선이고 10 이평 위에 위치하고 이평선이 sw2 선 아래에 있는 상태에서 10이평선을 하향 돌파시Inputs : Period(20), Sence(1.5), CC_DN(Yellow); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0),T(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); If STime == 180000 Then DBN = 0; DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H-L; JustChanged = FALSE; if CurrentBar <= Var2 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H-L) /2; end; if CurrentBar == Var1 then begin if Highs[Var2] >= Highs[Var3] then begin UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); #Plot1(VLineUp,"VLineUp"); end; if Highs[Var2] < Highs[Var3] then begin DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6,Var2)); #Plot2(VLineDn,"VLineDn"); end; end; if CurrentBar > Var1 then begin if DnWave[1] and Close > VLineDn then begin DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; end; if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; end; if JustChanged == FALSE then begin if Close > HHighest then HHighest = Close; else if Close < LLowest then LLowest = Close; end; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); VLineDn = LLowest + (Var5 * MA(Var6,Var2)); if UpWave[1] then T = 1; else if DnWave[1] then T = -1; end; Input : BBP(20), MultiD(2),P(30); var : BBmd(0),BBup(0),BBdn(0),mav(0); BBmd = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); mav = ma(C,P); if CrossDown(C,BBup) and t == -1 and c > mav Then sell(); if crossup(C,BBdn) and t == 1 and c < mav Then buy(); 첨부 https://www.yesstock.com/community/file-download?name=193585_sw2.yin&post_key=192729(sw2선)
프로필 이미지
아트정
2025-11-05
412
글번호 227688
시스템
답변완료

사용하고있는 시스템에 강제청산 계속 되는것 보고싶습니다

안녕하세요 수고 많으십니다1, 해선는 나스닥 골드 크로드오일 에서 360분차트 하여 봉 두개 만들어지면 무조건 강제청산 부탁합니다 청산안되요?국선는 input : 시작시간(70000),종료시간(151000); // 시작시간 종료 시간도 사용하고 있습니다 국선는 140분차트해선는 input : 시작시간(20000),종료시간(10000); // 시작시간 종료 시간도 사용하고 있습니다조건 뭐든지 하였을때buy (); 신호 는 한봉마다 발생하고있다 실재거래조건 뭐든지 하였을때 sell (); 한봉 마다 신호 발생하고있다 실재거래 아래 식 에서 봉이 8개 만들었는데 청산 안되고있다 어떤건 4개 만들었는데 강제 청산 안되고있다## 무조건 2개 봉이 만들어지면 청산 안되네요 ???## 7시 시작하여 360분차트 사용하였을때 아래식은 2개마다 청산 안되고있습니다 해결할수있나요input : N(2); ==> 숫자 2 를 넣었는데 봉 2개마다 강재 청산 안된다??? if MarketPosition == 1 and BarsSinceEntry == N Then ExitLong();if MarketPosition == -1 and BarsSinceEntry == N Then ExitShort();2, 윗글 봉 2개마다 청산 안되므로 다른 아이디어 추가 하겠습니다 방법는 시간으로 청산 하겠습니다 예를들어 국선 140분차트 사용하는경 우 280분마다 청산 계속되게 해주세요 예를들어 해선 360분차트 사용하는경 우 720분마다 청산 계속되게 해주세요 시간으로 모든 포지션 청산정리 한후 새로운 신호 받겠습니다 대단히 감사합니다
프로필 이미지
놀이터
2025-11-05
209
글번호 227687
시스템
답변완료

지표 부탁드립니다

안녕하세요 늘 도움주셔서 감사합니다.아래 지표 변환 부탁드립니다.length =input(10,minval=1,title="bb period")dev = input(1,minval=0.0001,title="deviations")//MACDfastlength=input(12,minval=1)slowlength=input(26,minval=1)signallength=input(9,minval=1)fastMA = ema(close,fastlength)slowMA=ema(close,slowlength)macd = fastMA-slowMA//Bollinger Bandsstd=stdve(mad,length)upper=(std*dev+(sma(macd,length)))lowr=((sma(macd,length))-(std*dev))band1=plot(upper,color=gray,style=line,linewidth=2,title="upper band")band2=plot(lower,color=gray,style=line,linewidth=2,title="lower band")fill(band1,band2,color=blue, transp=75,title="fill")mc=macd>=upper?blue:red
MACD볼린져밴드
프로필 이미지
라몬
2025-11-05
210
글번호 227686
지표