커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

선물차트 기준으로 문의드립니다. 아래와 같이 세개의 수식을 작성했습니다. ======= 아래 ========== 1. 가중이동평균 input : P(20); var1 = wma(c,P); plot1(var1); 2. 틱차트에 10분봉의 단순이동평균선 표시 input : Atime1(10),P1(20),P2(100),P3(240),P4(720); var : cnt(0),count(0); var : sum1(0),sum2(0),sum3(0),sum4(0); var : mav1(0),mav2(0),mav3(0),mav4(0); Array : C1[800](0); var1 = TimeToMinutes(stime)%Atime1; if Bdate != Bdate[1] or (var1 < var1[1] and Bdate == Bdate[1]) Then{ for cnt = 1 to 129{ C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; for count = 0 to P4{ if count < P1 Then sum1 = sum1+C1[count]; if count < P2 Then sum2 = sum2+C1[count]; if count < P3 Then sum3 = sum3+C1[count]; if count < P4 Then sum4 = sum4+C1[count]; } if C1[P1] > 0 Then{ mav1 = sum1/P1; plot1(mav1); } if C1[P2] > 0 Then{ mav2 = sum2/P2; plot2(mav2); } if C1[P3] > 0 Then{ mav3 = sum3/P3; plot3(mav3); } if C1[P4] > 0 Then{ mav4 = sum4/P4; plot4(mav4); 3. 틱차트에 5분봉 삼각가중평균선 표시 Input : Length1(5); Var : TF(0),TLen1(0),cnt(0),sum(0),sum1(0),Tma(0); Array : CC[100](0),mav[100](0); TLen1 = Ceiling((Length1 + 1) * .5); TF = TimeToMinutes(stime)%5; if bdate != Bdate[1] or (bdate == bdate[1] and TF < TF[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; mav[cnt] = mav[cnt-1][1]; } } CC[0] = C; if CC[Tlen1] > 0 then{ sum = 0; for cnt = 0 to TLen1-1{ sum = sum + CC[cnt]; } mav[0] = sum/Tlen1; } if mav[Tlen1] > 0 then{ sum1 = 0; for cnt = 0 to TLen1-1{ sum1 = sum1 + mav[cnt]; } Tma = sum1/Tlen1; plot1(Tma); } a. 문의드리고자 하는 것은 캔들의 시가와 종가사이에(봉의 몸통안에), 위 1번식의 plot1선과 2번식의 plot1선, 3번식의 plot1선이 모두 들어있을때를 '검색'하고자 합니다. 검색되는 봉이 양봉이면 해당봉의 위에 검색표시가 나타나게 하고, 검색되는 봉이 음봉이면 해당봉의 아래에 검색표시가 나타나게 하고 싶습니다. (1~3번식의 기간값은 수정가능하게 부탁드립니다.) b. 이번에는 위 a 검색식에서 봉의 몸통안에, 1번식의 plot1선, 2번식의 plot1선, 삼각가중평균선 180선이 모두 들어있을때를 검색하고 싶습니다. (3번식 조건은 제외합니다.) 항상 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2017-10-31
178
글번호 113788
검색
답변완료

수식문의드립니다.

직전봉의 고점을 상향돌파하면 1 틱 위에서 매수하고, 손절매는 직전봉의 저점에서 1 틱아래로 하고, 이익청산은 매수가와 손절가 차이의 2배로 하는 경우 수식을 부탁드립니다. 감사합니다.
프로필 이미지
또마
2017-10-31
172
글번호 113787
시스템
답변완료

추세선문의

<<분봉 챠트>> 에서 아래 요구사항을 구현하고자 합니다. 도움 부탁드려요. ^^ 1) 과거 300일간의 일봉의 종가를 모두 선으로 그리고 수치값을 우측여백에 표시합니다. 2) 과거 1000개의 60분봉의 종가를 모두 선으로 그리고 수치값을 우측여백에 표시합니다. ==> a)참조데이타 이용를 이용하는 방법과 b)함수식으로 구현하는 방법 2가지 다 부탁드립니다. <<감사합니다. ^^>>
프로필 이미지
스로우
2017-10-31
232
글번호 113786
지표
답변완료

