커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

검토 부탁드립니다.

1. 매달 20~31일 사이에 매수 진입 (20~31일 변수로) 2. 달이 변경될때 매도진입으로 전환 3. 매달 1~5일 사이 매도청산 (1~5일 변수로) 예시) 이지랭귀지에서 사용하던 변수있데 예스에 적용 부탁드립니다. if dayofmonth(date)>= 변수 then 매수진입 if month(date)<>month(date[1]) then 매도진입 If dayofmonth(date)> 변수 then 매도청산
프로필 이미지
소드노
2023-08-16
1365
글번호 171492
시스템
답변완료

조건부 수식 최소 최대 값 나타나게 수정 부탁 드려요

var : sum1(0,Data1),sum2(0,Data1),sum3(0,Data1),sum4(0,Data1),sum5(0,Data1); sum1 = (Data2(OpenD(0))-Data7(OpenD(0))); sum2 = (Data3(OpenD(0))-Data8(OpenD(0))); sum3 = (Data4(OpenD(0))-Data9(OpenD(0))); sum4 = (Data5(OpenD(0))-Data10(OpenD(0))); sum5 = (Data6(OpenD(0))-Data11(OpenD(0))); [예시] sum1 = 3.5, sum2 = 1.5, sum3 = 0.25. sum4 = -1.75, sum5 = -2.8 1. sum1~sum5 값 중에 양수 값 중 최소 값 나타나게 해주세요. 예시 중 양수 값은 sum1,sum2,sum3 이고 양수 중 최소 값은 sum3 이므로 sum3 값을 지표로 나타내주세요. 2. sum1~sum5 값 중에 음수 값 중 최대 값 나타나게 해주세요. 예시 중 음수 값은 sum4,sum5 이고 음수 중 최대 값은 sum4 이므로 sum4 값을 지표로 나타내주세요.
프로필 이미지
천장지구
2023-08-16
1109
글번호 171491
지표
답변완료

부탁드립니다

주가등락률:[일]n봉전(중) 종가대비 nn봉전 종가등락률 nnn%이상 기준봉 거래대금 : [일]주기, n봉전 거래대금(일:백만, 분:천) nn이상 nnn이하 상세이평돌파:[5분]n봉전 단순(종가 nn )이평이 단순(종가 nnn)이평을 nnnn봉이내 골든크로스 nnnnn회이상 신고가:[일]n봉전 고가가 nn봉이내 nnn봉 신고가 발생 여기서 n은 변수값이라 생각하고 파워종목검색에서 원할때 원하는 변수값을 적어서 쓰는 종목검색 수식을 원합니다.
프로필 이미지
왕밥빵
2023-08-17
834
글번호 171490
종목검색
답변완료

문의 드립니다

