커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

시스템 수식하나만 더 요청좀 드리겠습니다.

안녕하세요 하나더 요청좀 드리겠습니다. 기존 수식에서 매수는 그대로가는데 매도신호일시 3개의 매도신호중 하나만 신호가 나와도 매수신호3개를 모두청산하는수식은 어떻게 만들면될까요? -------------------------------------------- 안녕하세요 예스스탁입니다. 피라미딩을 다른진입신호만 허용으로 설정하고 적용하시면 됩니다. Input : short(12), long(26), signal(9); Input : Period(9); var : RSIV(0),MACDV(0) , MACDS(0) ; MACDV = MACD(short, long); MACDS = ema(MACDV,signal); RSIV = RSI(Period); if CrossUp(macdv,macds) Then Buy("Macd signal Up"); if CrossUp(macdv,0) Then Buy("Macd 0 Up"); if CrossUp(rsiv,30) Then Buy("Rsi Up"); if CrossDown(macdv,macds) Then Sell("Macd signal Down"); if CrossDown(macdv,0) Then Sell("Macd 0 Down"); if CrossDown(rsiv,30) Then Sell("Rsi Dwon"); 즐거운 하루되세요 > 좀잘해보자 님이 쓴 글입니다. > 제목 : 시스템 수식좀 부탁드리겠습니다. > 이시스템 수식 좀 만들어주실수일을까요?? buy 1.macd가 macd signal 돌파 2.macd가 0을돌파 3.rsi 35돌파 이중1개라도 신호가올시 매수 (1개만 매수신호가오는게아니라 1번신호 1차매수,2번신호2차매수, 3번신호 3차매수 이렇게 매수신호가 세개가뜨도록 부탁드립니다.)-매도도마찬가지 단, 1번의경우 macd signal 2번의경우 macd 0 3번의경우 rsi up 로 매수표시 sell macd signal가 macd 크로스 macd가 0을 내려감 rsi 70에서 내려옴 단, 1번의경우 macd signal 2번의경우 macd 0 3번의경우 rsi down 로 매수표시 이렇게 가능할까요?? 각기 다르게 표현할수없다면 수식만 좀부탁드리겠습니다. 이중1개라도 신호가올시 매도
프로필 이미지
좀잘해보자
2021-04-28
1599
글번호 148493
시스템
답변완료

답변주신 시스템 수식 추가좀 부탁드리겠습니다.

기존 문의에대한 수식 잘받았습니다. 여기에 ADX를 추가하고싶습니다. 예스트레이더기준 1.+DI가 -DI보다 높을때 기존 수식을 실행한다 2.-DI가 +DI보다 낮을때 기존 수식을 실행하지않는다. 남아있는 매수신호가 있을시 모두 청산한다 이부분을 추가해서 부탁좀드리겠습니다. 매번감사합니다. ------------------------------------------------------- 안녕하세요 예스스탁입니다. 피라미딩을 다른진입신호만 허용으로 설정하고 적용하시면 됩니다. Input : short(12), long(26), signal(9); Input : Period(9); var : RSIV(0),MACDV(0) , MACDS(0) ; MACDV = MACD(short, long); MACDS = ema(MACDV,signal); RSIV = RSI(Period); if CrossUp(macdv,macds) Then Buy("Macd signal Up"); if CrossUp(macdv,0) Then Buy("Macd 0 Up"); if CrossUp(rsiv,30) Then Buy("Rsi Up"); if CrossDown(macdv,macds) Then Sell("Macd signal Down"); if CrossDown(macdv,0) Then Sell("Macd 0 Down"); if CrossDown(rsiv,30) Then Sell("Rsi Dwon"); 즐거운 하루되세요 > 좀잘해보자 님이 쓴 글입니다. > 제목 : 시스템 수식좀 부탁드리겠습니다. > 이시스템 수식 좀 만들어주실수일을까요?? buy 1.macd가 macd signal 돌파 2.macd가 0을돌파 3.rsi 35돌파 이중1개라도 신호가올시 매수 (1개만 매수신호가오는게아니라 1번신호 1차매수,2번신호2차매수, 3번신호 3차매수 이렇게 매수신호가 세개가뜨도록 부탁드립니다.)-매도도마찬가지 단, 1번의경우 macd signal 2번의경우 macd 0 3번의경우 rsi up 로 매수표시 sell macd signal가 macd 크로스 macd가 0을 내려감 rsi 70에서 내려옴 단, 1번의경우 macd signal 2번의경우 macd 0 3번의경우 rsi down 로 매수표시 이렇게 가능할까요?? 각기 다르게 표현할수없다면 수식만 좀부탁드리겠습니다. 이중1개라도 신호가올시 매도
프로필 이미지
좀잘해보자
2021-04-28
1678
글번호 148492
시스템
답변완료

