커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다.

1. 종가가 직전 20개봉의 최저가 이하로 내려가면 파란색으로, 종가가 직전 20개봉의 최저가 이상이면 빨강색으로 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2023-12-01
1162
글번호 174513
강조
답변완료

부탁드립니다.

건강 조심하시고 적용 가능하도록 간절히 부탁 드립니다. indicator("ALMA Smoothed Gaussian Moving Average", shorttitle = "ASGMA", overlay=true) //ALMA Smoothing src = input(close, title='Source', group = "ALMA Smoothing") smooth = input.int(1, title='Smoothing', minval=1, group = "ALMA Smoothing") length1 = input.int(25, title='Lookback', minval=1, group = "ALMA Smoothing") offset = 0.85 sigma1 = 7 pchange = ta.change(src, smooth) / src * 100 avpchange = ta.alma(pchange, length1, offset, sigma1) //RSI rsi = ta.rsi(close, 14) rsiL = rsi > rsi[1] rsiS = rsi < rsi[1] //Chande Momentum length11 = 9 src1 = close momm = ta.change(src1) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = math.sum(m1, length11) sm2 = math.sum(m2, length11) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) cL = chandeMO > chandeMO[1] cS = chandeMO < chandeMO[1] //GAMA credit to author: &#169; LeafAlgo https://www.tradingview.com/v/th7NZUPM/ length = input.int(14, minval=1, title="Length", group = "Gaussian Adaptive Moving Average") adaptive = input.bool(true, title="Adaptive Parameters", group = "Gaussian Adaptive Moving Average") volatilityPeriod = input.int(20, minval=1, title="Volatility Period", group = "Gaussian Adaptive Moving Average") // Calculate Gaussian Moving Average gma = 0.0 sumOfWeights = 0.0 sigma = adaptive ? ta.stdev(close, volatilityPeriod) : input.float(1.0, minval=0.1, title="Standard Deviation", group = "Gaussian Adaptive Moving Average") for i = 0 to length - 1 weight = math.exp(-math.pow(((i - (length - 1)) / (2 * sigma)), 2) / 2) value = ta.highest(avpchange, i + 1) + ta.lowest(avpchange, i + 1) gma := gma + (value * weight) sumOfWeights := sumOfWeights + weight gma := (gma / sumOfWeights) / 2 gma:= ta.ema(gma, 7) gmaColor = avpchange >= gma ? color.rgb(0, 161, 5) : color.rgb(215, 0, 0) // Color bars based on signals until the next signal occurs var int currentSignal = 0 currentSignal := avpchange >= gma ? 1 : -1//le_final ? -1 : currentSignal var color barColor = na if currentSignal == 1 barColor := color.rgb(0, 186, 6) else if currentSignal == -1 barColor := color.rgb(176, 0, 0) barcolor(barColor) plotcandle(open, high, low, close, "Bar Color", barColor, barColor, bordercolor = barColor) //Plotting ema = ta.ema(close, 7) plot(ema, color=gmaColor, linewidth=3, title="Gaussian Moving Average") plotshape(ta.crossover(avpchange,gma) and barstate.isconfirmed, "Buy Signal", text = "B", textcolor = color.white, style = shape.labelup, location = location.belowbar, color = color.rgb(0, 161, 5), offset = -1) plotshape(ta.crossunder(avpchange,gma) and barstate.isconfirmed, "Sell Signal", text = "S", textcolor = color.white, style = shape.labeldown, location = location.abovebar, color = color.rgb(215, 0, 0), offset = -1) bgcolor(ta.crossover(avpchange,gma) and barstate.isconfirmed and rsiL and cL ? color.rgb(0, 162, 5, 85): na, offset = -1) bgcolor(ta.crossunder(avpchange,gma) and barstate.isconfirmed and rsiS and cS ? color.rgb(207, 0, 0, 85): na, offset = -1) barcolor(gmaColor) alertcondition(ta.crossover(avpchange,gma) and barstate.isconfirmed, title="Buy Signal", message="Go Long! {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(avpchange,gma) and barstate.isconfirmed, title="Sell Signal", message="Go Short! {{exchange}}:{{ticker}}")
프로필 이미지
다올
2023-12-01
1336
글번호 174512
지표
답변완료

지표식구합니다

분봉 또는 틱봉의 전일과 분리된 종가파라볼릭에서 상승파라볼릭 하락파라볼릭 살승파라볼릭을 반복하는 구간의 봉의갯수를 계속해서 구하는 지표식 구합니다 감사합니다 위와 같이 봉의갯수를 구했을때 그값이 n개 이상인것은 표시하지 않도록 하게해주세요 감사합니다
프로필 이미지
느림보
2023-12-04
1048
글번호 174508
지표
답변완료

최적화 취소버튼

안녕하세요. 화면과 같이 최적화 할때 취소버튼이 없는 경우는 어떻게 해결하면 좋을까요? 항상 도움주셔서 감사합니다 :)
프로필 이미지
히익
2023-12-01
1049
글번호 174505
시스템

234fsdae 님에 의해서 삭제되었습니다.

프로필 이미지
234fsdae
2023-12-01
549
글번호 174501
종목검색
답변완료

수식문의드립니다.

