커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

종목검색문의드립니다

srcF = CLOSE;srcS = CLOSE; VWmaF = SUM(srcF * VOLUME, 12) / SUM(VOLUME, 12);VWmaS = SUM(srcS * VOLUME, 26) / SUM(VOLUME,26); AvgF = MA(srcF, 12);AvgS = MA(srcS, 26); VPC = VWmaS - AvgS;VPR = IF(AvgF != 0, VWmaF / AvgF, 0);VM = IF(MA(VOLUME, 26) != 0, MA(VOLUME, 12) / MA(VOLUME, 26), 0);VPCI = VPC * VPR * VM; lenV = IF(VPC < 0, CEIL(ABS(VPCI - 3)), IF(VPC >= 0, CEIL(VPCI +3), 1));VPCc = IF(VPC > -1 AND VPC < 0, -1, IF(VPC < 1 AND VPC >= 0, 1, VPc)); PriceV = IF(lenV != 0, (LOW * (1/ VPCc) * (1/ VPR)) / lenV / 100, 0); DeV = 2 * VPCI * VM; AVSL = MA(LOW - PriceV + DeV, 26);bb=bbandsup(40,2);crossup(avsl,bb)
프로필 이미지
우주최강
2026-04-22
92
글번호 231709
종목검색
답변완료

print관련 질문

전략 실행차트에서 print문을 사용해 60분봉 Open, Close 값을 CSV 형태로 받았습니다.하지만 최대 1만개 Bar만 받을 수 있게 설정된 것 같습니다.혹시 80000개 Bar에 대해 print 값 받을 수 있는 방법이 있을까요?
프로필 이미지
노던라이트
2026-04-21
90
글번호 231708
검색
답변완료

지표와 종목검색식 부탁 드립니다

VWAP(Volume-Weighted Average Price) 지표를 돌파하는 종목을 검색식 요청합니다맞는건지 검토 요청합니다키움에서는 단순히a=sum((H+L+C)/3*V, 기간1)/sum(V, 기간1);crossup(c,a)개인적으로 만들어 본 수식은 아래와 같습니다Input : 기간1(60), 거래량배수(1.5);// 거래량은 굳이 넣지 않아도 됩니다Var : tp(0), vwma(0), vol_avg(0);// 1. Typical Price (대표가격) 계산tp = (HIGH + LOW + CLOSE) / 3;// 2. SUM 대신 Accumn 함수 사용 (N기간 합계)// VWMA = (가격*거래량)의 N일 합계 / 거래량의 N일 합계vwma = Accumn(tp * VOLUME, 기간1) / Accumn(VOLUME, 기간1);// 3. AVG 대신 MA 함수 사용 (이동평균)vol_avg = MA(VOLUME, 기간1);// 4. 조건 검증 및 신호 발생If CrossUp(CLOSE, vwma) and VOLUME > vol_avg * 거래량배수 and CLOSE > OPEN and vwma > vwma[1] Then Find(1); // 종목 검색 시 '1'로 표시
프로필 이미지
행복만땅
2026-04-21
130
글번호 231707
종목검색
답변완료

수정문의

