커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

도움을 요청합니다.

안녕하세요? 늘 도음주셔서 마음깊이 감사드립니다. 아래 수식을 항생에 적용하는데요 모든 수식의 데이터를 본장시간(09:15)을 기준으로 적용되도록 부탁드려봅니다. 가급적이면 본장외 데이터는 제외해도 좋습니다. 거듭 감사드리면서 오늘도 좋은시간 보내세요. ====================================== input : N(2),Pre(0); var : HH(0),LL(0),cnt(0); var : sum(0),mav(0); 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; Plot1(HH, "TOP"); plot2(LL, "BOT"); plot3((HH+LL)/2, "중심선"); plot4((HH+LL)/2*0.075, "중심선+0.75"); plot5((HH+LL)/2*0.025, "중심선-2.5"); plot6(((HH+LL)/2 + (DayHigh(0)+DayLow(0))/2)/2 , "둘둘둘"); plot7(((HH+LL)/2 + (DayHigh(0)+DayLow(0))/2)/2+0.075 , "둘둘둘+0.75"); plot8(((HH+LL)/2 + (DayHigh(0)+DayLow(0))/2)/2-0.025 , "둘둘둘-0.25"); plot9((DayHigh(0)+DayLow(0))/2,"당일중심"); plot11(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.20,"20.0"); plot12(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.25,"25%"); plot13(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.382,"38.2%"); plot14(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.500,"50.0%"); plot15(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.618,"61.8%"); plot16(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.75,"75%"); plot17(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.80,"80%"); plot18(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.50+2.10,"+2.10%"); plot19(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.50-2.10,"-2.10%"); plot20(mav,"N일이평시초가값"); plot21(DayOpen,"시가"); plot22(C,"종가값"); plot23(DayHigh,"고가값"); plot24(DayLow,"저가값"); plot25(DayHigh(0)-(DayHigh(0)-DayLow(0))*0.50,"당일50%"); plot26((DayHigh(0)+DayLow(0))/2+1.5,"당일중심+2.0"); plot27((DayHigh(0)+DayLow(0))/2-1.5,"당일중심-2.0"); plot28((DayHigh(0)+DayLow(0))/2+0.4,"당일중심+0.4"); plot29((DayHigh(0)+DayLow(0))/2-0.4,"당일중심-0.4"); Plot30(HH+3, "TOP+10"); plot31(LL-3, "BOT-10");
프로필 이미지
포보스
2024-04-10
1250
글번호 178451
지표
답변완료

수식전환

수고많으십니다 항상 감사드립니다 아래 4개의 타사 신호수식을 4개의 예스랭귀지 강조신호수식으로 변환 좀 부탁드립니다 타사 경우 4개 아니라 10개라도 화살표등으로 표시할수 있지만 예스에서도 가능한지 궁금하고 여러개도 화살표등으로 표시할수 있으면 좋겠네요^^ 신호1-매물대고가돌파 A=H-L; B=Max(C,O)-L; 조건=A/B>배수&&H/C(1)>(1*상승률/100); 기준가=Valuewhen(1,조건,H); CrossUp(C,기준가) 신호2-매물대고가돌파+기준V돌파 A=H-L; B=Max(C,O)-L; 조건=A/B>배수&&H/C(1)>(1*상승률/100); 기준가=Valuewhen(1,조건,H); 기준V=Valuewhen(1,조건,V); CrossUp(C,기준가)&&V>기준V 신호3-매물대고가돌파+봉수제한 A=H-L; B=Max(C,O)-L; 조건=A/B>배수&&H/C(1)>(1*상승률/100); 기준가=Valuewhen(1,조건,H); 기준V=Valuewhen(1,조건,V); 봉수=Barssince(조건); CrossUp(C,기준가)&&봉수<제한봉수 신호4-매물대고가돌파+누적V돌파 Sv=sum(V); A=H-L; B=Max(C,O)-L; 조건=A/B>배수&&H/C(1)>(1*상승률/100); 기준가=Valuewhen(1,조건,H); 누적V=Sv-Valuewhen(1,조건,Sv(1))-V; 기준V=Valuewhen(1,조건,V); C>기준가&&CrossUp(V,누적V) //PLOTPAINTBAR(어쩌고 저쩌고,,,이게 안됩니다 ㅋ)
프로필 이미지
트라이
2024-04-10
1638
글번호 178450
강조
답변완료

문의 드립니다

