커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의드립니다

BuA=BBandsUp(기간,D1); BuB=BBandsUp(기간,D2); 상단유지=C>BuB && C<BuA; C(4)>BuA(4) && 상단유지(3) && 상단유지(2) && 상단유지(1) && 상단유지 && C>O 기간 20 d1 2 d2 1 ==================== 종목검색할수 있게 부탁드립니다.. 수고하세요^^
프로필 이미지
나호이다
2020-09-16
1056
글번호 142432
종목검색
답변완료

문의2

아래수식은 주차트에 사용하는 sell 수식입니다. 1. 보조차트2와 보조차트3을 이용해서 양합을 구합니다. var : sum(0,Data1); sum = Data2(c)+data3(c); 2. 구한 양합을 아래 수식에 따라 진입과 청산에 사용하고 싶습니다. ********************************************************************************** input : d1(28),d2(28),X1(28),X2(28),ER(8),EF(8),CR(8),CF(8),거래횟수(20),시작시간(090000); var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 시작시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*d1 and C[1] < HH-PriceScale*d1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*ER Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if E1 == 2 and index > i1 and C <= S1-PriceScale*EF Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*d2 and C[1] < HH-PriceScale*d2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*ER Then{ E1 = 2; i1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*EF Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*CR Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*CF Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*CR Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*CF Then{ ExitShort("sx2"); E1 = 0; } } } }
프로필 이미지
좌오비우오비
2020-09-16
1018
글번호 142430
시스템
답변완료

부탁드립니다.

1. 그렇다면 일단 업종1 부분의 내용을 아래의 위치에 날짜/시간 : 일목균형표의 선행스팬의 가장오른쪽 끝 자리 ( 안된다면 가장 최근 봉 위치) 가격 : Y축 상단여백(여백사이즈에 맞게 폰트 조정 가능할까요) 안된다면 300봉이 보이는 차트 기준 최고가*110% 자리 ( 안된다면 최고가 위치) = > 지표를 추가하는 시점 기준으로 표시되도록 부탁드립니다. > 예스스탁 님이 쓴 글입니다. 안녕하세요 예스스탁입니다. 문의하신 내용은 가능하지 않습니다. 텍스트 출력함수는 날짜 시간 가격으로 위치를 잡아 표시를 할수 있습니다. 차트의 오른쪽/왼쪽 상단/하단은 수식에서 그 위치값을 알수 없습니다. 또한 너무 많은 내용의 텍스트는 저희가 표기하는 식을 작성해 드리기는 어렵습니다. 즐거운 하루되세요 > 개성상인 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 1. 첨부한 엑셀파일 중 업종1 부분의 내용을 차트의 오른쪽 상단에 텍스트로 표기하고 싶습니다. SK하이닉스, 포스코케미칼, 삼성전자, 삼성SDI 처럼 업종 내용이 여러 건 인 종목의 경우 가능하다면 한 텍스트 창에 모두 표기하면 좋겠고 안되면 첫번째 텍스트 왼쪽에 계속해서 표기해주면 좋겠습니다. 2. 업종2 부분의 내용은 차트의 왼쪽 하단에 텍스트로 표기하고 싶습니다. 삼성전자 처럼 내용이 길어서 한줄에 다 안들어 가는 경우는 위로 줄 바꾸어 내용을 계속해서 표기해주면 좋겠습니다.
프로필 이미지
개성상인
2020-09-16
1218
글번호 142429
지표
답변완료

문의1

