커뮤니티

예스랭귀지 Q&A

글쓰기

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

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

data2 에서의 dayindex 문의

주간장에서 data2 를 사용할때 선물장은 8시 45분에 시작하는데 data2 의 자료는 9시부터 시작하는 경우 data2( ma(c,dayindex+1) > 100 ) 이라는 수식에서 dayindex는 data2 의 시작시점인 9시부터 계산되는 건가요 ? 아니면 선물 주기인 8시 45분부터 계산되는 건가요?
프로필 이미지
자오지환웅
2025-08-13
173
글번호 193209
시스템
답변완료

수식 부탁드립니다

지표식 부탁 드립니다. //@version=5 indicator("HL Optimized Trend Tracker", overlay=true) // === inputs length = input.int(2, "Period", minval=1) percent = input.float(1.5, "Optimization Coeff", step=0.1, minval=0) hllength = input.int(20, "Highest and Lowest Length", minval=1) // === highest / lowest series used as VAR source src = ta.highest(high, hllength) srcl = ta.lowest(low, hllength) // === VAR moving-average function (fixed VAR type) Var_Func(src, length) => valpha = 2 / (length + 1) vud1 = src > src[1] ? src - src[1] : 0 vdd1 = src < src[1] ? src[1] - src : 0 vUD = math.sum(vud1, 9) vDD = math.sum(vdd1, 9) vCMO = nz((vUD - vDD) / (vUD + vDD)) VAR = 0.0 VAR := nz(valpha * math.abs(vCMO) * src) + (1 - valpha * math.abs(vCMO)) * nz(VAR[1]) VAR // === compute VAR-based MAs (top & low) MAvg = Var_Func(src, length) MAvgl = Var_Func(srcl, length) // === HOTT (top) logic fark = MAvg * percent * 0.01 longStop = MAvg - fark longStopPrev = nz(longStop[1], longStop) longStop := MAvg > longStopPrev ? math.max(longStop, longStopPrev) : longStop shortStop = MAvg + fark shortStopPrev = nz(shortStop[1], shortStop) shortStop := MAvg < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir MT = dir == 1 ? longStop : shortStop HOTT = MAvg > MT ? MT * (200 + percent) / 200 : MT * (200 - percent) / 200 // === LOTT (low) logic (mirror) farkl = MAvgl * percent * 0.01 longStopl = MAvgl - farkl longStopPrevl = nz(longStopl[1], longStopl) longStopl := MAvgl > longStopPrevl ? math.max(longStopl, longStopPrevl) : longStopl shortStopl = MAvgl + farkl shortStopPrevl = nz(shortStopl[1], shortStopl) shortStopl := MAvgl < shortStopPrevl ? math.min(shortStopl, shortStopPrevl) : shortStopl dirl = 1 dirl := nz(dirl[1], dirl) dirl := dirl == -1 and MAvgl > shortStopPrevl ? 1 : dirl == 1 and MAvgl < longStopPrevl ? -1 : dirl MTl = dirl == 1 ? longStopl : shortStopl LOTT = MAvgl > MTl ? MTl * (200 + percent) / 200 : MTl * (200 - percent) / 200 // === Plot only HOTT & LOTT plot(nz(HOTT[2]), title="HOTT", color=color.blue, linewidth=2) plot(nz(LOTT[2]), title="LOTT", color=color.red, linewidth=2)
프로필 이미지
사노소이
2025-08-13
287
글번호 193208
지표
답변완료

수식 부탁드립니다.

조건: 분봉에서 2개봉 이상 매수볼륨이 매도볼륨보다 40%많은 종목을 검색이 조건값인데 파워종목검색을 돌려보면 결과값에는 40%미만인 종목과 매도볼륨이 더 많은 종목 등이 검색 되네요 조건값이 제대로 나오게 코드 수정 가능할까요? Variables: total_range(0), candle_body_length(0), upper_wick_length(0), lower_wick_length(0), percent_body_length(0), percent_upper_wick(0), percent_lower_wick(0), buying_volume(0), selling_volume(0), buying_dominant(false), consec_buying_dominant_bars(0); if Volume > 0 and High > Low then begin total_range = High - Low; candle_body_length = AbsValue(Close - Open); upper_wick_length = High - MaxList(Open, Close); lower_wick_length = MinList(Open, Close) - Low; if total_range > 0 then begin percent_body_length = candle_body_length / total_range; percent_upper_wick = upper_wick_length / total_range; percent_lower_wick = lower_wick_length / total_range; // IFF 함수 사용한 볼륨 계산 buying_volume = iff(Close > Open, (percent_body_length + (percent_upper_wick + percent_lower_wick)/2) * Volume, ((percent_upper_wick + percent_lower_wick)/2) * Volume); selling_volume = iff(Close < Open, (percent_body_length + (percent_upper_wick + percent_lower_wick)/2) * Volume, ((percent_upper_wick + percent_lower_wick)/2) * Volume); // 매수우위 판단 if selling_volume > 0 then begin buying_dominant = buying_volume >= selling_volume * 1.4; end else begin buying_dominant = false; end; // 연속 봉 계산 if buying_dominant then begin consec_buying_dominant_bars = consec_buying_dominant_bars[1] + 1; end else begin consec_buying_dominant_bars = 0; end; end; end; // 최종 조건 if consec_buying_dominant_bars >= 2 then begin Find(1); end;
프로필 이미지
허밍스타
2025-08-13
199
글번호 193207
종목검색
답변완료

