커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

옵션 전일종가 양합지표를 수정해주시면 ...

Plot1( Data1 (DayClose(1)) + Data2 (DayClose(1)), "가격합"); 이 식이 아닌가요? Data1,Data2 옵션차트는 잘 틔어 놨는데 안되네요
프로필 이미지
이재찬
2018-10-19
256
글번호 122850
지표
답변완료

수식문의

아래는 입력한 시간에 각각 buy와 sell로 진입하는 수식입니다. 시가와 진입시간 때의 gap을 추가하여 진입코자 합니다. 예를 들어 093800에 진입하는데 시가대비 gap -2.0 포인트를 만족할 때 진입하는 수식이 필요합니다. buy, sell수식 각각 부탁드립니다. input : 진입시간(093800) input : 시가대비 gap(- 2.0) 시가대비gap은 +,- 모두 가능 ************************************************************************** 1)buy수식 input : 진입시간(093800) if stime == 진입시간 Then buy("b"); 2)sell 수식 input : 진입시간(093800) if stime == 진입시간 Then sell("s");
프로필 이미지
좌오비우오비
2018-10-19
217
글번호 122849
시스템
답변완료

안녕하세요

안녕하세요 수고 많으십니다. 다름이 아니라.... 아래 수식을 지표식으로 구현 하고자 합니다. 시가 상방시 빨강 시가 하방시 파랑으로 구현 부탁드립니다. 감사합니다 수고 하세요. Condition1 = crossup(c,dayopen(0)); Condition2 = CrossDown(c,dayopen(0)); if Condition1[1] == true and L >= O[1] Then buy("b",OnClose,def,2); if Condition2[1] == true and H <= O[1] Then sell("s",OnClose,def,2);
프로필 이미지
탐라
2018-10-19
230
글번호 122848
지표
답변완료

지표문의

안녕하세요 저는 거래시 10분봉 또는 5분봉을 보고 있는데, 전략실행챠트에 10분봉과 5분봉의 볼린져 밴드를 동시에 나탸낼 수 있나요? 그물망챠트처럼 여러개의볼린져 밴드를 나타내고 싶습니다. 보조챠트에 만들어 보았는데... 가격봉이 나타나지 않아서 보기가 불편해서요 조언 부탁드립니다. 감사합니다.
프로필 이미지
softtoug
2018-10-19
237
글번호 122842
지표
답변완료

부탁드립니다

