커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의

1. 최근 N봉 기준이 궁금합니다. 현재봉부터 과거봉까지 N개 인가요? 2. 요청내용 데이트레이딩(당일 청산)에 사용할 수식입니다. 1.최근 N봉 기준 : 금일 및 금일 이전 과거봉 포함(답변주신 수식을 사용하면 되는지요?) 2.최근 N봉 기준 : 금일만 해당(답변수식을 수정하여 주십시요) ********************************************************************************* 안녕하세요 예스스탁입니다. 갯수를 세기위해서는 구간이 필요합니다. 최근 N봉 기준으로 작성해 드립니다. input : N(20),비율(70); var : ma1(0), ma2(0); ma1 = ma(C,5); ma2 = ma(C,20); var1 = countif(C>O,N); var2 = countif(C<O,N); if CrossDown(ma1, ma2) and var2/var1*100 >= 비율 then sell();
프로필 이미지
목마와숙녀
2019-06-30
165
글번호 129873
시스템

목마와숙녀 님에 의해서 삭제되었습니다.

프로필 이미지
목마와숙녀
2019-06-29
0
글번호 129872
시스템
답변완료

검색식 부탁드려 봅니다.

예를 들어, 1.그림의 주가에 ADX, DI+,DI- 위 세 가지 선 중에서 [ DI+ ] 선을 기준으로 [ ADX ] 선은 위에, [ DI- ] 선은 아래에, [ ADX ], [ DI- ] 선이 [ DI+ ] 선을 기준으로 고저차가 같거나 다르게 임의로 설정가능하게 해서 해당되는 종목을 찾게 할 수는 없는지요. 2. [ ADX ]가 N일만큼 상승했을 때 또는 하락했을 때의 조건을 위 1번과 조합할 수 있는지요.
프로필 이미지
회원
2019-06-29
189
글번호 129871
검색
답변완료

수식부탁드립니다

#,안녕하세요 아래수식과 그림파일참조하여 수식추가 부탁드립니다. input : 굵기(0); var : 매수1(0),매도1(0),매수2(0),매도2(0); var1 = ema(C,5); var2 = ema(C,20); if crossup(var1,var2) Then 매도1 = var2; if 매도1 > 0 and var2 > 매도1 Then 매도1 = var2; if CrossDown(var1,var2) Then 매수1 = var2; if 매수1 > 0 and var2 < 매수1 Then 매수1 = var2; 매도2=매도1-0.02; 매수2=매수1+0.02; plot1(매도1,"매도1",CYAN,def,굵기); plot2(매수1,"매수1",YELLOW,def,굵기); plot3(var2,"이평",iff(var2>var2[1],YELLOW,CYAN),def,굵기); ##,그림파일 1~4번라인표기를 참조하여 질문드립니다 1,1번과 2번의 중심선을 파일그림처럼 2번라인 시작점부터 끝점까지의 길이만큼 수평그리기한다. 2, 3번과 4번의 중심선을 파일그림처럼 4번라인 시작점부터 끝점까지의 길이만큼 수평그리기한다. 3, 1번이 3번보다클때(1>3) ,2번이 4번보다클때(2>4)에만 즉 현재가가 하방진행시 (매도라인)에만 중심선을 그린다. ###,위 3가지 조건에 부합되게 중심선을 그리기하고 중심값을 표시하고 싶습니다, 도움 부탁드립니다, $,언제나 늘 고맙습니다
프로필 이미지
회원
2019-07-01
205
글번호 129870
지표
답변완료

캔들이평돌파

캔들이 20일이평선 상향돌파하자마자 시장가로 매수 된후 30틱 손절 60틱 익절 로 1계약 식과 &#44085;들이 20일이평선 하향돌파하자마사 시장가로 매수 된후 30틱 손절 60틱 익절로 1계약 식 알려주시면 감사하겠습니다.
프로필 이미지
100억번남
2019-06-29
215
글번호 129869
시스템
답변완료

수식부탁드립니다

캔들차트중에 하이켄아쉬라는 차트가 있던데 그걸 구현하는 수식 부탁드립니다
프로필 이미지
초보트레이더11
2019-06-29
206
글번호 129868
지표
답변완료

시스템 오류수정 부탁합니다.