아래수식은 주차트에 사용하는 buy 수식입니다. 1. 보조차트2와 보조차트3을 이용해서 양합을 구합니다. var : sum(0,Data1); sum = Data2(c)+data3(c); 2. 구한 양합을 아래 수식에 따라 진입과 청산에 사용하고 싶습니다. *************************************************************************** input : b1(28),b2(28),X1(28),X2(28),ER(8),EF(8),CR(8),CF(8),거래횟수(20),시작시간(090000) ; var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{ T1 = TotalTrades; E1 = 0; LL = L; } if stime >= 시작시간 then{ if L < LL Then LL = L; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then{ E1 = 1; H1 = H; i1 = index; V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; #저가가 시작봉종가보다 클때만 눌림체크 if L >= V1 and L <= H1-PriceScale*ER Then{ E1 = 2; i1 = index; S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and L < V1 Then{ E1 = 0; LL = L; } if E1 == 2 and index > i1 and C >= S1+PriceScale*EF Then{ buy("b1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; LL = L; } if L < LL Then LL = L; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{ E1 = 1; H1 = H; i1 = index; V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; #저가가 시작봉종가보다 클때만 눌림체크 if L >= V1 and L <= H1-PriceScale*ER Then{ E1 = 2; i1 = index; S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and L < V1 Then{ E1 = 0; LL = L; } if E1 == 2 and index > i1 and C >= S1+PriceScale*EF Then{ buy("b2"); } } if MarketPosition == 1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EH = H; E1 = 0; } if H > EH Then{ EH = H; E1 = 0; } if E1 == 0 and C <= EH-PriceScale*X1 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*CR Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*CF Then{ exitlong("bx1"); E1 = 0; } } } if MarketPosition == 1 Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EH = H; E1 = 0; } if H > EH Then{ EH = H; E1 = 0; } if E1 == 0 and C <= EH-PriceScale*X2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 Then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*CR Then{ E1 = 2; I1 = index; S1 = L1; } } if E1 == 2 and index > i1 and C <= S1-PriceScale*CF Then{ exitlong("bx2"); E1 = 0; } } } }
프로필 이미지
좌오비우오비
2020-09-16
982
글번호 142428
시스템
답변완료

수정 부탁드립니다.

안녕하세요? 아래 수식에서 두가지 수정할 부분이 있어서 부탁드립니다. 1) 봉완성전에 매매가이루어지는지는 잘 모르겠으나, 현재는 설정한 기준선에 딱맞춰서 거래가 이루어지고 있습니다. --> 기준선에서 한틱큰 양봉에 매수진입, 기준선에서 한틱큰 음봉에 매도진입 이 되게 하고싶습니다. 2) 매수진입을하면 사자말자 바로 청산이되고, 곧바로 매도진입이 되고 있습니다. 매도진입을하게되면 진입후 그러진않습니다. 부탁드립니다. 감사합니다. input : 기준선(0.15),n(3); var : entry(0); if Bdate != Bdate[1] Then entry = 0; var1 = C%1; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if entry < n Then { if MarketPosition == 0 and var1 == 기준선 then Buy(); if MarketPosition == 0 and var1 == 기준선 then Sell(); } input : 익절틱수(50),손절틱수(50); SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
대구어린울프
2020-09-16
954
글번호 142427
시스템
답변완료

틱차트에서 분봉지표를 같이 볼수 있는 수식을 문의드리고자 합니다.

예스트레이더를 처음 사용하다보니 뭐가 뭔지 도통 감이 안잡혀서 문의드리게 되었습니다. 제가 표현하고자 하는것은 120 틱 차트에서 3분봉과 5분봉의 SROC 지표를 같이 볼수 있는가 입니다. - 120틱 차트에서 ( 3분 SROC 지표 + 5분 SROC 지표 ) 를 같이 겹쳐서 보기 가능하다면 수식 좀 부탁드리겠습니다. 고맙습니다.
프로필 이미지
디컨
2020-09-16
1204
글번호 142424
지표
답변완료

수식좀 부탁드립니다

