커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표식 부탁드립니다.

안녕하세요. 항상 도움주셔서 감사합니다. 재귀용법을 사용하여 20일 단순이동평균선을 수식을 만들고 싶습니다. 재귀용법에 대한 간단한 설명과 작성법도 같이 부탁드립니다. 감사합니다.
프로필 이미지
양치기
2017-02-15
116
글번호 106824
지표

천용인 님에 의해서 삭제되었습니다.

프로필 이미지
천용인
2017-02-14
34
글번호 106823
시스템
답변완료

틱차트에서 30분단위 시초가를 알고 싶습니다~

1. 전화로 문의했었는데요~ 틱으로30분봉값을 구하는 식을 봤는데 너무 어렵고 지표적용을 해보니 이평값이 계산되어있는거 같더라구요~ 첨부파일사진에 보이는거처럼 30분시초가를 표시하면 30분단위로 가로선이 그어지면서 새롭게그어진가로선의 가격이 표시가 되잖아요 이 가격을 알고 싶습니다. 사진에는 항생차트인데 제가 알고싶은 부분은 차트상의 30분시초가지표에 표시되어 있는 현재 진행되고있는 이전봉의 종가가격인 10시30분가격 그리고 이전으로 표시된 12시30분가격 그리고 12시가격 그리고 11시30분가격 그리고 11시가격까지요~ 현재진행되고있는 가격포함해서 차트상의 지표에 표시된 30분단위로 6개이전가격까지 각각 틱차트상으로 알고 싶은데요 이걸 알 수 있을까요~ 유로같은 경우는 30분단위로 진행되어서 좋은데 항생같은 경우는 위에 표시한거처럼 당일시초가 이후로10시30분가격이 나오고나서 이전가격이 12시30분인데 이부분도 계산이 될지 모르겠습니다. 다시정리하면 30분단위로 현재진행되고있는 30분시초가가격이랑 그이전30분시초가가격 그이전30분시초가가격 이런식으로 총6개 30분시초가지표상 표시되어있는 30분시초가가격을 각각알 수 있는 식을 부탁드릴게요~ 2. 그리고 틱에서 30분시초가를 구해서 아래식 그대로 대입할려니깐 힘들거 같아서요 아래식에 나와있는 그대로 틱차트상으로 30분시초가를 구해서 적용좀 부탁드릴게요~ 아래식은 data1이 틱차트이고 data2가 30분봉입니다. 항상감사드립니다~ 이번엔 제대로 됐음 좋겠습니다ㅜ input : P5(5), P20(20), P60(60), get(25), cut(25); var : mav0(0,data2), mav1(0,data2), mav2(0,data2), mav3(0,data2), mav4(0,data2), mav5(0,data2), tic20(0,data1), tic60(0,data1), tic5(0,data1); mav0 = data2(c); mav1 = data2(c[1]); mav2 = data2(c[2]); mav3 = data2(c[3]); mav4 = data2(c[4]); mav5 = data2(c[5]); tic20 = data1(ma(c,P20)); tic60 = data1(ma(c,P60)); tic5 = data1(ma(c,P5)); if stime >= 103000 and stime < 165500 Then{ if mav0 > mav5 and mav1 > (mav0+mav2+mav3+mav4)/4 then{ if crossup(tic5,tic20) Then{ if MarketPosition == 0 Then buy("E매수"); if MarketPosition == -1 Then buy("E리버스매수"); } } if mav0 < mav5 and mav1 < (mav0+mav2+mav3+mav4)/4 then{ if CrossDown(tic5,tic20) then{ if MarketPosition == 0 Then sell("E매도"); if MarketPosition == 1 Then sell("E리버스매도"); } } if mav0 < mav5 and mav1 < (mav0+mav2+mav3+mav4)/4 then exitlong("불매수청산"); if mav0 > mav5 and mav1 > (mav0+mav2+mav3+mav4)/4 Then ExitShort("불매도청산"); } if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ exitlong(); ExitShort(); } SetStopProfittarget(PriceScale*get,PointStop); SetStopLoss(PriceScale*cut,PointStop);
프로필 이미지
겐지
2017-02-14
153
글번호 106822
시스템

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

프로필 이미지
겐지
2017-02-14
1
글번호 106821
시스템
답변완료

수식 부탁드립니다