아래 시스템식 오류수정 부탁합니다. Input:주가파동기간(7),지표파동기간(10),유효기간(40); Var:j(0),k(0),value(0),n1(0),n2(0),추세선(0),다이버전스(0),다이버전스Bar(0), 상승(100),하락(-100); Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0), 지표고[10](0),지표저[10](0),지표고Bar[10](0),지표저Bar[10](0); #=========================================================# # 초기처리 (Initialize Routine) #=========================================================# n1 = 주가파동기간; n2 = 지표파동기간; value = ema(MACD(12, 26),9); //value = stochasticsD(12,5,5); for j = 1 to 9 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 지표고Bar[j] = 지표고Bar[j] + 1; 지표저Bar[j] = 지표저Bar[j] + 1; } 다이버전스Bar = 다이버전스Bar + 1; #=========================================================# # 주가 Swing 계산 #=========================================================# #---------------------------------------------------------# # 전고점(Peak) 계산 #---------------------------------------------------------# if Highest(H,n1)[n1+1] <= H[n1] and H[n1] > Highest(H,n1) then { for j = 8 downto 1 { 고[j+1]= 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1]= H[n1]; 고Bar[1] = n1; if 저Bar[1] > 고Bar[2] then { for j = 8 downto 1 { 저[j+1]= 저[j]; 저Bar[j+1] = 저Bar[j]; } k = n1 + 1; for j = n1 + 2 to 고Bar[2]-1 { if L[k] > L[j] then k = j; } 저[1]= L[k]; 저Bar[1] = k; } } #---------------------------------------------------------# # 전저점(Trough) 계산 #---------------------------------------------------------# if Lowest(L,n1)[n1+1] >= L[n1] and L[n1] < Lowest(L,n1) then { for j = 8 downto 1 { 저[j+1]= 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1]= L[n1]; 저Bar[1] = n1; if 고Bar[1] > 저Bar[2] then { for j = 8 downto 1 { 고[j+1]= 고[j]; 고Bar[j+1] = 고Bar[j]; } k = n1 + 1; for j = n1 + 2 to 저Bar[2]-1 { if H[k] < H[j] then k = j; } 고[1]= H[k]; 고Bar[1] = k; } } #=========================================================# # 지표식 Swing 계산 #=========================================================# #---------------------------------------------------------# # 전고점(Peak) 계산 #---------------------------------------------------------# if Highest(value,n2)[n2+1] <= value[n2] and value[n2] > Highest(value,n2) then { for j = 8 downto 1 {//배열값을 순차적으로 바꿔준다 지표고[j+1]= 지표고[j]; 지표고Bar[j+1] = 지표고Bar[j]; } k = n2 + 1; for j = n2 + 2 to 지표고Bar[2]-1 { if value[k] > value[j] then k = j; } 지표저[1]= value[k]; 지표저Bar[1] = k; } } #---------------------------------------------------------# # 전저점(Trough) 계산 #---------------------------------------------------------# if Lowest(value,n2)[n2+1] >= value[n2] and value[n2] < Lowest(value,n2) then { for j = 8 downto 1 { 지표저[j+1]= 지표저[j]; 지표저Bar[j+1] = 지표저Bar[j]; } 지표저[1]= value[n2]; 지표저Bar[1] = n2; if 지표고Bar[1] > 지표저Bar[2] then { for j = 8 downto 1 { 지표고[j+1]= 지표고[j]; 지표고Bar[j+1] = 지표고Bar[j]; } k = n2 + 1; for j = n2 + 2 to 지표저Bar[2]-1 { if value[k] < value[j] then k = j; } 지표고[1]= value[k]; 지표고Bar[1] = k; } } #=========================================================# # 다이버전스 계산 #=========================================================# if 고Bar[1] == n1 or 지표고Bar[1] == n2 or 저Bar[1] == n1 or 지표저Bar[1] == n2 then { if 고[2] < 고[1] and 지표고[2] > 지표고[1] then { 다이버전스= 하락; 다이버전스Bar = 0; } else if 저[2] > 저[1] and 지표저[2] < 지표저[1] then { 다이버전스= 상승; 다이버전스Bar = 0; } } if 다이버전스Bar > 유효기간 then 다이버전스 = 0; #=========================================================# # 추세선 계산 #=========================================================# if 다이버전스 == 상승 then { 추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1]) * 고Bar[2] + 고[2]; } if 다이버전스 == 하락 then { 추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1]) * 저Bar[2] + 저[2]; } if 다이버전스 == 0 then { 추세선 = 0; } #=========================================================# # 시스템 식 #=========================================================# if 다이버전스 == 상승 and C > ma(C,20) and CrossUp(C,추세선) then Buy(); if 다이버전스 == 하락 and C < ma(C,20) and CrossDown(C,추세선) then Sell();
프로필 이미지
이대표
2019-06-29
182
글번호 129867
시스템
답변완료

오류수정 부탁

