커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수고 많으십니다. 53813재문의 입니다.

저가 설명이 부족한것 같아 그림첨부 하였습니다. 검정색이 var3 적색이 var4 입니다. 20개 이전봉중에 한번이라도 var3이 var4를 크로스한경우가 있다면 (var3>var4) 기존수식이 진입신호가 한번나오게 하고 싶습니다. 정리하면 종가기준으로 1~20개 이전봉사이에 var3>var4 인경우이고, var3 이 var4보다 크다가 작아지는 지점의 전봉(var3<var4 전봉)기준으로 20개 카운트입니다. var1>var2>var3>var4 (최근 20개봉이 모두의 조건은 아닙니다.) 설명이 충분히 되었는지 모르겠습니다. 번거럽게 해서 죄송합니다. --------------------------------------------------------------------------- if countif(var3>var4,20) == 20 and #최근 20개봉이 모두 var3 > var4 var2 > var2[1] and C < var1 Then{ buy("매수",AtStop,NextBarOpen+PriceScale*1,1); }
프로필 이미지
상중하
2017-06-26
155
글번호 110723
시스템
답변완료

지표부닥드려요

키움수식인데요 예스로 변경 부탁드려요 b=highestsince(1,crossup(macd(5,23),0),avg(c,23)) c=lowestsince(1,crossdown(macd(5,23),0),avg(c,23)) a=avg(c,23);if(a>a(1),a,0) a=avg(c,23);if(a>a(1),a,0)
프로필 이미지
장군777
2017-06-26
181
글번호 110708
지표
답변완료

부탁드립니다

AROON DN과 UP이 100선에 닿을때마다 신호음이 울리게 할수 있나요? DN과 UP 각각 신호음 체크 인 해제 할수있게 해주세요
프로필 이미지
매화산삼
2017-06-26
142
글번호 110706
지표
답변완료

안녕하세요 질문드려요~!!!

안녕하세요 도저히 해보다가 잘 모르겠어서 질문드립니다. 어제의 시가를 바탕으로 range를 mult승수를 이용하여 조정하여 위아래 range를 돌파하면 매수/매도를 구현중인데 yes신호와 Tradestation("이하 TS")를 비교중입니다. 일자는 2016/01/01부터 2016/12/31일까지이고 매매수식은 위에서 설명한 대로입니다. 여기서 질문은 첫신호가 예스에서는 2016/01/05 10시40분에 나오고 TS에서는 동일날짜 09시15분에 발효됩니다. 다음날짜인 1월6일에는 예스는 09시25분에 첫신호가 나오고 동일날짜 TS에서는 09시15분에 첫신호가 나옵니다. 나머지 일자에서는 신호가 동일하게 발생됩니다. 로직은 동일한데 왜 1월 5일과 1월 6일에 매매신호가 TS와 서로 다르게 발생하는지 이유를 부탁드립니다. (나머지 일자는 TS와 Yes 동일하게 신호가 발생되구요) 일주일째 고민하는데 이유를 도대체 모르겠어요 간절하게 부탁드립니다.
프로필 이미지
도롱삿갓
2017-06-26
165
글번호 110705
시스템
답변완료

질문드립니다.

p = (( High + Close)/ 3); ma(p,50)을 plot했을때 이것을 뒤집는 ma(p,50)을 할려면 어떻게해야하나요
프로필 이미지
stockric
2017-06-26
141
글번호 110704
지표
답변완료

질문드립니다.

5이평을 종가가 3틱이상 뚫으면 plotpaintbar합니다.
프로필 이미지
stockric
2017-06-26
131
글번호 110703
강조
답변완료

수식 부탁드립니다.

현재200틱 기준으로 신호를 띄우고 잇습니다. 200틱 차트상에서 60이평 기준으로 매수매도 신호가 발생하는데요... 한차트가 아닌...... 15분차트에서 특정 조건 만족시 + 200틱 조건 만족시에 신호를 발생시키고 싶습니다. 예로,,, 15분 차트에서 60이평보다 높고 + 200틱 차트에서 60이평보다 높으면 매수 15분 차트에서 60이평보다 낮고 + 200틱 차트에서 60이평보다 낮으면 매도... 수식 부탁드립니다.
프로필 이미지
노블사랑
2017-06-26
133
글번호 110701
시스템
답변완료