var : YH(0),YL(0),H1(0),L1(0),H2(0),L2(0),cnt(0); var : LTL(0),LTL1(0),LTL2(0),LTL3(0),LTL4(0),LTL5(0),LTL6(0); var : HTL(0),HTL1(0),HTL2(0),HTL3(0),HTL4(0),HTL5(0),HTL6(0); if bdate > bdate[1]+1000 or index == 0 Then{ YH = H; YL = L; } if H > YH Then YH = H; if L < YL Then YL = L; #년간최고가발생 if H == YH then { H1 = H; L1 = L[25]; var1 = sdate[25]; var2 = stime[25]; #이전출력선지움 TL_Delete(LTL); TL_Delete(LTL1); TL_Delete(LTL2); TL_Delete(LTL3); TL_Delete(LTL4); TL_Delete(LTL5); TL_Delete(LTL6); #새로운추세선 출력 LTL = TL_New(var1,var2,L1,sdate,stime,L1); LTL1 = TL_New(var1,var2,L1-(H1-L1)*1,sdate,stime,L1-(H1-L1)*1); LTL2 = TL_New(var1,var2,L1-(H1-L1)*2,sdate,stime,L1-(H1-L1)*2); LTL3 = TL_New(var1,var2,L1-(H1-L1)*3,sdate,stime,L1-(H1-L1)*3); LTL4 = TL_New(var1,var2,L1-(H1-L1)*4,sdate,stime,L1-(H1-L1)*4); LTL5 = TL_New(var1,var2,L1-(H1-L1)*5,sdate,stime,L1-(H1-L1)*5); LTL6 = TL_New(var1,var2,L1-(H1-L1)*6,sdate,stime,L1-(H1-L1)*6); #색상 TL_SetColor(LTL,BLUE); TL_SetColor(LTL1,BLUE); TL_SetColor(LTL2,BLUE); TL_SetColor(LTL3,BLUE); TL_SetColor(LTL4,BLUE); TL_SetColor(LTL5,BLUE); TL_SetColor(LTL6,BLUE); #굵기 TL_SetSize(LTL,3); TL_SetSize(LTL1,0); TL_SetSize(LTL2,0); TL_SetSize(LTL3,0); TL_SetSize(LTL4,0); TL_SetSize(LTL5,0); TL_SetSize(LTL6,0); #우측연장 TL_SetExtRight(LTL,True); TL_SetExtRight(LTL1,True); TL_SetExtRight(LTL2,True); TL_SetExtRight(LTL3,True); TL_SetExtRight(LTL4,True); TL_SetExtRight(LTL5,True); TL_SetExtRight(LTL6,True); } #년간최저가 발생 if L == YL then { H2 = H[25]; L2 = L; var3 = sdate[25]; var4 = stime[25]; #이전출력선지움 TL_Delete(HTL); TL_Delete(HTL1); TL_Delete(HTL2); TL_Delete(HTL3); TL_Delete(HTL4); TL_Delete(HTL5); TL_Delete(HTL6); #새로운추세선출력 HTL = TL_New(var3,var4,H2,sdate,stime,H2); HTL1 = TL_New(var3,var4,H2+(H2-L2)*1,sdate,stime,H2+(H2-L2)*1); HTL2 = TL_New(var3,var4,H2+(H2-L2)*2,sdate,stime,H2+(H2-L2)*2); HTL3 = TL_New(var3,var4,H2+(H2-L2)*3,sdate,stime,H2+(H2-L2)*3); HTL4 = TL_New(var3,var4,H2+(H2-L2)*4,sdate,stime,H2+(H2-L2)*4); HTL5 = TL_New(var3,var4,H2+(H2-L2)*5,sdate,stime,H2+(H2-L2)*5); HTL6 = TL_New(var3,var4,H2+(H2-L2)*6,sdate,stime,H2+(H2-L2)*6); #색상 TL_SetColor(HTL,YELLOW); TL_SetColor(HTL1,YELLOW); TL_SetColor(HTL2,YELLOW); TL_SetColor(HTL3,YELLOW); TL_SetColor(HTL4,YELLOW); TL_SetColor(HTL5,YELLOW); TL_SetColor(hTL6,YELLOW); #굵기 TL_SetSize(HTL,3); TL_SetSize(HTL1,0); TL_SetSize(HTL2,0); TL_SetSize(HTL3,0); TL_SetSize(HTL4,0); TL_SetSize(HTL5,0); TL_SetSize(HTL6,0); #우측연장 TL_SetExtRight(HTL,True); TL_SetExtRight(HTL1,True); TL_SetExtRight(HTL2,True); TL_SetExtRight(HTL3,True); TL_SetExtRight(HTL4,True); TL_SetExtRight(HTL5,True); TL_SetExtRight(HTL6,True); } 아래에 부탁드린것과 (종목검색) 다른것입니다 이것은 굵은노랑선 굵은 파랑선(첫번째노랑선,첫번째파랑선) 2개선이 기준선입니다 조건1) 현재가 > 굵은노랑선 and 현재가 굵은 노랑선 이격5%이내 조건2) 현재가 >굵은파랑선 and 현재가 굵은파랑선 이격도 5%이내 종목을 검색 합니다 두개 조건을 하나의 수식으로 해주시면 감사하겟습니다 좋은 하루 되십시요 ^^ 감사합니다
프로필 이미지
용각산
2018-10-19
231
글번호 122841
종목검색
답변완료

수식 부탁드립니다.

감사합니다. 부탁드립니다. 매수 매도 포지션이 있을때 특정 지정일, 지정시간에 청산하는 식 요청드립니다.
프로필 이미지
라떼처럼
2018-10-19
208
글번호 122840
시스템
답변완료

부탁드립니다