수고 하십니다. 선물 한달치분봉 차트에서--예를 들면 5분봉 차트에서(종가기준으로) 매일의 시작봉.고가봉,저가봉,종가봉의 시가 ,고가,저가,종가를 print,나 메서지로그로 할수 있는식좀, 초보자 입니다, 감사합니다
프로필 이미지
투사
2017-02-14
115
글번호 106820
지표
답변완료

파라볼릭과 MACD+STOC 시스템식 부탁드립니다.

안녕하세요. 만들어주신 지표와 시스템식 잘 활용하고 있습니다. 오늘 하이투자증권 교대역 지점에서의 강의도 잘 들었습니다. 감사합니다. 다음의 2개 시스템식 부탁드립니다. 1. 예스트레이드 시스템선택식의 파라볼릭에서 당일 시초가 위에서는 매수진입과 매수청산 신호만 실행되게 시스템식 부탁합니다. 당일 시초가 밑에서는 매도진입과 매도청산 신호만 실행되게 시스템식 부탁합니다. 예) 시가아래서 매도/매도청산 자동매매하다가, 장중에 현재가가 시초가위로 바뀐 경우, 매도포지션으로 오버나잇한 경우에는 시초가위에서 매수신호와 매수청산을 자동매매가 되도록 부탁합니다. 2. 다음의 MACD+STOC 합성 시스템식에서 당일 시초가 위에서는 매수진입과 매수청산 신호만 실행되게 시스템식 부탁합니다. 당일 시초가 밑에서는 매도진입과 매도청산 신호만 실행되게 시스템식 부탁합니다. 예) 여기서도 시가아래서 매도/매도청산 자동매매를 하다가, 장중에 현재가가 시초가위로 바뀐 경우, 매도포지션으로 오버나잇한 경우에는 시초가위에서 매수신호와 매수청산을 자동매매가 되도록 부탁합니다. input : short(12),long(26),sto1(14),sto2(3),sto3(3); var : HH(0),LL(0),FK(0),SK(0),SD(0),T(0); var1 = MACD(short,long); HH = Highest(var1, sto1); LL = Lowest(var1, sto2); FK = (var1 - LL) / (HH-LL) * 100; SK = ema(FK,sto1); SD = ema(SK,sto2); if SK > SK[1] and SK[1] < Sk[2] Then buy(); if SK < SK[1] and SK[1] > Sk[2] Then sell();
프로필 이미지
sky78
2017-02-15
158
글번호 106819
시스템
답변완료

문의드립니다.

안녕하세요 슬리피지 관련하여 매매가격 설정에 대해서 조언을 구하고자 합니다. 현재 자동매매를 시험적으로 구동시키고 있는데, "시스템 매매 설정" 기능의 '매매' 메뉴에서 '매매가격'을 진입과 청산 모두 "현재가+-5호가"로 설정하고 있습니다. 진입에서는 슬리피지가 별로 발생하지 않는데, 문제는 청산시에 거의 매번 1~2틱의 슬리피지가 발생하고 있습니다. 손절시에 체결이 안되어 더 큰 손실이 날 우려 때문에 청산 가격을 "현재가+-5호가"로 설정하고 있습니다만, 수익청산시에 거의 매번 슬리피지가 발생하는게 고민입니다. 현재 설정보다 더 효과적인 살정이 있다면 알려주시면 감사하겠습니다. 또한, 시스템트레이딩에서 일반적으로 가장 많이 사용하는 가격설정은 어떠한 것들이 있는지 알려주시면 감사하겠습니다.
프로필 이미지
맘속의행복
2017-02-14
139
글번호 106818
시스템
답변완료

수식 다시 한번 문의 드립니다.

매도 진입 화면상 최근 150개 캔들중 1. 최저가를 기준으로 캔들이 양봉 상승하고 이후 캔들이 음봉 하락 마감하면 1고점. 2. 이후 캔들 중 1고점을 상향 돌파하고 그 이후 캔들 중에서 음봉으로 하락 마감하면 2고점. 3. 이후 캔들 중 2고점을 상향 돌파하고 그 이후 캔들 중에서 음봉으로 하락 마감하면 3고점. 4. 이후 캔들 중 3고점을 상승 돌파한 4번째 고점 다음 캔들이 시가(현재캔들) 상 1틱이라도 하락하면 시장가 매도 진입한다. 손절 15틱 익절 30틱. 5. 손절 발생 후 다음 캔들이 시가(현재캔들)보다 1틱이라도 하락 하면 시장가 매도 진입한다. 손절 15틱 익절 30틱.
프로필 이미지
kingson
2017-02-17
153
글번호 106817
시스템
답변완료

