커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 검토부탁드립니다.

아래와 같은 수식을 5분 챠트를 열어놓고, 10분봉을 참조로 불러와 매매하는 시스템입니다. 여기서 문제는, 예를 들어 05:00에 들어가서 05:05 에 바로 청산이 될경우, 05:05에 다시 매수진입을 하고 있습니다. 진입신호가 아님에도 불구하고, 진입후 5분후 청산될 경우, 청산과 동시에 다시 진입을 합니다. 10분뿐만 아니라 다른봉을 참조해도 마찬가지 결과입니다. 코드 검토 및 수정을 부탁드립니다. input : CT(0); // CT(1)=양봉 O<C , CT(0)=음봉 O>C input : N(5); input : Zero(0); var : TF(0),OpenV(0),CloseV(0),cnt(0),sellcond(false); var : count11(0),count12(0),count21(0),count22(0),count31(0),count32(0); var : A1max(0),a2max(0); Array : D1[20](0),A1[20](0),D2[20](0),A2[20](0),CC[20](0),OO[20](0); TF = TimeToMinutes(stime)%10; if dayindex == 0 or (TF < TF[1] ) Then openV = O; CloseV = C; if TF == 5 Then{ if CloseV > OpenV Then{ CC[0] = closeV; OO[0] = OpenV; D1[0] = 1; A1[0] = abs(OpenV-CloseV); D2[0] = 1; A2[0] = abs(OpenV-CloseV); for cnt = 1 to 19{ CC[cnt] = CC[cnt-1][1]; OO[cnt] = OO[cnt-1][1]; D1[cnt] = D1[cnt-1][1]; A1[cnt] = A1[cnt-1][1]; D2[cnt] = D1[cnt-1][1]; A2[cnt] = A1[cnt-1][1]; } } if CloseV < OpenV Then{ CC[0] = closeV; OO[0] = OpenV; D1[0] = -1; A1[0] = abs(OpenV-CloseV); D2[0] = -1; A2[0] = abs(OpenV-CloseV); for cnt = 1 to 19{ CC[cnt] = CC[cnt-1][1]; OO[cnt] = OO[cnt-1][1]; D1[cnt] = D1[cnt-1][1]; A1[cnt] = A1[cnt-1][1]; D2[cnt] = D2[cnt-1][1]; A2[cnt] = A2[cnt-1][1]; } } if CloseV == OpenV Then{ CC[0] = closeV; OO[0] = OpenV; D1[0] = 0; A1[0] = abs(OpenV-CloseV); for cnt = 1 to 19{ CC[cnt] = CC[cnt-1][1]; OO[cnt] = OO[cnt-1][1]; D1[cnt] = D1[cnt-1][1]; A1[cnt] = A1[cnt-1][1]; } } } sellcond = false; count11 = 0; count12 = 0; count21 = 0; count22 = 0; count31 = 0; count32 = 0; A1max = 0; A2max = 0; for cnt = 0 to N-1{ if D1[cnt] == 1 Then count11 = count11+1; if D1[cnt] == -1 Then count12 = count12+1; if D1[cnt] >= 0 Then count21 = count21+1; if D1[cnt] <= 0 Then count22 = count22+1; if D2[cnt] == 1 Then count31 = count31+1; if D2[cnt] == -1 Then count32 = count32+1; if A1[cnt] > A1max Then A1max = A1[cnt]; if A2[cnt] > A2max Then A2max = A2[cnt]; } if Zero == 0 Then{ if CT == 0 Then sellcond = count12 == N and A1[n-1] == A1max; if CT == 1 Then sellcond = count11 == N and A1[n-1] == A1max; } if Zero == 1 Then{ if CT == 0 Then sellcond = count22 == N and CC[N-1] < OO[N-1] and A1[n-1] == A1max; if CT == 1 Then sellcond = count21 == N and CC[N-1] > OO[N-1] and A1[n-1] == A1max; } if Zero == 2 Then{ if CT == 0 and count32 == N and A2[N-1] == A2max Then sellcond = true; if CT == 1 and count31 == N and A2[N-1] == A2max Then sellcond = true; } if sellcond == true Then buy("C", OnClose, DEF, 1); SetStopProfittarget(0.0012,PointStop); SetStopLoss(0.0040,PointStop);
프로필 이미지
파쿠3
2013-08-05
196
글번호 66066
시스템
답변완료

수식문의

정상출력이되는가 확인부탁합니다 검색식으로 작성해서 차트에 적용하시면 됩니다. if stime == 180000 or (stime > 180000 and stime[1] < 180000) Then{ var1 = H; var2 = L; var3 = var1[1]; var4 = var2[1]; } if stime >= 180000 or stime < 90000 Then{ if H > var1 Then var1 = H; if L < var2 Then var2 = L; } if stime >= 090000 and stime <= 151500 Then{ Text_Delete(value1); value1 = Text_New(sdate,stime,H+PriceScale*5,"전일야간고:"+NumToStr(var1,2) +NewLine+"전일야간저:"+NumToStr(var2,2)); Text_SetStyle(value1,2,2); } if stime >= 180000 or stime < 90000 Then{ Text_Delete(value1); value1 = Text_New(sdate,stime,H+PriceScale*5,"전일야간고:"+NumToStr(var3,2) +NewLine+"전일야간저:"+NumToStr(var4,2)); Text_SetStyle(value1,2,2); }
프로필 이미지
백진강
2013-08-05
176
글번호 66062
검색
답변완료

상위차트 지표

1분봉에서 30분봉 RSI를 그리는 수식 부탁드립니다.
프로필 이미지
무지개나날들
2013-08-05
177
글번호 66061
지표
답변완료

문의드립니다

