커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 문의

지그재그 오실레이터를 구하고 싶습니다. 위 그림은 대신 사이보스에 있는 zigzag osc 입니다. 그림을 보면, 지그재그 파동의 꼭지점과 현재가격의 이격을 막대그래프로 표현한 지표입니다. 물론, 지그재그 파동은 여러가지 조건으로 그릴 수 있다고 알고 있습니다. 일전에 아래의 지그재그 파동선 수식을 도움 받은바 있습니다. 본 수식을 바탕으로 부탁드립니다. n봉의 고/저가를 넘어가면 파동선이 그어지는 방식입니다. --------- 아래 -------------- input:length(6); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(0==1,C,H); LL = IFF(0==1,C,L); If Index == 0 Then { 고[1,1] = HH; 저[1,1] = LL; } Condition1 = Highest(HH,length) == HH and 최종고가 <> HH; Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL; 처리구분 = ""; 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 { T = 1; 최종고가 = HH; // 신규고점을 체크하기 위해 저장 If 최종꼭지점 == "저점" Then { For j = 10 DownTo 2 { For jj = 1 To 4 { 고[j,jj] = 고[j-1,jj]; } } 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]); If 1 == 1 Then { Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text1, 0, 1); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,1); TL_SetColor(TL1,RED); } Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현 { 고[1,1] = HH; 고[1,2] = Index; 고[1,3] = sDate; 고[1,4] = sTime; TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]); // 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임 If 1 == 1 Then { Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]); Text_SetString(Text1,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { T = -1; 최종저가 = LL; If 최종꼭지점 == "고점" then { For j = 10 DownTo 2 { For jj = 1 To 4 { 저[j,jj] = 저[j-1,jj]; } } 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]); If 1 == 1 Then { Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text1, 0, 0); Text_SetColor(Text1,BLACK); } TL_SetSize(TL1,1); TL_SetColor(TL1,GREEN); } Else If 저[1,1] > LL then { 저[1,1] = LL; 저[1,2] = Index; 저[1,3] = sDate; 저[1,4] = sTime; TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]); If 1 == 1 Then { Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]); Text_SetString(Text1,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
흑수돌
2019-02-12
211
글번호 126064
지표
답변완료

재 문의 드립니다.

제가 올린 수식 중에 누락된 것이 있어 만들어 주신 수식이 작동이 안 되어서 다시 올립니다. 번거롭게 해서 너무 죄송합니다... ============================ < 아래 수식 적용 시간이 국내 증권사 개장 시간인 09:00로 되어 있습니다. 이 수식을 증권사 개장 시간이 아닌 오전 00:00부터 오후 24:00까지 적용할 수 있는 수식으로 변경부탁드립니다.> ============================= var: HH(0),LL(0),RR(0); <== 누락된 부분입니다. HH=dayhigh; LL=DayLow; RR=HH-LL; plot1(HH,"당일최고가"); plot2(HH-RR*0000, "0000%"); plot3(HH-RR*0000, "0000%"); plot4(HH-RR*0000, "0000%"); 늘 감사드립니다.
프로필 이미지
태양같이
2019-02-11
172
글번호 126062
지표
답변완료

문의 드립니다

좋은 답변 너무 감사합니다. 너무 좋은데 기대에 못미쳐서 보완을 부탁드립니다. 상승, 하락 동일추세 반복을 조금 더 잘 활용하고 싶습니다. *******목표: 추세가 반복될 때 좀 더 자주 매매하도록 하고자 합니다. *******연속된 하락추세에서 매수하는 방법 -추세 4,8,12 .....파에서 매수하고자 할 경우인데요 먼저 ,하락 3파가 끝나고 하락 4파가 막 만들어져 나타나는 시점에 추세와 역방향으로 매수 진입합니다. -손절은 지정틱(-10,-20,-30,-40 ......) 조건이 충족하면 무조건 손절합니다. -연속된 파동 사이에 낀 1개의 반대 추세선은 연속된 추세선과 같은 추세선 1개로 본다. -연속된 하락파동에서 손절되고 잔량이 없으면 다음 하락7, 11 ......파가 끝나고 하락8 ,12 ......파가 막 만들어져 나타나는 시점에 매수 재진입합니다. -손절되지 않고 잔량 보유 중에는 하락7, 11 ......파가 끝나고 하락8, 12 ......파가 막 만들어져 나타나는 시점에도 추가매수하지 않고 현상 유지합니다. -청산과 역방향 진입은 추세가 반대 방향으로 바뀌어 상승 3파가 끝나고 상승 4파가 막 만들어져 나타나는 시점에 잔량의 청산과 동시에 추세와 역방향으로 매도 진입합니다. -이후 손절, 재진입, 추가진입은 이전 방법과 동일하게 합니다. -손절이나 청산시에 손익 결과 틱 수가 나나타게 해주시면 좋겠습니다.
프로필 이미지
번성
2019-02-12
180
글번호 126056
시스템
답변완료

수식 확인 부탁 드립니다.

사용하던 수식인데 예스터레이더에 맞게 수정 바랍니다 매수 진입 수식 입니다 Params : Period1(5), Period2(10), Period3(3), Period4(14), Base1(25); Vars : vTEMA(0), diffCOND(False), TickSize(0); Ticksize = onetick * pricescale; v99 = (H + L + C ) / 3; V1 = ma(v99, Period1); V2 = ma(v99, Period2); Cond1 = CrossUp(V1 , V2); vTEMA = EMA(EMA(Ema(C, Period3), Period3), Period3) ; If vTEMA > vTEMA[1] Then COND2 = True Else COND2 = False; V3 = ADXApplied(Period4); If Base1 > V3 Then diffCOND = False Else diffCOND = True; If COND1 And COND2 And diffCOND Then Buy("a"); SetStopLoss(10 * TickSize * CurrentContracts); SetBreakEven(6 * TIckSize * cUrrentContracts); SetStopTrailing(7 * TickSize * CurrentContracts, 20 * TickSize * Currentcontracts); 수식 이상 여부 확인 부탁 드립니다 (예스터레이더에 맞게 수정 부탁 드립니다.) 질문 1. Ticksize, V1, Cond1, diffCOND, Then Buy("a"); 등 사용 가능 한지 확인 부탁 드립니다. 질문 2. SetStopLoss 진입 가격에서 10틱 하락시 전량 스탑로스 설정한 것입니다. 질문 3. SetBreakEven 진입 가격에서 6틱 상승후 하락하여 진입 가격 도달시 자동청산 되도록 설정한 것입니다. 질문 4. SetStopTrailing 진입 가격에서 20틱이상 상승후 7틱 하락할 경우 자동 청산 되도록 설정한 것입니다.
프로필 이미지
뎅이요
2019-02-11
158
글번호 126051
시스템
답변완료

문의드림니다

이전 질문번호61219 설명전달이 잘못된것같습니다 다시 예를 들겠습니다 1일전시가가 250.00 이고 당일 시가가 250.50이면 중심가는 250.25 입니다 이값이중심값이니 당일에표시하는것입니다 그다음날 시가가 생성되면 예로 252.25이다면 이전중심가250.25 와 252.25 중심값인 251.25가다음날표시되어야합니다 또그다음날의 시가와 이전의중심값인 251.25 의 중심값을 표시하는것입니다 부탁드립니다
프로필 이미지
파파리리
2019-02-11
154
글번호 126047
지표

푸른 님에 의해서 삭제되었습니다.

프로필 이미지
푸른
2019-02-11
29
글번호 126043
시스템
답변완료

함수식

안녕하세요 미리감사드려요 매수와 매도때의 손절을 달리하고싶습니다 if MarketPosition==1 Then 진입가격대비 100pt(혹은 틱수) 하락시 ExitLong(}; if MarketPosition==-1 Then 진입가격대비 50pt(혹은 틱수) 상승시 ExitShort(}; 수고하세요
프로필 이미지
달마7
2019-02-11
131
글번호 126032
사용자 함수

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

프로필 이미지
김원식
2019-02-11
2
글번호 126023
지표
답변완료

부탁 드립니다.

변환부탁 드립니다. 감사 드립니다. 1) m=ma(c,p); valuewhen(1,m(1)>m,m); valuewhen(1,m(1)<=m,m); barssince(m(1)>m,a1=m); barssince(m(1)<=m,a1=m); atan((m1-a1)/b1/10000)*180/3.14; 2) n=sum(1); p=sar(af,maxaf); d=c>p; 조건=(d(1)&&!d) or (!d(1)/&&d); b=p-valuewhen(1,조건,p); a=n-valuewhen(1,조건,n); if(a!=0,atan(b/a)*180/3.14)*배율;
프로필 이미지
뮬리
2019-02-11
137
글번호 126022
지표