커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식요청드려요~

1. [종목검색식요청] 아래 수식은 전에 만들어주신 wave trend 라는 검색식 입니다. 기존엔 wt1 wt2 크로스되는 종목을 찾는거였는데요 이번엔 wt1-wt2 값이 연속 1봉,2봉,3봉 상승하는걸 찾고 싶습니다. (연속봉수 설정 변수를 알려주시면 됩니다.) [첨부]기존에 만들어주신 크로스 검색식 input : n1(5),n2(22); var : ap(0),esa(0),dd(0),ci(0),d(0); var : wt1(0),wt2(0); ap = (H+L+C)/3; esa = ema(ap, n1); d = ema(abs(ap - esa), n1); ci = (ap - esa) / (0.015 * d); wt1 = ema(ci,n2); wt2 = ma(wt1,4); if crossup(wt1,wt2) Then Find(1); ============================== 2.[지표요청] 만들고 싶은 지표는 Williams Alligator 입니다. 제가 설명이 부족할듯하여 간단하게 설명된 사이트 링크를 첨부합니다. 번거로우시겠지만 확인 부탁드립니다. 색상은 사이트랑 동일하게 해주세요 ^^; 입술(녹색) > 이빨(빨강) > 턱(파랑) https://www.ifcmarkets.com/ko/ntx-indicators/alligator 3.[종목검색식요청] 조건1. 2번의 Williams Alligator 지표 이평선이 정배열 이고 (입술(녹색) > 이빨(빨강) > 턱(파랑) 순서입니다.) 조건2. 종가가 입술(녹색) 보다 큰 종목 4.[종목검색식요청] 조건1. 10봉이내에 Williams Alligator 지표 이평선이 정배열로 바뀐 종목 (1봉전 역배열 0봉전 정배열 바뀐걸로 하면 종목수가 거의안나와서 그렇습니다.) 조건2. 정배열 전환시 종가가 입술(녹색) 보다 큰 종목 (5봉 이내도 하나 해주세요. 너무많이 나올까봐요 ^^) 도움에 감사드리고 항상 좋은일만 있으시길 바랍니다~ 감사합니다~
프로필 이미지
신데렐라맨
2023-03-21
1925
글번호 167353
종목검색
답변완료

문의드립니다

value1=cci(21); if value1[0] >= 60 then find(1); //검증 문제없는데 결과가 없네요...
프로필 이미지
약수삼천
2023-03-20
1431
글번호 167352
종목검색
답변완료

문의 드립니다.~~~~