93862

93862에 추가문의있읍니다.
프로필 이미지
ksks
2025-08-13
174
글번호 193206
종목검색

도전74 님에 의해서 삭제되었습니다.

프로필 이미지
도전74
2025-08-12
4
글번호 193204
종목검색
답변완료

문의드립니다.

종목 검색식 부탁드립니다.. 3종류입니다.. 첫번째 ======================== input : PERIOD(20),N(20),K(8) A=100*eavg(C,Period)/eavg(C(n),Period); B=100*eavg(eavg(C,Period)/eavg(C(n),Period),k); A>B 두번째=========================== a=valuewhen(1,crossup(avg(C,1), avg(C,60)),avg(c,60)); a1=valuewhen(1,crossdown(avg(C,20), avg(C,60)),avg(C,60)); a2=valuewhen(1,crossdown(eavg(C,20), eavg(C,60)),eavg(C,60)); a3=valuewhen(1,crossdown(avg(C,5), avg(C,20)),avg(C,20)); C > a and C > a1 and C > a2 and C > a3 세번째 ================================= a=valuewhen(1,crossup(avg(C,1), avg(C,60)),avg(c,60)); a1=valuewhen(1,crossdown(avg(C,20), avg(C,60)),avg(C,60)); a2=valuewhen(1,crossdown(eavg(C,20), eavg(C,60)),eavg(C,60)); a3=valuewhen(1,crossdown(avg(C,5), avg(C,20)),avg(C,20)); Crossup(C,a) and Crossup(C,a1) and Crossup(C,a2) and Crossup(C,a3) ========================================================== 매번 간단한 질문을 드려 죄송합니다. 이렇게 종목 검색을 만들려면 어디서 공부해야 하나요? 다시 한번 감사드립니다.
프로필 이미지
저스틴e
2025-08-12
215
글번호 193203
종목검색
답변완료

부탁드립니다.

1. 종가가 양음봉 관계없이 위꼬리 길이가 몸통 길이보다 길거나 같으면 빨강색으로, 종가가 양음봉 관계없이 아래꼬리 길이가 몸통 길이보다 길거나 같으면 파란색으로 구현해 주세요 2. 종가가 양음봉 관계없이 아래꼬리의 길이가 몸통 길이보다 길거나 같으면 종가를 기준으로 빨강색 우측추세선으로 30개봉째까지(봉 갯수 임의로 조정가능 하게) 계속 나타나도록 구현해 주세요 3. 종가가 양음봉 관계없이 위꼬리의 길이가 몸통 길이보다 길거나 같으면 종가를 기준으로 파란색 우측추세선으로 30개봉째까지(봉 갯수 임의로 조정가능 하게) 계속 나타나도록 구현해 주세요 4. 종가가 음봉이면서 직전봉이 양봉이면 종가의 고가를 기준 삼아 빨강색 우측추세선으로 30개봉째까지(봉 갯수 임의로 조정 가능하게), 종가가 양봉이면서 직전봉이 음봉이면 종가의 저가를 기준 삼아 파란색 우측추세선으로 30개봉째까지(봉 갯수 임의로 조정 가능하게) 계속 나타나도록 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2025-08-12
151
글번호 193202
강조
답변완료

Text_GetString

var : str(" "); Text4 = Text_New(sDate, sTime, H, "시험"); Text_SetStyle(Text4, 2, 0); Text_SetBold(Text4,1); Text_SetSize(Text4,24); Text_SetColor(Text4,Red); str = Text_GetString(Text4); // 리턴값은 문자형 변수 MessageLog("> TEST : [" + str + "]"); 메뉴얼에 있는 예제입니다. 프로그램이 죽는 이유가 뭔가요? 조언 부탁드립니다.
프로필 이미지
와글이
2025-08-12
185
글번호 193201
시스템
답변완료

검색식 부탁드려요 항상 감사합니다.

1번조건 볼린저밴드(20,2) 상단선의 5봉전부터 1봉전까지의 변동률이 0.5%이내 (또는 기간내 상단선값의 고가 저가 차이가 0.5%)로 수평 횡보 2번조건 어제까지 수평 횡보중인 볼린저밴드(20,2) 상단선을 볼린저밴드(10,2) 상단선이 0봉(당일)에 돌파(crossup) 3번조건 오늘의 종가가 60봉전의 볼린저밴드(20,2) 상단선 돌파 또는 상단선 위에 위치 4번조건 거래량 전일대비 150%이상
프로필 이미지
하이모리
2025-08-12
195
글번호 193200
종목검색