> var : MH(0),ML(0),H1(0),L1(0),H2(0),L2(0),cnt(0); var : LTL(0),LTL1(0),LTL2(0),LTL3(0),LTL4(0),LTL5(0),LTL6(0); var : HTL(0),HTL1(0),HTL2(0),HTL3(0),HTL4(0),HTL5(0),HTL6(0); if bdate > Bdate[1]+30 or index == 0 Then{ MH = H; ML = L; } if H > MH Then MH = H; if L < ML Then ML = L; #월간최고가발생 if H == MH then { H1 = H; L1 = L[25]; var1 = sdate[25]; var2 = stime[25]; #이전출력선지움 TL_Delete(LTL); TL_Delete(LTL1); TL_Delete(LTL2); TL_Delete(LTL3); TL_Delete(LTL4); TL_Delete(LTL5); TL_Delete(LTL6); #새로운추세선 출력 LTL = TL_New(var1,var2,L1,sdate,stime,L1); LTL1 = TL_New(var1,var2,L1-(H1-L1)*1,sdate,stime,L1-(H1-L1)*1); LTL2 = TL_New(var1,var2,L1-(H1-L1)*2,sdate,stime,L1-(H1-L1)*2); LTL3 = TL_New(var1,var2,L1-(H1-L1)*3,sdate,stime,L1-(H1-L1)*3); LTL4 = TL_New(var1,var2,L1-(H1-L1)*4,sdate,stime,L1-(H1-L1)*4); LTL5 = TL_New(var1,var2,L1-(H1-L1)*5,sdate,stime,L1-(H1-L1)*5); LTL6 = TL_New(var1,var2,L1-(H1-L1)*6,sdate,stime,L1-(H1-L1)*6); #색상 TL_SetColor(LTL,BLUE); TL_SetColor(LTL1,BLUE); TL_SetColor(LTL2,BLUE); TL_SetColor(LTL3,BLUE); TL_SetColor(LTL4,BLUE); TL_SetColor(LTL5,BLUE); TL_SetColor(LTL6,BLUE); #굵기 TL_SetSize(LTL,3); TL_SetSize(LTL1,0); TL_SetSize(LTL2,0); TL_SetSize(LTL3,0); TL_SetSize(LTL4,0); TL_SetSize(LTL5,0); TL_SetSize(LTL6,0); #우측연장 TL_SetExtRight(LTL,True); TL_SetExtRight(LTL1,True); TL_SetExtRight(LTL2,True); TL_SetExtRight(LTL3,True); TL_SetExtRight(LTL4,True); TL_SetExtRight(LTL5,True); TL_SetExtRight(LTL6,True); } #월간최저가 발생 if L == ML then { H2 = H[25]; L2 = L; var3 = sdate[25]; var4 = stime[25]; #이전출력선지움 TL_Delete(HTL); TL_Delete(HTL1); TL_Delete(HTL2); TL_Delete(HTL3); TL_Delete(HTL4); TL_Delete(HTL5); TL_Delete(HTL6); #새로운추세선출력 HTL = TL_New(var3,var4,H2,sdate,stime,H2); HTL1 = TL_New(var3,var4,H2+(H2-L2)*1,sdate,stime,H2+(H2-L2)*1); HTL2 = TL_New(var3,var4,H2+(H2-L2)*2,sdate,stime,H2+(H2-L2)*2); HTL3 = TL_New(var3,var4,H2+(H2-L2)*3,sdate,stime,H2+(H2-L2)*3); HTL4 = TL_New(var3,var4,H2+(H2-L2)*4,sdate,stime,H2+(H2-L2)*4); HTL5 = TL_New(var3,var4,H2+(H2-L2)*5,sdate,stime,H2+(H2-L2)*5); HTL6 = TL_New(var3,var4,H2+(H2-L2)*6,sdate,stime,H2+(H2-L2)*6); #색상 TL_SetColor(HTL,YELLOW); TL_SetColor(HTL1,YELLOW); TL_SetColor(HTL2,YELLOW); TL_SetColor(HTL3,YELLOW); TL_SetColor(HTL4,YELLOW); TL_SetColor(HTL5,YELLOW); TL_SetColor(hTL6,YELLOW); #굵기 TL_SetSize(HTL,3); TL_SetSize(HTL1,0); TL_SetSize(HTL2,0); TL_SetSize(HTL3,0); TL_SetSize(HTL4,0); TL_SetSize(HTL5,0); TL_SetSize(HTL6,0); #우측연장 TL_SetExtRight(HTL,True); TL_SetExtRight(HTL1,True); TL_SetExtRight(HTL2,True); TL_SetExtRight(HTL3,True); TL_SetExtRight(HTL4,True); TL_SetExtRight(HTL5,True); TL_SetExtRight(HTL6,True); } 선이 7개식 나오는대요 첫번째노랑선 첫번째파랑선 (노랑선,파랑선 제일 굵은선기준) 모두첫번째선이 기준입니다 나머지 선은 관계없습니다 조전1) 현재가 > 굵은노랑선 and 현재가 노랑선이격도 3% 이내 조건2) 현재가 > 굵은파랑선 ang 현재가 파랑선 이격도 3% 이내 두 조건을 하나의 수식으로 만들어 주세요 감사합니다^^
프로필 이미지
용각산
2018-10-19
224
글번호 122832
종목검색
답변완료

