커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

그림과같이 제가 작성한 수식은 맞지않는것같습니다 PMAX 아래이면 파랑이어야하는데 빨강이고 위에 막대표현된 검색식과는 다르게 나오고 있습니다 전문가님의 손길이 필요합니다 검색식입니다 추운데 감기 조심하시고 노고에 다시한번 감사 드립니다 input : Periods(10),Multiplier(3.0),length(10); var : src(0),ATRv(0),valpha(0),VARr(0),vud1(0),vDD1(0),vUD(0),vDD(0),vCMO(0); var : wwalpha(0),WWMA(0),zxLag(0),zxEMAData(0),ZLEMA(0); var : lrc(0),lrc1(0),lrs(0),TSF(0); var : MAvg(0),longStop(0),longStopPrev(0); var : shortStop(0),shortStopPrev(0); var : dir(0),PMax(0); src = (h+l)/2; atrv = atr(Periods); valpha=2/(length+1); vud1 = iff(src>src[1],src-src[1],0); vdd1 = iff(src<src[1],src[1]-src,0); vUD=AccumN(vud1,9); vDD=AccumN(vdd1,9); vCMO=(vUD-vDD)/(vUD+vDD); VARr = 0; VARr = (valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*VARr[1]; wwalpha = 1/ length; WWMA = 0; WWMA = wwalpha*src + (1-wwalpha)*WWMA[1]; zxLag = IFf(length/2==round(length/2,0) , length/2 , (length - 1) / 2); zxEMAData = (src + (src - src[zxLag])); ZLEMA = ema(zxEMAData, length); lrc = LRL(src, length); lrc1 = lrc[1]; lrs = (lrc-lrc1); TSF = Lrc+lrs; MAvg = ma(src, length); longStop = MAvg - Multiplier*atrv; longStopPrev = IFf(isnan(longStop[1]) == true,longStop,longStop[1]); longStop = iff(MAvg > longStopPrev , max(longStop, longStopPrev) , longStop); shortStop = MAvg + Multiplier*atrv; shortStopPrev = IFf(isnan(shortStop[1]) == true,shortStop,shortStop[1]); shortStop = iff(MAvg < shortStopPrev , min(shortStop, shortStopPrev) , shortStop); dir = 1; dir = IFf(isnan(dir[1]) == true,dir,dir[1]); dir = iff(dir == -1 and MAvg > shortStopPrev , 1 ,IFf(dir == 1 and MAvg < longStopPrev , -1 , dir)); PMax = IFf(dir == 1 , longStop , shortStop); if CrossUp(MAvg,PMax) Then Plot1(H,"검색",RED); if CrossDown(MAvg,PMax) Then Plot1(L,"검색",BLUE);
프로필 이미지
비듬싸순
2021-11-19
854
글번호 153710
지표

프로필 이미지
말라
2021-11-18
554
글번호 153708
시스템
답변완료

수식 문의

특정 조건을 만족한 경우에 어떤 값이 도출되고, 해당 조건을 다시 만족하기 전까지는 그 값이 유지되는 수식을 알고 싶습니다. 가령 5일 이평선이 20일 이평선을 돌파하는 것이 조건이라고 하고, 그때 도출되는 값은 돌파한 날의 종가라고 할때, 10월 20일에 5일 이평선이 20일 이평선을 한번 돌파하고, 이후에 11월 10일에 다시한번 돌파할 때, 10월 20일부터 11월 9일까지는 10월 20일의 종가가 값으로 유지되고, 11월 10일부터 다음 조건 발생전까지는 11월 10일의 종가로 값이 유지되는 수식을 알고 싶습니다 (10월 20일, 10월 21일, 10월 22일 등등 11월 9일까지 해당 수식의 값은 10월 20일 종가, 11월 10일부터는 다음 조건 만족전까지는 특정일자의 값이 11월 10일의 종가로)
프로필 이미지
sdw0920
2021-11-18
866
글번호 153707
지표
답변완료

수식문의

수식작성 부탁드립니다 매수:5일 이평과20이평이 골든크로스 2계약 매수 1.매수청산경우:스톡캐스틱 데드크로스시 1차매도1개,5/20이평 데드크로스2차청산1개 단,5/20이평데드시는 2계약전부청산 2.매수청산경우:50틱수익일때 1차매도1개,5/20이평 데드크로스2차청산1개 단,5/20이평데드시는 2계약전부청산
프로필 이미지
푸른물결
2021-11-18
680
글번호 153706
시스템
답변완료

문의드립니다.

LTL = TL_New(소추세전지지날짜,소추세전지지시간,소추세전지지가,소추세지지날짜,소추세지지시간,소추세지지가); 추세선을 그려볼려고 하는데 변수를 만들고 이렇게 작성했는데 변수수치가 완성되는 순간부터나오는게 아니라 한참뒤에부터 그려지더라고요 오랜만에 추세선 그려볼려다보니 모르겠네요.ㅠ.ㅠ 추세선그려지는 것이 변수가 완성되는 순간부터 그려지는 것 아닌가요? 변수가 바뀔 때마다 계속그려지는것 아닌가요? 답변부탁드려요 수고하세요^^
프로필 이미지
아싸가오리
2021-11-18
863
글번호 153705
강조
답변완료

문의 드립니다.

수고많으십니다. 아래수식에 아래 내용으로 수정 부탁드립니다. 현재캔들에서 이전 N번째 캔들들의 최고가 돌파와 최저가 돌파시 매수 매도가 아닌 N번째 캔들 고가 돌파시 종가에 매수, 저가 돌파시 종가에 매도 수식 부탁드립니다. bx,cx는 매수는 n번째 캔들 저가 돌파시, 매도는 n번째 캔들 고가 돌파시로 해주세요. 감사합니다. input : n1(5); input : StartTime(233000),EndTime(013000); input : 익절틱수(80),손절틱수(0),거래횟수(3); var : Tcond(false), T(0), entry(0); Array : H1[50](0),L1[50](0); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (NextBarSdate != sdate and NextBarStime >= EndTime) or (NextBarSdate == sdate and NextBarStime >= EndTime and stime < EndTime) Then Tcond = False; if (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { T = 0; Tcond = true; entry = 0; IF Endtime <= starttime Then { SetStopEndofday(0); } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Tcond == true Then { if H > Highest(H,n1)[1] and C > O and entry < 거래횟수 Then Buy("b"); if L < Lowest(L,N1)[1] and C < O and entry < 거래횟수 Then Sell("s"); if MarketPosition == 1 Then ExitLong("bx",AtStop,L[BarsSinceEntry]-PriceScale*1); if MarketPosition == -1 Then ExitShort("sx",AtStop,H[BarsSinceEntry]+PriceScale*1); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
jesten77
2021-11-18
844
글번호 153704
시스템
답변완료

지난 N봉동안 교차횟수가 N회이상인 종목

감사합니다. 예를 들어 지난 60봉동안 이평(5), 이평(20)의 교차횟수가 2회 이상인 종목을 검색하는 식을 구합니다.
프로필 이미지
jdavid
2021-11-18
688
글번호 153700
종목검색
답변완료

컴파일 에러 : memory exhausted

수고하십니다. 안녕하십니까!!! 1번. C:₩예스트레이더₩data₩InterestGroup 내에 있는 관심종목XXX.gup 의 file format과 encoding 방식, 사용 에디터 등을 알고 싶습니다. 2번. 컴파일 에러 : memory exhausted 변수를 아래와 같이 0 ~ 940 까지 분기를 시켰을 때 컴파일하면 가상 메모리 부족이라는 뜻 "memory exhausted" 메시지가 뜹니다. if buyfilter1 == 0 Then Condition1 = True; #-------------------------------------------------------------------------------------------- Else if buyfilter1 == 1 Then Condition1 = con31000 == true and con49020 == true; Else if buyfilter1 == 2 Then Condition1 = con31000 == true and con50000 == true; Else if buyfilter1 == 3 Then Condition1 = con31000 == true and con56000 == true; ~~~~~~~~~~~~~~~~~~중략 Else if buyfilter1 == 399 Then Condition1 = con31006 == true and con56000 == true; Else if buyfilter1 == 400 Then Condition1 = con31040 == true and con56030 == true; ~~~~~~~~~~~~~~~~~~중략 Else if buyfilter1 == 798 Then Condition1 = con31900 == true and con56800 == true; ~~~~~~~~~~~~~~~~~~중략 Else if buyfilter1 == 940 Then Condition1 = con31090 == true and con56900 == true; #-------------------------------------------------------------------------------------------- Else Condition1 = False; 여러 번 테스트 한 결과 변수 1개의 분기 처리 갯수가 400개를 넘지 못하는 것 같습니다. 미봉책으로 399개 단위로 컴파일하고 나머지는 주석처리해서 테스트하고 있는데, 근본적으로 해결할 수 있는 방안을 부탁드리겠습니다.
프로필 이미지
목포댁
2021-11-18
647
글번호 153699
시스템
답변완료

문의드립니다.

안녕하새요. 매수 무포지션에서 음봉 뒤에 양봉으로 2연속 양봉이 연속 발생하면 매수준비1 이 완성됩니다, 음봉 뒤에 최초 양봉의 시가 = 대양봉의 시가 라고 정의 합니다. 매수준비1 이 성립된 후에 음봉이 발생하면 음봉 바로 직전의 양봉의 종가 = 대양봉의 종가 대양봉 몸통 폭 = 대양봉의 종가 - 대양봉의 시가 라고 정의 합니다 헤제 이 음봉의 종가가 가장 최근에 발생한 양봉중에서 현재봉에서 첫 번째 이전에 발생 된 양봉을 즉 가장 최근의 첫번째의 양봉의 시가를 아래로 깨면 매수준비1 은 성립을 해제 합니다. 이 때의 가장 최근의 첫번째 양봉의 종가를 매수준비가 a 라고 정의 합니다, 매순준비 1 이 계속 유효한 상태에서 음봉이 1회 발생하고 이후에 새로 생기는 양봉의 종가가 매수준비가 a 위에 있으면 매수 합니다. 손절 청산 매수후 발생한 음봉 종가가 매수봉의 시가를 깨면 손절합니다, 청산 매수후에 위에서 구한 대양봉 몸통폭 값만킁 이익이 생기면 이익 청산합니다. 매도 반대논리로 부탁드립니다.
프로필 이미지
종호
2021-11-18
626
글번호 153691
시스템