커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표와 시스템

1. 아래 수식에서 0선 통과시 소리가 나는 알람을 추가하고 싶습니다.2.아래 수식을 시스템 식으로 만들어 주세요. 0선 통과시 2계약 진입후 1계약은 20틱에 매도하고 나머지는 40틱에 매도 되는걸로. 반대로 손절은 진입후 1계약은 20틱 나머지 40틱 손절처리 부탁드립니다. input : short(30),long(200); var : macdv(0),tx(0); macdv = macd(short,long); Plot1(macdv); PlotBaseLine1(0); var : tx1(0),tx2(0); var : tl1(0),tl2(0),box1(0); var : tl3(0),tl4(0),box2(0); if CrossUp(macdv,0) Then { tx1 = TL_New(sDate,sTime,0,sDate,sTime,99999999); tl_SetColor(tx1,Red); tl_SetSize(tx1,0); tL_SetStyle(tx1,2); tx1 = Text_New(sDate,sTime,L,"▲"); Text_SetColor(tx1,Red); Text_SetSize(tx1,40); Text_SetStyle(tx1,2,0); tx2 = Text_New_Self(sDate,sTime,0,"▲"); Text_SetColor(tx2,rgb(255, 0, 127)); Text_SetSize(tx2,20); Text_SetStyle(tx2,2,0); ; } Else { TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); box_SetEnd(box1,NextBarSdate,NextBarStime,var2); } if CrossDown(macdv,0) Then { tx1 = TL_New(sDate,sTime,0,sDate,sTime,999999999); tl_SetColor(tx1,Black); tl_SetSize(tx1,0); tL_SetStyle(tx1,2); tx1 = Text_New(sDate,sTime,H,"▼"); Text_SetColor(tx1, Black); Text_SetSize(tx1,40); Text_SetStyle(tx1,2,1); tx2 = Text_New_Self(sDate,sTime,0,"▼"); Text_SetColor(tx2,Black); Text_SetSize(tx2,20); Text_SetStyle(tx2,2,1); } Else { TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); box_SetEnd(box2,NextBarSdate,NextBarStime,var4); }
프로필 이미지
어떤하루
2025-12-11
179
글번호 228896
지표
답변완료

종목 검색식 부탁드려요

다음 수식을 조건 검색식으로 부탁드립니다.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
134
글번호 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
1292
글번호 228878
시스템
답변완료

수정 부탁드립니다.

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

지표문의 드립니다.

안녕하세요.'앤드류 피치 포크' 지표의 수식을 부탁드립니다.
프로필 이미지
부활
2025-12-11
126
글번호 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
179
글번호 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
124
글번호 228874
시스템
답변완료

도움말 문의

안녕하세요.예스랭귀지 웹도움말 사이트 주소 알려주세요.
프로필 이미지
부활
2025-12-11
316
글번호 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
215
글번호 228872
지표