커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

시스템매매를 하는데 신호 위치가 틀립니다.

시스템 매매를 하고 있는데요.. 사진을 보시면 13일날 매매가 굉장히 지져분하게 나오는걸 실시간으로 봤고 자동매매를 모의로 연결해서 그렇게 진입 청산되었습니다. 그런데 다음날 예스차트 로그인해서 13일꺼 신호를 보면 진입 청산 위치가 다 틀려나옵니다. 그러면서 다 수익으로 나옵니다ㅡㅡ; 계속 이런 현상이 나타는데 어떤게 문제일까요? 변수값을 조절한건 없습니다.. 그대로 수익이 얼마나 나는지 테스트중에 있으니까요. 현대 예스를 사용하고 있습니다.
프로필 이미지
베르나
2017-11-14
296
글번호 114194
시스템
답변완료

진입제어수식

안녕하세요 하루에 신호발생이 많은날 손실이 너무 커서 ,하루에 진입을 1회나 2회로 한정하려고 합니다 진입을 2-3회로 제한하는 수식 알려주십시요 감사합니다
프로필 이미지
중국동포
2017-11-14
169
글번호 114193
시스템

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

프로필 이미지
choone85
2017-11-15
24
글번호 114192
지표
답변완료

크루드오일 날짜 변경 관련

한투의 해외선물 예스트레이더를 사용하고 있습니다. 저는 지표중 선형회귀 방정식을 통해 20일동안 시가에서 고가, 저가의 값을 구해서 당일 시가 기준으로 고가 및 저가를 구하고자 다음의 수식을 사용하고 있습니다. 이 수식은 한국 기준으로 작성되어진 것으로 보이는데, 크루드 오일의 경우 장운영 시간이 07:00 ~익일 06:15 으로 알고 있는데, 이 수식을 적용해보니 우리나라 기준으로 새벽0시로 날짜가 변경되어서 차트에 정확하지 않는 지지와 저항이 표시되고 있습니다. 이를 해외 선물에 맞게끔 수정 부탁드립니다. Input:n(20); 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 Date[1] < Date 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,50); var2= ema(l,50); var7=var1+(var1-ema(var1,50)); var8=var2+(var2-ema(var2,50)); if var7[2] > var7[1] and var7[1] < var7 then trend=1; if var7[2] < var7[1] and var7[1] > var7 then trend=0; if sdate== CurrentDate then { 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,green, rgb(0,84,225))); Plot14(var8,"이평",iff(trend == 1,green, rgb(0,84,225)));
프로필 이미지
관람자
2017-11-14
224
글번호 114189
지표
답변완료

수식

안녕하세요. 150틱 챠트에서 타봉(300틱) 데이터를 참고하여 신호 발생 원합니다. 하기 조건을 만들어주시면 공부해서 적용 시켜보겠습니다. 1) 주챠트 150틱 (현재 신호발생중) 2) 참고챠트 300틱 파라볼릭 <== 이조건을 추가하고 싶습니다 주차트에 기본적인 5/20선 골드데드 + 참고챠트 동시에 만족시 신호 발생 만들어주시면 공부하겠습니다. 감사합니다.
프로필 이미지
한국사람73
2017-11-14
154
글번호 114187
시스템
답변완료

부탁 드립니다.

다음 교차 지점에서 수직선을 수평선으로 긋고 싶습니다. 미리 감사 드립니다. input:p1(270),p2(360); Var1=ema(c,p1); var2=ema(c,p2); if Crossup(var1,var2) Then TL_New(sdate,stime,9999999999,sdate,stime,0); if Crossup(var2,var1) Then TL_New(sdate,stime,9999999999,sdate,stime,0);
프로필 이미지
yes
2017-11-14
156
글번호 114186
지표
답변완료

문의드립니다

아래 식은 게시물 40709(15. 03. 06) 3번 답변인데요. input : Period(4); var : TEMAV(0); TEMAV = TEMA(period); if TEMAV >= TEMAV[1] Then var1 = TEMAV; if TEMAV < TEMAV[1] Then var2 = TEMAV; plot1(var1,"상승"); plot2(var2,"하락"); 위 식을 선이 아닌 점그래프로 속성을 바꾸면 수평 꼬리가 나타나는데 이평선처럼 꼬리 없는 단일 선(점)으로 바꾸는 방법이 있는지 문의 드립니다.
프로필 이미지
예시스
2017-11-15
153
글번호 114185
지표
답변완료

