커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

프로필 이미지
러블리
2011-09-28
198
글번호 43118
지표
답변완료

문의드립니다

아래수식은 분봉에서 주봉 및 일봉을 불러온 내용입니다 수식에 문제가 있는지 검증이 안됩니다. 수정 부탁합니다. input : p1(2),LENGTH1(20),LENGTH2(60), ## 주봉 LENGTH11(20),LENGTH12(60),LENGTH13(120), ## 일봉 Period1(20),Period2(60), ## 주봉 Period11(20),Period12(60),Period13(120); ## 일봉 var : TCHAN1(0),TCHAN2(0),cnt(0), ## 주봉 TCHAN11(0),TCHAN12(0),TCHAN13(0); ## 일봉 Var : Sum1(0), Counter1(0), CSum1(0),Wma1(0),SumSqrt1(0),Std1(0); ## 주봉 Var : Sum2(0), Counter2(0), CSum2(0),Wma2(0),SumSqrt2(0),Std2(0); Array : HH[70](0),CC[70](0),LL[70](0); if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 61{ HH[cnt] = HH[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TCHAN1 = HH[1]; ## 주봉 pc[1] for cnt = 1 to LENGTH1 { if HH[cnt] > TCHAN1 Then TCHAN1 = HH[cnt]; } TCHAN2 = HH[1]; ## 주봉 pc[1] for cnt = 1 to LENGTH2 { if HH[cnt] > TCHAN2 Then TCHAN2 = HH[cnt]; } Sum1 = 0; CSum1 = 0; For counter1 = 0 To Period1-1{ Sum1= Sum1 + ((HH[counter1]+LL[counter1]+CC[counter1])/3) * (Period1 - counter1); CSum1 = CSum1 + (Period1 - counter1); } WMA1 = Sum1/ CSum1; SumSqrt1 = 0; For Counter1 = 0 To Period1-1 { SumSqrt1 = SumSqrt1 + (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1) * (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1); } Std1 = SquareRoot(SumSqrt1 / Period1); Sum2 = 0; CSum2 = 0; For counter2 = 0 To Period2-1{ Sum2 = Sum2 + ((HH[counter2]+LL[counter2]+CC[counter2])/3) * (Period2 - counter2); CSum2 = CSum2 + (Period2 - counter2); } WMA2 = Sum2/CSum2; SumSqrt2 = 0; For Counter2 = 0 To Period2-1 { SumSqrt2 = SumSqrt2 + (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2) * (((HH[counter2]+LL[counter2]+CC[counter2])/3) - WMA2); } Std2 = SquareRoot(SumSqrt2 / Period2); var1 = wma1+(p1*STD1); ## 주봉 b.b var2 = wma2+(p1*STD2); ## 주봉 b.b var3 = (HH[0]+LL[0])/2; ## 주봉 중간값 ## 일봉 Var : Sum11(0), Counter11(0), CSum11(0),Wma11(0),SumSqrt11(0),Std11(0); Var : Sum12(0), Counter12(0), CSum12(0),Wma12(0),SumSqrt12(0),Std12(0); Var : Sum13(0), Counter13(0), CSum13(0),Wma13(0),SumSqrt13(0),Std13(0); TCHAN11 = dayhigh(1); for cnt = 1 to LENGTH11 { if dayhigh(cnt) > TCHAN11 Then TCHAN11 = dayhigh(cnt); } TCHAN12 = dayhigh(1); for cnt = 1 to LENGTH12 { if dayhigh(cnt) > TCHAN12 Then TCHAN12 = dayhigh(cnt); } TCHAN13 = dayhigh(1); for cnt = 1 to LENGTH13 { if dayhigh(cnt) > TCHAN13 Then TCHAN13 = dayhigh(cnt); } Sum11 = 0; CSum11 = 0; For counter11 = 0 To Period11-1{ Sum11= Sum11 + ((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) * (Period11 - counter11); CSum11 = CSum11 + (Period11 - counter11); } WMA11 = Sum11/ CSum11; SumSqrt1 = 0; For Counter11 = 0 To Period11-1 { SumSqrt11 = SumSqrt11 + (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11) * (((dayhigh(counter11)+daylow(counter11)+dayclose(counter11))/3) - WMA11); } Std11 = SquareRoot(SumSqrt11 / Period11); Sum12 = 0; CSum12 = 0; For counter12 = 0 To Period12-1{ Sum12 = Sum12 + ((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) * (Period12 - counter12); CSum12 = CSum12 + (Period12 - counter12); } WMA12 = Sum12/CSum12; SumSqrt12 = 0; For Counter12 = 0 To Period12-1 { SumSqrt12 = SumSqrt12 + (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12) * (((dayhigh[counter12]+daylow[counter12]+dayclose[counter12])/3) - WMA12); } Std12 = SquareRoot(SumSqrt12 / Period12); Sum13 = 0; CSum13 = 0; For counter13 = 0 To Period13-1 { Sum13 = Sum13 + ((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) * (Period13 - counter13); CSum13 = CSum13 + (Period13 - counter13); } WMA13 = Sum13/ CSum13; SumSqrt13 = 0; For Counter13 = 0 To Period13-1 { SumSqrt13 = SumSqrt13 + (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13) * (((dayhigh[counter13]+daylow[counter13]+dayclose[counter13])/3) - WMA13); } Std13 = SquareRoot(SumSqrt13 / Period13); var11 = Wma1+(P1*Std1); ## 일봉 b,b 20 var12 = Wma2+(P1*Std2); ## 일봉 b,b 60 var13 = Wma3+(P1*Std3); ## 일봉 b,b 120 var14 = (DayHigh+DayLow)/2; ## 일봉중간값
프로필 이미지
맥스
2011-09-28
655
글번호 43116
지표
답변완료

