커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

함수식 오류가 있는듯 싶습니다

선생님, 말씀해주신 함수식으로 그래프를 그려보았습니다. 그랬더니 확실히 오류가 있는듯 싶습니다. 어디에서 오류가 발생했는지는 잘 모르겠습니다만, 키움이나 이베스트증권의 표준오차밴드는 수치는 다를지언정 모양은 수축, 팽창이 있고 비슷합니다. [ 차트 캡쳐한 것들을 파일로 첨부합니다 ] 그런데 말씀해주신 수식으로 만든 예스트레이더의 표준오차밴드는 전혀 수축, 팽창이 없고 계속 밋밋한 모습입니다. 제가 만든 함수식과 지표는 선생님께서 말씀해주신 함수식을 그대로 복사해와서 저장을 하였습니다. 함수의 명칭만 바꿨습니다. 그 함수식과, 혹시나 해서 저장되어 있는 LRL함수식도 같이 아래에 복사해서 붙여넣기 하였습니다. 죄송하오나 어디서 잘못된 것인지 봐주시면 매우 감사하겠습니다. 건승하세요~ ----------------------- LRL함수식 Input : Value(NumericSeries), Period(NumericSimple); Var : value1(0), value2(0), AccumValue(0); AccumValue = accum(1); value1 = ma(AccumValue, Period); value2 = ma(Value, Period); LRL = (ma(Value * AccumValue, Period) - value1 * value2) / (ma(AccumValue^2, Period) - (ma(AccumValue, Period)^2)) * (AccumValue - value1) + value2; --------------------------------------------- SEBM 표준오차밴드 중심선의 함수식 INPUTS: Price(Numeric),dv(Numeric),LENGTH(Numeric); VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0); LINREGY = LRL(Price, LENGTH); X = INDEX; Value11 = AccumN(X * Price, Length) - (Length * Average(X, Length) *Average(Close, Length)); Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length))); calcB = Value11/Value12; calcA = ma(Price, Length) - (calcB * ma(X, Length)); IF INDEX > LENGTH THEN BEGIN VALUE1 = (ACCUMN(Price^2, LENGTH)) - ((CALCA * ACCUMN(Price, LENGTH))) - ((CALCB * ACCUMN(X * Price, LENGTH))); VALUE2 = LENGTH - 2; VALUE3 = (VALUE1 / VALUE2); IF VALUE3 > 0 THEN STDERR = SQRT(VALUE1 / VALUE2); ELSE STDERR = STDERR[1]; LINREGS = MA(LINREGY, LENGTH); SERR = dv * MA(STDERR, LENGTH); SEBM = LINREGS; END; ------------------------------------------------- SEBH 표준오차밴드 상한선의 함수식 INPUTS: Price(Numeric),dv(Numeric),LENGTH(Numeric); VARS: LINREGY(0), X(0), STDERR(0), LINREGS(0), SERR(0),calcB(0),calcA(0); LINREGY = LRL(Price, LENGTH); X = INDEX; Value11 = AccumN(X * Price, Length) - (Length * Average(X, Length) *Average(Close, Length)); Value12 = AccumN(Square(X), Length) - (Length * Square(Average(X, Length))); calcB = Value11/Value12; calcA = ma(Price, Length) - (calcB * ma(X, Length)); IF INDEX > LENGTH THEN BEGIN VALUE1 = (ACCUMN(Price^2, LENGTH)) - ((CALCA * ACCUMN(Price, LENGTH))) - ((CALCB * ACCUMN(X * Price, LENGTH))); VALUE2 = LENGTH - 2; VALUE3 = (VALUE1 / VALUE2); IF VALUE3 > 0 THEN STDERR = SQRT(VALUE1 / VALUE2); ELSE STDERR = STDERR[1]; LINREGS = MA(LINREGY, LENGTH); SERR = dv * MA(STDERR, LENGTH); SEBH = LINREGS + SERR; END; ---------------------------------------- 지표식 - 종가 C, 승수 2, 기간 10 var:sh(0),sm(0),sl(0),ash(0),asm(0),asl(0); sh=SEBH(c,2,10); sl=SEBL(c,2,10); sm=SEBM(c,2,10); Plot1(sm, "이평"); Plot2(sh, "상단밴드"); Plot3(sl, "하단밴드"); ----------------------------------- 캡쳐한 차트들을 첨부파일로 첨부합니다.
프로필 이미지
스테디어드밴서
2019-01-21
334
글번호 125459
사용자 함수
답변완료