부탁 드립니다.

항상 도움주심에 깊이 감사 드립니다. 타주기(분용) 수식 부탁 드리고자 합니다. 미리 감사 드립니다. 수식1) var1=LOWEST(L,P1); 수식2) var2=HIGHEST(H,P1);
프로필 이미지
yes
2018-10-19
229
글번호 122827
지표
답변완료

안녕하세요?

안녕하세요 아래수식1은 예전에 작성 해주신 수식입니다. 익절을 지정하면 한파동에 여러번 진입을 하는데요 한파동에 한번만 진입되도록 수정 부탁드립니다. 수식2 번도 한파동에 한번만 진입되도록 수정 부탁드립니다. (죄송합니다. 한건만 질문을 드려야 하는데 직장인 이다 보니 주말에 검증을 하려다보니 두건을 동시에 질문을 드렸습니다. 바쁘시더라도 같이 수정 부탁드립니다. 수고하세요 그리고 감사합니다.) 수식1. Input: length(10); Var : j(0),jj(0),T(0); var : 최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),TL1(0); Array:HH[10,4](0),LL[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime If Index == 0 Then { HH[1,1] = H; LL[1,1] = L; } Condition1 = Highest(H,length) == H and 최종고가 <> H; Condition2 = Lowest (L,length) == L and 최종저가 <> L; 처리구분 = ""; If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생 { If 최종꼭지점 == "저점" Then { If LL[1,1] > L Then 처리구분 = "저점처리"; Else 처리구분 = "고점처리"; } Else If 최종꼭지점 == "고점" Then { If HH[1,1] < H Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; #==========================================# If 처리구분 == "고점처리" Then { T = 1; 최종고가 = H; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { HH[j,jj] = HH[j-1,jj]; } } HH[1,1] = H; HH[1,2] = Index; HH[1,3] = sDate; HH[1,4] = sTime; TL1 = TL_New(LL[1,3],LL[1,4],LL[1,1],HH[1,3],HH[1,4],HH[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,RED); } Else If HH[1,1] < H Then // 1번 고점보다 높은 고가 출현 { HH[1,1] = H; HH[1,2] = Index; HH[1,3] = sDate; HH[1,4] = sTime; TL_SetEnd(TL1,HH[1,3],HH[1,4],HH[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { T = -1; 최종저가 = L; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { LL[j,jj] = LL[j-1,jj]; } } LL[1,1] = L; LL[1,2] = Index; LL[1,3] = sDate; LL[1,4] = sTime; TL1 = TL_New(HH[1,3],HH[1,4],HH[1,1],LL[1,3],LL[1,4],LL[1,1]); TL_SetSize(TL1,1); TL_SetColor(TL1,BLUE); } Else If LL[1,1] > L then { LL[1,1] = L; LL[1,2] = Index; LL[1,3] = sDate; LL[1,4] = sTime; TL_SetEnd(TL1,LL[1,3],LL[1,4],LL[1,1]); } 최종꼭지점 = "저점"; } if T == 1 and LL[1,1] > LL[2,1] Then buy("b",AtStop,HH[2,1]+PriceScale*1); if T == -1 and HH[1,1] > HH[2,1] Then sell("s",AtStop,LL[2,1]-PriceScale*1); if MarketPosition == 1 Then ExitLong("bx",AtStop,LL[1,1][BarsSinceEntry]); if MarketPosition == -1 Then ExitShort("sx",AtStop,HH[1,1][BarsSinceEntry]); 수식2 (사용자함수: HiLoLineZigZag) #==========================================# # 사용자함수 : 고저라인 지그재그 파동 # 버 전 : 1.2 # 작 성 자 : 수식지왕 #==========================================# Input:Length(NumericSimple),useCLprice(NumericSimple), oHiZZ[MaxSize1,MaxSize2](NumericArrayRef), // 열번호 1:가격,2:Index,3:sDate,4:sTime oLoZZ[MaxSize3,MaxSize4](NumericArrayRef), oTL_NewBit(NumericRef); // 1:NewLine 2:SetEndLine Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""); #==========================================# HH = IFF(useCLprice==1,C,H); LL = IFF(useCLprice==1,C,L); If Index == 0 Then { oHiZZ[1,1] = HH; oLoZZ[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; If Condition1 and Condition2 Then { // 기간고점과 기간저점 동시 발생 If oHiZZ[1,1] < HH and oLoZZ[1,1] > LL Then { // 기존의 파동을 벗어난 경우 If HH - oHiZZ[1,1] > oLoZZ[1,1] - LL Then // 많이 벗어난 쪽으로 처리 처리구분 = "고점처리"; Else If HH - oHiZZ[1,1] < oLoZZ[1,1] - LL Then 처리구분 = "저점처리"; Else If 최종꼭지점 == "저점" Then // 벗어난 정도가 동일하면 지그재그 순서대로 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } Else If oLoZZ[1,1] > LL Then 처리구분 = "저점처리"; Else If oHiZZ[1,1] < HH Then 처리구분 = "고점처리"; Else If 최종꼭지점 == "저점" Then 처리구분 = "고점처리"; Else 처리구분 = "저점처리"; } Else If Condition1 Then 처리구분 = "고점처리"; Else If Condition2 Then 처리구분 = "저점처리"; oTL_NewBit = 0; #==========================================# If 처리구분 == "고점처리" Then { 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { oHiZZ[j,jj] = oHiZZ[j-1,jj]; } } oHiZZ[1,1] = HH; oHiZZ[1,2] = Index; oHiZZ[1,3] = sDate; oHiZZ[1,4] = sTime; oTL_NewBit = 1; } Else If oHiZZ[1,1] < HH Then { // 1번 고점보다 높은 고가 출현 oHiZZ[1,1] = HH; oHiZZ[1,2] = Index; oHiZZ[1,3] = sDate; oHiZZ[1,4] = sTime; oTL_NewBit = 2; } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { oLoZZ[j,jj] = oLoZZ[j-1,jj]; } } oLoZZ[1,1] = LL; oLoZZ[1,2] = Index; oLoZZ[1,3] = sDate; oLoZZ[1,4] = sTime; oTL_NewBit = 1; } Else If oLoZZ[1,1] > LL then { oLoZZ[1,1] = LL; oLoZZ[1,2] = Index; oLoZZ[1,3] = sDate; oLoZZ[1,4] = sTime; oTL_NewBit = 2; } 최종꼭지점 = "저점"; } If 최종꼭지점 == "고점" Then HiLoLineZigZag = 1; Else If 최종꼭지점 == "저점" Then HiLoLineZigZag = -1; Else HiLoLineZigZag = 0; (시스템 수식) Input:length(10); Var:종가사용여부(0), TL_NewBit(0); Array:고[10,4](0),저[10,4](0); Value1 = HiLoLineZigZag(length,종가사용여부,고,저,TL_NewBit); If Value1 == 1 Then // 고점 Buy("B",AtStop,고[2,1]); Else If Value1 == -1 Then // 저점 Sell("S",AtStop,저[2,1]);
프로필 이미지
상중하
2018-10-19
276
글번호 122824
시스템