수식 부탁드립니다.

아래식을 기준으로 다음 조건을 추가해주세요, 수정해보려 하는데 안되서요.. 조건 추가) 51894 글 참조 이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고 MACD Cross up 하면 매수 이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고 MACD Cross down 하면 매도 input : P(3),P1(5),P2(10),P3(60),P4(120),short(12),long(26),sig(9),시작시간(90000),종료시간(60000),만족(3) ; var : mav1(0),mav2(0),mav3(0),mav4(0),macdv(0),macds(0),T(0),Tcond(false),Xcond(false),ii(0); var : N1(0),daypl(0),mav(0), Xcond1(false),Xcnt(0),T1(0); mav = ma(c,P); mav1 = ma(c,P1); mav2 = ma(c,P2); mav3 = ma(c,P3); mav4 = ma(c,P4); MACDV = MACD(short,long); MACDS = ema(MACDv,sig); if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then { Tcond = false; if MarketPosition == 1 Then ExitLong("종료시간 매수청산"); if MarketPosition == -1 Then ExitShort("종료시간 매도청산"); } if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then { T = 0; Tcond = true; Xcond = false; Xcond1 = false; Xcnt = 0; N1 = NetProfit; } //daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] and (IsExitName("S청산",1) or IsExitName("B청산",1)) Then { Xcnt = Xcnt+1; if Xcnt == 만족 Then Xcond1 = true; } if mav3 > mav3[1] and mav4 > mav4[1] and CrossUp(macdv,macds) Then{ T = 1; ii = index; } if mav3 < mav3[1] and mav4 < mav4[1] and CrossDown(macdv,macds) Then{ T = -1; ii = index; } if Tcond == true and Xcond1 == false then{ if MarketPosition == 0 and T == 1 and index <= ii+2 and c < mav Then buy("S"); if MarketPosition == 0 and T == -1 and index <= ii+2 and c > mav Then sell("B"); } if CrossDown(mav1,mav2) Then Exitlong("Sx"); if CrossUp(mav1,mav2) Then ExitShort("Bx"); ---------------------------------------------------------------------------------------- > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식부탁드립니다. > 안녕하세요 예스스탁입니다. input : short(12),long(26),sig(9); var : MACDV(0),MACDS(0),MACDO(0); var : sum(0),ii(0),mav(0),mav1(0),mav2(0); MACDv = MACD(Short,long); MACDS = ema(MACDV,sig); MACDO = MACDv-MACDs; if crossup(MACDO,0) or CrossDown(MACDO,0) Then{ sum = 0; ii = 0; mav1 = mav[1]; mav2 = mav1[1]; if crossup(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then buy(); if CrossDown(MACDO,0) and (mav1+mav2)/2 >= 0.5 Then sell(); } sum = sum + abs(MACDO); ii = ii + 1; mav = sum/ii; 즐거운 하루되세요 > 바바큰 님이 쓴 글입니다. > 제목 : 수식부탁드립니다. > 수식 부탁드립니다. 이전 한 개 싸이클(+,-) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고 MACD Cross up 하면 매수 이전 한 개 싸이클(-,+) 구간 오실레이터 각각 막대의 절대값들의 평균이 0.5 이상이고 MACD Cross down 하면 매도 예) 매수 전 한 싸이클 오실레이터 막대 값들의 평균 값 (+구간) 평균값: +0.8, (-구간) 평균값: -0.4 매수 전 한 싸이클(+,-) 구간 오실레이터 각각의 절대값들의 평균: (|+0.8|+|-0.4|) / 2 = 0.6 매도 전 한 싸이클 오실레이터 막대 값들의 평균 값 (-구간) 평균값: -0.4, (+구간) 평균값: +1.0 매도 전 한 싸이클(-,+) 구간 오실레이터 각각의 절대값들의 평균: (|-0.4|+|+1.0|) / 2 = 0.7
프로필 이미지
바바큰
2017-02-14
104
글번호 106813
시스템