커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식

안녕하세요. 시스템 수식에 매매할수 있는 날짜 제한을 두고 싶습니다. # 옵션 만기 2주 전부터 ~ 만기 당일까지 감사합니다.
프로필 이미지
한국사람73
2017-02-08
126
글번호 106655
시스템
답변완료

문의 사항

안녕하세요 하기 수식에서 한가지 더 추가 하고싶어서 메일드립니다. 하기 검토 부탁드립니다. input : P(14),BBP(20),dv(2),MAP(60); input : short(12),long(26),sig(9); var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0); var : MACDV(0),MACDS(0),Bcond(false),Scond(False),bbmd(0),diff(0),cnt(0),count(0); ADXV = ADX(P); DP = Diplus(P); DM = DiMinus(P); bbmd = ma(c,BBP); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBP,dv); mav = ma(C,MAP); MACDV = MACD(short,long); MACDS = ema(MACDV,sig); diff = C-O; Bcond = TotalTrades == 0 or (MarketPosition == 0 and BarsSinceExit(1) >= 2) or (MarketPosition == -1 and BarsSinceEntry >= 2); Scond = TotalTrades == 0 or (MarketPosition == 0 and BarsSinceExit(1) >= 2) or (MarketPosition == 1 and BarsSinceEntry >= 2); if CrossUp(BBdn,mav) and countif(crossdown(BBdn,mav),5) < 1 and DP < 40 and bcond == true Then buy("b1"); if CrossDown(BBup,mav) and countif(CrossUp(BBup,mav),5) < 1 and DM <40 and scond == true Then sell("s1"); if MarketPosition == 1 and IsEntryName("b1") == true Then{ if CrossDown(DP,DM) and scond == true Then sell("rs1"); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ if CrossUp(DP,DM) and Bcond == true Then buy("rb1"); } if MarketPosition == 0 Then{ if MarketPosition(1) == 1 and IsExitName("StopTrailing",1) == true and H > BBdn and macdv >= macds then { buy("bb",AtStop,C-PriceScale);} if MarketPosition(1) == -1 and IsExitName("StopTrailing",1) == true and L < BBup and macdv <= macds then { sell("ss",AtStop,C+PriceScale);} 1. ADX가 40이상이고, ADX라인이 DP/DM 위에 있을때, DP가 위에 있으면 매도금지, DM이 위에 있을때는 매수 금지 수식을 추가 하고 싶습니다.
프로필 이미지
softtoug
2017-02-08
123
글번호 106654
시스템
답변완료

세븐스 바이너리 웨이브의 매수/매도 신호가 나오는 시스템식 부탁합니다.

안녕하세요. 다음의 세븐스 바이너리 웨이브의 매수/매도 신호가 나오는 시스템식 부탁합니다. 감사합니다. Input: shortPeriod(12), longPeriod(26), Period(9), maPeriod(20), ROCPeriod(10), stoPeriod1(10), stoPeriod2(6), CCIPeriod(10); var: value(0); if ema(C,shortPeriod)-ema(C,longPeriod) >= ema(ema(C,shortPeriod)-ema(C,longPeriod),Period) then value = 1; else value = -1; if C >= ma(C, maPeriod) then value = value + 1; else value = value - 1; if (C - C[ROCPeriod]) / C[ROCPeriod] * 100 >= 0 then value = value + 1; else value = value - 1; if ema((C-lowest(L, stoPeriod1)) / (highest(H, stoPeriod1) - lowest(L, stoPeriod1)) * 100, stoPeriod2)>=50 then value = value + 1; else value = value - 1; if CCI(CCIPeriod) > 0 then value = value + 1; else value = value - 1; if ema(accum(((C -L)-(H- C))/ (H-L)*V), 3) - ema(accum(((C -L)-(H- C))/(H-L)*V), 10) >=0 then value = value + 1; else value = value - 1; if SAR(0.02,0.2) < C then value = value + 1; else value = value - 1; plot1(value); plot2(0);
프로필 이미지
sky78
2017-02-08
131
글번호 106653
시스템
답변완료

macd+stocastics 2차 파생지표의 시스템식(매수/매도신호)을 부탁합니다

macd+stocastics 2차 파생지표의 시스템식(매수/매도신호)을 부탁합니다. 감사합니다. 만들어 주신 시스템식이 에러네요. 첨부한 챠트처럼, 20을 돌파할때 매수신호가 나오고. 80을 하향할때 매도신호가 나오게 수정 부탁합니다. 감사합니다. ------------------ 안녕하세요 예스스탁입니다. 1 이전에 답변받으신 내용이 MACD를 기준으로 스토케스틱을 계산해서 지표(1번식)와 신호(2번식)가 발생하게 작성된 식입니다. %K와 %D를 계산할때 이평방법이 단순이면이평 ema를 ma로 변경하시면 됩니다. 2 시스템의 조건은 현재 sk가 하락후 상승하면 매수 상승후 하락하면 매도로 되어 있습니다. 단순 매수/매도신호라고 하셔서 정확한 조건을 알수가 없습니다. SK의 0선 돌파를 기준으로 하시면 아래와 같이 변경하시면 됩니다. input : short(12),long(26),sto1(14),sto2(3),sto3(3); var : HH(0),LL(0),FK(0),SK(0),SD(0),T(0); var1 = MACD(short,long); HH = Lowest(var1, sto1); LL = Highest(var1, sto2); FK = (var1 - LL) / (HH-LL) * 100; SK = ema(FK,sto1); SD = ema(SK,sto2); if SK > SK[1] Then T = 1; if SK < SK[1] Then T = -1; if crossup(SK,0) Then buy(); if CrossDown(SK,0) Then sell(); 즐거운 하루되세요 > sky78 님이 쓴 글입니다. > 제목 : macd+stocastics 2차 파생지표의 시스템식(매수/매도신호)을 부탁합니다. > macd+stocastics 2차 파생지표의 시스템식(매수/매도신호)을 부탁합니다. 지난번에 지표주셔서 감사합니다. 제가 원하는 것은 Macd+Slow%K(12,26,14,3,3) Macd+Slow%D 1. MACD = 단기이동평균(12) - 장기이동평균(26) Stochastic Slow %K = Stochastic Fast %K의 이동평균 (즉 Stochastic Fast %D) MACD+Stochastic = MACD 값을 구한 후 Stochastic Slow %K에 대입할 때 종가 대신 MACD 값을 넣어서 구하는 방식으로 지표로 시스템식(매수/매도신호)을 만들어주시면 감사하겠습니다. 한화증권, 농협증권과 하나금융증권의 2차파생지표로 macd+stocastics를 많이 참고하고 있습니다. 한화증권의 2차파생지표인 macd+stocastics를 첨부했으니 참고해 주세요. 설명은 다음과 같은 계산식이 있네요. * 계산식 MACD = 단기이동평균(12) - 장기이동평균(26) Stochastic Slow %K = Stochastic Fast %K의 이동평균 (즉 Stochastic Fast %D) MACD+Stochastic = MACD 값을 구한 후 Stochastic Slow %K에 대입할 때 종가 대신 MACD 값을 넣어서 구하는 방식입니다 감사합니다.
프로필 이미지
sky78
2017-02-08
248
글번호 106650
시스템
답변완료

문의드립니다

안녕하세요. 합성 시스템에서 특정 신호가 발생하여 청산되기 이전엔 지정된 신호가 발생하지 않도록 하는 수식이 가능한 것인지 궁금합니다. 예를들어 "A매수"라는 진입명의 신호가 발생하면, 이 포지션 상태에서는 "B매도", "C매도"라는 신호는 발생하지 않게 하는 것입니다. 항상 감사합니다.
프로필 이미지
맘속의행복
2017-02-08
122
글번호 106646
시스템

통큰베팅 님에 의해서 삭제되었습니다.

프로필 이미지
통큰베팅
2017-02-08
1
글번호 106643
시스템
답변완료

zero-lagging 이평정의

안녕하세요? 수식작성 Q&A중 7722번을 보면 zero-lagging 이평이 나오는 데요 수식은 아래와 같고요 input : Period(20); var : EMA1(0),EMA2(0),Difference(0),ZeroLagEMA(0); EMA1 = Ema(C,Period); EMA2 = Ema(EMA1,Period); Difference = EMA1 - EMA2; ZeroLagEMA = EMA1 + Difference; plot1(ZeroLagEMA); 저는 이 zero-lagging 을 이용하여 사칙연산 등 기타 응용을 하려보니 사용자 함수로 정의할 필요성을 느꼈습니다. zero-lagging 이평(ma) 약어는 ZLMA로 하려고합니다 사용례는 종가 ZLMA(C,30) 또는 고저종 ZLMA(((H+L+C)/3),30)등(30은 Period 입니다. 변동합니다) 가격을 다양하게 하고 싶는데 정의 하기가 어려운가요? 종가,고저종 이것을 바꾸기 어렵다면 좀 번거롭겠지만 종가 함수로 ZLMAC정의하고 , 고저종 함수로 ZLMAHLC 따로 정의해도 되고요. 그래서 만약 따로 정의하면 ZLMAC(30),ZLMAHLC(30)이렇게 사용하게 되나요? 사용자함수 정의 부탁합니다
프로필 이미지
knoll
2017-02-08
156
글번호 106641
사용자 함수
답변완료

질문드립니다.

질문1 (지표) 5일선이 20일선 위에 있을때 1, 아래있을때 -1 이렇게 값을 주고 20일동안 누적해서 보고싶은데 어떻게 해야하나요?? 질문2 (검색) 5일선 > 20일선 > 60일선이 N일전(5일전) 만족하고 현재도 유효한 종목을 찾고싶습니다. ------------N-------------- 조건만족X 조건만족유지
프로필 이미지
확실한수익
2017-02-08
125
글번호 106638
지표
답변완료

시스템문의드립니다.

input : P5(5), P20(20), P60(60), get(25), cut(25); var : mav2(0,data2), mav19(0,data2), mav20(0,data2), mav60(0,data2), tic20(0), tic60(0), tic5(0); mav2 = data2(c); mav19 = data2(c[19]); mav20 = data2(c[20]); mav60 = data2(c[60]); tic20=ma(c,P20); tic60=ma(c,P60); tic5=ma(c,P5); if stime >= 170000 or stime < 030000 Then{ if c>mav20 and c>mav19 then{ if crossup(tic5,tic20) or crossup(tic5,tic60) then{ if MarketPosition == 0 Then buy("매수"); if MarketPosition == -1 Then buy("리버스매수"); } } if c<mav20 and c<mav19 then{ if CrossDown(tic5,tic20) or crossdown(tic5,tic60) then{ if MarketPosition == 0 Then sell("매도"); if MarketPosition == 1 Then sell("리버스매도"); } } } if stime >= 220000 or stime < 030000 Then{ if c<mav20 and c<mav19 then exitlong("불매수청산"); if c>mav20 and c>mav19 Then ExitShort("불매도청산"); } SetStopProfittarget(PriceScale*get,PointStop); SetStopLoss(PriceScale*cut,PointStop); if stime == 030000 or (stime > 030000 and stime[1] < 030000) Then{ exitlong(); ExitShort(); } =============================================== 1.수식작성해 봤는데 1번그림처럼 신호가 누락되어서 나옵니다; 시스템적용눌러서 다시 시스템적용하면2번그림처럼 신호가 또 나오고 그렇네요 뭐가 잘못된거 같은데 수식 수정좀 부탁드립니다. 수식조건은아래입니다. 장기분봉이 참조 된 상황에서 장기분봉의 20봉전보다 현재틱봉의종가가높고 19봉전보다 현재틱봉종가가높을때 틱봉에서 5이평과20이평골든크로스 매수 또는 5이평과60이평골든크로스매수 -"매수"와 "리버스매수구분" ------------------------------------------- 장기분봉의 20봉전보다 현재틱봉의종가가낮고 19봉전보다 현재틱봉종가가낮을때 틱봉에서 5이평과20이평데드크로스 매도 또는 5이평과60이평데드크로스매도 -"매도"와 "리버스매도"구분. 시간은 오후5시~새벽3시까지만 거래하도록하고 손절익절은25틱씩적용 25틱익절시에는"목표익절" 25틱손절시에는"제한손절" 오후10시~새벽3시에는 손절익절기준25틱과 함께 현재틱봉의종가가 장기분봉20봉전보다 낮거나 장기분봉19봉전보다 낮을때 "불매수청산" 현재틱봉의종가가 장기분봉20봉전보다 높거나 장기분봉19봉전보다 높을때 "불매도청산" 2. 예스스팟에서 신호이름별로 소스를 만들었는데요 엑셀에 제대로 기록이 안되네요 아래소스도 수정부탁드립니다. xls엑셀파일97~03년파일형식으로 참조해 놨습니다. 차트이름도 예제나와있는대로 설정했구요. function C1_OnRiseSignal(Signal) { if (Signal.name == "매수") { Excel1.SetData(1, A1, 1) } if (Signal.name == "리버스매수") { Excel1.SetData(1, B1, 1) } if (Signal.name == "매도") { Excel1.SetData(1, C1, 1) } if (Signal.name == "리버스매도") { Excel1.SetData(1, D1, 1) } if (Signal.name == "불매수청산") { Excel1.SetData(1, E1, 1) } if (Signal.name == "불매도청산") { Excel1.SetData(1, F1, 1) } } 3.그림3번에서처럼 틱봉에 장기분봉데이터를 참조하면 틱봉이 중간중간 비거든요 제가 틱봉차트보면서 수동으로도 매매를 해야되는 상황이라서요 참조했을때 틱봉사이가 비는건 어쩔 수 없는 부분같고 참조가 안된 틱차트에 신호만 따로 표시할 수 있는 방법이 있을까요? 예스스팟에 확장차트객체가 있던데 이걸로도 가능할지 모르겠네요. 4.검색수식을 이용해서 30분단위 세로선을 표현했는데요 추세선형식으로 세로선으로 나오는데 클릭하니깐 없어져 버리거나 어떨땐 클릭되어서 다른쪽으로 이동되기도 하고 그렇네요 클릭해도 안없어지고 다른쪽으로 이동되지도 않도록 설정하는 방법이 있을까요 5.전에 강세약세 방법을 여쭤봐서 채우기방식으로 적용했는데 분봉에서는 제대로 적용이 됩니다 근데 일봉에 적용해 보니깐 4번그림에서 세로선이 일봉의 봉간격에 맞지않고 제대로 표시가 안되네요~ 일봉간격에 맞게 표시할 수 있는 방법이 있는지요~ 매번 도움많이 얻어서 감사합니다 좋은하루 되시구요!
프로필 이미지
겐지
2017-02-08
259
글번호 106629
시스템