수식 문의 드립니다

귀사의 일익 번창 하심을 기원 합니다 1. 주식 종목의 외국인 누적 보유수량(보유지분율 포함)을 선차트로 표시 2. 기관의 총 누적 보유량(지분율(%))을 선차트로 표시 3. 기관의 누적 보유량에 연기금, 투신, 금융투자의 누적 보유량을 추가로 표시할수 있도록 차트를 만들수 있을지 문의 드립니다 && 추가로 하나더 문의 드립니다 상기 내용을 기간을 설정 할수 있는지도 문의 드립니다 ex)3개월, 6개월, 1년, 전체 누적수량 - 이싱 - 수고 하세요 ^^
프로필 이미지
부채도사
2019-01-21
315
글번호 125458
지표
답변완료

수식부탁합니다.

Input : Period(240), MultiD(0.25); var : MAv(0),BBup(0),BBdn(0); MAv = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); if MarketPosition <= 0 Then { if crossup(c,bbup) Then buy("B1"); if H < BBup Then Buy("b2",AtStop,BBup*1.01); } if MarketPosition >= 0 Then { if CrossDown(c, BBdn) Then Sell("S1"); if H < BBdn Then Sell("S2",AtStop, BBdn*0.99); } 위수식에서 5% 이상 갭상승시에 10%을이익실현하고 전일종가까지하락시 10%를 재매수한다.(매도 즉시 전일종가 매수 주문 가능) 5% 이상 갭하락시에 10%을이익실현하고 전일종가까지상승시 10%를 재매수한다..(매수 즉시 전일종가 매도 주문 가능) 부탁합니다. 감사합니다.
프로필 이미지
큰바위얼굴
2019-01-21
257
글번호 125449
시스템
답변완료

함수요청

안녕하세요? 함수요청드립니다. 라이브캐틀(LE) 5분봉으로 거래하고자 하는데, 참조종목은 옥수수(ZC) 5분봉입니다. 아래 전략 1, 2를 하나의 스크립트로 부탁드립니다. 1.써머타임 적용시 가.진입 a.우리시각으로 오후 10시 30분 기준으로 참조종목이 일봉상 양봉이면 익봉시가 매수 b.우리시각으로 오후 10시 30분 기준으로 참조종목이 일봉상 음봉이면 익봉시가 매도 나.손절: 포지션 진입이후 참조종목이 당일 일봉상 시가를 돌파[이탈] 완성시 익봉 시가에 다.시간청산: 당일청산(3시 15분 완성봉=20분 시가봉) 2.써머타임 해제시 가.진입 a.우리시각으로 오후 11시 30분 기준으로 참조종목이 일봉상 양봉이면 익봉시가 매수 b.우리시각으로 오후 11시 30분 기준으로 참조종목이 일봉상 음봉이면 익봉시가 매도 나.손절: 포지션 진입이후 참조종목이 당일 일봉상 시가를 돌파[이탈] 완성시 익봉 시가에 다.시간청산: 당일청산(4시 15분 완성봉=20분 시가봉) 단, 진입기준으로 당일에만 하루 한번 거래입니다.
프로필 이미지
흰둥이아빠
2019-01-21
265
글번호 125444
시스템
답변완료

재질의 드립니다