부탁드림니다

어느회원분의 지표식을 시스템으로 만들엇으면 함니다. 1,파동의 고점과 저점에 점표시되는 부분을 시스템으로 만들려고 함니다. 2,파동의 고점과저점에 가격표시와 수평라인을 그렷으면 함니다. 3,수식 Input:chRate(0.5); //전환율 또는 변동률 Var:j(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),trnd(0),TL(0), date11(0),date12(0),time11(0),time12(0),TL1(0), date21(0),date22(0),time21(0),time22(0),TL2(0), date31(0),date32(0),time31(0),time32(0),TL3(0); Array:hiVal[10](0),loVal[10](0),hiBar[10](0),loBar[10](0); //hiVal[1]은 전고점, hiVal[2]는 전전고점, hiVal[3]은 전전전고점 //hiVal[0]은 변곡점 이후 현재봉까지의 고점. 현재 고점은 진행중이므로 계속 바뀐다. //loVal[0]은 반대 개념 var : TL13(0),TL14(0),color(0),Tx1(0),Tx2(0),tx3(0),tx4(0); upRate = 1 + (chRate/100); //상승률 dnRate = 1 - (chRate/100); //하락률 for j = 1 to 9 { //전고,전저점을 9개까지 보관 loBar[j] = loBar[j] + 1; //전저점의 위치. 현재 봉으로부터 떨어져 있는 거리 hiBar[j] = hiBar[j] + 1; //전고점의 위치 } if hiVal[0] <= H or hiVal[0] == 0 then { //전고,전저점 이후 현재까지의 고점 hiVal[0] = H; //0을 체크한 이유는 초기에 값이 없는 구간이 생기기 때문 hiBar[0] = 0; //현재 고점의 위치가 0이란 것은 현재봉의 고가가 구간 고점이라는 의미 } else { hiBar[0] = hiBar[0] + 1; //현재 고점의 위치 } if loVal[0] >= L or loVal[0] == 0 then { //전고,전저점 이후 현재까지 저점 loVal[0] = L; loBar[0] = 0; } else { loBar[0] = loBar[0] + 1; //현재 구간 저점의 위치 } if trnd != dnTr && hiVal[0] > H && hiVal[0] * dnRate > L then trnd = dnTr; //저가가 고가 대비 변동률보다 밑으로 떨어지면 하락추세로 설정 //단, 현재봉의 고가가 변곡점 이후 최고가이면 상승 추세가 진행중이라고 본다. //그래서 현재봉의 고가가 hiVal[0]보다 작다는 조건이 추가되었다. else if trnd != upTr && loVal[0] < L && loVal[0] * upRate < H then trnd = upTr; //고가가 저가 대비 변동률보다 높으면 상승추세로 설정 if trnd[1] == upTr and trnd == dnTr then { //상승추세였다가 하락추세로 바뀌었다면 for j = 8 downto 1 { //새로운 전고점이 생기는 것이므로 hiVal[j+1] = hiVal[j]; //전고점을 하나씩 뒤로 보낸다. hiBar[j+1] = hiBar[j]; //전고점은 전전고점이 되고, 전전고점은 전전전고점이 된다. } hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입 hiBar[1] = hiBar[0]; hiVal[0] = H; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가 hiBar[0] = 0; loVal[0] = L; loBar[0] = 0; //전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다. date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜 time11 = stime[loBar[1]]; //추세선 시작시간 Value11 = loVal[1]; //추세선 시작가격 date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜 time12 = stime[hiBar[1]]; //추세선 종료시간 Value12 = hiVal[1]; //추세선 종료가격 //TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); //TL_New는 신규 추세선을 그려주는 함수 } if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데 hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면 hiVal[0] * dnRate > L then { hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다. hiBar[1] = hiBar[0]; hiVal[0] = H; hiBar[0] = 0; loVal[0] = L; loBar[0] = 0; //전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다. date12 = date[hiBar[1]]; //추세선 종료일 time12 = stime[hiBar[1]]; Value12 = hiVal[1]; TL_SetEnd(TL1, date12,time12,Value12); //TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수이다. //TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다. } if trnd[1] == dnTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우 for j = 8 downto 1 { //이전저점은 전전저점으로, 전전저점은 전전전저점으로 번호를 부여 loVal[j+1] = loVal[j]; loBar[j+1] = loBar[j]; } loVal[1] = loVal[0]; loBar[1] = loBar[0]; loVal[0] = L; loBar[0] = 0; hiVal[0] = H; hiBar[0] = 0; date11 = date[hiBar[1]]; //전저점이 새로이 생긴 것이므로 시작점은 전고점이 된다. time11 = stime[hiBar[1]]; Value11 = hiVal[1]; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; //TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); } if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데 loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면 loVal[0] * upRate < H then { loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다. loBar[1] = loBar[0]; loVal[0] = L; loBar[0] = 0; hiVal[0] = H; hiBar[0] = 0; date12 = date[loBar[1]]; time12 = stime[loBar[1]]; Value12 = loVal[1]; TL_SetEnd(TL1, date12,time12,Value12); } if trnd == upTr and loVal[2] > loVal[1] then{ TL_SetColor(TL1,BLUE); color = blue; } else if trnd == dnTr and hiVal[2] < hiVal[1] then{ TL_SetColor(TL1,RED); color = RED; } else{ TL_SetColor(TL1,BLACK); color = BLACK; } TL_SetSize(TL1,2); TL_SetColor(TL2,RED); TL_SetColor(TL3,BLUE); if var1 <= 0 and Trnd == uptr and Trnd != Trnd[1] Then{ var1 = 1; value1 = loval[1]; TX1 = Text_New(sdate[lobar[1]],stime[lobar[1]],value1-PriceScale*2,"●"); TL_SetColor(TL,RED); TL_SetSize(TL,2); Text_SetStyle(TX1,2,2); Text_SetColor(TX1,RED);#텍스트 색상 TX2= Text_New(sdate[lobar[1]],stime[lobar[1]],L,"상승"); Text_SetColor(TX2,RED);#텍스트 색상 TL13 = TL_New(date11,time11,Value11,date12,time12,Value11); TL14 = TL_New(date12,time12,Value11,date12,time12,Value12); TL_SetColor(TL13,color); TL_SetColor(TL14,color); } if var1 >= 0 and Trnd == dntr and Trnd != Trnd[1] then{ var1 = -1; value1 = hival[1]; TX3 = Text_New(sdate[hibar[1]],stime[hibar[1]],value1+PriceScale*2,"●"); TL_SetColor(TL,BLUE); TL_SetSize(TL,2); Text_SetStyle(TX3,2,2);#텍스트 좌우 상하 정렬 Text_SetColor(TX3,BLUE);#텍스트 색상 TX4= Text_New(sdate[hibar[1]],stime[hibar[1]],H,"하락"); Text_SetColor(TX4,BLUE);#텍스트 색상 TL13 = TL_New(date11,time11,Value11,date12,time12,Value11); TL14 = TL_New(date12,time12,Value11,date12,time12,Value12); TL_SetColor(TL13,color); TL_SetColor(TL14,color); }
프로필 이미지
수루지
2017-06-26
165
글번호 110696
시스템
답변완료

range 돌파즉시 진입 수식이 있나요?

분봉 차트에서 range 돌파나 이탈 즉시 봉 완성이전이라도 진입할 수 있는 방법은 없나요? data2를 사용해서 봉 완성전이라도 진입하는 편법이 있다고 들었는데 어떻게 구현하는지를 잘 모르겠습니다. range는 data1에서만 나타납니다. 참고할 수 있는 과거 답변들이 있으면 알려주세요..
프로필 이미지
디톡스
2017-06-26
144
글번호 110695
시스템