input : StartTime(70000),EndTime(55000),Xtime(55500); var : Tcond(false),entry(0); var : B1(0),B2(0),BX1(0),BX2(0); var : S1(0),S2(0),SX1(0),SX2(0); if sdate != sDate[1] Then SetStopEndofday(Xtime); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; SetStopEndofday(0); entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.200; BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.990; S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*0.382; SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*0.236; if Tcond == true Then { if (MarketPosition == 0 or (MarketPosition == 1 and MaxEntries == 1)) Then { if entry < 5 and L > B1 Then Buy("b1",AtLimit,B1); } if MarketPosition == 1 Then { ExitLong("bx1",AtLimit,BX1,"B1"); } if (MarketPosition == 0 or (MarketPosition == -1 and MaxEntries == 1)) Then { if entry < 5 and H < S1 Then Sell("S1",AtLimit,S1); } if MarketPosition == -1 Then { ExitShort("sx1",AtLimit,SX1,"S1"); } SetStopProfittarget(PriceScale*0,PointStop); SetStopLoss(PriceScale*500,PointStop); } 진입 청삼 1회로 수정 부탁드립니다.
프로필 이미지
푸른
2024-04-10
1772
글번호 178449
시스템
답변완료

부탁드립니다.

input : conv(50),length(20); var : src(close),maxv(0),minv(0),diff(0),psi(0); src = c; maxv = iff(isnan(maxv[1]) == true, src, max(src, maxv - (maxv - src) / conv)); minv = IFf(isnan(minv[1]) == true, src, min(src, minv + (src - minv) / conv)); diff = Log(maxv - minv); psi = -50 * correlation(diff, index, length) + 50; if psi <= 80 Then { plot1(psi, "PSI1"); NoPlot(2); } Else { NoPlot(1); plot2(psi, "점"); } PlotBaseLine1(80); ======================= 위 지표에서 psi가 80미만이고 dmi지표에서 dp(플러스)가 dm(마이너스)보다 클때 매수 psi가 80이상일 때 매수 청산 psi가 80미만이고 dmi지표에서 dm가 dp보다 클때 매도 psi가 80이상일때 매도 청산 psi가 80이상일 때 매도 청산 dmi수치를 조정할수 있게 해 주시면 감사합니다.
프로필 이미지
디엠
2024-04-09
1452
글번호 178445
시스템
답변완료

검색식 부탁 드립니다

분봉 60 S=sum(1); R=S%60; W=R==1; HH=HighestSince(1,W,H); X=valuewhen(1,W,HH(1)); LL=LowestSince(1,W,L); Y=valuewhen(1,W,LL(1)); Z=valuewhen(1,W,C(1)); (X+Y+Z)/3) 1분봉에서 1봉전 60선아래 있던 주가가 0봉에서 60선돌파 종목 검색식 부탁드립니다 파워종목 조건도 알려주세요
프로필 이미지
구경꾼그림자
2024-04-09
1127
글번호 178441
종목검색
답변완료

문의

그럼 아래 수식에서 당일거만 표시되게 가능할까요? var : V1(0,data1); if crossup(data2(H),data3(L)) or CrossDown(data2(L),data3(H)) Then v1 = data1(C); if crossup(data2(H),data3(L)) or CrossDown(data2(L),data3(H)) Then v1 = data1(C);
프로필 이미지
타이밍승부사
2024-04-09
1204
글번호 178439
지표
답변완료

수식문의드립니다

var :q(0),w(0),qq(0),ww(0),qw(0),qwe(0); q= C-c[1]; w= o-o[1]; qq=(q*5*2); ww=(w*3*4); qw=(qq-ww); qwe=(qwe+qw); plot1(qwe,"qwe"); 지표를 만들려고 합니다 qwe에 qw가 누적되는 값을 구하는데 지표생성이 안되네요 부탁드립니다~
프로필 이미지
가즈아
2024-04-09
1131
글번호 178437
지표
답변완료

문의

아래 답변 감사드려요. 제가 혹시나 해서 검색해봤는데 원하는 내용이 있어서 다시 문의드려요 아래 수식에서 보조지표 4개를 원하는데 요리조리 해봐도 잘 안되네요 부탁드립니다 if Bdate != Bdate[1] Then var1 = 0; if data2(H) >= data3(H) and data3(H) >= data2(L) Then var1 = C; if data2(H) >= data3(L) and data3(L) >= data2(L) Then var1 = C; if var1 > 0 Then plot1(var1); Else NoPlot(1);
프로필 이미지
타이밍승부사
2024-04-09
1021
글번호 178436
지표
답변완료

재문의입니다