수식 부탁드립니다.

분봉차트에 1봉전 월,주,일봉의 시가,고가,저가,종가가 일직선으로 표시되는 지표와 현재진행하는 일봉을 포함한 월봉,주봉,일봉의 시가,고가,저가,종가가 표현되는 지표수식 부탁드리겠습니다.
프로필 이미지
운동좋아
2017-10-31
186
글번호 113782
지표
답변완료

이것저것 문의드립니다.

파이썬 때는 구현 엄두도 못할 전략들 도와주시는 덕분에 실험해보고 있네요. 매번 감사합니다. 1. 시스템 아래 수식은 하락하면 더 조금사고 상승하면 더 많이 사는 수식인데요. 전에 질문하고 답 얻은 내용입니다. if Rate > 0 Then 이 부분이 이해가 잘 가지 않습니다. var1이 0보다 더 크면으로 바꿔야 하는 건지요? input : 투입금액(1000000); var : Rate(0); var1 = (C-C[1])/C[1]*100; if MarketPosition == 0 Then value1 = 100; if Rate > 0 Then value1 = value1-(value1*Rate); Else value1 = value1+(value1*Rate); if MarketPosition >= 0 Then buy("b",OnClose,def,floor((투입금액*value1)/C)); if NextBarSdate > sdate Then ExitLong("bx",AtMarket); 2. 시스템 아래 전략에 조건 하나씩 추가한 코딩 부탁드립니다. 금일 130000까지 누적 거래대금이 100억 이상 일 때 버전 input : 설정자금(10000000),n(10),Per(5); if stime >= 133000 and stime < 151500 Then buy("b",OnClose,def,floor((설정자금/n)/C)); if MarketPosition == 1 and sdate > EntryDate then{ exitlong("bx1",atlimit,dayopen*(1+Per/100)); if stime >= 91000 Then exitlong("bx2"); } 비고: 2-3번 전략은 다 모든 신호 허용하고 피라미딩을 해야 하는 건가요? 3. 시스템 아래 수식에 전일 거래대금이 300억 이상일 때라는 조건을 추가 부탁드립니다. 전일 거래대금이 300억 이상일 때 분할매수해서 익일에 파는 내용입니다. input : 설정자금(10000000),n(10),Per(5); if stime >= 133000 and stime < 151500 Then buy("b",OnClose,def,floor((설정자금/n)/C)); if MarketPosition == 1 and sdate > EntryDate then{ exitlong("bx1",atlimit,dayopen*(1+Per/100)); if stime >= 91000 Then exitlong("bx2"); } 4. 지표 -장시작후 30분동안 5분봉 10분봉 30분봉의 양봉길이(각 타임프레임 봉에서 양봉만 나온 봉의 길이만 더한 것) plot1 5분봉의 양봉길이 plot2 10분봉의 양봉길이 plot3 30분봉의 양봉길이 비고 구현이 어려운 내용이면 30분봉 하나만이라도 부탁드립니다. 5. 시스템 아래 수식에 전일 거래대금이 200억이상이란 조건 추가 부탁드립니다. input : 타주기분(30),P(20),Dv(2); var : S1(0),D1(0),TM(0),TF(0),cnt(0),SumSqrt(0),Stdv(0); var : sum(0),BBmd(0),Bbup1(0),BBdn1(0),Bbup2(0),BBdn2(0); Array : CC[100](0); if Bdate != Bdate[1] Then{ S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{ for cnt = 1 to 99{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P] > 0 then{ sum = 0; for cnt = 0 to P-1{ sum = sum + CC[cnt]; } BBmd = sum/P; SumSqrt = 0; For cnt = 0 To P - 1 { SumSqrt = SumSqrt + (CC[cnt] - BBmd)^2; } Stdv = SquareRoot(SumSqrt / P); BBup1 = BBmd + Stdv*2; BBdn1 = BBmd - Stdv*2; BBup2 = BBmd + Stdv*1.8; BBdn2 = BBmd - Stdv*1.8; if stime >= 90000 and stime < 93000 and crossup(c,bbup1) Then buy("b1"); if stime >= 93000 and stime < 133000 and CrossDown(L,bbdn2) Then buy("b2"); if MarketPosition == 1 and IsEntryName("b1") == true and CrossDown(L,bbup1) Then exitlong("bx1"); if MarketPosition == 1 and IsEntryName("b2") == true and CrossUp(H,bbup2) Then exitlong("bx2"); } }
프로필 이미지
잡다백수
2017-10-31
204
글번호 113780
시스템
답변완료

급하게 질문드립니다

안녕하세요 55288 번 질문과 관련하여 아래의 식을 검증부탁드립니다. 계속 에러 메시지가 나오고 검증 실패입니다. 문법적으로 무엇이 원인인지 모르겠습니다. "def"를 지우고 Buy("A매수", atlimit, EP-PriceScale*4,2); 으로 하면 검증이 성공적으로 됩니다;;; Input : shortPeriod(5), longPeriod(20); var : EP(0), dni(0); value1 = ema(C, shortPeriod); value2 = ema(C, longPeriod); If CrossUP(value1, value2) then { dni = Index; EP = C; } If Index >= dni and Index <= dni+3 Then { Buy("A매수", atlimit, EP-PriceScale*4, def,2); SetStoploss(0.40,Pointstop); SetStopProfittarget(0.80,PointStop); }
프로필 이미지
맘속의행복
2017-10-31
201
글번호 113779
시스템
답변완료

문의드립니다

안녕하세요? 1.아래수식을 구동시켜보면 제가원하는신호(빨강과파랑원으로표시했음)외에 청산신호인지?첨부사진에 올린것처럼(x로표시했음)잦은신호들이 계속뜨며 혼란스러운데 그냥 간략히 양봉세개가발생할때마다 매수신호가뜨고 음봉3개가발생할때마다 매도신호가 뜨고 청산도 필요없고, 물론 계속적으로 양봉이나음봉 세개가발생할때마다 입니다 .화살표신호는지금처럼세개째봉에생겨야합니다 . 2.모든건1.과같지만 매수일경우 봉3개중 빨간색십자봉도 양봉으로 인정하고, 매도일경우 봉3개중 파란색십자형봉도 음봉으로 인정하는경우 이렇케 2가지경를 원하는데 도움주세요. 너무 감사드립니다 if CountIF(C>O,3)==3 Then buy();exitlong(); if CountIF(C<O,3)==3 Then Sell();exitlong();
프로필 이미지
매일
2017-10-31
191
글번호 113778
시스템
답변완료

수식 요청 드립니다.

이동평균선 기준으로 문의드립니다. 5일선이... 최근 봉 5개 이내에서 20일선, 60일선, 120일선을 하락 돌파 했을때 매도하고자 합니다. 20/60/120일선을 모두 돌파하여야 하고, 무엇을 먼저 돌파할지... 어떤 순서로 돌파할지는 모릅니다. 어떻게든 3개를 모두 하락 돌파했을 때 매도하는... 수식 부탁드립니다. ㅠㅠ
프로필 이미지
이엘성투
2017-10-30
178
글번호 113777
지표
답변완료

문의드립니다.

매번 감사합니다. 1번 매수 : 20 이평선을 5% 이상 양봉으로 상향돌파후 다시 20이평선까지 내려 오면 즉시매수(일정금액 100만원) 추가매수 : 20을 깨고 내려와 60 이평선 도달시 즉시 추가 매수(100만원) 추가매수2 : 60 이평선을 깨고내려와 120 이평선 도달시 즉시 추가매수2(100만원) 1번매수후 10% 하락시 추가매수(100만원) 추가매수후 10% 하락시 추가매수2(200만원) 감사합니다.
프로필 이미지
하늘북
2017-10-30
166
글번호 113776
시스템