보내주신 함수식 설명좀 부탁드릴게요

받아본 수식에 의하면 예를 들어 20과 60이 골든 크로스한 조건이 만족하고, 20선이 변곡이 나오고단다음, 5선이 변곡이 나올때 콜을 들어가는 조건인건데요.. K == 1 Then { if K != K[1] Then Bcnt = 0; if B == 2 and B != B[1] Then { Bcnt = Bcnt+1; if MarketPosition <= 0 and Bcnt < 3 Then Buy("콜"); } } 이부분이 잘 이해가 안가서요.. Bcnt란 값을 넣어줘서 Bcnt = Bcnt + 1 값으로 Bcnt < 3 일때 매수하는 수식을 만드는 부분이 잘 이해가 안되네요... 이것도 변곡있는 부분에서 매수하는것을 말하는것 같은데요... 설명좀 부탁드립니다 /////////////////////////////////////// var : Period1(3),Period2(10),Period3(30),Period4(120),U(0),K(0),W(0),N(0),X(0),Y(0),Z(0); var : B(0),S(0),Bcnt(0),Scnt(0); var26 = ema(Ema(Ema(c,period1),period1),period1); //5선 var27 = ema(Ema(Ema(c,period2),period2),period2); //20선 Var28 = ema(Ema(Ema(c,period3),period3),period3); //60선 Var29 = ema(Ema(Ema(c,period4),period4),period4); //240선 //5-20 cross if CrossUp(Var26,Var27) Then U = 1; if CrossDown(Var26,Var27) Then U = -1; //20-60 cross if CrossUp(Var27,Var28) Then K = 1; if CrossDown(Var27,Var28) Then K = -1; //60-240 cross if CrossUp(Var28,Var29) Then W = 1; if CrossDown(Var28,Var29) Then W = -1; //5-60 cross if CrossUp(Var26,Var28) Then N = 1; if CrossDown(Var26,Var28) Then N = -1; //5선 상승하락 if Var26 > var26[1] Then X = 1; if Var26 < var26[1] Then X = -1; //20선 상승하락 if Var27 > var27[1] Then Y = 1; if Var27 < var27[1] Then Y = -1; //60선 상승하락 if Var28 > var28[1] Then Z = 1; if Var28 < var28[1] Then Z = -1; if W == 1 and Y == 1 Then { if Y != Y[1] Then { B = 1; } if B == 1 and C > O and (C+O)/2 >= var26 Then { B = 2; } } else B = 0; if W == -1 and Y == -1 Then { if Y != Y[1] Then { S = 1; } if S == 1 and C < O and (C+O)/2 <= var26 Then { S = 2; } } else S = 0; if K == 1 Then { if K != K[1] Then Bcnt = 0; if B == 2 and B != B[1] Then { Bcnt = Bcnt+1; if MarketPosition <= 0 and Bcnt < 3 Then Buy("콜"); } } if K == -1 Then { if K != K[1] Then Scnt = 0; if S == 2 and S != S[1] Then { Scnt = Scnt+1; if MarketPosition >= 0 and Scnt < 3 Then Sell("풋"); } } if MarketPosition == 1 Then { if U == 1 and CountIf(U == -1,BarsSinceEntry) == 0 and X == -1 and X != X[1] and CountIf(X == -1 and X != X[1],BarsSinceEntry) == 3 Then ExitLong("콜청산1"); if Y == -1 and C < O and (C+O)/2 <= var27 Then ExitLong("콜정산2"); } if MarketPosition == -1 Then { if U == -1 and CountIf(U == 1,BarsSinceEntry) == 0 and X == 1 and X != X[1] and CountIf(X == 1 and X != X[1],BarsSinceEntry) == 3 Then ExitShort("풋청산1"); if Y == 1 and C > O and (C+O)/2 >= Var27 Then ExitShort("풋정산2"); } SetStopEndofday(153000);
프로필 이미지
중추신경
2021-04-28
1405
글번호 148484
시스템
답변완료

지표수식 문의드립니다

안녕하세요~ 봉 간 갭 발생 시 신호를 발생시키고 싶은데요(모양은 원이든 십자든 상관없습니다.) 1. 현재 봉의 종가가 직전봉의 종가보다 높고, 현재 봉의 저가가 직전 봉의 고가보다 높거나, 2. 현재 봉의 종가가 직전봉의 종가보다 낮고, 현재 봉의 고가가 직전 봉의 저가보다 낮다. 이 두가지 경우일 경우 기본차트에 신호를 발생시키게 도와주시면 감사하겠습니다.
프로필 이미지
thecool
2021-04-28
1425
글번호 148481
지표
답변완료

