커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

스크립트 처리과정 질문

실시간으로 코드 돌릴때는 tick이 들어올때마다 스크립트를 반복한다고 알고있어서, 15분마다 딱 한번만 실행시키고 싶은 내용이 있어서 다음과 같은 코드를 짰습니다. Time이 15분이 되었을때 TFinitializer의 값이 1이고 if문이 처음 돌아가면서 TFinitializer를 0으로 만들어 줘서 다음 tick들이 들어올때 if문을 더이상 실행시키지 않으려고 하였습니다. 그런데 디버그 창을 보니 생각대로 안되고 tick이 들어오는대로 if문 안의 코드들이 계속 실행되는것처럼 보입니다. 그런데 더 신기한점은 tmpsum이나 tmp 배열의 값은 또 바뀌지 않는다는 점입니다. 실시간 tick이 들어올때 아래 스크립트가 어떤 과정으로 처리되는지 궁금합니다. 아래 코드가 tick이 들어올때마다 if문이 실행되는 것인지도 궁금하고 만약 그렇다면 이것을 한번만 실행되게 하려면 어떻게 해야하는지도 궁금합니다. 첨부한 이미지의 highlight 된 부분 이전은 이미 load 된 데이터에 대한 결과이고 이후는 실시간 데이터에 적용된 결과입니다. ----------------------------------------------------------------------------------- var : tmpsum(0), cnt(0), baseTF(15), TF(0), TFinitializer(1); Array : tmp[100](0); TF = TimeToMinutes(stime)%baseTF; if (Bdate != Bdate[1]) or (Bdate == Bdate[1] and baseTF-TF == 2) then { TFinitializer = 1; } if (Bdate != Bdate[1]) or (Bdate == Bdate[1] and baseTF-TF == 1 and TFinitializer == 1) then { Tfinitializer = 0; tmpsum = tmpsum + 1; for cnt = 1 to 99 { tmp[99-cnt+1] = tmp[99-cnt]; } tmp[0] = tmpsum; if sdate == 20190827 and stime> 200000 and stime < 230000 then { MessageLog("time: %.0f, tmpsum: %.0f", time, tmpsum); MessageLog("tmp array: %.0f, %.0f, %.0f, %.0f", tmp[0], tmp[1], tmp[2], tmp[3]); } }
프로필 이미지
홀리산타
2019-08-27
301
글번호 131524
지표
답변완료

문의

if data2(SwingHighBar(1,H,Left,Right,Left+right) == 0) Then plot2(H,"검색",MAGENTA); if data3(SwingHighBar(1,H,Left,Right,Left+right) == 0) Then plot2(H,"검색",GREEN); 위는 예스스탁에서 주신답입니다,그런데 이것이 선언되지않은 Right,Left가 사용되었다고 검정오류가 나옵니다, 다시 좀 부탁드릴게요
프로필 이미지
레전드
2019-08-27
184
글번호 131523
검색
답변완료

강조 수식 문의 합니다.

첨부된 이미지처럼 강조할 수 있는 방법이 있나요? 그리고 PlotPaintBar 를 여러 조건으로 수식을 만들어서 RED , BLUE, GREEN과 같이 강조하고 싶은데 방법이 있을까요?
프로필 이미지
달무드
2019-08-27
255
글번호 131513
강조
답변완료

검색식 부탁드립니다.

오분봉 차트에서 일목균형표의기준선(기간은표준)이 4개의 볼린저밴드상단(기간은20,21,22,23 D는 모두2)을 동시에 크로스업하는 종목을 검색하고 싶습니다. 수식 부탁드립니다. 그리고 초보인데 장중에 실시간으로 검색 가능 한가요?
프로필 이미지
나이샷
2019-08-27
195
글번호 131501
종목검색
답변완료

첫봉....

장시작후 첫봉의 시가 고가 저가 종가와 첫봉의 고가와 저가의 중심값을 종료시까지 나타내고 첫봉의 고가와 저가의 진폭만큼 위아래로 12개씩 나타내고 싶습니다
프로필 이미지
nicejon
2019-08-27
196
글번호 131500
지표
답변완료

두 수식

