커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

분봉의 중심선 긋기

항상 도움주심에 감사합니다^^ 시간봉(60분봉)의 분봉 중심값을 차트에 라인과 텍스트를 표시하고 싶습니다. 제가 지금 사용하는 지표는 아래와 같은데 라인이 이전봉 뒤로 선이 길게 표시되는데 직전봉의 중심값에서 부터 우측으로 표시되게하고 차트 여백에 텍스트로 수치를 표시 할 수 있으면 좋겠습니다. 1.라인과 수치 표시 2.150틱 이상만 표시되게(시가와 종가의 틱수가 150틱 미만일때는 이전 150틱에 표시) 3.시가와 종가의 중간에 표시(고가와 저가는 카운팅 제외), 텍스트 표시는 작게 input : N(150); if Bdate != Bdate[1] Then{ TL_Delete(var4); var1 = sdate[1]; var2 = stime[1]; } if abs(C-O) >= PriceScale*N Then{ var3 = (C+O)/2; TL_Delete(var4); var4 = TL_New(var1,var2,var3,sdate,stime,var3); TL_SetExtRight(var4,true); }
프로필 이미지
체리피커
2021-01-27
1415
글번호 145881
지표
답변완료

예스트레이더코인 수식작성문의

예스트레이더 코인 수식작성 문의 드립니다. 예스트레이더에서 정상 작동 되는데 코인에서는 오류 뜨더라고요 수식 수정좀 부탁드리겠습니다. 매수 조건 : 이동평균선 120 이동평균선 골드크로스 상태에서 + Aroon 10 매수 신호 발생시 매수 매도 조건 : 이동평균 120 이동평균선 데드크로스, 또는 Aroon 10 매도 신호발생 둘중 먼저 매도 신호가 발생하면 매도 수식추가 부탁드리겠습니다. 감사드립니다~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식작성문의 > 안녕하세요 예스스탁입니다. input : P(120),Period(10); var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ; var : mav(0); mav = ma(C,120); Lowval= Lowest(Low, Period+1); Highval = Highest(High, Period+1); For counter= 0 To Period { If Low[counter] == Lowval Then DownVel = counter; If High[counter] == highval Then UpVel = counter; } UpAroon = 100*(Period-UpVel)/Period; DnAroon = 100*(Period-DownVel)/Period; if c > mav Then { if crossup(UpAroon,DnAroon) Then buy("Aroon_LE"); if CrossDown(UpAroon,DnAroon) Then sell("Aroon_SE"); }
프로필 이미지
xspell
2021-01-27
1208
글번호 145880
사용자 함수
답변완료

성능보고서 문의

안녕하세요? 이제 예스랭귀지 공부를 시작하려고 각종 샘플을 따라하고있습니다. 그런데 시스템 샘플을 차트에 적용하고 성능보고서를 보면 매수진입/청산시 청산과 동시에 매도진입이 이루어 지고, 매도청산시 매수진입이 동시에 실행되고 계속 이렇게 거래가 진행되는데 샘플 시스템의 로직설명은 그렇지가 않습니다. 성능보고서 한개를 첨부합니다. 상세한 설명 부탁드리겠습니다. 감사합니다.
프로필 이미지
시골아빠
2021-01-27
917
글번호 145879
시스템
답변완료

주식선물 1분봉 데이터 다운로드

모든 개별 주식선물 종목의 최대 조회가 가능한 1분봉 데이터(open,high,low,close)를 다운 받으려하는데 print("C:UsersUserDesktodata.csv","시가,%.2f,고가,%.2f,저가,%.2f,종가,%.2f,거래량,%.0f", open,high,low,close,v); 여기서 저장 파일이름을 해당종목으로 되게끔 코딩이 가능한지 궁금합니다. 혹은 일일이 종목을 열어서 지표적용을 하지않고 모든종목의 데이터를 한번에 받을 수 있는 코딩이 되는지도 궁금합니다.
프로필 이미지
quantk
2021-01-27
1796
글번호 145877
사용자 함수

브라이안 님에 의해서 삭제되었습니다.

프로필 이미지
브라이안
2021-01-27
0
글번호 145876
종목검색
답변완료

수식부탁드립니다

안녕하세요 아래수식을 이용해서 첨부그림의 내용으로 수식을 수정부탁드립니다 # 지 표 명 : 고저라인 지그재그 파동선 # 버 전 : 1.2 # 작 성 자 : 수식지왕 # 블 로 그 : http://yahoosir.blog.me # 업데이트 : 2017-03-10 #==========================================# Input:length(2),종가사용여부(0),파동선두께(5),수치표시수(1); Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""), TL1(0),Text1(0),Text2(0); Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime #==========================================# HH = IFF(종가사용여부==1,C,H); LL = IFF(종가사용여부==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 { 최종고가 = 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 Then { Text2 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)); Text_SetStyle(Text2, 2, 1); Text_SetColor(Text2,RED); Text_SetSize(Text2, 20); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); } 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 Then { Text_SetLocation(Text2,고[1,3],고[1,4],고[1,1]); Text_SetString(Text2,NumToStr(고[1,1],2)); } } 최종꼭지점 = "고점"; } #==========================================# If 처리구분 == "저점처리" Then { 최종저가 = 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 Then { Text2 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)); Text_SetStyle(Text2, 2, 0); Text_SetColor(Text2,BLACK); Text_SetSize(Text2, 20); } TL_SetSize(TL1,파동선두께); TL_SetColor(TL1,BLACK); } 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 Then { Text_SetLocation(Text2,저[1,3],저[1,4],저[1,1]); Text_SetString(Text2,NumToStr(저[1,1],2)); } } 최종꼭지점 = "저점"; }
프로필 이미지
bestkim
2021-01-27
1301
글번호 145875
지표
답변완료

수식 문의

기존 수식이 있다는 전제하에 매매시간만 정하는 수식입니다. 신규진입은 오전 10시 50분 ~ 오후 3시 30분 사이 이후로는 진입없이 청산만 작동케 하는 것인데요 시뮬해보니 진입 조건 되면 아무때나 진입을 합니다. 수식에 문제가 무얼까요? input :............................... ; input : StartTime(105000),EndTime(153000); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; 진입조건 수식..................
프로필 이미지
저은아빠
2021-01-27
976
글번호 145874
시스템

러블리 님에 의해서 삭제되었습니다.

프로필 이미지
러블리
2021-01-27
120
글번호 145873
지표
답변완료

양 끝봉에만 추세선 생성이 안됩니다

var : tl1(0); tl1 = TL_New(sDate,sTime,H[0],sDate,sTime,H[0]+100); TL_SetSize(tl1,5); MessageLog("%s,%s,%s",NumToStr(sDate,0),NumToStr(sTime,0),NumToStr(h[0],0)); 위는 작성된 코드입니다. 코드 내용은 각 봉의 고점에서 고점+100까지 직선을 그려라 입니다. 그림2에 나오다시피 저는 코드 어디에도 N/A값이 나오도록 설계하지 않았음에도 불구하고, 그림1에서 볼 수 있듯이 양 끝봉에서만 추세선 생성이 안되는 상태입니다. 어디서 잘못된 것인지 잘 모르겠습니다. 분명히 미래의 값을 쓰지 않은 것 같은데, 왜 tl1이 14일과 27일에서는 NA값으로 출력될까요.. 질문 : 어떻게 해야 양 끝봉에도 중간 봉들과 동등하게 추세선이 표현될 수 있을까요?
프로필 이미지
ravit
2021-01-27
1127
글번호 145872
지표