커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

종목 검색식 부탁드려요

다음 수식을 조건 검색식으로 부탁드립니다.M5 = ma(C, 5);M20 = ma(C, 20);M60 = ma(C, 60);M24 = ma(C, 240);배열A = M5>M20 && M20>M60 && M60>M24;배열B =M24 > M60 && M5 >M60 && M5 < M24;H120 = Highest(H, 120);조건 = 배열B && H120==H && M60 > M24&&ABS( M60 - M24 ) <= 5;bs = BarsSince(조건);bs>0 && CrossUp(C, M24)
프로필 이미지
redcon
2025-12-11
120
글번호 228895
종목검색
답변완료

문의드립니다

1번 시스템input : length(20),BB_mult(2.0);var : BB_basis(0),dev(0),BB_upper(0),BB_lower(0);BB_basis = ma(close, length);dev = BB_mult * std(close, length);BB_upper = BB_basis + dev;BB_lower = BB_basis - dev;input : KC_mult_high(1.0);input : KC_mult_mid(1.5);input : KC_mult_low(2.0);var : KC_basis(0),devKC(0);var : KC_upper_high(0),KC_lower_high(0);var : KC_upper_mid(0),KC_lower_mid(0);var : KC_upper_low(0),KC_lower_low(0);var : NoSqz(False),LowSqz(False),MidSqz(False),HighSqz(False);var : mom(0),iff_1(0),iff_2(0),mom_color(0),sq_color(0);KC_basis = ma(close, length);devKC = ma(TrueRange, length);KC_upper_high = KC_basis + devKC * KC_mult_high;KC_lower_high = KC_basis - devKC * KC_mult_high;KC_upper_mid = KC_basis + devKC * KC_mult_mid;KC_lower_mid = KC_basis - devKC * KC_mult_mid;KC_upper_low = KC_basis + devKC * KC_mult_low;KC_lower_low = KC_basis - devKC * KC_mult_low;//SQUEEZE CONDITIONSNoSqz = BB_lower < KC_lower_low or BB_upper > KC_upper_low; //NO SQUEEZE: GREENLowSqz = BB_lower >= KC_lower_low or BB_upper <= KC_upper_low; //LOW COMPRESSION: BLACKMidSqz = BB_lower >= KC_lower_mid or BB_upper <= KC_upper_mid ;//MID COMPRESSION: REDHighSqz = BB_lower >= KC_lower_high or BB_upper <= KC_upper_high; //HIGH COMPRESSION: ORANGE//MOMENTUM OSCILLATORmom = LRL(close - avg(avg(highest(high, length), lowest(low, length)),ma(close, length)), length);//MOMENTUM HISTOGRAM COLORiff_1 = iff(mom > iff(isnan(mom[1])==true,0,mom[1]) , lime , green);iff_2 = iff(mom < iff(isnan(mom[1])==true,0,mom[1]) , red , maroon);mom_color = iff(mom > 0 , iff_1 , iff_2);//SQUEEZE DOTS COLORsq_color = iff(HighSqz , red ,IFf(MidSqz , Cyan ,IFf(LowSqz , black , Yellow)));if mom_color == lime and (sq_color == Cyan or sq_color == Red) Then Buy();if mom_color == Red and (sq_color == Cyan or sq_color == Red) Then ExitLong();2번 시스템input : atrMult(45);input : atrlen(12);input : rsmlen(3);input : tplen(14);var : i(0),sum(0),source(0);var : alpha(0),atrValue1(0),upperLevel(0),lowerLevel(0);var : previousLowerLevel(0),previousUpperLevel(0);var : trendDirection(Nan),superTrendValue(Nan);var : previousTrend(0);if CurrentBar > 1 Then { sum = 0; for i = 0 to rsmlen-1 { sum = sum + c[i]*c[i]; } source = sqrt(sum/rsmlen); alpha = 1 / atrlen ; atrValue1 = IFf(IsNan(atrValue1[1]) == true, ma(TrueRange,atrlen) , alpha * TrueRange + (1 - alpha) * IFf(isnan(atrValue1[1])==true,0,atrValue1[1])); upperLevel = source + atrMult * atrValue1; lowerLevel = source - atrMult * atrValue1; previousLowerLevel = iff(isnan(lowerLevel[1])==true,0,lowerLevel[1]); previousUpperLevel = iff(isnan(upperLevel[1])==true,0,upperLevel[1]); // Ensure continuity of lower and upper bands lowerLevel = iff(lowerLevel > previousLowerLevel or source[1] < previousLowerLevel , lowerLevel , previousLowerLevel); upperLevel = iff(upperLevel < previousUpperLevel or source[1] > previousUpperLevel , upperLevel , previousUpperLevel); // Determine direction and SuperTrend previousTrend = superTrendValue[1]; // Initialize direction if IsNan(atrValue1[1]) == true Then trendDirection = 1; else if previousTrend == previousUpperLevel Then trendDirection = iff(source > upperLevel , -1 , 1); else trendDirection = iff(source < lowerLevel , 1 , -1); // Set SuperTrend value based on direction superTrendValue = iff(trendDirection == -1 , lowerLevel , upperLevel);}var : dist(0),chg(0),lvlCol(0);var : tp1(0),tp2(0),tp3(0),tp4(0),tp5(0),tp6(0),tp7(0);var : printedtp1(0),printedtp2(0),printedtp3(0),printedtp4(0),printedtp5(0),printedtp6(0),printedtp7(0);dist = abs(close-superTrendValue);lvlCol = iff(trendDirection > 0 , red , green);var : key1(0);var : key2(0);var : key3(0);var : key4(0);var : key5(0);var : key6(0);var : key7(0);if CrossUp(trendDirection, 0) or CrossDown(trendDirection, 0) Then{ //TL_Delete(keys); printedtp1 = 0; printedtp2 = 0; printedtp3 = 0; printedtp4 = 0; printedtp5 = 0; printedtp6 = 0; printedtp7 = 0; chg = abs(superTrendValue-superTrendValue[1]); tp1 = superTrendValue[1] + IFF(trendDirection > 0 , -chg , chg); tp2 = superTrendValue[1] + IFF(trendDirection > 0 , -chg * 2 , chg * 2); tp3 = superTrendValue[1] + IFF(trendDirection > 0 , -chg * 3 , chg * 3); tp4 = superTrendValue[1] + IFF(trendDirection > 0 , -chg * 4 , chg * 4); tp5 = superTrendValue[1] + IFF(trendDirection > 0 , -chg * 5 , chg * 5); tp6 = superTrendValue[1] + IFF(trendDirection > 0 , -chg * 6 , chg * 6); tp7 = superTrendValue[1] + IFF(trendDirection > 0 , -chg * 7 , chg * 7); key1 = TL_new(sdate[1],stime[1],tp1, sDate,sTime, tp1); TL_SetColor(Key1,lvlCol); TL_SetSize(Key1,2); printedtp1 = 1;}Else TL_SetEnd(key1,sDate,sTime,TP1); var : u(0),d(0),alp(0),ur(0),dr(0),rs(0),R(0),tp(False);u = max(dist - dist[1], 0);d = max(dist[1] - dist, 0);alp = 1/tplen;ur = IFf(IsNan(ur[1]) == true, ma(u,tplen) , alp * u + (1 - alp) * IFf(isnan(ur[1])==true,0,ur[1]));dr = IFf(IsNan(dr[1]) == true, ma(d,tplen) , alp * d + (1 - alp) * IFf(isnan(dr[1])==true,0,dr[1]));rs = ur / dr;R = 100 - 100 / (1 + rs);tp = CrossDown(R, 60);var : extreme(0);var : extreme_tp1_dist(0);var : extreme_tp2_dist(0);var : extreme_tp3_dist(0);var : extreme_tp4_dist(0);var : extreme_tp5_dist(0);var : extreme_tp6_dist(0);var : extreme_tp7_dist(0);extreme = iff(trendDirection > 0 , low , high);extreme_tp1_dist = abs(extreme - tp1);extreme_tp2_dist = abs(extreme - tp2);extreme_tp3_dist = abs(extreme - tp3);extreme_tp4_dist = abs(extreme - tp4);extreme_tp5_dist = abs(extreme - tp5);extreme_tp6_dist = abs(extreme - tp6);extreme_tp7_dist = abs(extreme - tp7);var : tx(0);if tp and trendDirection > 0 Then{ tx = Text_New(sDate,sTime,L,"X"); Text_SetStyle(tx,2,0); Text_SetColor(tx,Red); Text_SetSize(tx,20); Text_SetBold(tx,1); if MarketPosition <= 0 or (MarketPosition == 1 and MaxEntries < 10) Then Buy("b");}if tp and trendDirection < 0 Then{ tx = Text_New(sDate,sTime,H,"X"); Text_SetStyle(tx,2,1); Text_SetColor(tx,Green); Text_SetSize(tx,20); Text_SetBold(tx,1); if MarketPosition >= 0 or (MarketPosition == -1 and MaxEntries < 10) Then Sell("s");}if printedtp2 == 0 and extreme_tp2_dist < extreme_tp1_dist Then{ key2 = TL_new(sdate[1],stime[1],tp2, sDate,sTime, tp2); TL_SetColor(Key2,lvlCol); TL_SetSize(Key2,2); printedtp2 = 1;}Else{ if printedtp2 == 1 Then TL_SetEnd(key2,sDate,sTime,TP2);}if printedtp3 == 0 and extreme_tp3_dist < extreme_tp2_dist Then{ key3 = TL_new(sdate[1],stime[1],tp3, sDate,sTime, tp3); TL_SetColor(Key3,lvlCol); TL_SetSize(Key3,2); printedtp3 = 1;}Else{ if printedtp3 == 1 Then TL_SetEnd(key3,sDate,sTime,TP3);}if printedtp4 == 0 and extreme_tp4_dist < extreme_tp3_dist Then{ key4 = TL_new(sdate[1],stime[1],tp4, sDate,sTime, tp4); TL_SetColor(Key4,lvlCol); TL_SetSize(Key4,2); printedtp4 = 1;}Else{ if printedtp4 == 1 Then TL_SetEnd(key4,sDate,sTime,TP4);}if printedtp5 == 0 and extreme_tp5_dist < extreme_tp4_dist Then{ key5 = TL_new(sdate[1],stime[1],tp5, sDate,sTime, tp5); TL_SetColor(Key5,lvlCol); TL_SetSize(Key5,2); printedtp5 = 1;}Else{ if printedtp5 == 1 Then TL_SetEnd(key5,sDate,sTime,TP5);}if printedtp6 == 0 and extreme_tp6_dist < extreme_tp5_dist Then{ key6 = TL_new(sdate[1],stime[1],tp6, sDate,sTime, tp6); TL_SetColor(Key6,lvlCol); TL_SetSize(Key6,2); printedtp6 = 1;}Else{ if printedtp6 == 1 Then TL_SetEnd(key6,sDate,sTime,TP6);}if printedtp7 == 0 and extreme_tp7_dist < extreme_tp6_dist Then{ key7 = TL_new(sdate[1],stime[1],tp7, sDate,sTime, tp7); TL_SetColor(Key7,lvlCol); TL_SetSize(Key7,2); printedtp7 = 1;}Else{ if printedtp7 == 1 Then TL_SetEnd(key7,sDate,sTime,TP7);}수고많으십니다 얼마전 만들어주신 수식입니다감사합니다 문의드릴 내용은 위 2개의 수식을 조합하는 내용 입니다1번 시스템이 매수 이면 1점 매도이면 -1점을 계산하고 포지션 없으면 0점2번 시스템도 매수 이면 1점 매도이면 -1점을 계산하여두 시스템의 합이 2점이면 매수진입 매도청산 2점 미만이면 매수청산두 시스템의 합이 -2점이면 매도진입 매수청산 -2점보다 높으면 매도 청산이런 시스템을 부탁드립니다 항상 감사드립니다
프로필 이미지
cjfdk
2025-12-11
871
글번호 228878
시스템
답변완료