1) 시스템과 지표수식 두개씩 부탁드립니다. 1 매수 : 50개봉중 5일 평균 최저가 2 매도 : 50개봉중 5일 평균 최고가 2)시스템과 지표수식 두개씩 부탁드립니다. 1 매수 : 5일 평균 최저가 / 하락하다가 상승할때 2 매도 : 5일 평균 최고가 / 상승하다가 하락할때 3) 아래의 수식에서 그림처럼 직전 파동의 고점 혹은 저점기준 피보나치 수치라인을 추가 부탁드립니다. 4) 아래의 수식에서 가장최근 파동의 고점 혹은 저점기준 피보나치 수치라인을 추가 부탁드립니다.(이경우 최근 파동이 늦어지기에 피보나치도 늦게서야 나오겠지요) Input:전환가격(10),종가사용여부(1),파동선두께(2),수치표시(1),소수(0); Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부 == 1,C,H); LL = IFF(종가사용여부 == 1,C,L); If Index == 0 Then { 고[1,1] = HH; 고[1,2] = 0; 고[1,3] = sDate; 고[1,4] = sTime; 저[1,1] = LL; 저[1,2] = 0; 저[1,3] = sDate; 저[1,4] = sTime; } If Index > 0 Then { hiBar = hiBar + 1; loBar = loBar + 1; } If HH[hiBar] < HH Then hiBar = 0; If LL[loBar] > LL Then loBar = 0; Condition1 = 저[1,1] + 전환가격 < HH and hiBar == 0; Condition2 = 고[1,1] - 전환가격 > LL and loBar == 0; 처리구분 = ""; 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 { If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1], NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+ NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+ NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)"); Text_SetStyle(Text1, 2, 1); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,Red); } Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH[hiBar]; 고[1,2] = Index - hiBar; 고[1,3] = sDate[hiBar]; 고[1,4] = sTime[hiBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1, NumToStr(고[1,1],소수)+"("+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+","+ NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+ NumToStr((고[1,1]-저[1,1])/abs(고[2,1]-저[1,1])*100,2)+"%)"); } } 최종꼭지점 = "고점"; } If 처리구분 == "저점처리" Then { If 최종꼭지점 == "고점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1], NumToStr(저[1,1],소수)+"("+NumToStr((저[1,1]-고[1,1])/PriceScale,0)+","+ NumToStr((저[1,1]-저[2,1])/PriceScale,0)+","+ NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)"); Text_SetStyle(Text1, 2, 0); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,Blue); } Else If 저[1,1] > LL[loBar] Then { 저[1,1] = LL[loBar]; 저[1,2] = Index - loBar; 저[1,3] = sDate[loBar]; 저[1,4] = sTime[loBar]; hiBar = -1; loBar = -1; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 수치표시 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1, NumToStr(저[1,1],소수)+"("+NumToStr(abs(저[1,1]-고[1,1])/PriceScale,0)+","+ NumToStr((고[1,1]-고[2,1])/PriceScale,0)+","+ NumToStr((저[1,1]-고[1,1])/abs(고[1,1]-저[2,1])*100,2)+"%)"); } } 최종꼭지점 = "저점"; }
프로필 이미지
회원
2020-09-17
933
글번호 142421
시스템
답변완료

지표 문의 드립니다.

* 좋은 하루 되십시요. * 아래 수식에서 마이너스가 나오는데 외그렇죠? 제 의도는 5봉 기준으로 현재가격이 몇 퍼센트에 위치 하느냐 를 보고 싶은데 잘 안되네요. 즉 현재가(c[1])가 5봉 최하단이면 0 이고 현재가(c[1])가 최상단이면 100 입니다. 어느부분이 잘못 되었나요? <아래수식> var1 = max(c[1],c[2],c[3],c[4],c[5]) ; var2 = Min(c[1],c[2],c[3],c[4],c[5]) ; var3 = (var1+var2) / 2 ; var4 = (C[1]-var3)/var3[1]*100; Plot1(var4) ; * 매번 고맙습니다. 수고하십시요.
프로필 이미지
요타
2020-09-16
785
글번호 142411
지표
답변완료

문의 드립니다

당일중간값을 현재값이 터치했을때 선그래프로 나타나게 할수는 있나요? 수식을 알고 싶습니다
프로필 이미지
처음처럼22
2020-09-16
869
글번호 142410
지표