86650문의의 답변에 대한 재문의입니다. #전월최고당월최저변동율조건매수신호-일봉 #============================================= input : 표시가격1(L/1.02),표시가격2(L/1.025),표시가격3(L/1.030),표시가격4(L/1.035) ; input : 변동율(15), 검증기간(3), 출현제한봉수(3),상승률(5); var : HH(0),H1(0),LL(0),L1(0),F1O(0),F2O(0),LL1(0); var : ii(0),b(0),bb(0),cc(0); if sDate > sDate[1]+30 Then { TL_New(sDate,sTime,0,sDate,sTime,999999999); #당월 몸통 최고가 초기값 HH = max(C,O); #전월 몸통 최고가 H1 = HH[1]; #당월 몸통 최저가 초기값 LL = min(C,O); #전월 몸통 최저가 L1 = LL[1]; #당월 봉번호 초기값 b = 0; #조건만족시 봉번호 저장변수 초기값 ii = 0; #cc 초기값 cc = 0; } #당월 봉번호 b = b +1; #당월 몸통최고가 if HH > 0 and max(C,O) > HH Then HH = max(C,O); #당월 몸통최저가 if LL > 0 and min(C,O) < LL Then LL = min(C,O); #차트에서 전월값까지 계산되어 있고 #전월몸통 최고가가 당월몸통 최저가보다 20이상 클경우 조건 충족 Condition1 = H1 > 0 and LL > 0 and H1 > LL and ( H1 - LL ) / LL * 100 >= 변동율 ; Input : Periods(20), Periodm(40),Periodl(60); input : 기준0선(0) ; var : VolumeRatioS(0), VolumeRatioM(0), VolumeRatioL(0) ; VolumeRatioS = VR(Periods); VolumeRatioM = VR(Periodm); VolumeRatioL = VR(Periodl); Var1 = VolumeRatioS - VolumeRatioL / VolumeRatioM *100 ; #차트에서 전월값까지 계산되어 있고 if H1 > 0 and LL > 0 and #음봉 뒤 양봉이고 C[1] < O[1] and C > O and #최근 3봉이내에 조건만족한 경우가 있고 #월초반에 3일이라는 기간에 전월이 포함될수 있으므로 당월봉수와 3중 작은 값을 택하게 작성하셔야 합니다. CountIf(Condition1==true,min(b, 검증기간)) >= 1 and #종가가 시가대비 5% 이하 상승 #당월 첫발생(ii가 0일때)이면 조건없이 표시하고 #당월 두번째 이후(ii > 0으로 봉번호 저장이후)는 #직전 발생시점대비 5봉이후이고 직전발생봉의 사가 대비 현재봉 시가가 낮은 경우에만 표시 (ii == 0 or (ii > 0 and Index >= ii+출현제한봉수 and O < bb) ) Then { plot1(표시가격1,"전월H당월L변동율신호"); if VolumeRatioS >= VolumeRatioM or Var1 >= 기준0선 Then plot2(표시가격2,"전월H당월L변동율VR신호"); #조건만족시 봉번호 ii = Index; #조건만족시 시가 bb = O; #조건만족봉이 시가대비 종가 상승률이 지정한 값 이하이면 if C <= O*(1+상승률/100) Then { #표시 plot3(표시가격3,"전월H당월L변동율상승률1차"); #cc는 0 cc = 0; } Else #상승률이 지정한보가 크면 { #cc에 종가저장 cc = c; } } Else { #cc에 종가가 저장되어 있고 음봉 뒤 양봉이고 시가가 cc보다 작으면 if cc > 0 and C[1] < O[1] and C > O and O < cc Then { #표시 plot4(표시가격4,"전월H당월L변동율상승률2차"); #cc는 0으로 저장 cc = 0; } } 상기 답변에 대한 내용을 적용시켜본 결과 원하는 반영 신호가 나오지 않는 것 같아 재문의 드립니다. 가. PLOT 2, 3, 4의 신호가 <<<VolumeRatioS >= VolumeRatioM or Var1 >= 기준0선>>>를 제대로 반영되지 않는 것 같습니다. 살펴봐주십시요. 위 추가조건을 OR이 아닌 AND방식으로 변경해서 해봐도 표시되지 않아야할 곳에 신호가 표시되고 있읍니다. PLOT 2에는 반영되고 PLOT3, 4에는 반영되고 있지 않는듯 합니다. 나. PLOT4 의 신호 발생시에도 몸통상승율조건( C <= O*(1+상승률/100) )을 반영해주셔야 합니다. 항상 좋은 답변에 감사드립니다.
프로필 이미지
해피오
2024-04-09
887
글번호 178424
검색