아래 두식을동시에 매매하게부탁합니다. 수식1번 input : HP(5),LP(5); var : cnt(0),HH(0),LL(0), Value(0),vol(0); if crossup(c,HH+0.0) then buy("b"); if CrossDown(c,LL-0.0) Then sell("s); 수식2번 input : HP(2),LP(2); Var : Pivot(0),R1(0),S1(0), Value(0),vol(0); var : HH(0),LL(0); HH = max(dayhigh(1),dayhigh(5)); LL = min(daylow(1),daylow(5)); Pivot = (HH+LL+DayClose(1))/3; R1 = 2*Pivot-LL; S1 = 2*Pivot-HH; if MarketPosition <= 0 and crossup(c,R1-0) Then buy("BUY.HH-0); if MarketPosition >= 0 and CrossDown(c,S1-0) Then sell("SELL.LL-0); 매수1 5일고가와 5일 피봇고가를 동시돌파시 매수 매도는반대 정리2 5일고가 또는 5일 피봇고가 중 하나를 돌파시 이익실현 (즉 이익시만 포지션정리하고 손실시다음신호까지대기) 위수식을 부탁합니다. 감사합니다.
프로필 이미지
큰바위얼굴
2019-08-27
186
글번호 131498
시스템
답변완료

함수요청

안녕하세요? 지표 수식 요청드립니다. 볼린져밴드 %b를 요청드립니다. %b 산출공식 (종가-하단 BB) / (상단 BB- 하단 BB)
프로필 이미지
흰둥이아빠
2019-08-27
173
글번호 131497
지표
답변완료

수식요청

안녕하세요 아래의 수식가운데...(plot5(DH[0]-var1*0.382,"38.2)라인에 걸친 캔들말고 돌파한 캔들시가에 매수신호 ....나오게 ( plot3(DH[0]-var1*0.618,"61.8)라인에도 걸친 캔들말고 돌파한 캔들시가에 매도 신호나오게 부탁드립니다. 그리고 진입후 20틱 단위로 카운팅이 표시되도록 같이 부탁드립니다. var : cnt(0); Array : DO[10](0),DH[10](0),DL[10](0),DC[10](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and stime >= 100000 and stime[1] < 100000) Then{ DO[0] = O; DH[0] = H; DL[0] = L; for cnt = 1 to 9{ DO[cnt] = DO[cnt-1][1]; DH[cnt] = DH[cnt-1][1]; DL[cnt] = DL[cnt-1][1]; DC[cnt] = DC[cnt-1][1]; } } if H > DH[0] Then DH[0] = H; if L < DL[0] Then DL[0] = L; DC[0] = C; var1 = DH[0] - DL[0]; plot1(DH[0],"고점"); plot2(DH[0]-var1*0.764,"76.4"); plot3(DH[0]-var1*0.618,"61.8"); plot4(DH[0]-var1*0.500,"50.0"); plot5(DH[0]-var1*0.382,"38.2"); plot6(DH[0]-var1*0.236,"23.6"); plot7(DL[0],"저점"); plot8(DO[0],"시가");
프로필 이미지
알리섬
2019-08-27
185
글번호 131495
시스템
답변완료

지표 수정 부탁드립니다.

아래는 답변 받았던 내용입니다. 약간의 수정 부탁드립니다. 1. 선의 색상과 굵기를 선택할 수 없어 수정 가능하도록 부탁드립니다. 2. 25, 75에 해당되는 부분(저점을 0, 고점을 100으로 했을 경우)을 변경할 수 있도록 외부입력변수로 부탁드리겠습니다. 감사합니다. ============================================================================= input : n(20),CC(10),CF(3); 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)*0.25); TL3 = TL_New(D1,TT,HH-(HH-LL)*0.50,Sdate,stime,HH-(HH-LL)*0.50); TL4 = TL_New(D1,TT,HH-(HH-LL)*0.75,Sdate,stime,HH-(HH-LL)*0.75); 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(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)*0.25); TL3 = TL_New(D1,TT,HH-(HH-LL)*0.50,Sdate,stime,HH-(HH-LL)*0.50); TL4 = TL_New(D1,TT,HH-(HH-LL)*0.75,Sdate,stime,HH-(HH-LL)*0.75); 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); #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(TL1,BLACK); } } }
프로필 이미지
maker
2019-08-27
202
글번호 131491
지표