커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표식 수정부탁드립니다.

수식지왕님 블로그에서 얻은 지표식인데요, 국내선물시간에 맞춰서 만드신거 같아요 해외선물에서도 사용할수있게 수정부탁드리고 어떤부분을 수정하는건지 설명좀 부탁드립니다. 왜냐하면 해외선물은 서머타임때문에 한시간씩 옮기고 하니 그때 스스로 바꿀수있었으면 좋겠습니다. input:renkoSize(0.5),p1(12),p2(26),p3(9); var:j(0),k(0),renkoCnt(0),gubun(0),filename("renko2.txt"),printOK(False), sum(0),ema1_OK(false),ema2_OK(false),sig_OK(False); array:OO[50](0),HH[50](0),LL[50](0),CC[50](0),ma1[50](0),ma2[50](0), ema1[50](0),ema2[50](0),macdVal[50](0),macdSig[50](0); If DayIndex == 0 Then { //break on session에 해당, 즉 일자가 바뀌면 새로 계산 gubun = 0; //방향을 초기화한다. 이후 형성되는 가격에 의해 방향이 계산 For j = 49 DownTo 1 { //금일 시가봉을 신규 추가 OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; ema1[j] = ema1[j-1]; ema2[j] = ema2[j-1]; macdVal[j] = macdVal[j-1]; macdSig[j] = macdSig[j-1]; } OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다 HH[0] = C; LL[0] = C; CC[0] = C; } Else { If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않은 시점 If OO[0] - renkoSize >= C Then { gubun = -1; CC[0] = OO[0] - renkoSize; HH[0] = OO[0]; LL[0] = CC[0]; //지수이평을 계산할 수 있을 만큼 렌코가 만들어진 이후 계산 시작 if ema1_OK then ema1[0] = (CC[0]-ema1[1])*(2/(p1+1))+ema1[1]; if ema2_OK then ema2[0] = (CC[0]-ema2[1])*(2/(p2+1))+ema2[1]; if ema2_OK then macdVal[0] = ema1[0] - ema2[0]; if sig_OK then macdSig[0] = (macdVal[0] - macdSig[1])*(2/(P3+1))+macdSig[1]; j = 0; if printOK then print(filename, "1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } Else If OO[0] + renkoSize <= C Then { gubun = 1; CC[0] = OO[0] + renkoSize; HH[0] = CC[0]; LL[0] = OO[0]; if ema1_OK then ema1[0] = (CC[0]-ema1[1])*(2/(p1+1))+ema1[1]; if ema2_OK then ema2[0] = (CC[0]-ema2[1])*(2/(p2+1))+ema2[1]; if ema2_OK then macdVal[0] = ema1[0] - ema2[0]; if sig_OK then macdSig[0] = (macdVal[0] - macdSig[1])*(2/(P3+1))+macdSig[1]; j = 0; if printOK then print(filename, "2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } If LL[0] - renkoSize >= C Then { gubun = -1; renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; if ema1_OK then ema1[j] = ema1[j-renkoCnt]; if ema2_OK then ema2[j] = ema2[j-renkoCnt]; if ema2_OK then macdVal[j] = macdVal[j-renkoCnt]; if sig_OK then macdSig[j] = macdSig[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = LL[j+1]; CC[j] = LL[j+1] - renkoSize; HH[j] = OO[j]; LL[j] = CC[j]; if ema1_OK then ema1[j] = (CC[j]-ema1[j+1])*(2/(p1+1))+ema1[j+1]; if ema2_OK then ema2[j] = (CC[j]-ema2[j+1])*(2/(p2+1))+ema2[j+1]; if ema2_OK then macdVal[j] = ema1[j] - ema2[j]; if sig_OK then macdSig[j] = (macdVal[j] - macdSig[j+1])*(2/(P3+1))+macdSig[j+1]; if printOK then print(filename, "3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",j,gubun,OO[j],HH[j],LL[j],CC[j]); } } Else If HH[0] + renkoSize <= C Then { gubun = 1; renkoCnt = Int(Round((C-HH[0])/renkoSize,9)); if renkoCnt > 49 then renkoCnt = 49; For j = 49 DownTo renkoCnt { OO[j] = OO[j-renkoCnt]; HH[j] = HH[j-renkoCnt]; LL[j] = LL[j-renkoCnt]; CC[j] = CC[j-renkoCnt]; ema1[j] = ema1[j-renkoCnt]; ema2[j] = ema2[j-renkoCnt]; macdVal[j] = macdVal[j-renkoCnt]; macdSig[j] = macdSig[j-renkoCnt]; } For j = renkoCnt-1 DownTo 0 { OO[j] = HH[j+1]; CC[j] = HH[j+1] + renkoSize; HH[j] = CC[j]; LL[j] = OO[j]; if ema1_OK then ema1[j] = (CC[j]-ema1[j+1])*(2/(p1+1))+ema1[j+1]; if ema2_OK then ema2[j] = (CC[j]-ema2[j+1])*(2/(p2+1))+ema2[j+1]; if ema2_OK then macdVal[j] = ema1[j] - ema2[j]; if sig_OK then macdSig[j] = (macdVal[j] - macdSig[j+1])*(2/(P3+1))+macdSig[j+1]; if printOK then print(filename, "4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } Else If Time >= 151500 Then { //당일 종가봉에서 For j = 49 DownTo 1 { OO[j] = OO[j-1]; HH[j] = HH[j-1]; LL[j] = LL[j-1]; CC[j] = CC[j-1]; ema1[j] = ema1[j-1]; ema2[j] = ema2[j-1]; macdVal[j] = macdVal[j-1]; macdSig[j] = macdSig[j-1]; } If LL[1] > C Then { //종가가 이전 봉보다 아래 형성 OO[0] = LL[1]; CC[0] = C; HH[0] = OO[0]; LL[0] = CC[0]; } Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성 OO[0] = HH[1]; CC[0] = C; HH[0] = CC[0]; LL[0] = OO[0]; } Else { //종가가 이전 봉의 중간에 형성 OO[0] = C; CC[0] = C; HH[0] = C; LL[0] = C; } if ema1_OK then ema1[0] = (CC[0]-ema1[1])*(2/(p1+1))+ema1[1]; if ema2_OK then ema2[0] = (CC[0]-ema2[1])*(2/(p2+1))+ema2[1]; if ema2_OK then macdVal[0] = ema1[0] - ema2[0]; if sig_OK then macdSig[0] = (macdVal[0] - macdSig[1])*(2/(P3+1))+macdSig[1]; j = 0; //마지막 1봉만 출력 if printOK then print(filename, "5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f", j,gubun,OO[j],HH[j],LL[j],CC[j]); } } if ema1_OK == False and CC[p1] > 0 then { //지수이평 계산 가능할 때까지 대기 sum = 0; for j = 0 to p1 - 1 { sum = sum + CC[j]; } ema1[0] = sum/p1; //처음 값은 단순이평값으로 ema1_OK = True; //다음 봉부터 지수이평 계산되도록 설정 } if ema2_OK == False and CC[p2] > 0 then { sum = 0; for j = 0 to p2 - 1 { sum = sum + CC[j]; } ema2[0] = sum/p2; ema2_OK = True; } if sig_OK == False and CC[P2+p3] > 0 then { sum = 0; for j = 0 to p3 - 1 { sum = sum + macdVal[j]; } macdSig[0] = sum/p3; sig_OK = True; } Plot1(macdVal[0],"macd"); Plot2(macdSig[0],"macd signal");
프로필 이미지
바쁜후니
2015-01-21
240
글번호 82482
지표
답변완료

시스템 트레이딩을 직접 적용시켜야 하나요?

제가 일일이 종목검색식을 통해 얻어낸 종목들을 직접 선택해서 시스템 트레이딩을 해야하나요? 아니면 검색과 동시에 컴퓨터가 알아서 할 수 있나요?
프로필 이미지
카크산
2015-01-21
183
글번호 82481
시스템
답변완료

수식 작성 문의 드립니다

정말 매번 명쾌한 답변 정말 감사합니다 요즘 질문을 자주 드려서 정말 미안하구요 다음에 기회되면 밥한번 꼭 사겠습니다. SetStopTrailing(3, 6, PercentStop); 트레일링 스탑을 쓰면 전량 청산이 되버려서요 트레일링 스탑에서 수량 설정을 어떻게 하는지 궁굼하네요 당일 주식 데이트레이딩에서요 1.6% 수익 발생하다가 3% 되돌리면 현재 진입 수량의 50%만 청산 2.9% 수익 발생하다가 4% 되돌리면 현재 진입 수량의 40% 청산 SetStopTrailing(3, 6, PercentStop,xv); 이런 식으로 수량을 쓰니까 안먹히더라구요..!! 매번 정말 너무 감사합니다.
프로필 이미지
리버최
2015-01-21
171
글번호 82480
시스템
답변완료

확인 부탁합니다..

일전에 5일 15일 피봇선 나타나는 수식 부탁했는데 챠트상에 다르게 나타나는군요 굵은 선이 15일 가는선이5일 입니다...전혀 맞질 않네요.. 오늘 시작하는 꺾인선 부분이 저 두평행선과 일치해야하는데...이유가 뭔가요?
프로필 이미지
회원
2015-01-21
218
글번호 82476
지표
답변완료

검색식 문의드립니다

당일 분봉상 누적 upvol 과 downvol 비율이 n%이상인 종목 검색식 부탁드립니다. 현재시점기준은 사용하고있는데..오늘 장마감후 이전 종목을 검색((EX)60분봉기준 6봉(100봉전까지)전 종목검색)이 필요해서 요청드립니다. 감사합니다
프로필 이미지
부양가족
2015-01-21
194
글번호 82473
종목검색
답변완료

수식 문의 드립니다.

트레이딩 아이디어는 다음과 같습니다. 호가가 5일 이평선을 하향 돌파한 이후 5일 이평선과 20일 이평선 사이를 횡보하다가 (호가가 20일 이평선을 만난 적은 없는 경우) 다시 5일 이평선을 상향 돌파하는 순간에 매수한다. 위와 같은 아이디어로 프로그래밍이 가능할까요? 만일 가능하다면 어떤 식으로 작성할 수 있을까요? 막연히 생각해도 5일 이평선을 하향 돌파한 이후 계속적으로 20일 이평선과 만나는 여부와 다시 5일 이평선을 하향하는 걸 체크해야 할 것 같은데...가능할까 싶네요.
프로필 이미지
ori
2015-01-21
171
글번호 82470
시스템
답변완료

문의드립니다.

선물매매시 참조데이터를 옵션가격으로 할경우에 참조데이터의 현재옵션가격이 등가격 일때 매매한다 는 식은 어떻게 작성해야하나요? 그리고 kospi 200지수 참조데이타부르는법을 모르겠습니다..찾아봐도 안보이네요..ㅠ.ㅠ 답변부탁드립니다.
프로필 이미지
아싸가오리
2015-01-21
182
글번호 82469
시스템
답변완료

40035 재문의

보조도구로 그린 선이 아니라, 수식에 의해서 dayindex 2번 봉의 저가와 dayindex 29번봉의 저가가 결정되었다는 전제하에서 질문을 드린 것입니다. 1월 19일 350틱 봉 기준입니다. 따라서, 1번과 2번의 저점을 지정할수 있는 조건식을 기술하자면, 1번저점= L[dayindex-2], 2번 저점 = L[dayindex-26] 입니다. 물론 매매신호는 if dayindex>26 then.....이 필요합니다. 다시 한번 부탁드립니다. -------------------------------------------------------- 안녕하세요 예스스탁입니다. 수식에서는 차트보조도구로 직접그리신 추세선을 이용해 매매식을 작성할수 없습니다. 1번과 2번의 저점을 지정할수 있는 조건식을 올려주셔야 합니다. 수식에서 작성하신 추세선이시면 해당식을 올려주시기 바랍니다. 즐거운 하루되세요 > 쉬어가자 님이 쓴 글입니다. > 제목 : 수식문의 > 첨부된 그림처럼 1번봉의 저점(244.35)과 2번봉의 저점(246.20)을 연결하는 추세선을 종가가 하향돌파하면 화살표처럼 매도하는 수식을 부탁드립니다.
프로필 이미지
쉬어가자
2015-01-21
215
글번호 82468
시스템
답변완료

부탁드립니다

그림참조하시면 1번과 2번사이 에서 예를들어 그림에서 갈색선이 20이동평균일경우 1번과 2번사이 일봉이 오르락 내리락 20봉이내로 들락 날락 20일선을 텃치하고 올라갔다 20일선을 텃치하고 내려갔다가 하다가 2번이라고 써져있는봉에서 돌파후 장대양봉과 20봉이내 최고가 와 최대거래량을 갱신하면서 양봉으로 종가상 마감하는 표현방법을 알고싶습니다~~부탁드립니다 감사합니다~~ 꾸벅
프로필 이미지
개미왕초
2015-01-21
228
글번호 82467
종목검색