커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식

1. D-1 시가, D-2 시가, D-3 시가 가운데 두번째로 높은 시가를 표시한다 2. 음봉과 음봉 사이 하향 갭을 만든 캔들의 시가와 고가를 표시한다 양봉과 양봉 사이 상향 갭을 만든 캔들의 시가와 저가를 표시한다 3. 20 캔들 바닥에서 20번째 캔들 고가가 10번째 캔들 고가 보다 낮을 경우 매도 20 캔들 천정에서 20번째 캔들 저가가 10번째 캔들 저가 보다 높을 경우 매수 4. 20 캔들 천정을 10 캔들 이내 신고가 매수 20 캔들 바닥을 10 캔들 이내 신저가 매도 5. 20 캔들 천정을 5 캔들째 신고가 매수 20 캔들 바닥을 5 캔들째 신저가 매도 6. 20 캔들 천정에서 좌측 10 캔들 저가보다 우측 10 캔들 저가가 낮을 경우 매도 20 캔들 바닥에서 좌측 10 캔들 고가보다 우측 10 캔들 고가가 높을 경우 매수 7. 20 캔들 천정에서 우측 5 캔들 저가가 좌측 5캔들 저가 보다 높은 상태에서 우측 5캔들 저가가 붕괴되면 붕괴시킨 캔들 고가,저가를 표시한다 20 캔들 바닥에서 우측 5 캔들 고가가 좌측 5캔들 고가 보다 높은 상태에서 우측 5캔들 저가가 붕괴되면 붕괴시킨 캔들 고가,저가를 표시한다 20 캔들 천정에서 우측 5 캔들 저가가 좌측 5캔들 저가 보다 낮은 상태에서 좌측 5캔들 저가가 돌파되면 돌파한 캔들 고가,저가를 표시한다 20 캔들 바닥에서 우측 5 캔들 고가가 좌측 5캔들 고가 보다 낮은 상태에서 좌측 5캔들 고가가 돌파되면 돌파시킨 캔들 고가,저가를 표시한다 8. 20 캔들 천정에서 우측 5 캔들 저가가 좌측 5캔들 저가 보다 높은 상태에서 좌측 5캔들 저가가 붕괴되면 매도 20 캔들 바닥에서 우측 5 캔들 고가가 좌측 5캔들 고가 보다 높은 상태에서 좌측 5캔들 저가가 붕괴되면 매도 20 캔들 천정에서 우측 5 캔들 저가가 좌측 5캔들 저가 보다 낮은 상태에서 좌측 5캔들 고가를 돌파하면 매수 20 캔들 바닥에서 우측 5 캔들 고가가 좌측 5캔들 고가 보다 낮은 상태에서 좌측 5캔들 고가가 돌파하면 매수
프로필 이미지
회원
2019-07-07
343
글번호 130104
지표
답변완료

부탁드립니다.

그림과 같이 부탁 드립니다. Input:기간(100),매물대개수(10),선두께(1); Var:j(0),k(0),구간최고가(0),구간최저가(0),가격단위(0), 총거래량(0),최대거래량(0),최대매물대(0),비중(0),TL1(0); Array:매물대[30,3](0); // 열번호 1:가격이상,2:가격미만,3:수량 //============= 매물대 계산 =======================// 구간최고가 = Highest(H,기간); 구간최저가 = Lowest(L,기간); If !(구간최고가[1] == 구간최고가 and 구간최저가[1] == 구간최저가) Then { 가격단위 = (구간최고가 - 구간최저가)/매물대개수; 매물대[1,1] = 구간최저가; 매물대[1,2] = 매물대[1,1] + 가격단위; 매물대[1,3] = 0; For j = 2 To 매물대개수 { 매물대[j,1] = 매물대[j-1,1] + 가격단위; 매물대[j,2] = 매물대[j-1,2] + 가격단위; 매물대[j,3] = 0; } 총거래량 = 0; For k = 0 To 기간 - 1 { 총거래량 = 총거래량 + V[k]; For j = 1 To 매물대개수 { If 매물대[j,1] <= C[k] and C[k] < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V[k]; j = 매물대개수; } } } } Else { 총거래량 = 총거래량 + V; For j = 1 To 매물대개수 { If 매물대[j,1] <= C and C < 매물대[j,2] Then { 매물대[j,3] = 매물대[j,3] + V; j = 매물대개수; } } } 최대거래량 = 0; 최대매물대 = 0; For j = 1 To 매물대개수 { If 최대거래량 < 매물대[j,3] Then { 최대거래량 = 매물대[j,3]; 최대매물대 = j; // 값이 큰 행의 번호 } } //============= 매물벽 출력 =======================// If 최대매물대 > 0 Then { TL1 = TL_New(sDate[1],sTime[1],매물대[최대매물대,1],sDate,sTime,매물대[최대매물대,2]); TL_SetSize(TL1,선두께); 비중 = int(최대거래량 / 총거래량 * 200); TL_SetColor(TL1,RGB(200 - 비중, 200 - 비중, 200 - 비중)); // 비중이 클수록 더 진해집니다. }
프로필 이미지
yes
2019-07-06
460
글번호 130103
지표
답변완료