아래 시스템식에서 선업되지 않은 이름 i가 사용되었습니다. 라는 오류가 떠서 오류수정부탁 드립니다. Input:n(5),미완성사용(True); Var:j(0),k(0),고점표시(0),저점표시(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), 고idx[20](0),저idx[20](0); #---------------------------------------------------------# # Index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가 #---------------------------------------------------------# for j = 1 to 19 { 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; 고iDx[j] = I - 고Bar[j]; 저idx[j] = I - 저Bar[j]; } 고점표시=(O[n]+C[n])/2; 저점표시=(O[n]+C[n])/2; #=========================================================# # 주처리 (Main Routine) 파동선 계산 #=========================================================# # 전고점(Peak) 계산 #---------------------------------------------------------# //Highest(H,2)[3] <= H[2] and H[2] > Highest(H,2) if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then { if 미완성사용 == True then { for j = 18 downto 1 { //배열값을 순차적으로 바꿔준다 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 고idx[j+1] = 고idx[j]; } 고[1]= H[n]; 고Bar[1] = n; 고idx[1] = I - 고Bar[1]; 고점표시 = 고[1]*1.005; if 저Bar[1] > 고Bar[2] then { for j = 18 downto 1 { 저[j+1]= 저[j]; 저Bar[j+1] = 저Bar[j]; 저idx[j+1] = 저idx[j]; } k = n + 1; for j = n+ 2 to 고Bar[2]-1 { if L[k] > L[j] then k = j; } 저[1]= L[K]; 저Bar[1] = k; 저idx[1] = i - 저Bar[1]; } } if 미완성사용 == False then { if 고Bar[1] > 저Bar[1] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 고Idx[j+1] = 고Idx[j]; } } if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then { 고[1]= H[n]; 고Bar[1] = n; 고Idx[1] = i -고Bar[1]; 고점표시 = 고[1]*1.005; } } } if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then { if 미완성사용 == True then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; 저Idx[j+1] = 저Idx[j]; } 저[1]= L[n]; 저Bar[1] = n; 저Idx[1] = i - 저Bar[1]; 저점표시 = 저[1]*0.995; if 고Bar[1] > 저Bar[2] then { for j = 18 downto 1 { 고[j+1]= 고[j]; 고Bar[j+1] = 고Bar[j]; 고Idx[j+1] = 고Idx[j]; } k = n + 1; for j = n + 2 to 저Bar[2]-1 { if H[k] < H[j] then k = j; } 고[1]= H[k]; 고Bar[1] = k; 고Idx[1] = i - 고Bar[1]; } } if 미완성사용 == False then { if 저Bar[1] > 고Bar[1] then { for j = 18 downto 1 { 저[j+1]= 저[j]; 저Bar[j+1] = 저Bar[j]; 저Idx[j+1] = 저Idx[j]; } } if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then { 저[1]= L[n]; 저Bar[1] = n; 저Idx[1] = i - 저Bar[1]; 저점표시 = 저[1]*0.995; } } } if 고점표시 > H[n] then Plot1(고점표시,"전고점",RED); if 저점표시 < L[n] then Plot2(저점표시,"전저점",BLUE); if 고Bar[1]==n and 고[1] > 0 then Plot3(고[1]); if 저Bar[1]==n and 저[1] > 0 then Plot3(저[1]); if 저Bar[1]==n and 저[1] > 0 then Plot4(저[1]); if 고Bar[1]==n and 고[1] > 0 then Plot4(고[1]);
프로필 이미지
이대표
2019-06-29
169
글번호 129866
시스템
답변완료

확인좀 부탁 드립니다.

* 아래글 < 63046 > 다시 확인좁 부탁 드립니다. * 아래식으로 적용 하니까 이상 하게 청산됨니다. 즉 10틱 이상 최대 수익이면 60% 선에서 청산이 안됨니다. * 확인 좀 부탁 드립니다. ################################## var : EH(0),EL(0); if MarketPosition == 1 then { EH = highest(H,BarsSinceEntry); if EH < EntryPrice+PriceScale*10 Then ExitLong("bx1",AtStop,EH*0.50); if EH >= EntryPrice+PriceScale*10 and EH < EntryPrice+PriceScale*30 Then ExitLong("bx2",AtStop,EH*0.60); if EH >= EntryPrice+PriceScale*30 and EH < EntryPrice+PriceScale*40 Then ExitLong("bx3",AtStop,EH*0.70); if EH >= EntryPrice+PriceScale*40 and EH < EntryPrice+PriceScale*50 Then ExitLong("bx4",AtStop,EH*0.80); if EH >= EntryPrice+PriceScale*50 Then ExitLong("bx5",AtStop,EH*0.90); } if MarketPosition == -1 then { EL = highest(H,BarsSinceEntry); if EL > EntryPrice-PriceScale*10 Then ExitShort("sx1",AtStop,EL*1.50); if EL <= EntryPrice-PriceScale*10 and EL > EntryPrice-PriceScale*30 Then ExitShort("sx2",AtStop,EL*1.40); if EL <= EntryPrice-PriceScale*30 and EL > EntryPrice-PriceScale*40 Then ExitShort("sx3",AtStop,EL*1.30); if EL <= EntryPrice-PriceScale*40 and EL > EntryPrice-PriceScale*50 Then ExitShort("sx4",AtStop,EL*1.20); if EL <= EntryPrice-PriceScale*50 Then ExitShort("sx5",AtStop,EL*1.10); } ################ 고맙 습니다.
프로필 이미지
요타
2019-07-01
209
글번호 129865
강조