커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 부탁드려요!

30 거래량 가중 이동평균선이 10 종가단순이동평균선 위에 있는(역배열) 종목을 찾을 수 있는 검색식 좀 만들어주세요~
프로필 이미지
중박폭굉
2025-03-25
384
글번호 189547
검색
답변완료

수식부탁드립니다.

1.파라볼릭이 매수신호상태이고 dm+가 dm-를 상향돌파한 상태이고 adx가 전봉보다 크면 매수한다 식 좀 부탁드립니다.
프로필 이미지
산수유
2025-03-25
375
글번호 189546
시스템
답변완료

부탁드립니다

키움식 아래를 기준봉=C>C(1)*1.15; cnt=Countsince(기준봉==1, 조건); cnt==1 && cnt(1)==0 예스로 바꾸고 싶습니다, 부탁드립니다
프로필 이미지
시나브로
2025-03-25
483
글번호 189545
검색
답변완료

문의

안녕하세요. 국내선물 거래시 자동으로 아래와 같이 수평선이 생길 수 있는 수식 부탁드립니다. 그림과 같은 선의 굵기 행사가(2.5)기준으로 자동으로 생성될 수 있도록 부탁드리며 선 오른쪽 맨 끝에 수치 표시도 부탁드립니다. (수치표시가 마지막봉과 붙어 있지 않도록) 행사가는 진한검정색으로 안쪽에 선(점선포함)은 회색으로 부탁드립니다.
프로필 이미지
어떤하루
2025-03-25
449
글번호 189544
지표
답변완료

문의

아래방식으로 저가갱신을 체크하는 방법은 시뮬레이션 때 시간이 많이 걸립니다. 시간을 좀 더 단축할 수 있는 수식이 있다면 요청 드립니다. 항상 고맙습니다. ********************************************************************************* input : 저가갱신수2(5),저가갱신수3(7); if MarketPosition == 0 and #현재 무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == -1 and #직전거래가 매도거래이고 countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수2 Then #청산이후 당일저가 갱신이 n회이상 있었으면 { sell("s2"); } if MarketPosition == 0 and #현재 무포지션이고 EntryDate(1) == sdate and #직전거래가 오늘 발생한 거래이고 MarketPosition(1) == 1 and #직전거래가 매수거래이고 countif(DayLow(0) != DayLow(0)[1],BarsSinceExit(1)) >= 저가갱신수3 Then #청산이후 당일저가 갱신이 n회이상 있었으면 { sell("s3"); }
프로필 이미지
목마와숙녀
2025-03-25
440
글번호 189542
시스템
답변완료

질문드리겠습니다

죄송합니다만 지난번에 질문드릴때 "cc값이 10일 이상인경우" 는 별개로 여쭤봤었는데 답변 주실때 통합이 돼서 식이 더 복잡해 진거 같습니다 그러면 10일이상일 경우" 라는 조건은 빼고,,, cc 값을 ttl 에 넣어서,,,(cc[0] 은 ttl[0] cc[1] 은 ttl[1] ...이런식으로..) ttl[5] 까지 우측 연장 해주시면 감사합니다 번거롭게 죄송합니다 var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0); var: sum2(0),sumi2(0),sumaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0); Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0),cd[50](0); if Bdate != Bdate[1] Then DD = DD+1; if h>l*1.07 Then { d1 = dd; d2 = d1[1]; if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; sum1=0; sumi1=0; # tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999); # TL_SetSize(tl,0); # TL_SetColor(tl,Black); For cnt = 1 to (var1-Var2) { sum1=sum1+h[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = value1; Var20=Money/100000000; if Var20>30 Then { For cnt = 49 DownTo 1 { cc[cnt]= cc[cnt-1]; cd[cnt]= cd[cnt-1]; } cc[0]=value1*0.9; cd[0]=dd; For cnt = 9 DownTo 1 { ttl[cnt] =ttl[cnt-1]; }
프로필 이미지
yamu
2025-03-25
430
글번호 189538
지표
답변완료

수식의뢰 드립니다.

안녕하세요! 아래는 자동 행사가가 표시되는 수식입니다. 2.5 간격의 3가격 행사가와 행사가격 사이마다 자동으로 1.25의 중간값 선들처럼 이 같은 조건으로 쿠르드오일, S&P500, 항생 상품도 변경되어 자동 표시되게 끔 수식 수정을 요청 드립니다. 감사합니다. var : pv(0),r1(0),s1(0); var1 = Floor(c/2.5); var2 = var1*2.5; var3 = c-var2; if var3 >= 1.25 Then pv = var2+2.5; Else pv = var2; r1 = pv+2.5; s1 = pv-2.5; plot1(pv); plot2(r1); plot3(s1);
프로필 이미지
qha71
2025-03-25
576
글번호 189536
지표
답변완료

질문드리겠습니다