고저라인 파동지표식 수정

고저라인 파동지표식인데요. 추세선을 설정해보니 추세선 두께가 너무 두꺼운 듯 해서 좀 얇게 하고싶은데요. 또 수치가 표시가 되는데 수치가 표시되지 않게 하고 싶습니다. 밑에 수식중 추세선 두께부분과 수치표시부분 수식이 어떤것인지 좀 알려주시면 감사하겠습니다. ------------------------------------------------------------------------- Input:length(10); Var:TL1(0),TL2(0),TL2_exist(0),color(0), 종가사용여부(0), // 종가로 계산하려면 1로 설정한다. TL_NewBit(0), // 1:NewLine 2:SetEndLine slope(0),mid_idx(0),mid_val(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# Value1 = HiLoLineZigZag(length,종가사용여부,고,저,TL_NewBit); // HiLoLineZigZag는 사용자함수입니다. 링크에서 내려받으세요.. If Value1 == 1 Then { // 고점 If TL_NewBit == 1 Then { // 신규 If 고[2,1] < 고[1,1] Then { // 신규 고점이 이전 고점을 상향 돌파 // y = 기울기 * x + 절편 // x = (y - 절편) / 기울기 // y = 고[2,1] // 절편 = 저[1,1] slope = (고[1,1] - 저[1,1]) / (고[1,2] - 저[1,2]); // 추세선의 기울기 mid_idx = Floor((고[2,1] - 저[1,1]) / slope); // 고[2,1]과 만나는 지점 mid_val = slope * mid_idx + 저[1,1]; Var1 = Index - (저[1,2] + mid_idx); // 추세선의 중간지점 x좌표 TL1 = TL_New(저[1,3],저[1,4],저[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,고[1,3],고[1,4],고[1,1]); Var2 = Index - 저[1,2]; // 이전 색깔을 따라감 TL_SetColor(TL1,color[Var2]); color = RED; // 상향 돌파했으므로 빨간색으로 전환 TL_SetColor(TL2,color); TL2_exist = 1; // 추세선 2개를 연결해서 그린 것이므로 추세선이 2개임을 저장 } Else { TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } If TL_NewBit == 2 Then { // 연장 TL_Delete(TL1); If TL2_exist == 1 Then TL_Delete(TL2); // 추세선이 2개면 두번째 추세선도 삭제 If 고[2,1] < 고[1,1] Then { slope = (고[1,1] - 저[1,1]) / (고[1,2] - 저[1,2]); mid_idx = Floor((고[2,1] - 저[1,1]) / slope); mid_val = slope * mid_idx + 저[1,1]; Var1 = Index - (저[1,2] + mid_idx); TL1 = TL_New(저[1,3],저[1,4],저[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,고[1,3],고[1,4],고[1,1]); Var2 = Index - 저[1,2]; TL_SetColor(TL1,color[Var2]); color = RED; TL_SetColor(TL2,color); TL2_exist = 1; } Else { TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } } Else If Value1 == -1 Then { // 저점 If TL_NewBit == 1 Then { // 신규 If 저[2,1] > 저[1,1] Then { slope = (저[1,1] - 고[1,1]) / (저[1,2] - 고[1,2]); mid_idx = Floor((저[2,1] - 고[1,1]) / slope); mid_val = slope * mid_idx + 고[1,1]; Var1 = Index - (고[1,2] + mid_idx); TL1 = TL_New(고[1,3],고[1,4],고[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,저[1,3],저[1,4],저[1,1]); Var2 = Index - 고[1,2]; TL_SetColor(TL1,color[Var2]); color = BLUE; TL_SetColor(TL2,color); TL2_exist = 1; } Else { TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } If TL_NewBit == 2 Then { // 연장 TL_Delete(TL1); If TL2_exist == 1 Then TL_Delete(TL2); If 저[2,1] > 저[1,1] Then { slope = (저[1,1] - 고[1,1]) / (저[1,2] - 고[1,2]); mid_idx = Floor((저[2,1] - 고[1,1]) / slope); mid_val = slope * mid_idx + 고[1,1]; Var1 = Index - (고[1,2] + mid_idx); TL1 = TL_New(고[1,3],고[1,4],고[1,1],sDate[Var1],sTime[Var1],mid_val); TL2 = TL_New(sDate[Var1],sTime[Var1],mid_val,저[1,3],저[1,4],저[1,1]); Var2 = Index - 고[1,2]; TL_SetColor(TL1,color[Var2]); color = BLUE; TL_SetColor(TL2,color); TL2_exist = 1; } Else { TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); TL_SetColor(TL1,color); TL2_exist = 0; } } } TL_SetSize(TL1,2); TL_SetSize(TL2,2);
프로필 이미지
양정희
2019-07-07
393
글번호 130102
지표

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2019-07-05
7
글번호 130101
지표
답변완료