안녕하세요. 시스템 청산수식 문의드립니다. 매수청산수식 : 매수진입후 + 350틱 이상부터는 아래로 -50틱 으로 떨어지면 강제청산하는 수식을 부탁드립니다. 매도청산수식 : 매도진입후 - 350틱 이상부터는 위로 +50틱 으로 올라가면 강제청산하는 수식을 부탁드립니다. 매수청산수식 ===== if MarketPosition <= 0 and CrossUp(var1,Var2) Then Buy ("B1", AtStop, C); if MarketPosition == 1 and CrossDown(var1,Var42 Then ExitLong("bx"); ExitLong( "be", 매수청산 필요수식.................); 매도청산수식 =========== if MarketPosition <= 0 and CrossDown(var1,Var2) Then Sell ("S1", AtStop, C); if MarketPosition == -1 and CrossUP(var1,Var2) Then ExitShort ("sx"); ExitShort("se", 매도청산 필요수식............); 늘 감사드립니다. 좋은 날되세요 ~
프로필 이미지
하늘선물
2023-12-01
798
글번호 174500
시스템
답변완료

도움 부탁드립니다~!

게시판도 다 찾아보고 혼자 해보다가 안돼서 문의 드립니다 ㅠㅠ 20일 이내에 일봉상 -10% 이상 장대음봉(거래대금 100억 이상)이 발생한 종목을 찾고 싶습니다.
프로필 이미지
도하리
2023-12-01
1131
글번호 174497
종목검색
답변완료

문의 드립니다.

input : StartTime(0000),EndTime(0000); input : 익절틱수(0),손절틱수(0); var : Tcond(False),entry(0); Variables: Mom(0); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; IF Endtime <= starttime Then { SetStopEndofday(0); } } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { Tcond = False; } if Tcond == true Then { if L ==lowest(L,1) and highest(H,4) >= lowest(L,2)+PriceScale*1 Then { Buy("b",AtStop,(highest(H,4)+lowest(L,1))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then Sell(); } if H == highest(H,1) and lowest(L,4) <= highest(H,2)+PriceScale*1 Then { Sell("s",AtStop,(lowest(L,4)+highest(H,1))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then Buy(); if L ==lowest(L,1) and highest(H,4) >= lowest(L,2)+PriceScale*10 Then { Buy("b1",AtStop,(highest(H,4)+lowest(L,1))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then Sell(); if H == highest(H,1) and lowest(L,4) <= highest(H,2)+PriceScale*10 Then { Sell("s1",AtStop,(lowest(L,4)+highest(H,1))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then Buy(); if L ==lowest(L,1) and highest(H,4) >= lowest(L,2)+PriceScale*10 Then { Buy("b2",AtStop,(highest(H,4)+lowest(L,1))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then Sell(); if H == highest(H,1) and lowest(L,4) <= highest(H,2)+PriceScale*10 Then { Sell("s2",AtStop,(lowest(L,4)+highest(H,1))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then Buy(); if L ==lowest(L,1) and highest(H,4) >= lowest(L,2)+PriceScale*1 Then { Buy("b3",AtStop,(highest(H,4)+lowest(L,1))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then Sell(); if H == highest(H,1) and lowest(L,4) <= highest(H,2)+PriceScale*1 Then { Sell("s3",AtStop,(lowest(L,4)+highest(H,1))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then Buy(); if L ==lowest(L,1) and highest(H,4) >= lowest(L,2)+PriceScale*10 Then { Buy("b4",AtStop,(highest(H,4)+lowest(L,1))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then Sell(); if H == highest(H,1) and lowest(L,4) <= highest(H,2)+PriceScale*10 Then { Sell("s4",AtStop,(lowest(L,4)+highest(H,1))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then Buy(); if L ==lowest(L,1) and highest(H,4) >= lowest(L,2)+PriceScale*10 Then { Buy("b5",AtStop,(highest(H,4)+lowest(L,1))/2); } if MarketPosition == 1 and BarsSinceEntry == 9 Then Sell(); if H == highest(H,1) and lowest(L,4) <= highest(H,2)+PriceScale*10 Then { Sell("s5",AtStop,(lowest(L,4)+highest(H,1))/2); } if MarketPosition == -1 and BarsSinceEntry == 9 Then Buy(); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); 위 수식어를 일봉에 접목을 하고 싶은데 실질적으로 전일 잔고가 있을시 미처리 부분 때문에 적용하지 못하고 있습니다. 위 수식어는 과거 데이터로 주문이 이루어지는 특성상 일봉의 매수나 매도의 신호를 장중 예약주문이 가능하지 문의 드리고 가능하다면 익절 손절은 각각 100틱으로 설정하고자 합니다. 늘 감사드립니다.
프로필 이미지
푸른
2023-12-01
1095
글번호 174495
시스템
답변완료

수식문의

안녕하세요 1번 macd 기준선 상향돌파시 매수 stock slow 80 이상에서 데드크로스 청산 macd 기준선 하향돌파시 매도 stock slow 20 이하에서 골드크로스 청산 2번 macd 시그널 골든크로스 매수 stock slow 80 이상에서 데드크로스 청산 macd 시그널 데드크로스 매도 stock slow 20 이하에서 골드크로스 청산 감사합니다 너무 오랜만이라 수식을 예스트레이더에 넣으려면 어떻게 하는지 기억이 잘 안나는데 좀 알려주시면 감사하겠습니다 고맙습니다~~
프로필 이미지
김대리
2023-12-01
999
글번호 174494
시스템