수고스럽지만 한번더 질문드립니다

친절한 답변 감사합니다. ㅜㅜ 많이 배우고 있습니다. 아래와 같은 수식에서 매수 조건 이후 진입하고 손절이 되었는데, 손절된 자리에서 그대로 다시 매수 진입해 버리는 현상이 생깁니다. 해결해 주세요 ㅠㅠ Inputs: 매수1(0), 매수1익(0), 매도1(0), 매도1익(0); Vars : b1(0), b1e(0), s1(0), s1e(0), M1(0), D1(0), TM(0), TF(0), cnt(0), TM1(0), TF1(0); Array : Ovalue[10](0),Hvalue[10](0),Lvalue[10](0),Cvalue[10](0); b1=매수1; b1e=매수1익; s1=매도1; s1e=매도1익; if Bdate != Bdate[1] Then{ M1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-M1; Else TM = TimeToMinutes(stime)+1440-M1; TF = TM%60; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { Ovalue[0] = O; Hvalue[0] = H; Lvalue[0] = L; for cnt = 1 to 9{ Ovalue[cnt] = Ovalue[cnt-1][1]; Hvalue[cnt] = Hvalue[cnt-1][1]; Lvalue[cnt] = Lvalue[cnt-1][1]; Cvalue[cnt] = Cvalue[cnt-1][1]; } Condition1 = false; Condition2 = false; Condition11 = Condition1[1]; Condition22 = Condition2[1]; } #Hvalue[0]보다 큰 고가가 출력하면 값갱신 if H > Hvalue[0] Then Hvalue[0] = H; #Lvalue[0]보다 작은 저가가 출력하면 값갱신 if L < Lvalue[0] Then Lvalue[0] = L; #Cvalue[0]는 매봉종가 Cvalue[0] = C; if (TF == 59) then { if Ovalue[0]<=b1+PriceScale*1 and Cvalue[0]>b1+PriceScale*1 and (Hvalue[0]-Cvalue[0])+(Ovalue[0]-Lvalue[0])<=(Cvalue[0]-Ovalue[0])*2 Then Condition1 = true; if Ovalue[0]>=s1-PriceScale*1 and Cvalue[0]<s1-PriceScale*1 and (Hvalue[0]-Ovalue[0])+(Cvalue[0]-Lvalue[0])<=(Ovalue[0]-Cvalue[0])*2 Then Condition2 = true; } if Condition11 == true Then Buy("매수1",AtLimit,b1); if Condition22 == true Then Sell("매도1",AtLimit,s1); #손절 및 청산 setstoploss(pricescale*31,pointstop); if MarketPosition == 1 then { if IsEntryName("매수1") then exitlong("매수1익",AtLimit,b1e); if C > entryprice and barssinceentry >= 200 then exitlong ("el01",atstop,entryprice+(highest(h,barssinceentry)-entryprice)*0.4); if TF == 59 Then { if Cvalue[0] < entryprice then ExitLong ("el00",AtLimit,entryprice); } } if MarketPosition == -1 then { if IsEntryName("매도1") then ExitShort("매도1익",AtLimit,s1e); if C < EntryPrice and BarsSinceEntry >= 200 then exitshort ("es01",atstop,entryprice-(entryprice-lowest(l,barssinceentry))*0.4); if TF == 59 Then { if Cvalue[0] > entryprice then ExitShort ("es00",AtLimit,entryprice); } } }
프로필 이미지
마인드마스터
2017-11-14
133
글번호 114181
시스템
답변완료

문의 드립니다.

Arrays : Period[2](0); Vars : X(0), Y(0); For X = 0 To 1 { For Y = 9 To 10 { Period[X] = Y; If Period[1]==9 Then Buy(); If Period[0]==10 Then Sell(); } } For문 안에 또 For문식을 넣었는데요. 수식이 읽어 들어가는 순서가 헷갈려서요. 처음에 변수 X 값에 0 이 들어가고 변수 Y 값에는 9가 들어가므로 If Period[1]==9 는 성립이 될수 없을텐데 매수가 되더라구요. For 문 안에 For 문은 방식이 어떻게 되는 건가요?
프로필 이미지
무결점
2017-11-14
139
글번호 114177
시스템