수정 부탁드립니다.

참조차트는 일봉입니다. 일봉상 최근 5봉이내에전일몸통*1.5<몸통인 장대음봉 중 최후의 장대음봉의 고가를 기준가라고 한다.① 일봉상 atr*1.2<장대양봉이 기준가를 종가상 돌파하는 경우②일봉상 2-3개의 저가를 높이는 양봉이 계단식으로 기준가를 돌파하는 경우위 ①·② 유형 중 하나라도 충족하면A3 조건을 만족한 것으로 보고, 1.5점을 부여한다. 표현 부탁합니다. 너무 자주 올려 죄솧합니다.
프로필 이미지
산수유
2025-12-11
115
글번호 228877
시스템
답변완료

지표문의 드립니다.

안녕하세요.'앤드류 피치 포크' 지표의 수식을 부탁드립니다.
프로필 이미지
부활
2025-12-11
116
글번호 228876
지표
답변완료

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

수고 하십니다. 수식어 부탁드립니다.CrossUp(h,BBandsUp(Period,D1)) and c >= SAR(af,maxAF)and V > avg(V, Period) * Multiple&&V > V(1) * Multipleandeavg(c,MA1) >= eavg(c,MA2)andDisparity(Period1) <= PercentandDisparity(448) <= 109 Period 40D1 2af 0.007maxAF 0.15Period1 224Multiple 1.5MA1 1MA2 224Percent 109
프로필 이미지
치치야
2025-12-11
128
글번호 228875
종목검색
답변완료