질문올립니다.

1. a라는 매도로직과 b라는 매도로직이 있습니다. 청산식은 한개 존재합니다. 그러나 a,b 둘다 매도청산이 이루어진다음에는 진입이 되면 안되게 하고 싶습니 다. 즉 a 라는 로직에 의해서 매도가 이루어진후 매도청산이 나왔습니다. 그뒤에 b 라는 로직의 조건이 만족이 되어도 오늘 당일 매도신호가 발생이 되서 진입이 된후 매도청산이 나왔기때문에 b 라는 매도로직은 진입이 안되게 하고 싶습니다. 거꾸로 a라는 로직도 마찬가지구요. 즉 b로직이 먼저 만족이 되어 매도가 이루어진후 매도청산이 나왔을경우에는 a 조건이 만족이 되어도 진입이 안되게 하고 싶은데 어떻게 해야할까요? 2. 그리고 매도진입식에 의해서 매도청산이 이루어진뒤 즉 매도청산이 나온뒤에만 진입을 할수 있는 매도로직을 구현하고 싶은데 어떻게 수식을 넣어야하나요. 예를들어서 매도청산후 재매도인데 재매도로직만 구현되게 하고 싶습니다. ex) 매도청산후 시가돌파후 시가 재이탈시는 재매도로직 발동 제가 설명을 잘한건지 모르겠네요~ 3. 2분봉에서 일봉의 5이평과 20이평을 사용하고 싶습니다. 일봉에서 20이평아래에 5이평이 있고 5이평이 3연속 우하향일때 시가가 5이평위에서 출발할때는 매수진입식이 필터가 걸리게 하고 싶습니다. ex) if bids>asks then buy(); 라는 조건식이 있을때 위에서 말한 일봉이평의 필터가 작동하게 하고 싶습니다. 위의 내용처럼 5이평이 3일연속 우하향이고 20이평 아래에 5이평이 있으면 매수조건에 만족이 되더라도 진입금지. 항상 감사드립니다.
프로필 이미지
제네렉
2011-09-28
591
글번호 43115
시스템
답변완료

문의드립니다