지표로 사용하는 수식을 함수로 하려는데 부탁합니다.

지표로 사용하고 있는 수식을 함수로 정하고 싶습니다. 함수명을 SIA로 하는 함수로 하려는데 지표로 되어있는수식 제일아래 "plot1(A,"A라인");" 항목을 지우고 검증하는데 함수가 값을 리턴하고 있지 않다는 오류가 나네요.. var : SIA(0); Var20 = Ema(c,20); Var21 = Ema(c,21); Var22 = Ema(c,22); Var23 = Ema(c,23); Var24 = Ema(c,24); Var25 = Ema(c,25); Var26 = Ema(c,26); Var27 = Ema(c,27); Var28 = Ema(c,28); Var29 = Ema(c,29); Var30 = Ema(c,30); Var31 = Ema(c,31); Var32 = Ema(c,32); Var33 = Ema(c,33); Var34 = Ema(c,34); Var35 = Ema(c,35); SIA=(iff(var20>var20[1]*(1.003),1,0)+ iff(var21>var21[1]*(1.003),1,0)+ iff(var22>var22[1]*(1.003),1,0)+ iff(var23>var23[1]*(1.003),1,0)+ iff(var24>var24[1]*(1.003),1,0)+ iff(var25>var25[1]*(1.003),1,0)+ iff(var26>var26[1]*(1.003),1,0)+ iff(var27>var27[1]*(1.003),1,0)+ iff(var28>var28[1]*(1.003),1,0)+ iff(var29>var29[1]*(1.003),1,0)+ iff(var30>var30[1]*(1.003),1,0)+ iff(var31>var31[1]*(1.003),1,0)+ iff(var32>var32[1]*(1.003),1,0)+ iff(var33>var33[1]*(1.003),1,0)+ iff(var34>var34[1]*(1.003),1,0)+ iff(var35>var35[1]*(1.003),1,0))/16*100; plot1(SIA,"A라인");
프로필 이미지
track
2021-04-28
1588
글번호 148480
사용자 함수
답변완료

부탁드립니다.

항상 감사드립니다. 미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서, 미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서, 아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데, 가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다. If 055000<sTime and sTime<070000 and MarketPosition == 1 Then ExitLong("EL_EOD"); If 055000<sTime and sTime<070000 and MarketPosition == -1 Then ExitShort("ES_EOD"); 이 코딩에 간단한 무언가를 더 첨부해서, 05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면 대단히 감사하겠습니다.
프로필 이미지
즐겁게
2021-04-28
1758
글번호 148478
시스템
답변완료

수식확인 부탁드립니다.

1. ATR함수를 수식으로 구현 시 아래가 맞는지 확인부탁드립니다. > avg(max(max(high-low,abs(close[1]-high)),abs(close[1]-low)),Period) 2. n분봉 차트에서 직전 (n*5)분봉 하이킨아시 캔들의 고가,저가,종가값을 구하고싶습니다. ex) (09:01분) 1분봉 차트에서 (08:55~09:00분)에 해당하는 5분봉 하이킨아시 캔들의 고가, 저가, 종가 값 아래처럼 여러 수식을 참고하여 작성해봤으나 정확한 데이터가 검출되지 않습니다. 수식작성 부탁드립니다. Var: mm(1), j(0), calcPeriod(0), htf_h(0), htf_c(0), htf_l(0); Array:MinOpen[100](0), MinClose[100](0), MinHigh[100](0), MinLow[100](0); mm = BarInterval()*5; if mm >= BarInterval() then calcperiod = mm/BarInterval(); if DayIndex()%calcperiod == 0 then { for j = 98 downto 0 { MinHigh[j+1] = MinHigh[j]; MinLow[j+1] = MinLow[j]; MinClose[j+1] = MinClose[j]; } MinHigh[0] = H; MinLow[0] = L; MinClose[0] = (O + C + H + L)/4; } htf_h = minHigh[0]; htf_l = minLow[0]; htf_c = minClose[0];
프로필 이미지
dandan
2021-04-28
1610
글번호 148476
지표

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

프로필 이미지
timeless
2021-04-28
17
글번호 148475
지표
답변완료

시장검색 - 시가총액 상위종목 활용방법 문의

안녕하세요 종목검색에서 기능순으로 들어가면 시장검색 - 시가총액 상위종목 이 있는데요, KOSPI/KOSDAQ 구분 외에는 입력값을 받지 않습니다. 이대로 넣고 검색하면 그냥 KOSPI 전체종목을 보여주고 있는데요, 시가총액 상위 "50위"처럼 범위값을 넣고 and 조건으로 다른조건으로 검색하려면 어떻게 해야 할까요?
프로필 이미지
edan
2021-04-27
1056
글번호 148474
종목검색