저번에 이베스트증권에서 사용하는 LstSqrMA(Price) 함수를 모르기 때문에 함수식 안내가 불가하다고 답변을 주셨습니다. 이베스트 증권에서 답변 주기를, LstSqrMA(Price) 함수는 수학적으로 '최소자승법'의 공식을 활용해 n기간 이동평균선의 최소자승을 구하는 것이라고 합니다. [ 최소자승이동평균(Least Squares Moving Average)을 LstSqrMA 라는 함수로 표시한 것 ] ------------------------------------------ 참고 : 오차의 제곱(自乘,square)의 총합을 최소화(least)하는 방법(method)이라의 의미에서 최소자승법(Method of least squares)의 명칭이 나온 것이다. 이에 대한 수학적 계산법은 첨부 파일로 올립니다만, 제가 워낙 무지해서 무슨 얘기인지 알 수가 없어서 하기 요청을 드립니다. 정말 죄송합니다 최소자승법 (Method of Least Squares) 이란? N회 측정한 측정값 y1,y2,...,yn이 어떤 다른 측정값 x1,x2,...xn 의 함수라고 추정할 수 있을 때,측정값 yi와 함수값 f(xi)의 차이를 제곱한 것의 합이 최소가 되도록 하는 함수 f(x)를 구하는 것이 최소자승법의 원리이다.이렇게 해서 구해진 함수 y=f(x)는 이 측정값들의 관계에 가장 적합한 함수라고 할 수 있다. --------------------------- 제 짧은 생각에는 기간 10, 가격 종가C 에서, y값들은 [ 10봉 이동평균선값들, 즉 ma10(0)~ma10(9) ], x값들은 [ 10봉 동안의 C값들, 즉 C(0)~ C(9) ] 로 생각합니다. 각 봉에서 최소자승법에 따른 f(x), 즉 [ 기간 10봉이니까,각각의 ma10(0),ma10(1),ma10(2),...,ma10(9) ] , [ 기간 10봉이니까,각각의 f(C(0)), f(C(1)), f(C(2)),..., f(C(9)) ] 간의 차이를 제곱한 것의 합이 최소가 되도록 하는 함수 f(x)를 구한 후, f(x)에 x값인 현재봉 종가를 대입한 값이, 현재봉 표준오차밴드의 중심선 값이 아닐까 생각해 봅니다. f(x)는 대체로 일차방정식이 나오는듯 싶기도 하고요 죄송하오나 수학적 식 참고자료는 첨부파일로 올렸습니다. 잘 모르겠어서요. 정말 죄송합니다. --------------------------------------- Factor는 승수라고 합니다. 이에 매우 죄송하오나 하기 요청을 재차 드립니다. ---------------------- 표준오차밴드의 중심선은 이동평균선의 최소자승으로 구하며 MidBand = LstSqrtMA(Price) 로 계산이 됩니다. 상한선은 Factor와 n기간동안의 표준오차의 이동평균을 곱하여 중심선과 더한 값이며 HiBand = MidBand + Factor*StdError(Price) 로 계산 됩니다. 하한선은 Factor와 n기간동안의 표준오차의 이동평균을 곱하여 중심선에서 뺀 값입니다. LoBand = MidBand - Factor*StdError(Price) 로 계산이 됩니다. 정리해서 말씀드리면 아래와 같습니다. 중심선 MidBand = LstSqrtMA(Price) 상한선 HiBand = MidBand + Factor*StdError(Price) 하한선 LoBand = MidBand - Factor*StdError(Price) ----------------------------- *** 표준오차밴드 함수식 상한선 : StdErrBand_Hi(가격,승수,기간); 중심선 : StdErrBand_Mid(가격,승수,기간); 하한선 : StdErrBand_Lo(가격,승수,기간); ----------------------------------------------- 예스트레이더의 사용자 함수에 상기 함수를 등록할 수 있도록 함수식을 각각 적어주시면 정말 감사하겠습니다. 예) 이베스트증권의 수치를 예로 들면 다음과 같습니다. 가격 종가C, 승수 2, 기간 10 에서 2018년 12월3일 현대엘리베이터 표준오차밴드 중심선은 94,027 원 / 상한선은 99,911 원 /입니다 바쁘신데 수고를 끼쳐서 매우 죄송합니다. 부탁 드리겠습니다~ 감사합니다~ --------------- 최소자승법에 대한 수학적 설명 첨부 파일 참조
프로필 이미지
스테디어드밴서
2019-01-21
352
글번호 125436
사용자 함수
답변완료

