커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

예스트레이더 수식으로 변환 문의드립니다.

CCI = input(20) ATR = input(5) Multiplier=input(1,title='ATR Multiplier') original=input(true,title='original coloring') thisCCI = cci(close, CCI) lastCCI = nz(thisCCI[1]) bufferDn= high + Multiplier * sma(tr,ATR) bufferUp= low - Multiplier * sma(tr,ATR) if (thisCCI >= 0 and lastCCI < 0) bufferUp := bufferDn[1] if (thisCCI <= 0 and lastCCI > 0) bufferDn := bufferUp[1] if (thisCCI >= 0) if (bufferUp < bufferUp[1]) bufferUp := bufferUp[1] else if (thisCCI <= 0) if (bufferDn > bufferDn[1]) bufferDn := bufferDn[1] x=thisCCI >= 0 ?bufferUp:thisCCI <= 0 ?bufferDn:x[1] swap=x>x[1]?1:x<x[1]?-1:swap[1] swap2=swap==1?lime:red swap3=thisCCI >=0 ?lime:red swap4=original?swap3:swap2 plot(x,color=swap4,transp=0,linewidth=3) 감사합니다.
프로필 이미지
로즈버드
2020-01-28
304
글번호 135436
지표
답변완료

지표 수정 부탁드립니다.

