커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

질문있습니다.

문법이 궁금해서 질문드립니다. data2 나 data1 을 묶어줄때요 수식에서 예를들어 c , h, l ,o dayhigh 등의 문자가 포함되어있을때만 data1( 이나 data2 이런식으로 묶어주고 var : i(0,data2) ; 와같이 사용자가 지정하는 변수만 으로 수식이 이루어진경우는 data1 을 포함안해도되는지 궁금합니다 아니면 무조건 모든 수식마다 다 포함 해줘야하는지궁금합니다. 실제 저는 바이 명령어가 Buy("b_41",atlimit,p[3],ms7((msPrice+priceM)*mt_buyfactor,buycnt,p[3])); 와 같이 이루어져있는데요 여기서 p[ ] 은 data2 값으로 계산된 값이 저정되고(하지만 data2 의 c h l o 로 계산된 값 ) mt_buyfactor 은 data2 값으로 계산된 값 (data2의 c h l o 를 이용하여 계산해서 저장되는 값) buycnt 은 data1 의 값이지만 (data1 의 c h l o 로 계산된 값이 아닌 매수 횟수에 의한 값) 입니다 이럴때는 Buy("b_41",atlimit,p[3],ms7((msPrice+priceM)*mt_buyfactor,buycnt,p[3])); 식을 어떻게 표현해줘야하나요 ? data1 , data2 로 어떻게 묶어줘야하나요 아님 안묶어도되나요? 궁금합니다 감사합니다
프로필 이미지
여유로운투자
2018-02-10
220
글번호 116512
사용자 함수
답변완료

이평

맨끝에 있는 이평을 상승시 빨강 하락시 파랑으로 표현 부탁드립니다. Input:n(60); Var:j(0),고가기울기(0),고가절편(0),고가예상치(0),고가표준오차(0), 저가기울기(0),저가절편(0),저가예상치(0),저가표준오차(0),trend(0), sumOH(0),sumOL(0),sumO(0),sumH(0),sumL(0),sumO²(0),sumH²(0),sumL²(0); if bDate[1] < bDate then { sumOH = 0; sumOL = 0; sumO = 0; sumH = 0; sumL = 0; sumO² = 0; sumH² = 0; sumL² = 0; for j = 1 to n { sumOH = sumOH + DayOpen(j)*DayHigh(j); sumOL = sumOL + DayOpen(j)*DayLow(j); sumO = sumO + DayOpen(j); sumH = sumH + DayHigh(j); sumL = sumL + DayLow(j); sumO² = sumO² + DayOpen(j)^2; sumH² = sumH² + DayHigh(j)^2; sumL² = sumL² + DayLow(j)^2; } #==========================================================================# # 선형회귀방정식 # #==========================================================================# # nΣxy - (Σx)(Σy) # # 기울기 a = --------------------- # # nΣx²- (Σx)² # # # # = (n*sum(xy) - sum(x)*sum(y)) / (n*sum(x^2) - sum(x)^2) # # # # (Σy)(Σx²)-(Σx)(Σxy) # # 절편 b = --------------------------- # # nΣx²- (Σx)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #==========================================================================# 고가기울기 = (n*sumOH - sumO*sumH) / (n*sumO²- sumO^2); 고가절편 = (sumH*sumO² - sumO*sumOH) / (n*sumO² - sumO^2); 저가기울기 = (n*sumOL - sumO*sumL) / (n*sumO² - sumO^2); 저가절편 = (sumL*sumO² - sumO*sumOL) / (n*sumO² - sumO^2); 고가예상치 = 고가기울기 * DayOpen() + 고가절편; 저가예상치 = 저가기울기 * DayOpen() + 저가절편; #==========================================================================# # 표준오차 공식 # #==========================================================================# # _______________________________________________________ # # / 1 [nΣxy - (Σx)(Σy)]² # # Sxy = / [ ------- ][nΣy²- (Σy)²- ----------------------- ] # # √ n(n-2) nΣx²- (Σx)² # # # # = sqrt((1/(n*(n-2))) * (n*sum(y^2) - sum(y)^2 - # # ((n*sum(x*y) - sum(x)*sum(y))^2 / (n*sum(x^2) - sum(x)^2)))) # #==========================================================================# 고가표준오차 = sqrt((1/(n*(n-2))) * (n*sumH² - sumH^2 - ((n*sumOH - sumO*sumH)^2 / (n*sumO² - sumO^2)))); 저가표준오차 = sqrt((1/(n*(n-2))) * (n*sumL² - sumL^2 - ((n*sumOL - sumO*sumL)^2 / (n*sumO² - sumO^2)))); } var1 = ema(h,20); var2= ema(l,20); var7=var1+(var1-ema(var1,20)); var8=var2+(var2-ema(var2,20)); if var7[2] > var7[1] and var7[1] < var7 then trend=1; if var7[2] < var7[1] and var7[1] > var7 then trend=0; plot2(round(고가예상치 + 0.5 * 고가표준오차,1),"2차 저항선"); plot3(round(고가예상치 - 0.5 * 고가표준오차,1),"1차 저항선"); plot6(round(저가예상치 + 0.5 * 저가표준오차,1),"1차 지지선"); plot7(round(저가예상치 - 0.5 * 저가표준오차,1),"2차 지지선"); plot8(dayopen,"시가"); Plot13(var7,"이평",iff(trend == 1,RED, rgb(0,84,225))); Plot14(var8,"이평",iff(trend == 1,RED, rgb(0,84,225)));
프로필 이미지
야크
2018-02-10
280
글번호 116511
지표
답변완료

CME차트에서 주간장 Pivot 라인 그리는 지표

CME차트에서 주간장의 Pivot 라인 그리는 지표 부탁드립니다. 제가 해보려고했는데 잘 안됩니다.. TT 부탁드려요. 감사합니다.
프로필 이미지
퀀텀프로
2018-02-10
236
글번호 116509
지표
답변완료

문의합니다.

문의합니다. 시물레이션시 그림과 같이 진입 후 수익이 났습니다. 캔들을 보면 시가 종가 고가 저가 4개에 대해서만 확실히 알수 있고 형성되는 과정을 알수가 없습니다. 수익 처리가 되었을때 그림의 1번,2번 처럼 캔들 형성 순서가 다를수 있는데.. 1번처럼 형성시 수익 2번처럼 형성시 손절 60분봉 이상에서도 신뢰해도 되는지 알고 싶습니다. 세번째 사진을 보면 시간이 정시 기준입니다.(60분봉) 이유와 실거래시 어떤 문제가 생길수 있는지 알고 싶습니다.
프로필 이미지
우와우와
2018-02-11
266
글번호 116508
시스템
답변완료

문의드립니다..^^

여러모로 도움을 많이 받고 있어 항상 감사한 마음을 가지고 있습니다..^^ 문의 드릴 내용은...... 1. 현재봉 포함하여 30봉이내에 최고값과 최저값에 가로라인(점선)을 차트에 긋고 싶습니다. 2. 현재봉 포함하여 이전 60봉에 세로라인(점선)을 긋고 싶습니다. 3. 해당월물(선물)의 태동부터 각 주체간 누적순매수를 표현하고 싶습니다. 가령, 201803월 선 물인 경우 처음 상장된 시점부터 각 외인,기관,개인 누적순매수를 지표로 나타냈으면 합니다. 감사합니다..
프로필 이미지
금여록
2018-02-10
257
글번호 116507
지표
답변완료

수식문의

수고하십니다 이앞전봉이 20틱이상 변동만있을경우에 이전봉 고점을 5틱 넘으면 매수 이전봉의 저점을5틱깨면 매도 하는식 부탁합니다
프로필 이미지
백진강
2018-02-11
243
글번호 116506
시스템
답변완료

문의드립니다.

차트에 10틱 간격으로 수평선을 넣을려고 합니다. 부탁드립니다.
프로필 이미지
아침한때비51
2018-02-10
247
글번호 116505
지표
답변완료

시스템식 문의드립니다.

아래의 시스템전략을 식으로 어떻게 구현해야 할 지 궁금합니다. 1. 최근 n봉 이내 고점봉의 시가대비 k%하락 시 매수. 2. 최근 n분 이내 고점봉의 시가대비 k%하락 시 매수. 3. 최근 n봉 이내에 음봉이 p개 이상 있고, n봉 중 고가 대비 k%하락 시 매수.
프로필 이미지
wl
2018-02-12
242
글번호 116504
시스템
답변완료

질문있습니다.

기존의 시스템에 참조데이터를 활용해서 시스템을 작동하도록 하고싶었습니다 하지만 기존의 시스템에 단순히 var: aaa(0,data2); 와같이 참조 변수를 선언만 해도 이상하게 시스템이 정상작동하지 않았습니다. 해서 게시판을 검색해서 아래의 답변을얻었습니다. =========================================================================== 수식에 참조데이터함수가 사용되면 수식에 계산되는 값의 변수타입과 계산식등을 데이터번호 함수로 묶어 주셔야 합니다. 변수에 데이터번호를 지정해 해당 변수가 1봉전, 2봉전과 같이 이전값 참조할때 어떤 데이터의 주기로 이전값을 참조해야하는지 지정해 주셔야 하며 계산식도 데이터 함수로 묶어 주셔야 합니다. data2값이 있는 수식에 ma(c,10)과 같이 사용되면 10봉을 data1의 주기로 카운트 하는것이 아니라 data1과 data2를 합친 봉수로 처리하게 됩니다. 랭귀지 도움말에서 예스랭귀지 활용부분에 타종목/타주기 참조에 해단 내용 참고하시기 바랍니다. Var : MA1(0,data1), MA2(0,data1); Var : test(1,data2); test = Data2( close ); MA1 = data1(MA(Close, 10)); MA2 = data1(MA(Close, 20)); If (MA1[1] < MA2[1] ) Then Buy (); If (MA1[1] > MA2[1] ) Then Sell (); 즐거운 하루되세요 ===================================== 라는 답변을 다른분에게 해주셨는데요 궁금한것이 참조데이터를 활용하려면 무조건 기존에 작성된 데이터에 대해서 모두다 수식에는 data1(기존수식) 과 같이 하고 변수 선언시에는 기존 변수(0,data1) 과 같이 지정해주어야하나요? 저는 위에 답변을 보고 기존 변수선언시에만 기존 변수(0,data1) 하였더니 일단 원하는데로 시스템이 작동하는 것을 확인했는데요 변수 선언시뿐아니라 수식에도 모두다 적용을 해줘야하는지궁금합니다.
프로필 이미지
여유로운투자
2018-02-09
263
글번호 116503
시스템