커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다.

안녕하세요. 일전에 당일 거래로만 계산한 OBV 10, 20 이평선을 부탁 드렸습니다. 알려주신 수식이 계산한 내용과 달라서 찬찬히 살펴보고 수정을 했습니다. 당일 2번 째 봉부터 계산을 하기 때문에 idx를 -1를 줘서 1부터 시작하게 했구요. OBVv = OBVv + Volume; OBV가 계속 누적이 되길래 OBVv = OBVv[1] + Volume; 이렇게 수정했습니다. 문제는 10개의 봉이 진행하고 11번 째 봉에서 부터는 맨 앞의 obv를 탈락시키고 이평값으로 나누어야 하는데 수식을 잘 모르겠습니다. 수식 살펴보시고 수정 부탁 드립니다. input : P1(10),P2(20); var : OBVV(0),idx(0),sum(0),mav1(0),mav2(0); If date != date[1] Then{ OBVV = 0; sum = 0; idx = 0; } idx = idx+1; if date == date[1] Then{ If Close[0] > Close[1] Then OBVv = OBVv + Volume; If Close[0] < Close[1] Then OBVv = OBVv - Volume; } sum = sum+OBVv; if idx < P1 Then mav1 = sum/idx; Else mav1 = AccumN(Obvv,P1)/P1; if idx < P2 Then mav2 = sum/idx; Else mav2 = AccumN(Obvv,P2)/P2; plot1(OBVv); plot2(mav1); plot3(mav2); ============================================== input : P1(10),P2(20); var : OBVV(0),idx(0),sum(0),mav1(0),mav2(0); If date != date[1] Then{ OBVV = 0; sum = 0; idx = -1; } idx = idx+1; if date == date[1] Then{ If Close[0] > Close[1] Then OBVv = OBVv[1] + Volume; If Close[0] < Close[1] Then OBVv = OBVv[1] - Volume; } sum = sum+OBVv; if idx < P1 Then mav1 = obvv/idx; Else mav1 = AccumN(Obvv,P1)/P1; if idx < P2 Then mav2 = obvv/idx; Else mav2 = AccumN(Obvv,P2)/P2; plot1(OBVv,"OBV"); plot2(mav1,"10이평"); plot3(mav2); 3527 3527 1 3527.00 2930 6457 2 3228.50 1879 8336 3 2778.67 2274 10610 4 2652.50 -1205 9405 5 1881.00 0 9405 6 1567.50 1121 10526 7 1503.71 -1451 9075 8 1134.38 -913 8162 9 906.89 443 8605 10 860.50 834 5912 10 591.20 -886 2096 10 209.60 588 805 10 80.50 ------------------------------------------ OBV 10봉전까지 당일 OBV 10 이평 누적OBV
프로필 이미지
고운무지개
2015-11-19
254
글번호 92552
지표
답변완료

문의드려요

1. N일전에 상한가를 한번이라도 터치한 적이 있는 종목을 찾고, 각 종목의 N일전의 1분봉 차트를 얻고 싶습니다. 가능할까요? 2. N일전에 14시에서 15시 사이에 상한가를 한번이라도 터치한 적이 있는 종목을 찾고, 각 종목의 N일전의 1분봉 차트를 얻고 싶습니다. 매번 감사드립니다.
프로필 이미지
회원
2015-11-19
239
글번호 92549
종목검색
답변완료

문의