지난 답변 감사드립니다 알려주신 식에서 ttl 추세선이 cc[] 값과 1:1 대응하게 되나요? cc[0] 이 ttl[0] 값과 같고, cc[1] 이 ttl[1] ... 이런식으로 대응하는건지 아니면 cc값이 이어질때 조건만족봉이 3번 나온다면 cc[0] 값이 ttl[0], ttl[1],ttl[2] 로 나눠져서 대응되는건지 궁금합니다 추세선으로 변환시킨 이유가 ,,, 지난 추세선 (즉 지난 cc값들) 을 우측연장시켜서 최근 봉들과 조금더 시각적으로 직관적으로 비교해서 보려는 취지인데요,, ttl 을 우측연장해서 cc[5] 번에 해당하는 ttl 까지만 표시되게 해주실 수 있을까요 감사합니다 var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0); var: sum2(0),sumi2(0),sumaa(0); var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0); Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0),cd[50](0); if Bdate != Bdate[1] Then DD = DD+1; if h>l*1.07 Then { d1 = dd; d2 = d1[1]; if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then { var1 = Index; Var2 = var1[1]; Var3= Var2[1]; sum1=0; sumi1=0; # tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999); # TL_SetSize(tl,0); # TL_SetColor(tl,Black); For cnt = 1 to (var1-Var2) { sum1=sum1+h[cnt]; sumi1=sumi1+1; } value1=sum1/sumi1; For cnt = 49 DownTo 1 { aa[cnt] = aa[cnt-1]; } aa[0] = value1; Var20=Money/100000000; if Var20>30 Then { For cnt = 49 DownTo 1 { cc[cnt]= cc[cnt-1]; cd[cnt]= cd[cnt-1]; } cc[0]=value1*0.9; cd[0]=dd; For cnt = 9 DownTo 1 { ttl[cnt] =ttl[cnt-1]; } Condition1 = False; if CC[1] == 0 or (CC[1] > 0 and CD[0] >= CD[1]+10) Then { Condition1 = true; ttl[0]=tl_new(sDate,sTime,cc[0],NextBarSdate,NextBarStime,CC[0]); } } } } Else { if Condition1 == true Then TL_SetEnd(ttl[0],sDate,sTime,CC[0]); } if Condition1 == true Then Plot1(cc[0],"hma",DarkRed,Def,1); Else NoPlot(1);
프로필 이미지
yamu
2025-03-25
517
글번호 189525
지표
답변완료

수식 문의드립니다.

아래식 A와 B가 데드크로스 나는 수식 문의드립니다. 기준선 A 수식입니다 input : Period(120); var : VWAP(0); VWAP = ma((h+l+c)/3 * volume, Period) / ma(volume, Period); Plot1(VWAP); --------------------------- 다음은 b식입니다. Input:상승률(1),하락률(1); Var:j(0),상승(100),하락(-100),양방향(2),색깔(0),파랑(-1),빨강(1), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),추세(0),이중파동(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 이중파동 처리 #==========================================# If 이중파동 > 0 Then { Plot1(이중파동,"Zigzag",Iff(색깔==빨강,RED,BLUE)); 이중파동 = 0; } #==========================================# # 최근 고,저 갱신 #==========================================# If 기준고 <= H || 기준고 == 0 || IsNaN(기준고) == True Then { 기준고 = H; 기준고Bar = 0; } Else 기준고Bar = 기준고Bar + 1; If 기준저 >= L || 기준저 == 0 || IsNaN(기준저) == True Then { 기준저 = L; 기준저Bar = 0; } Else 기준저Bar = 기준저Bar + 1; #==========================================# # 추세방향 결정 #==========================================# If 기준고 * (1 - (하락률/100)) > H && 기준저 * (1 + (상승률/100)) < L Then { 추세 = Iff(기준고Bar==기준저Bar,양방향,Iff(기준고Bar>기준저Bar,상승,하락)); } Else If 기준고 * (1 - (하락률/100)) > H Then 추세 = 하락; Else If 기준저 * (1 + (상승률/100)) < L Then 추세 = 상승; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 추세[1] == 상승 && 추세 == 하락 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; If 이중파동[1] > 0 Then 이중파동 = 고[1]; Else plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); } If 추세[1] == 하락 && 추세 == 하락 && 고[1] < 기준고 && 기준고 * (1 - (하락률/100)) > H Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } If 추세[1] == 하락 && 추세 == 상승 Then { For j = 18 DownTo 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; If 저[2] > 저[1] Then 색깔 = 파랑; If 이중파동[1] > 0 Then 이중파동 = 저[1]; Else plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); } If 추세[1] == 상승 && 추세 == 상승 && 저[1] > 기준저 && 기준저 * (1 + (상승률/100)) < L Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준저 = L; 기준저Bar = 0; 기준고 = H; 기준고Bar = 0; If 고[2] < 고[1] Then 색깔 = 빨강; plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } If 추세 == 양방향 Then { For j = 18 DownTo 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 기준고 = H; 기준고Bar = 0; 기준저 = L; 기준저Bar = 0; 추세 = 추세[1]; If 추세[1] == 상승 Then { If 고[2] < 고[1] Then 색깔 = 빨강; Plot1(고[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); If 저[2] > 저[1] Then 색깔 = 파랑; 이중파동 = 저[1]; } Else { If 저[2] > 저[1] Then 색깔 = 파랑; Plot1(저[1],"Zigzag",Iff(색깔==빨강,RED,BLUE)); If 고[2] < 고[1] Then 색깔 = 빨강; 이중파동 = 고[1]; } } #==========================================# # 마무리 #==========================================# If LastBarOnChart == 1 && 기준고Bar > 0 && 기준저Bar > 0 Then { If 추세 == 상승 Then { If 고[1] < 기준고 Then 색깔 = 빨강; Plot1(기준고,"Zigzag",Iff(색깔==빨강,RED,BLUE)); } Else { If 저[1] > 기준저 Then 색깔 = 파랑; Plot1(기준저,"Zigzag",Iff(색깔==빨강,RED,BLUE)); } } if 추세 == 상승 and 추세[1] != 상승 Then var1 = L[1]*(1+상승률/100); if 추세 == 하락 and 추세[1] != 하락 Then var1 = H[1]*(1-하락률/100); plot2(var1); 감사합니다.
프로필 이미지
데이남
2025-03-25
455
글번호 189524
검색