수정 부탁드립니다.

참조차트는 일봉이고 기본차트는 60분봉입니다. 1..일봉상 최근 3일 동안RSI(3) 값 중 최저값이 10 이하였던 적이 있다.그리고 당일봉상 RSI(3) 값이 20 이상으로 회복하였다. 이조건을 충족하면 1.0을 부여한다.2..일봉상 macd 오실레이터 값이 os[2] < os[1] < os[0] (3일연속상승)하면 0.5점을 부여한다.1과2조건을 만족하여 1.5점 부여하면 국면을 R=2+전환하고 , 60분차트상 macd 오실레이터가 양봉전환하면 1계약 매수진입한다. 식 좀 부탁드립니다. 항상 감사드립니다.
프로필 이미지
산수유
2025-12-11
111
글번호 228874
시스템
답변완료

도움말 문의

안녕하세요.예스랭귀지 웹도움말 사이트 주소 알려주세요.
프로필 이미지
부활
2025-12-11
192
글번호 228873
지표
답변완료

도움을 요청합니다.

안녕하세요1. 아래 수식에서 plot18(mav,"N일이평시초가값");plot19(DayOpen,"시가"); 수식에서 mav값과 DayOpen값 사이의 중간값을 plot25에 그으지게 하고싶습니다.============input : N(2),Pre(0);var : HH(0),LL(0),cnt(0);var : sum(0),mav(0);var3 = (DayOpen(1)+DayClose(1))/2;HH = 0;LL = 0;sum = DayOpen(Pre+0);For cnt = Pre+0 to Pre+N-1{ if HH == 0 or (HH > 0 and DayHigh(cnt) > HH) Then HH = DayHigh(cnt); if LL == 0 or (LL > 0 and DayLow(cnt) < LL) Then LL = DayLow(cnt); if cnt > pre+0 Then sum = sum + DayClose(cnt);}mav = sum/N; // if CurrentDate == sDate Then{Plot1(HH, "TOP");plot2(LL, "BOT");plot3((HH+LL)/2, "중심선");plot11(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.255,"25.5%");plot12(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.25,"25.0%");plot13(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.50,"50%");plot14(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.618,"61.8%");plot15(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.382,"38.2%");plot16(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.75,"75.0%");plot17(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.755,"75.5%");plot18(mav,"N일이평시초가값");plot19(DayOpen,"시가");plot22(C,"종가값");plot23(DayHigh,"고가값");plot24(DayLow,"저가값");==================2. 두번째 수식==================입력값 지수A, 지수B지수A와 지수B의 폭을 산출한 값= 지수CPlot1 지수A Plot2 지수A+지수CPlot3 지수A+지수C+지수C // 지수C의 위로 두배Plot4 지수B Plot5 지수B-지수CPlot6 지수B-지수C-지수C // 지수C의 아래로 두배부탁드려봅니다.미리 감사드리며 오늘도 좋은하루 되시길 바랍니다.
프로필 이미지
포보스
2025-12-11
176
글번호 228872
지표
답변완료

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

안녕하세요?항상 노고에 감사드림니다.아래의 수식을 종목검색식으로 부탁드림니다.At = ATR(500);Mm = avg(C, 기간);Rg = At * Rt / 10;Chk = RngChk(Mm, Rg);횡보중 = Chk <= 허용;허리선 = ValueWhen(1, 횡보중, Mm);상단선 = ValueWhen(1, 횡보중, Mm + Rg);하단선 = ValueWhen(1, 횡보중, Mm - Rg);급락폭 = (C - 허리선) / 허리선 * 100;과거급락 = Sum(급락폭 < -3, 기간) > 0;최근저점 = Lowest(L, 기간);바닥형성 = Sum(L <= 하단선, 기간) > 0;돌파 = CrossUp(C, 허리선);평균거래량 = avg(V, 20);거래량터짐 = V > 평균거래량 * 1.5;밥그릇신호 = 돌파 && 거래량터짐 && 과거급락 && 바닥형성;지표변수: 기간 60 Rt 10 허용 3
프로필 이미지
존슨비치
2025-12-11
166
글번호 228867
종목검색