식?

안녕하세요 단순이동평균그물망 7.8.9.10선이 50선 상승돌파 매수 50선 하락돌파 매도 단순이동평균그물망 7.8.9.10.선이 단순이동평균선그물망 12선 상승돌파 모든포지션 청산 하락돌파 모든포지션 청산 감사합니다
프로필 이미지
회원
2019-07-05
291
글번호 130098
시스템
답변완료

수식

1. 일봉에서 가격이 상향하는 20 캔들 이평 위에 위치할 때 틱봉에서 시가-2.0 매수 일봉에서 가격이 하향하는 20 캔들 이평 아래 위치할 때 틱봉에서 시가+2.0 매도
프로필 이미지
회원
2019-07-05
265
글번호 130097
지표
답변완료

선 긋는 수식 작성좀 부탁드립니다.

콜옵션과 풋옵션의 각 행사가 별로 월물 첫째날 저가를 선긋기 하려고 합니다. 행사가는 등가 기준 아래위로 5개 정도씩만 하면 되겠습니다. 그러니까 콜옵션에서 10개 풋옵션에서 10개의 선이 만들어 지는 겁니다. 월물 첫째날이란? 당월물이 마감된(매월 두번째 목요일) 다음 영업일입니다.
프로필 이미지
천왕봉
2019-07-05
276
글번호 130093
지표
답변완료

수식 조언좀 부탁드립니다

배경색상을 바꾸고 싶은데요 지표는 ADX를 사용하고 싶습니다. input : Period(14); var : ADXv(0); ADXv = ADX(Period); ADX수식으로 알고 있는데요 ADXv>75 크다면 배경이 빨강색 ADXv<25 작다면 배경은 초록색으로 바꾸고 싶은데요 배경색상 교환하는 수식이 있을까요?
프로필 이미지
김국장
2019-07-05
269
글번호 130089
강조
답변완료

문의

양봉이 연속되는 경우가 아닌 연속봉 중 음봉도 포함하는 수식으로 변경하고 싶습니다. 연속봉들의 바디(시가,종가)의 총합이 1.00 포인트 이하이고 전체봉수대비 양봉수 비율이 80%보다 크면 buy 입니다. 항상 고맙습니다. ******************************************************************************** input : 연속봉수(5), 연속봉들총합(1.00); if countif(C>O,연속봉수) == 연속봉수 and AccumN(abs(C-O), 연속봉수) <= 연속봉들총합 then buy();
프로필 이미지
목마와숙녀
2019-07-05
269
글번호 130087
시스템