아래수식 문제점이 먼가요? sto 지표주기 100,100,40 이 매수일때 sto 지표주기 10,5 에서 매수진입 매도청산 sto 지표주기 100,100,40 이 매도일때 sto 지표주기 10,5 에서 매도진입 매수청산 sto 지표주기 10,5 에서 진입보유시 지표주기 100,100,40 신호바뀔시 무조건청산 하려고 하는데 신호가 안나오내요??? input:b_time1(000000),e_time1(240000),목표청산1(3), stoK_p11(100),stoK_p12(100),stoK_p13(40),sto1(10),sto2(5), ma_p11(35),ma_p12(15),ma_p13(25),ma_p14(300),ma_p15(50),ma_p16(30),ma_p17(55); Var:stoK(0),stoD(0),TRIXv(0),TRIXsig(0),stokk(0); stokk = StochasticsK(sto1,sto2); If b_time1 <= Time and Time <= e_time1 Then { stoK = StochasticsK(stoK_p11,stoK_p12); stoD = StochasticsD(stoK_p11,stoK_p12,stoK_p13); If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1 Then { If !(ExitName(1) == "StopProfitTarget" and (EntryName(1) == "매수" or EntryName(1) == "매수2" or EntryName(1) == "매수3") and MarketPosition == 0) Then if countif(stokk>stokk[1],2) == 1 and stokk[1] < 10 Then buy("b매수"); if countif(stokk<stokk[1],2) == 1 and stokk[1] > 90 Then exitlong("b매도"); # Buy("매수",AtMarket); } If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1 and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13)) and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1 and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1 and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1 and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1 Then { If !(ExitName(1) == "StopProfitTarget" and (EntryName(1) == "매도" or EntryName(1) == "매도2" or EntryName(1) == "매도3") and MarketPosition == 0) Then if countif(stokk<stokk[1],2) == 1 and stokk[1] > 90 Then exitlong("s매도"); if countif(stokk>stokk[1],2) == 1 and stokk[1] < 10 Then buy("s매수"); # Sell("매도",AtMarket); } SetStopProfittarget(목표청산1); }
프로필 이미지
자라도
2015-11-19
199
글번호 92545
시스템
답변완료

문의드립니다.

지금까지 친절하게 답변해주신 식을 바탕으로 질문 드립니다. N일전의 14시 50분의 종가가 N+1일 전의 종가보다 15퍼센트 상승했으면서 상한가가 아닌 종목을, N일전의 종가의 거래량과 함께 찾고 싶습니다. 상한가폭이 30퍼센트로 확대된 20150615부터 찾으려고 합니다. 다음의 식이 맞는지 궁금합니다. 감사합니다. input : N(2); var : cnt(0); var : 상한가(0),uplimit(0),cnt(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); Array : V1[20](0),V2[20](0); Array : upv[100](0),DD[100](0); if date != date[1] Then{ V1[0] = 0; V2[0] = 0; for cnt = 1 to 19{ V1[cnt] = V1[cnt-1][1]; V2[cnt] = V2[cnt-1][1]; } } if stime == 144500 Then V1[0] = C; if stime == 150000 Then V2[0] = m; if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } upv[0] = 상한가; if date != date[1] Then{ DD[0] = sdate; for cnt = 1 to 300{ upv[cnt] = upv[cnt-1][1]; DD[cnt] = DD[cnt-1]; } } if V1[N] > 0 and upLimit[n] > 0 and V1[N] >= DayClose(N+1)*1.15 and V1[N]<upLimit[n] and dd[n] >=20150615 then find(V2[N]);
프로필 이미지
회원
2015-11-19
230
글번호 92542
종목검색
답변완료

문의

인디게이트로 실시간으로 시스탬신호발생시 발생한 위치를 엑셀 셀 위치에 실시간으로 신호가 발생한 위치를 실시간으로 표시할수있는지요 수식좀 부탁드립니다
프로필 이미지
현671
2015-11-19
235
글번호 92541
지표
답변완료

일정시간 경과 후

아래에 관련 된 수식과 함수에 대하여 도움주시면 감사 하겠습니다. 가. S & P 500 지수선물에서 !. 영업일시작(현지시각 17:00:00) 후 첫번째 진입 신호 이후 부터 발생 되는 반대방향의 진입신호는 일정시간(분) 경과후 발생 하도록 하기 위한 수식 2. 일봉차트상의 직전영업일 종가의 표시(현지시각 16:00:00) 분봉차트상의 직전영업일 종가의 표시(현지시각 16:00:00) 틱 차트상의 직전영업일 종가의 표시(현지시각 16:00:00) 나. 일봉차트의 시스템성능보고서상에는 체결시각의 표시가 없는데 일봉차트에서 체결시각을 알 수있는 방안이 있나요? 다. NO.45073 에 추가질문 있습니다. 답변 부탁 합니다.
프로필 이미지
너무조아
2015-11-19
192
글번호 92540
시스템
답변완료

부탁 드립니다.

항상 도움 주셔서 감사 드립니다. 변환 부탁 드립니다. 미리 감사 드립니다. eavg(eavg(abs(roc(c,p1)),p2),p3);
프로필 이미지
yes
2015-11-19
188
글번호 92539
지표
답변완료

지표식 문의합니다

여러개 질문이 있는데요 1.macd shortPeriod(12), longPeriod(26)의 고점이나 저점일때 봉차트에 수평선이 표시되는 방법 2.macd오실레이터 고점일때 봉차트에 수평선이 나오게 하는 방법 3.macd 크로스할때 봉차트에 수평선이 표시되는 방법 4.macd shortPeriod(12), longPeriod(26)의 상승하락반전색입히는 방법 5.첨부된 그림은 일봉그림입니다. 그림처럼 만약 시가위치에서 만약 상승이나 하락할때 예를 들어 상승하면 현 상승가격위치에 가까운 지점의 과거 일봉의 저가 시가 고가 종가라인이 표시되게 하는 방법 현 가격위치에 제일 가까운 과거 봉의 저가 시가 고가 종가 라인 10씩만 나오게 하고싶습니다 시가위치라면 위로 10개 아래로 10개 시가위치에서 시작한다면 빨강선 위 쪽에 봉들에서 라인이 발생할것이고 제2시가위치 시작한다면 빨강선 아래쪽 봉들에서 라인이 발생하겠지요
프로필 이미지
지오2014
2015-11-19
291
글번호 92538
지표
답변완료

부탁드립니다.

1. 다른 진입신호를 허용하는 경우에 직전매매의 순이익이 0.55이상이면 { S누적순이익=직전매매 마친 시점의 누적순이익 SMDD=0 (여기서부터 SMDD를 새로 계산) } SMDD=S누적순이익-누적순이익 SMDD가 0.55이상이면 2계약 진입, 그외는 1계약 진입 2. 최우선사자호가가 N틱이상 올라가면 매수 최우선팔자호가가 N틱이상 내려가면 매도 부탁드립니다.
프로필 이미지
묘선낭자
2015-11-19
166
글번호 92537
시스템