아래의 내용은 일봉에서 월봉을 불러온 내용입니다. 아래수식에서 주봉의 중간값을 불러오고자 합니다. var2 = 주봉중간값 을 추가해 주십시요 그리고 그전에 볼린저밴드를 아래와 같이 만들어 주셨는데 어떤게 정확한 표현인지 알고 싶습니다. Sum1 = 0; CSum1 = 0; For counter1 = 1 To Period1{ Sum1= Sum1 + ((HH[counter1]+LL[counter1]+CC[counter1])/3) * (Period1 - (counter1)); CSum1 = CSum1 + Period1 - (counter1); } WMA1 = Sum1/ CSum1; SumSqrt1 = 0; For Counter1 = 1 To Period1 { SumSqrt1 = SumSqrt1 + (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1) * (((HH[counter1]+LL[counter1]+CC[counter1])/3) - WMA1); } Std1 = SquareRoot(SumSqrt1 / Period1); input : p1(2),mLENGTH1(20),mLENGTH2(60), ## 월봉 mPeriod1(20),mPeriod2(60); ## 월봉 var : mTCHAN1(0),mTCHAN2(0),mcnt(0); ## 월봉 Var : mSum1(0), mCounter1(0), mCSum1(0),mWma1(0),mSumSqrt1(0),mStd1(0); ## 월봉 Var : mSum2(0), mCounter2(0), mCSum2(0),mWma2(0),mSumSqrt2(0),mStd2(0); Array : mHH[70](0),mCC[70](0),mLL[70](0); if sdate > sdate[1]+30 Then{ mHH[0] = H; mLL[0] = L; for mcnt = 1 to 61{ mHH[mcnt] = mHH[mcnt-1][1]; mCC[mcnt] = mCC[mcnt-1][1]; mLL[mcnt] = mLL[mcnt-1][1]; } } if H > mHH[0] Then mHH[0] = H; if L < mLL[0] Then mLL[0] = L; mCC[0] = C; mTCHAN1 = mHH[1]; ## 월봉 price channel[1] for mcnt = 1 to mLENGTH1 { if mHH[mcnt] > mTCHAN1 Then mTCHAN1 = mHH[mcnt]; } mSum1 = 0; mCSum1 = 0; For mcounter1 = 0 To mPeriod1-1{ mSum1 = mSum1 + ((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) * (mPeriod1-mcounter1); mCSum1 = mCSum1 + (mPeriod1-mcounter1); } mWMA1 = mSum1/mCSum1; mSumSqrt1 = 0; For mCounter1 = 0 To mPeriod1-1 { mSumSqrt1 = mSumSqrt1 + (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1) * (((mHH[mcounter1]+mLL[mcounter1]+mCC[mcounter1])/3) - mWMA1); } mStd1 = SquareRoot(mSumSqrt1 / mPeriod1); var1 = mwma1+(p1*mSTD1); ## 월봉 b.b 0봉전 var2 = 주봉중간값;
프로필 이미지
맥스
2011-09-28
644
글번호 43111
지표
답변완료

문의 드립니다.

5분 차트에서 어제 분을 제외한 오늘 첫봉 부터 계산해서 중간값 5이평 ma((h+l)/2,5)을 3분 챠트에 띄우고 싶습니다. 5분 챠트 첫봉은 1,두번째봉은 2, 세번째 봉은 3, 네번째 봉은 4 이평으로 가다가 5봉 이후부터 5이평이 계산되는 식으로 하여 이것을 3분챠트에 띄우고 싶습니다. 3분과 5분 정확하게 배수가 되지 않아 어떻게 될지 모르겠네요
프로필 이미지
동해바다01
2011-09-28
568
글번호 43109
지표
답변완료

시스템식 문의 드려요

항상 도움주셔서 감사해요..!! 예스에서 수식작성후 entriestoday 함수가 오류가 뜨네요..함수로 메이킹 해줘야 할것 같은데..좀 부탁드립니다..!!^^*
프로필 이미지
리버최
2011-09-28
518
글번호 43108
시스템

하루우유 님에 의해서 삭제되었습니다.

프로필 이미지
하루우유
2011-09-28
0
글번호 43107
지표
답변완료

시스템식

당일시가가 당일20일이동평균선 보다높고 현재가가 당일시가보다 10틱상승하면 매수 당일시가가 당일20일이동평균선 보다낮고 현재가가 당일시가보다 10틱하락하면 매도 진입은 5회로 제한함
프로필 이미지
유가이드
2011-09-28
550
글번호 43106
시스템
답변완료

시스템식

안녕하세요 키움식인데 에스스탁시스템식으로변경부탁드립니다. 1) 지표식 a=tema(c,5,지수); if(a<a(1),a,0) a=tema(c,5,지수); if(a>a(1),a,0) 2) 시스템식 a=tema(c,5,지수); if(a<a(1),a,0) a=tema(c,5,지수); if(a>a(1),a,0) 3) 지표식,시스템식 avg(c,5)/(jas=avg(c,2)/100) g(c,5)/(jas=avg(c,2)/100)
프로필 이미지
외국인
2011-09-28
648
글번호 43105
시스템