안녕하세요

매매시간 오전10시16분부터오후5시까지 매수조건 5 이평이 20 이평 골드크로스 매수 매도조건 5 이평이 20 이평 데드크로스 매도 당일 순이익이 100 틱 이면 매매정지 당일 순손실이 -100 틱이면 매매정지 손절 50 틱 익절 150 틱 매매중 수익이 50 틱이상 갓다가 수익이20 틱아래로내려오면 강제청산후 다음신호대기
프로필 이미지
수원
2019-01-21
213
글번호 125434
시스템
답변완료

문의합니다.

매수진입 무포지션이나 매도포지샨에서 음봉뒤에 2연속 양봉이 아래처럼 발생하면 C >= O +PriceScale*2 C[1] >= O[1]+PriceScale*2 C[2] <= O[21-PriceScale*1 발생하면 매수기준가=C 를 저장합니다. 그리고 이전에 있던 매수진입가 = 0 으로 초기화합니다 이후에 아래처럼 다시 새로운 음봉이 발생하고 양봉이 2연속발생하면 C >= O +PriceScale*2 C[1] >= O[1]+PriceScale*2 C[2] <= O[21-PriceScale*1 이때의 현재봉 종가C를 매수진입가 = C 로 저장합니다. 이후에도 계속 양봉이 연속으로 발생하면 새로운 양봉종가를 매수진입가 = C 로 저장하고 이루 양봉이 또 연속으로 방생하면 매수진입가 = C 로 저장랍니다. 이후 음봉이 발생하면 더이상 새로운 진입가를 저장하지않습니다. 이렇게 저장된 매수진입가가 매수진입가>매수기준가 가 되면 매수진입합니다. 매도진입 무포지션이나 매수포지샨에서 양봉뒤에 2연속 음봉이 아래처럼 발생하면 C <= O - PriceScale*2 C[1] <= O[1] - PriceScale*2 C[2] >= O[21 + PriceScale*1 발생하면 매도기준가=C 를 저장합니다. 그리고 이전에 있던 매도진입가 = 99999 으로 초기화합니다 이후에 아래처럼 다시 새로운 양봉이 발생하고 음봉이 2연속발생하면 C <= O - PriceScale*2 C[1] <= O[1] - PriceScale*2 C[2] >= O[21 +PriceScale*1 이때의 현재봉 종가C를 매도진입가 = C 로 저장합니다. 이후에도 계속 음봉이 연속으로 발생하면 새로운 음봉종가를 매도진입가 = C 로 저장하고 이후 음봉이 또 연속으로 방생하면 매도진입가 = C 로 저장랍니다. 이루 양봉이 발생하면 더이상 새로운 매도 진입가를 저장하지않습니다. 이렇게 저장된 매도진입가가 매도진입가 < 매도기준가 가 되면 매도진입합니다.
프로필 이미지
종호
2019-01-21
207
글번호 125427
시스템

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

프로필 이미지
회원
2019-01-21
23
글번호 125426
시스템
답변완료

수식문의

키움수식을 예스수식으로 부탁드립니다. if(predayclose() > predayopen(), (predayhigh()+predaylow()+predayclose()+predayhigh())/4, (if(predayclose() < predayopen(), (predayhigh()+predaylow()+predayclose()+predaylow())/4, (predayhigh()+predaylow()+predayclose()+predayclose())/4)))
프로필 이미지
히라얀
2019-01-21
192
글번호 125425
지표