Q1)y_hat = (C*1.000 + C(1)*0.992 + C(2)*0.969 + C(3)*0.932 + C(4)*0.883 + C(5)*0.823 + C(6)*0.755 + C(7)*0.682 + C(8)*0.607 + C(9)*0.531 + C(10)*0.458 + C(11)*0.389 + C(12)*0.325 + C(13)*0.267 + C(14)*0.216 + C(15)*0.172 + C(16)*0.135 + C(17)*0.105 + C(18)*0.080 + C(19)*0.060 + C(20)*0.044 + C(21)*0.032 + C(22)*0.023 + C(23)*0.016 + C(24)*0.011 + C(25)*0.008) / 10.515;mae_val = avg(abs(C - y_hat), 20);lower_band = y_hat - (mae_val * mult);A=BBandsDown(Period,D1);B=(eavg(V*C,Len)/eavg(V,Len) - avg(eavg(V*C,Len)/eavg(V,Len),Len)) / (0.015 * stdev(eavg(V*C,Len)/eavg(V,Len),Len));(CrossUp(C, lower_band) OR (L<=lower_band && C>lower_band)) && C>O &&(B < -100 OR B(1)<-100) and (A>L OR A(1)>L(1)) AND A<=C위 수식을 아래와 같이 예스랭기지로 옮겨 검색하고 있는데, 어떤 문제가 없는지 검토바랍니다.===========================================================================================================Input: Bandwidth(8), // 가우시안 커널의 대역폭 mult(2), // 엔벨로프 승수 src(C), // 적용 가격 Period(20),D1(2), len(20);Var: sum_w(0), sum_wy(0), y_hat(0), i(0), w(0), upper(0), lower(0), mae_val(0), M200(0), TX(0), signal_up(False), A(0),B(0);M200 = WMA(C, 200); // 1. 가우시안 가중치 회귀 계산 (머신러닝 커널 회귀)sum_w = 0;sum_wy = 0;For i = 0 to 25 { // Bandwidth를 사용하여 가중치 계산 w = exp(-(pow(i, 2) / (2 * pow(Bandwidth, 2)))); sum_w = sum_w + w; sum_wy = sum_wy + (src[i] * w);}If sum_w > 0 Then y_hat = sum_wy / sum_w;Else y_hat = src;// 2. 변동성(MAE) 기반 엔벨로프 구축mae_val = Ma(abs(src - y_hat), 20);upper = y_hat + (mae_val * mult);lower = y_hat - (mae_val * mult);Condition2 = M200[2]<M200[1] and M200[1]<M200;// 3. 상승 신호 로직 (하단 이탈 후 회복 시점)signal_up = CrossUp(src, lower);A=BollBandDown(Period,D1);B=(ema(V*C,Len)/ema(V,Len) - MA(ema(V*C,Len)/ema(V,Len),Len)) / (0.015 * std(ema(V*C,Len)/ema(V,Len),Len));If ((signal_up or (L<=lower && C>lower)) && c>o) && (B < -100 OR B[1]<-100) && (A>L OR A[1]>L[1]) && A<=CTheN Find(1);Q2)하이킨아시 5분봉차트의 "첫 봉"이A=PREDAYHIGH()-PREDAYLOW();B=DAYOPEN()+A*0.5;B1=RSI(14);CROSSUP(C,B) AND B1>50 AND 전봉대비 2%이상상승 AND 전일대비 10%이하를 만족하는 수식을 부탁합니다.(엊그제 작성해주신 하이킨아시분봉차트 위 신호가 무슨 이유인지 모르겠는대 자동매매에서 거의 걸리지 않습니다.)var : haClose(0),haOpen(0),haHigh(0),haLow(0);var : A(0),B(0),B1(0);#Heiken Ashi 시고저종haClose = (O+H+L+C)/4;haOpen = iff(index == 0,open,(haOpen [1] + haClose [1])/2) ; haHigh = MaxList(High, haOpen, haClose) ;haLow = MinList(Low, haOpen, haClose) ;A=DAYHIGH(1)-DAYLOW(1);B=DAYOPEN()+A*0.5;B1=RSI(14);Condition1 = CROSSUP(C,B) AND B1>50 AND haClose>haClose[1]*1.02 AND C >= C[1]*1.15;if Condition1[1] == true Then Find(1);
프로필 이미지
ksks
2026-04-21
197
글번호 231706
종목검색
답변완료

시스템 수식 부탁드립니다.

만든 함수 2개 openprice, openprice_2매수식은 openprice 함수가 기준이고매도식은 openprice_2 함수가 기준입니다.매수식:무포지션에서매수준비1 :openprice 가 새로 생기면 매수준비1=1 이라고 정함이후에 종가가 openprice가격 이하에 오면매수준비1=0 이 되어 해제됩니다.매수준비1=1 유효할 때이후에 발생하는 가장 최근 음봉 종가를양봉 종가가 상방으로 돌파할 때 2계약 매수합니다.또는매수준비1=1 유효하면서직전 양봉종 가 < 현재봉 양봉 종가를 만족하는 양봉이 2개 연속으로 나올 때 2계약 매수합니다.청산:손절청산: 매수봉 저가를 종가가 아닌 현재가가하방 이탈시 전부 청산합니다.이익청산:1계약 청산:매수봉 종가를 저장하고 매수 이후에 생기는 양봉 종가가매수봉 종가 위에 위치하면 1계약만 이익청산하고 즉시손절가격을 매수진입가격인 본절가격으로 변경합니다.잔존 1계약 청산:이후에 바로직전봉의 저가를 종가가 아닌 현재가가하향하면 즉시 잔존 1계약을 청산 합니다.매도식: 반대논리로 부탁드립니다.
프로필 이미지
종호
2026-04-21
90
글번호 231705
시스템
답변완료

PercentRankArray, PercentileArray 시계열 결과값 일부 N/A