1. 데이터2 의 전일고가 + 당일고가 와의 평균값 를 알고 싶습니다 2, 시스템식에서 매도신호가나왔는데 주가는 상방으로 올라가면 바로 매수로 전환 하는 식은 어케 되나요?
프로필 이미지
처음처럼22
2013-08-05
183
글번호 66060
지표
답변완료

로직 수정 부탁드립니다...

수고하십니다.. Easy랭귀지로 구현된 로직인데요.. 예스랭귀지로 수정 부탁드립니다.. Input: FastLen(9), SlowLen(18), ChLen(12), TrailBar(8), Initial(300), ReBars(15), Reentry(100); Vars: FastMA(0), SlowMA(0), LEntryPrice(0), SEntryPrice(0), LCount(-999), SCount(-999), ReEntryCount(0), CurrentPosition(0); FastMA = Average( Close , FastLen ); SlowMA = Average( Close , SlowLen ); { Order Placement for Long Positions } If FastMA crosses over SlowMA and barnumber > 1 then Begin LEntryPrice = Highest( High , TrailBar )[1] * 1.02; LCount = BarNumber; End; commentary( barnumber - lcount , lentryprice ); If MarketPosition <> 1 AND BarNumber < LCount + ChLen then Buy ("Cross Over Buy") Initial Shares next bar at LEntryPrice Stop; { Order Placement for Short Positions } If FastMA crosses under SlowMA and barnumber > 1 then Begin SEntryPrice = Lowest( Low , TrailBar )[1] *.98; SCount = BarNumber; End; If MarketPosition <> -1 AND BarNumber < SCount + ChLen then Sell ("Cross Under Buy") Initial Shares next bar at SEntryPrice Stop; { Trailing Stop while in Position } If MarketPosition = 1 then begin LCount = -999; ExitLong ("LongTStop") next bar at Lowest( Low , TrailBar ) Stop; End; If MarketPosition = -1 then Begin SCount = -999; ExitShort ("ShortTStop") next bar at Highest( High , TrailBar ) stop; End; { Reentry Technique } CurrentPosition = MarketPosition; If CurrentPosition = 0 AND CurrentPosition[1] = -1 then ReEntryCount = 1; If CurrentPosition = 0 AND CurrentPosition[1] = 1 then ReEntryCount = 1; If MarketPosition = 0 AND MarketPosition(1) = 1 AND ReEntryCount < ReBars then Begin ReEntryCount = ReEntryCount + 1; Buy ("Long ReEntry") ReEntry Shares next bar at Highest( High , 10 ) Stop; End; If MarketPosition = 0 AND MarketPosition(1) = -1 AND ReEntryCount < ReBars then Begin ReEntryCount = ReEntryCount + 1; Sell ("Short ReEntry") ReEntry Shares next bar at Lowest( Low , 10 ) Stop; End;
프로필 이미지
훨훨
2013-08-05
292
글번호 66059
시스템
답변완료

수식 작성 요청

1. 매수진입 &#8227; 50일 이평선 > 200일 이평선 정배열에서 &#8227; 50일 이평선×(1 + 1%) 상향 돌파시 매수 진입 ※ 이평선 역배열(200일 이평선 > 50일 이평선)에서 주가가 상승하여 주가 > 200일 이평선 > 50일 이평선이 되고, 이후 주가가 더 상승해서 50일 이평선이 200일 이평선 위로 올라와 주가 > 50일 이평선 > 200일 이평선 정배열이 된 직후에는 매수가 발생되지 않게 수식을 만들어 주시면 감사하겠습니다. 2. 매수청산 &#8227; 50일 이평선×(1-1%) 하향 돌파시 매수청산 3. 진입수량 &#8227; 아래 계산식에서 나온 값의 수량(원단위 절사)을 매수하게 해주세요. 진입수량(원단위 절사) = (계좌 자산금액의 2%) ÷ (매수시 50일 이평선값의 2%)
프로필 이미지
무심
2013-08-04
184
글번호 66058
시스템
답변완료

수식문의

당일 진입 회수를 아래와 같이 나타낼 경우, 장 시작 후 12시 이전에 진입한 경우는 당일 진입 회수에서 제외하는 수식을 부탁드립니다. var : EntryCnt(0), EntryCount(0); #---------------------------------------- EntryCount=0; for EntryCnt=0 to 10 { if sdate==EntryDate(EntryCnt) then EntryCount= EntryCount +1 ; }
프로필 이미지
쉬어가자
2013-08-04
175
글번호 66057
시스템
답변완료

수식문의드립니다

1분봉에서 코스피 외국인순매수 > 100 and 기관순매수합계 > 100 일때 분봉고가가 당일고가이고 종가가 시가보다 높고(양봉) 거래량1000이상, 선물미결제약정이 +100 이상이면 매수 종가가 (당일고가+당일저가)/2 아래에서 끝나면 손절 코스피 외국인순매수 < -100 and 기관순매수합계 < -100 일때 분봉고가가 당일저가이고 종가가 시가보다 낮고(음봉) 거래량1000이상, 선물미결제약정이 +100 이상이면 매도 종가가 (당일고가+당일저가)/2 위에서 끝나면 손절 여기서 외국인순매수, 기관순매수,미결제약정 증가량과, 거래량 을 변수로 놓고 최적화도 해보고싶습니다
프로필 이미지
아싸라삐
2013-08-04
213
글번호 66056
시스템
답변완료

지표식 문의 드립니다.

분봉에서 1.일봉의 cci 2.주봉의 cci를 구현하는 수식 부탁드립니다. 늘 감사드립니다.
프로필 이미지
빈둥빈둥
2013-08-04
172
글번호 66054
지표