틱봉에서 N분봉으로 변환 후 N분간 고/저점을 나타내는 수식을 이전에 부탁드려 받은 적이 있습니다. 현재 봉이 고가나 저가를 갱신하면 해당 지표의 고/저점도 같이 갱신되므로 사용하지 못하고 있습니다. 1봉 전의 N분간 고/저점을 나타내고 싶은데 수식을 봐도 어디에 [1]을 넣어야 할지 몰라 이렇게 문의 드립니다. 수정 부탁드립니다. 감사합니다. 아래는 이전에 받았던 수식 입니다. input : n(3),CC(10),CF(3),Per1(25),Per2(50),Per3(75); input : 굵기1(1),굵기2(1),굵기3(1),굵기4(1),굵기5(1),굵기6(1); input : 색상1(RED),색상2(MAGENTA),색상3(GREEN),색상4(CYAN),색상5(BLUE),색상6(BLACK); var : TF(0),S1(0),D1(0),TM(0),cnt(0),T1(0),HH(0),LL(0),ii(0),TT(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0); var : O1(0),H1(0),L1(0),C1(0),sum(0),mav(0),VD(0),VT(0),VM(0),VP(0); Array : V1[100](0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; TT = stime; ii = 0; } Else ii = ii+1; if D1 > 0 then { #영업일변경 기준으로 경과된 분 if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; //n분 미만 if TM < n then { //당일최고와 최저가를 기준으로 선 출력 hh = DayHigh; ll = daylow; TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL1 = TL_New(D1,TT,HH,Sdate,stime,HH); TL2 = TL_New(D1,TT,HH-(HH-LL)*0.25,Sdate,stime,HH-(HH-LL)*(Per1/100)); TL3 = TL_New(D1,TT,HH-(HH-LL)*0.50,Sdate,stime,HH-(HH-LL)*(Per2/100)); TL4 = TL_New(D1,TT,HH-(HH-LL)*0.75,Sdate,stime,HH-(HH-LL)*(Per3/100)); TL5 = TL_New(D1,TT,LL,Sdate,stime,LL); } else //분이상 경과 { //최근 n분 이내에서 최고가와 최저가 계산해서 선 출력 HH = H; LL = L; for cnt = 0 to ii { if TM[cnt] > TM-N then { if H[cnt] > HH Then HH = H[cnt]; if L[cnt] < LL Then LL = L[cnt]; TT = stime[cnt]; } if TM[cnt] < TM-N Then cnt = ii+1; } TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL1 = TL_New(D1,TT,HH,Sdate,stime,HH); TL2 = TL_New(D1,TT,HH-(HH-LL)*0.25,Sdate,stime,HH-(HH-LL)*(Per1/100)); TL3 = TL_New(D1,TT,HH-(HH-LL)*0.50,Sdate,stime,HH-(HH-LL)*(Per2/100)); TL4 = TL_New(D1,TT,HH-(HH-LL)*0.75,Sdate,stime,HH-(HH-LL)*(Per3/100)); TL5 = TL_New(D1,TT,LL,Sdate,stime,LL); } TL_SetColor(TL1,RED); TL_SetColor(TL2,MAGENTA); TL_SetColor(TL3,GREEN); TL_SetColor(TL4,CYAN); TL_SetColor(TL5,BLUE); TL_SetSize(TL1, 굵기1); TL_SetSize(TL2, 굵기2); TL_SetSize(TL3, 굵기3); TL_SetSize(TL4, 굵기4); TL_SetSize(TL5, 굵기5); #1분봉 기준(시,고,저,종,거래량 계산) if bdate != bdate[1] or (Bdate == bdate[1] and TM > TM[1]) Then { O1 = O; H1 = H; L1 = L; V1[0] = 0 ; for cnt = 1 to 99 { V1[cnt] = v1[cnt-1][1]; } } if H > H1 Then H1 = H; if L < L1 Then L1 = L; C1 = C; V1[0] = V1[0]+V; TL_Delete(TL6); if V1[cc] > 0 then { sum = 0; for cnt = 1 to CC { sum = sum + V1[cnt]; } mav = sum/CC; //최근 1분거래량이 이전 cc봉 평균대비 CF배 이상이면 if V1[0] >= mav*CF Then { //날짜,시간,TM값, 평균값 저장 VD = sdate; VT = stime; VM = TM; VP = (O1+H1+L1+C1)/4; } //오늘 거래량조건이 발생한적 있고 현재부터 20분 이내이면 출력 if VD == sdate and VM > TM-n Then { TL6 = TL_new(D1,TT,VP,Sdate,stime,VP); TL_SetColor(TL6,BLACK); TL_SetSize(TL6,굵기6); } } }
프로필 이미지
maker
2020-01-28
271
글번호 135434
지표
답변완료

수식 부탁합니다

현재 봉기준 7봉이내에 아래와 같이 거래량이 폭등한 경우 7봉이내 거래량 폭등한 횟수가 3회 이상 발생한 경우 검색식 부탁합니다. 거래량 폭등 : 60이평 거래량 보다 해당봉의 거래량이 7배 이상 폭등
프로필 이미지
미래테크
2020-01-28
236
글번호 135433
종목검색
답변완료

문의 드립니다.

이평선 5 20 60 120 정배열에서 MACD 12 26 9 기준선 0선을 위로 돌파 시 매수 진입 손절과 익절은 MACD 기준선 0선을 아래로 돌파시 매도 청산 완료. 이평선 5 20 60 120 역배열에서 MACD 12 26 9 기준선 0선을 아래로 돌파 시 매도 진입 손절과 익절은 MACD 기준선 0선을 위로 돌파시 매수 청산 완료. 부탁드립니다.
프로필 이미지
선물대장
2020-01-28
223
글번호 135432
시스템

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

프로필 이미지
billiard
2020-01-28
31
글번호 135423
종목검색
답변완료

질문드립니다

지표가 문제없이 적용은 잘 되는데 plot1 값이 8(틱)이 됐을 때 음성신호가 발생되도록 할 예정인데요 (이전 수식 생략. 혹시나 하여 질문 아래 첨부) if (plot1 >= 8 and plot1[1] < 8) or (plot1 <= 8 and plot1[1] > 8) Then PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩001.wav"); 이렇게 하면 되는거 맞나요? 새해 복 많이 받으십시오 ---- 수식까지 포함한 모습은 아래와 같습니다. Input : Period(5); var : hh(0),ll(0),cnt(0),rr(0); Array : VV[51](0); vv[1] = ma(C,Period*1); vv[2] = ma(C,Period*2); vv[3] = ma(C,Period*3); vv[4] = ma(C,Period*4); vv[5] = ma(C,Period*5); vv[6] = ma(C,Period*6); vv[7] = ma(C,Period*7); vv[8] = ma(C,Period*8); vv[9] = ma(C,Period*9); vv[10] = ma(C,Period*10); vv[11] = ma(C,Period*11); vv[12] = ma(C,Period*12); vv[13] = ma(C,Period*13); vv[14] = ma(C,Period*14); vv[15] = ma(C,Period*15); vv[16] = ma(C,Period*16); vv[17] = ma(C,Period*17); vv[18] = ma(C,Period*18); vv[19] = ma(C,Period*19); vv[20] = ma(C,Period*20); vv[21] = ma(C,Period*21); vv[22] = ma(C,Period*22); vv[23] = ma(C,Period*23); vv[24] = ma(C,Period*24); vv[25] = ma(C,Period*25); vv[26] = ma(C,Period*26); vv[27] = ma(C,Period*27); vv[28] = ma(C,Period*28); vv[29] = ma(C,Period*29); vv[30] = ma(C,Period*30); vv[31] = ma(C,Period*31); vv[32] = ma(C,Period*32); vv[33] = ma(C,Period*33); vv[34] = ma(C,Period*34); vv[35] = ma(C,Period*35); vv[36] = ma(C,Period*36); vv[37] = ma(C,Period*37); vv[38] = ma(C,Period*38); vv[39] = ma(C,Period*39); vv[40] = ma(C,Period*40); vv[41] = ma(C,Period*41); vv[42] = ma(C,Period*42); vv[43] = ma(C,Period*43); vv[44] = ma(C,Period*44); vv[45] = ma(C,Period*45); vv[46] = ma(C,Period*46); vv[47] = ma(C,Period*47); vv[48] = ma(C,Period*48); vv[49] = ma(C,Period*49); vv[50] = ma(C,Period*50); if vv[1] > 0 then { hh = vv[1]; ll = vv[1]; for cnt = 1 to 50 { if vv[cnt] > 0 and vv[cnt] > hh Then hh = vv[cnt]; if vv[cnt] > 0 and vv[cnt] < ll Then ll = vv[cnt]; } rr = hh-ll; plot1(rr/PriceScale); }
프로필 이미지
견유학자
2020-01-28
259
글번호 135417
지표
답변완료

강조식과 종목검색식 부탁합니다

지표명 : dmi 1. dmi(기간 14)에서 -di<=10 이하 이면서(and) 2. dmi(기간 40)에서 dmi > 50 이상인 종목 검색식과 강조식 부탁합니다
프로필 이미지
파워
2020-01-27
263
글번호 135416
강조
답변완료

코스피 선물 매수 및 매도 관련 시스템식 작성

시초가보다 1.5포인트 이상 높아지면 매수 진입하고, 시초가보다 1.5포트 이하로 낮아지면 매도 진입하는데, 이때 매수와 매도 포지션은 모두 가지고 있다가 당일 청산하는 시스템을 작성하려고 합니다. 질문 1. 메뉴얼을 읽어보니 매수와 매도 포지션을 동시에 가지는 것은 안되는 거 같던데.. 맞나요? 질문 2. 3분봉 차트로 아래 식을 작성했습니다. buy("매수",atstop,Dayopen + 1.5); //시초가 대비 1.5포인트 이상 가격 발생시 매수 sell("매도",atstop,Dayopen - 1.5); //시초가 대비 1.5포인트 이하 가격 발생시 매도 이 시스템을 돌려보면 실제로 매수되는 가격이 1.5포인트 보다 덜 상승할 때 매수 되고, 매수한 가격이 해당 봉의 시초가로 매수된 것으로 나오는데 어디가 잘못된 건지 모르겠어요.
프로필 이미지
feel29na
2020-01-27
324
글번호 135415
시스템
답변완료

일봉에서

감사합니다.. 1. 가.특정일 기준 일봉에서 특정일을 변수로 입력하면 그 날자이후 현재일까지 이평5와 이평20의 상승교차(골든크로스)가 있었고 상승교차일 이후 현재일까지 이평5와 이평20이 계속 우상향 상승중인 종목을 찾아라 나.N봉전 기준 일봉에서 N일을 변수로 입력하면 그 날자이후 현재일까지 이평5와 이평20의 상승교차(골든크로스)가 있었고 상승교차일 이후 현재일까지 이평5와 이평20이 계속 우상향 상승중인 종목을 찾아라 2. 가. 일봉에서 특정일을 변수로 입력하면 그 날자 이후 현재일까지 이평5와 이평20의 상승교차(골든크로스)가 있었고 상승교차일 당일의 저가와 상승교차일 이후부터 일봉종가가 이평5를 하향돌파(데드크로스)한 N일 이내에서 발생한 최고가 내에 현재일의 종가가 있으며 상승교차일 이후 현재일까지 이평5와 이평20이 계속 우상향 상승중인 종목을 찾아라 나. N봉전 기준 일봉에서 N일을 변수로 입력하면 그 날자이후 현재일까지 이평5와 이평20의 상승교차(골든크로스)가 있었고 상승교차일 당일의 저가와 상승교차일 이후부터 일봉종가가 이평5를 하향돌파(데드크로스)한 N일 이내에서 발생한 최고가 내에 현재일의 종가가 있으며 상승교차일 이후 현재일까지 이평5와 이평20이 계속 우상향 상승중인 종목을 찾아라
프로필 이미지
jdavid
2020-01-27
309
글번호 135414
종목검색