1.PercentRankArray, PercentileArray 의 시계열 결과값에서 일부가 N/A로 나오는 case를 알고 싶습니다.2.1분 주기, 20000봉 차트 환경몇몇 특정 종목(065420:에스아이리소스 등)에서시스템 트레이딩 설정(시스템 매매 설정) -> 비용/수량:고정자산 기준 진입 -> 기준자산 금액 변경If MarketPosition == 0 Then {if signalName == "B_I" then Buy("B_I", OnClose);else if signalName == "B_E" then Buy("B_E", OnClose);else if signalName == "B_P" then Buy("B_P", OnClose);else if signalName == "B_L" then Buy("B_L", OnClose);}기준자산 case 100,000,000 시스템식 B_I(x), B_E(x), B_P(x), B_L(x)기준자산 case 40,000,000 시스템식 B_I(x), B_E(x), B_P(x), B_L(x)기준자산 case 38,000,000 시스템식 B_I(x), B_E(x), B_P(x), B_L(x)기준자산 case 37,100,000 시스템식 B_I(x), B_E(o), B_P(x), B_L(x) B_E(o) 1건기준자산 case 37,000,000 시스템식 B_I(x), B_E(o), B_P(x), B_L(x) B_E(o) 1건기준자산 case 36,000,000 시스템식 B_I(x), B_E(o), B_P(x), B_L(x) B_E(o) 1건기준자산 case 30,000,000 시스템식 B_I(x), B_E(o), B_P(x), B_L(o) B_E(o) 6건, B_L(o) 1건,기준자산 case 25,000,000 시스템식 B_I(o), B_E(o), B_P(x), B_L(o) 총 38건 B_E(o) 20건, B_L(o) 3건, B_I(o) 15건기준자산 case 20,000,000 시스템식 B_I(o), B_E(o), B_P(x), B_L(o) 총 85건기준자산 case 18,000,000 시스템식 B_I(o), B_E(o), B_P(x), B_L(o) 총 104건기준자산 case 15,000,000 시스템식 B_I(o), B_E(o), B_P(x), B_L(o) 총 107건기준자산 case 10,000,000 시스템식 B_I(o), B_E(o), B_P(x), B_L(o) 총 107건기준자산 case 5,000,000 시스템식 B_I(o), B_E(o), B_P(x), B_L(o) 총 108건지표식은 진입/청산위치를 전부 정확히 표시합니다.시스템식은 기준자산 금액 case에 따라서 시스템식이 작동을 하지 않는 경우가 생깁니다.시스템식은 기준자산 금액 case에 따라서 거래건수가 틀립니다.원인이 무엇인지요?
프로필 이미지
목포댁
2026-04-21
100
글번호 231702
시스템
답변완료

종목검색식 부탁드립니다.

1. 아래 수식읊 참고하여, 상단선 기준 , 상하 2% 에 있는 종목 검색식 부탁드려요. -------아래------ 수식1 ) 상단 갱신 = H > Highest(H(1), 기간-1);기준고 = Valuewhen(1, 갱신, H); 상단 = Valuewhen(1, BarsSince(갱신)==(기간-2), 기준고); 수식2) 하단 갱신 = H > Highest(H(1), 기간-1); 최저 = Lowest(L, 기간); 하단 = Valuewhen(1, BarsSince(갱신)==(기간-2), 최저); 지표변수 기간 60-------------------------------------------------------2. 단순240이평선 상단 3%에 있는 종목3. 지수 224 이평선 하단 5%에 있는 종목 부탁드립니다4. 단순 240일 이평선이 60일이상 하락하다가 상승전환으로 바뀐 종목검색식 부탁드려요 , (0봉전 ~10봉전 전종목)
프로필 이미지
일지매7
2026-04-21
128
글번호 231701
종목검색
답변완료

종목 검색식 부탁드립니다.

1. 선행스팬 1 이 "하락 또는 횡보하다가 처음 상승으로 돌아설때" 종목검색식 부탁드려요.2. 선행스팬 1 이 "전일보다 상승" 하는 종목검색식 부탁드려요.3. 선행스팬 2 가 "하락 또는 횡보하다가 처음 상승으로 돌아설때" 종목검색식 부탁드려요.4. 선행스팬 2 가 "전일보다 상승" 하는 종목검색식 부탁드려요
프로필 이미지
일지매7
2026-04-21
63
글번호 231699
종목검색
답변완료

print 사용하는 방법

아래와 같이 지표에 Print문을 넣고 print("test.csv", "시작가 %.2f 종가 %.2f", Open, Close);시뮬레이션 차트에서 더블클릭해 지표를 실행시켰음. 그런데 YesLang Directory에 아무것도 안생겼습니다.print("C:\test.csv", "시작가 %.2f 종가 %.2f", Open, Close);위와 같이 다른 directory에 해도 csv 파일이 안생깁니다.한투를 실행시킬 때 관리자 권한으로 해도 안생깁니다.원인이 뭘까요?그리고 print문을 사용해 60분봉 1일봉에 대한 Open, Close 값을 2015년부터 2025년까지 받을 수 있는건가요?
프로필 이미지
노던라이트
2026-04-20
89
글번호 231696
검색