커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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
207
글번호 106650
시스템
답변완료

문의드립니다

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

질문드립니다.

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

수식부탁드립니다

1. 현재 캔들 고가-(D-1캔들진폭+D-2캔들 진폭)을 그린다 현재 캔들 저가+(D-1캔들진폭+D-2캔들 진폭)을 그린다 2. 현재 캔들 고가-(D-1캔들~D-2캔들 진폭)을 그린다 현재 캔들 저가+(D-1캔들~D-2캔들 진폭)을 그린다 D-1캔들~D-2캔들 진폭 =D-1캔들 고가와 D-2캔들 고가 중 최고가에서 D-1캔들 저가와 D-2캔들 저가 중 최저가를 뺀 진폭 3. D-1캔들 고가 돌파 매수,현재 캔들 저가+(D-1캔들진폭+D-2캔들 진폭) 청산 D-1캔들 저가 붕괴 매도,현재 캔들 고가-(D-1캔들진폭+D-2캔들 진폭) 청산 4. D-1캔들 고가 돌파 매수,매수가+매수 캔들 기준 (D-1캔들진폭+D-2캔들 진폭) 청산 D-1캔들 저가 붕괴 매도,매도가-매도 캔들 기준 (D-1캔들진폭+D-2캔들 진폭) 청산 5. D-1캔들 고가 돌파 매수,현재 캔들 저가+(D-1캔들~D-2캔들 진폭) 청산 D-1캔들 저가 붕괴 매도,현재 캔들 고가-(D-1캔들~D-2캔들 진폭) 청산 6. D-1캔들 고가 돌파 매수,매수가+ 매수 캔들 기준 (D-1캔들~D-2캔들 진폭) 청산 D-1캔들 저가 붕괴 매도,매도가- 매도 캔들 기준 (D-1캔들~D-2캔들 진폭) 청산 감사합니다
프로필 이미지
회원
2017-02-08
147
글번호 106626
지표
답변완료

시스템식 부탁합니다

수고 많으십니다 첨부한 사진에서 아래의 macd지표는 macd값이 이전값보다 크면 빨간색, macd값이 이전값보다 작으면 파란색으로 나타나게 한 것으로 다음 수식을 이용하였읍니다 input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); if value > value[1] Then Plot1(value, "MACD",RED); Else Plot1(value, "MACD",BLUE); PlotBaseLine1(0, "기준선1"); 여기에서 시스템식을 구현하고 싶은데, 매도신호 - 파란색이 나온 이후 빨간색이 나왔다가 다시 파란색이 나온 지점이 이전에 파란색이 처음 나온 지점보다 macd값이 작으면 매도신호(1에서 macd값이 하락반전되고 다시 상승전환 하였다가 2에서 다시 하락반전 되었는데, 여기서 2의 macd값이 1의 macd값보다 작으면 매도신호) 매수신호 - 빨간색이 나온 이후 파란색이 나왔다가 다시 빨간색이 나온 지점이 이전에 빨간색이 처음 나온 지점보다 macd값이 크면 매수신호(4에서 macd값이 상승전환되고 다시 하락반전 하였다가 5에서 상승전환 되었는데, 여기서 5의 macd값이 4의 macd값보다 크면 매수신호) 로 나타나도록 부탁합니다. 변수는 변경 가능하면 좋겠읍니다. (신호가 나올만한 봉 위에 매수, 매도 신호를 화살표로 넣어봤읍니다) 감사합니다
프로필 이미지
소라비
2017-02-08
109
글번호 106625
시스템
답변완료

손실거래 제한 수식에 대해.

loss < 3 Profit < 6 손실을 3회로 제한하고 수익을 6회로 제한한 수식을 이용하고 있는데요... 손실3회 발생하고 나서 거래가 종료가 되는 것이 아니라 다음 신호에서 진입을 합니다. 수익거래를 6회로 제한해서 발생한것인데요.. MACD 거래는 스위치 거래를 하는데... 만약 위와 같은 수식으로 시스템이 짜여 있다면, 마지막 거래가 수익거래인지 아닌지 모르고 들어갔는데 결국 손실(반대신호발생)이 난다면(손실거래수4회) 스위칭이 안되고 종료가 되었으면 합니다. 현재는 손실거래 3회가 되었고, 마지막 신호 진입을 했고.. 손실거래 3회로 되어있으니 마지막 반대 신호 발행을 안하고 계속 미청산으로 갑니다. ---------------------------------- 손실거래가 그림에서 보면 3회로 잡혀있는데요.. 1번,2번,4번으로 보이는데요...2번은 슬리피지와 수수료 때문에 손실거래로 잡힌 듯 하는데요.. 2번은 손실거래에서 제외 가능할련지요. ------------------------------------------------ 그래프 2도 비슷한 거라 첨부 합니다. 세팅은 같습니다. var : count(0),Profit(0),Loss(0); Profit = 0 ; loss = 0; for Value1 = 0 to 10 { if EntryDate(Value1) == sdate and PositionProfit(value1) > 0 then Profit = Profit + 1; if EntryDate(Value1) == sdate and PositionProfit(value1) < 0 then loss = loss + 1; } If (조건식 and loss < 3 and Profit < 6) Then Buy ("매수"); If (조건식 and loss < 3 and Profit < 6) Then Sell ("매도"); -------------------------------------------------------------- 그래프2: 현재 세팅에서 보이는 그래프2 이구요.. 원래는 1번 본청, 2번 수익, 3번 손실,손실 5번 수익.. 내용은 길지만. 잘 부탁드립니다. 이렇게 나와야 하는데.. 신호는 4번까지만 그려지고 4번에서 매도인 상태에서 장마감까지 갑니다. 원하는 수식은 만약 1번,2번, 3번 손절이 되었으면 4번에서 (Profit < 6)이라 한 번 더 진입하고 여기에서 손절 나면 매매끝, 수익나면 또 진입입니다.결과적으론 손절 4가 날 때 까지 이겠네요.
프로필 이미지
타잔94
2017-02-08
138
글번호 106624
시스템