수고하십니다, 아래식의 손익의 결과가 완전히 반대로 되는 식을 부탁드립니다. input : ntime(60),n(20); input : 익절틱수(100),손절틱수(50); input : StartTime(70000),EndTime(45000); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup(0),BBdn(0); Array : CC[100](0); var : Tcond(false); if (NextBarSdate != sdate and NextBarStime >= EndTime) or (NextBarSdate == sdate and NextBarStime >= EndTime and stime < EndTime) Then Tcond = False; if (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { Tcond = true; S1 = TimeToMinutes(NextBarStime); D1 = NextBarSdate; } if D1 > 0 then { if NextBarSdate == D1 Then TM = TimeToMinutes(NextBarStime)-S1; Else TM = TimeToMinutes(NextBarStime)+1440-S1; TF = TM%ntime; if NextBarSdate != sdate or (NextBarSdate == sdate and ntime > 1 and TF < TF[1]) or (NextBarSdate == sdate and ntime > 1 and TM >= TM[1]+ntime) or (NextBarSdate == sdate and ntime == 1 and TM > TM[1]) Then { var1 = NextBarOpen; } if Tcond == true and MarketPosition >= 0 Then Sell("시작매도",AtStop,var1-PriceScale*n); } IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { IF Endtime <= starttime Then { SetStopEndofday(0); } }
프로필 이미지
예스요
2023-03-20
1325
글번호 167351
시스템
답변완료

문의드립니다.

전환비율을 수정할 수 있도록 외부변수 수정부탁드립니다.(전환비율 5) Input : length(10),Per1(1),Per2(2),Per3(3),Per4(4),Per5(5); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""); var : TL1(0),TL11(0),TL12(0),TL13(0),TL14(0),TL15(0); var : TL2(0),TL21(0),TL22(0),TL23(0),TL24(0),TL25(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime HH = H; LL = L; If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then// 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If 저[1,1] > LL Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If 고[1,1] < HH Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { 최종고가 = HH;// 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { TL_SetEnd(TL11,저[1,3],저[1,4],고[1,1]*(1-Per1/100)); TL_SetEnd(TL12,저[1,3],저[1,4],고[1,1]*(1-Per2/100)); TL_SetEnd(TL13,저[1,3],저[1,4],고[1,1]*(1-Per3/100)); TL_SetEnd(TL14,저[1,3],저[1,4],고[1,1]*(1-Per4/100)); TL_SetEnd(TL15,저[1,3],저[1,4],고[1,1]*(1-Per5/100)); For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetColor(TL1,Red); TL_SetSize(TL1,1); #TL11 = TL_New(고[1,3],고[1,4],고[1,1]*(1-Per1/100),NextBarSdate,NextBarStime,고[1,1]*(1-Per1/100)); #TL12 = TL_New(고[1,3],고[1,4],고[1,1]*(1-Per2/100),NextBarSdate,NextBarStime,고[1,1]*(1-Per2/100)); #TL13 = TL_New(고[1,3],고[1,4],고[1,1]*(1-Per3/100),NextBarSdate,NextBarStime,고[1,1]*(1-Per3/100)); #TL14 = TL_New(고[1,3],고[1,4],고[1,1]*(1-Per4/100),NextBarSdate,NextBarStime,고[1,1]*(1-Per4/100)); #TL15 = TL_New(고[1,3],고[1,4],고[1,1]*(1-Per5/100),NextBarSdate,NextBarStime,고[1,1]*(1-Per5/100)); #TL_SetColor(TL11,Blue); #TL_SetColor(TL12,Blue); #TL_SetColor(TL13,Blue); #TL_SetColor(TL14,Blue); #TL_SetColor(TL15,Blue); } Else If 고[1,1] < HH Then// 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); TL_SetBegin(TL11,고[1,3],고[1,4],고[1,1]*(1-Per1/100)); TL_SetBegin(TL12,고[1,3],고[1,4],고[1,1]*(1-Per2/100)); TL_SetBegin(TL13,고[1,3],고[1,4],고[1,1]*(1-Per3/100)); TL_SetBegin(TL14,고[1,3],고[1,4],고[1,1]*(1-Per4/100)); TL_SetBegin(TL15,고[1,3],고[1,4],고[1,1]*(1-Per5/100)); } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { TL_SetEnd(TL21,고[1,3],고[1,4],저[1,1]*(1+Per1/100)); TL_SetEnd(TL22,고[1,3],고[1,4],저[1,1]*(1+Per2/100)); TL_SetEnd(TL23,고[1,3],고[1,4],저[1,1]*(1+Per3/100)); TL_SetEnd(TL24,고[1,3],고[1,4],저[1,1]*(1+Per4/100)); TL_SetEnd(TL25,고[1,3],고[1,4],저[1,1]*(1+Per5/100)); For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL2 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL2,Blue); TL_SetSize(TL2,1); TL21 = TL_New(저[1,3],저[1,4],저[1,1]*(1-Per1/100),NextBarSdate,NextBarStime,저[1,1]*(1+Per1/100)); TL22 = TL_New(저[1,3],저[1,4],저[1,1]*(1-Per2/100),NextBarSdate,NextBarStime,저[1,1]*(1+Per2/100)); TL23 = TL_New(저[1,3],저[1,4],저[1,1]*(1-Per3/100),NextBarSdate,NextBarStime,저[1,1]*(1+Per3/100)); TL24 = TL_New(저[1,3],저[1,4],저[1,1]*(1-Per4/100),NextBarSdate,NextBarStime,저[1,1]*(1+Per4/100)); TL25 = TL_New(저[1,3],저[1,4],저[1,1]*(1-Per5/100),NextBarSdate,NextBarStime,저[1,1]*(1+Per5/100)); TL_SetColor(TL21,Red); TL_SetColor(TL22,Red); TL_SetColor(TL23,Red); TL_SetColor(TL24,Red); TL_SetColor(TL25,Red); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]); TL_SetBegin(TL21,저[1,3],저[1,4],저[1,1]*(1+Per1/100)); TL_SetBegin(TL22,저[1,3],저[1,4],저[1,1]*(1+Per2/100)); TL_SetBegin(TL23,저[1,3],저[1,4],저[1,1]*(1+Per3/100)); TL_SetBegin(TL24,저[1,3],저[1,4],저[1,1]*(1+Per4/100)); TL_SetBegin(TL25,저[1,3],저[1,4],저[1,1]*(1+Per5/100)); } 최종꼭지점 = "저점"; } TL_SetEnd(TL11,NextBarSdate,NextBarStime,고[1,1]*(1-Per1/100)); TL_SetEnd(TL12,NextBarSdate,NextBarStime,고[1,1]*(1-Per2/100)); TL_SetEnd(TL13,NextBarSdate,NextBarStime,고[1,1]*(1-Per3/100)); TL_SetEnd(TL14,NextBarSdate,NextBarStime,고[1,1]*(1-Per4/100)); TL_SetEnd(TL15,NextBarSdate,NextBarStime,고[1,1]*(1-Per5/100)); TL_SetEnd(TL21,NextBarSdate,NextBarStime,저[1,1]*(1+Per1/100)); TL_SetEnd(TL22,NextBarSdate,NextBarStime,저[1,1]*(1+Per2/100)); TL_SetEnd(TL23,NextBarSdate,NextBarStime,저[1,1]*(1+Per3/100)); TL_SetEnd(TL24,NextBarSdate,NextBarStime,저[1,1]*(1+Per4/100)); TL_SetEnd(TL25,NextBarSdate,NextBarStime,저[1,1]*(1+Per5/100));
프로필 이미지
구호리
2023-03-20
1256
글번호 167350
지표
답변완료

data1과 data2로 만든 값(지표)의 +값 평균, -값 평균

아래처럼 data1과 data2로 '대비'라는 지표 하나를 만들었는데, 0을 기준으로 위아래로 움직이는 지표입니다. --------------------------------------------------- var : ratio(0), ratio전일(0), 대비(0); ratio = data2(c)/c*100; ratio전일 = data2(CloseD(1))/c[1]*100; 대비 = ratio - ratio전일; plot2(대비, "대비"); ------------------- 여기서 1) +일때의 값만 모아서 20일 평균값 2) -일때의 값만 모아서 20일 평균값 이렇게 지표로 부탁드립니다
프로필 이미지
퀀트드래곤
2023-03-20
953
글번호 167349
지표

구호리 님에 의해서 삭제되었습니다.

프로필 이미지
구호리
2023-03-20
5
글번호 167348
지표
답변완료

즉시 매도

60분봉에서 30분 경과후부터 해당하는 60분봉의 최저가를 경신하면 무조건 즉시 매도 가능합니까? (즉, 저가 하단값 아래로 돌파시) 감사합니다.
프로필 이미지
약속
2023-03-20
1028
글번호 167347
시스템
답변완료

도움부탁드립니다

안녕하세요. 문의 하여답변감사합니다. 수식을기록 하여 검증을 한결과 오류창에 메세지가 줄수20 ,열수79 -선언되지 않은 이름 한두호가 위아래라인굵기'아(가)사용되었습니다. Plot 라인의 두께값으로 수치형 데이터가 와야 합니다. 라고 나옵니다. 어떻게 수정을 하는지요 알려주세요. 감사합니다.
프로필 이미지
렉스턴
2023-03-20
961
글번호 167342
지표

돈을잃자 님에 의해서 삭제되었습니다.

프로필 이미지
돈을잃자
2023-03-20
46
글번호 167331
지표