수고 많으십니다. 아래 수식에서 3가지 변경 원합니다. 청산틱수,첫진입틱수,추가진입틱수 위치를 지정할 수 있도록 해주세요. 1.현재 진입되어 있는 물량의 청산틱수는 하락에서 상승으로, 상승에서 하락으로 추세가 바뀌는 시점에 전량 청산되는데, 추세가 바뀐 후 수 틱 혹은 몇 틱이 더 추가되는 지점으로 지정할 수 있도록 변경 부탁합니다. 2.현재 첫진입틱수는 추세가 바뀐 후 전고점, 전저점 대비 연속되는 추세에서 수 틱 혹은 몇 틱이 추가되는 지점에 첫진입 하도록 지정하는데, 진입 물량 청산 지점(진입 물량 청산 후)에 수 틱 혹은 몇 틱이 더 추가되는 지점으로 지정할 수 있도록 변경 부탁합니다. 3.추가진입틱수는 현재처럼 첫진입 후 첫진입 지점에 수 틱 혹은 몇 틱이 추가될 때마다 추가 진입할 수 있도록 지정할 수 있게 변경부탁합니다. 그리고 현재 수식에서 손절이나, 추가진입 수량을 단계마다 다르게 지정 한 부분은 그대로 사용할 수 있게 변경없이 유지시켜 주세요. 감사합니다, 수고하세요. Input:length(12),손절틱수(990); Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),TL_Val1(0),TL_Val2(0),color(0); var:T(0),B(0),Bx(0),S(0),Sx(0); Array:고점[10,2](0),저점[10,2](0); 처리구분 = ""; If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then { If 저점[1,1] > L Then 처리구분 = "저점처리"; If 고점[1,1] < H Then 처리구분 = "고점처리"; } Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리"; Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리"; If 처리구분 == "고점처리" Then { T = 1; lastHiVal = H; If 고점[1,2] < 저점[1,2] Then { For j = 10 DownTo 2 { 고점[j,1] = 고점[j-1,1]; 고점[j,2] = 고점[j-1,2]; } } If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then { 고점[1,1] = H; 고점[1,2] = Index; sBar = Index - 저점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then TL_Delete(TL2); } if 고점[1,1] > 고점[2,1] or 고점[2,1] == 0 Then{ color = RED; # buy("b"); } TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]); TL_SetColor(TL1,color); Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2)); Text_SetStyle(Text1, 2, 1); If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then { sBar = Index - 저점[2,2]; eBar = Index - 저점[1,2]; } } } If 처리구분 == "저점처리" Then { T = -1; lastLoVal = L; If 저점[1,2] < 고점[1,2] Then { For j = 10 DownTo 2 { 저점[j,1] = 저점[j-1,1]; 저점[j,2] = 저점[j-1,2]; } } If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then { 저점[1,1] = L; 저점[1,2] = Index; sBar = Index - 고점[1,2]; eBar = 0; If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then { TL_Delete(TL1); Text_Delete(Text1); If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then TL_Delete(TL3); } if 저점[1,1] < 저점[2,1] or 저점[2,1] == 0 Then{ color = blue; # sell("s"); } TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]); TL_SetColor(TL1,color); Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2)); Text_SetStyle(Text1, 2, 0); If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then { sBar = Index - 고점[2,2]; eBar = Index - 고점[1,2]; } } } TL_SetSize(TL1,3); input : N(10),첫진입틱수(241),추가진입틱수(200); #상승구간의 마지막저점 저장 if Color == RED Then { var1 = 저점[2,1]; } #하락구간의 마지막 고점 저장 if Color == BLUE Then { var2 = 고점[2,1]; } if MarketPosition <= 0 Then { if color == BLUE and var1 > 0 and L > var1-PriceScale*첫진입틱수 Then Buy("b",AtLimit,var1-PriceScale*첫진입틱수,1); } if MarketPosition == 1 Then { value1 = Floor(MaxEntries/N)+1; Buy("bb",AtLimit,(var1[BarsSinceEntry]-PriceScale*첫진입틱수)-(PriceScale*추가진입틱수)*MaxEntries,value1); if T == -1 and 고점[1,1] > 0 Then ExitLong("bx1",AtLimit,고점[1,1]+PriceScale*1); if T == 1 and 고점[2,1] > 0 Then ExitLong("bx2",AtLimit,고점[2,1]+PriceScale*1); } if MarketPosition >= 0 Then { if Color == RED and Var2 > 0 and H < var2+PriceScale*첫진입틱수 Then Sell("s",AtLimit,Var2+PriceScale*첫진입틱수,1); } if MarketPosition == -1 Then { value1 = Floor(MaxEntries/N)+1; Sell("ss",AtLimit,(var2[BarsSinceEntry]+PriceScale*첫진입틱수)+(PriceScale*추가진입틱수)*MaxEntries,value1); if T == 1 and 저점[1,1] > 0 Then ExitShort("sx1",AtLimit,저점[1,1]-PriceScale*1); if T == -1 and 저점[2,1] > 0 Then ExitShort("sx2",AtLimit,저점[2,1]-PriceScale*1); }
프로필 이미지
번성
2023-08-17
1466
글번호 171489
시스템
답변완료

부탁드립니다

rsi 기간이 14일때 2봉전에 30초과이고 1봉전에 30이하일때 1봉전 종가에 매수하고 rsi 기간이 14일때 2봉전에 30초과이고 1봉전에 30이하이며 1차매수값보다 1퍼센트 이상 하락했을때 1봉전 종가에 매수하고 rsi 기간이 14일때 2봉전 70미만이고 1봉전 70 이상일때 1봉전 종가에 매도하는 수식 부탁드립니다 그리고 여기서 받은 수식을 예스스팟에서 적용시킬수 있을까요?
프로필 이미지
왕밥빵
2023-08-16
1025
글번호 171488
시스템
답변완료

문의 드립니다

장 시작후 N봉 까지의 고가와 저가를 표시해주는 지표를 만들고 싶습니다
프로필 이미지
paranstr
2023-08-15
1091
글번호 171487
지표
답변완료

부탁드립니다

1. 당일 풋의 최고가 또는 최저가가 콜의 최저가 또는 최고가와 같은 가격으로 만난 봉이 발생하였을 경우에 그 해당 봉에 노란색으로 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2023-08-15
824
글번호 171486
강조
답변완료

문의드립니다~

분주기식을 사용하고 있는데요. 틱차트에 오차없이 5분봉의 1봉전기준 5일이평선을 표시할려고 합니다. 참조차트에 5분봉을 불러오고나서 (c[1]+c[2]+c[3]+c[4]+c[5])/5 또는 (c+c[1]+c[2]+c[3]+c[4])/5 이렇게 표현했을때 5분이 완성되기 전까지 5분봉의 1봉전기준의 5일선이 가로로 일정하게 유지가 되어야 되는데 이게 안되네요 data2(c[1]) 이렇게 표현해도 참조차트의 1봉전종가가 지표상에 제대로 표시가 안됩니다. 참조차트구조상 이런식으로 구현이 안되는거 같은데 따로 방법이 있을까요?
프로필 이미지
겐지
2023-08-15
868
글번호 171485
시스템
답변완료

문의 드립니다

1. Inputs: Length1(10),Length2(3),Length3(3),OverSold(30),OverBought(70); Variables: KLine(0), DLine(0); KLine = StochasticsK(Length1,Length2); DLine = StochasticsD(Length1,Length2,Length3); If Crossup(KLine, DLine) AND KLine < OverSold AND DLine < OverSold Then Buy ("Stch_LE"); If CrossDown(KLine, DLine) AND KLine > OverBought AND DLine > OverBought Then ExitLong ("Stch_SE"); ------------- 위 수식어에 추가하고자 합니다. - 이동평균선 300선 아래에서 매수신호는 매도로 전환후 청산 - 익절100틱 손절100틱 2. Inputs: Length1(10),Length2(3),Length3(3),OverSold(30),OverBought(70); Variables: KLine(0), DLine(0); KLine = StochasticsK(Length1,Length2); DLine = StochasticsD(Length1,Length2,Length3); If Crossup(KLine, DLine) AND KLine < OverSold AND DLine < OverSold Then ExitShort ("Stch_LE"); If CrossDown(KLine, DLine) AND KLine > OverBought AND DLine > OverBought Then Sell ("Stch_SE"); ------------------------------ 위 수식어에 추가하고자 합니다. - 이동평균선 300선 위에서 매도신호는 매수로 전환후 청산 - 익절100틱 손절100틱
프로필 이미지
푸른
2023-08-15
1067
글번호 171484
시스템