커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의

시뮬레이션을 통해 시간 변화값, 봉갯수 변화값, HL RANGE 변화값이 모두 나와야하는데 HL RANGE 값만 나오지 않습니다. 시간,봉갯수,HL RANGE 3개가 연동될 수 있도록 부탁드립니다. *************************************************************************** 안녕하세요 예스스탁입니다. input : 시간(130000),봉갯수(100),HLRANGE(0.50); var : hh(0),ll(0),ii(0); if bdate != bdate[1] Then { hh = 0; ll = 0; ii = 0; } if stime >= 시간 then { ii = ii +1; if h > hh Then hh = h; if l < ll Then ll = l; if ii >= 봉갯수 and hh-ll >= HLRANGE Then ExitLong(); } 즐거운 하루되세요 > 목마와숙녀 님이 쓴 글입니다. > 제목 : 수식 문의 > 청산수식을 문의드립니다. 입력한 시간부터 봉갯수를 카운트하고 고가저가를 파악합니다. 13시부터 봉개수 100개 되고 고가저가의 RANGE가 0.5이하면 청산합니다. input : 시간(130000),봉갯수(100),HL RANGE(0.50) 항상 고맙습니다.
프로필 이미지
목마와숙녀
2019-03-22
452
글번호 127305
시스템
답변완료

문의드립니다

아래 전략 3가지 에서 손절 30 익절 30 외부 변수로 추가 부탁드립니다 1 input : P1(9),P2(13); Var : cnt(0),Nth(0),tempmax(0), tempindex(0), X1(0),RCI1(0),X2(0),RCI2(0); Array : VALUE1[50](0),VALUE2[50](0),NTHVALUE[50](0); for cnt = 0 to 49{ VALUE1[cnt] = C[cnt]; VALUE2[cnt] = C[cnt]; } ############################################### For Nth = 0 to P1-1 { tempmax = -99999999; For cnt = 0 to P1-1{ if VALUE1[cnt] > tempmax then{ tempmax = VALUE1[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE1[tempIndex] = -99999999; } X1 = 0; for cnt = 0 to P1-1{ X1 = X1+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI1 = (1-(6*X1)/(P1*(P1^2-1)))*100; ############################################### For Nth = 0 to P2-1 { tempmax = -99999999; For cnt = 0 to P2-1{ if value2[cnt] > tempmax then{ tempmax = value2[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE2[tempIndex] = -99999999; } X2 = 0; for cnt = 0 to P2-1{ X2 = X2+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI2 = (1-(6*X2)/(P2*(P2^2-1)))*100; if RCI1 > 80 and RCI2 > 80 and CrossDown(RCI1,RCI2) Then sell(); if RCI1 < -80 and RCI2 < -80 and CrossUp(RCI1,RCI2) Then buy(); 2 input : P1(9),P2(13),P3(18); Var : cnt(0),Nth(0),tempmax(0), tempindex(0), X1(0),RCI1(0),X2(0),RCI2(0),X3(0),RCI3(0); Array : VALUE1[50](0),VALUE2[50](0),VALUE3[50](0),NTHVALUE[50](0); for cnt = 0 to 49{ VALUE1[cnt] = C[cnt]; VALUE2[cnt] = C[cnt]; VALUE3[cnt] = C[cnt]; } ############################################### For Nth = 0 to P1-1 { tempmax = -99999999; For cnt = 0 to P1-1{ if VALUE1[cnt] > tempmax then{ tempmax = VALUE1[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE1[tempIndex] = -99999999; } X1 = 0; for cnt = 0 to P1-1{ X1 = X1+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI1 = (1-(6*X1)/(P1*(P1^2-1)))*100; ############################################### For Nth = 0 to P2-1 { tempmax = -99999999; For cnt = 0 to P2-1{ if value2[cnt] > tempmax then{ tempmax = value2[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE2[tempIndex] = -99999999; } X2 = 0; for cnt = 0 to P2-1{ X2 = X2+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI2 = (1-(6*X2)/(P2*(P2^2-1)))*100; ############################################### For Nth = 0 to P3-1 { tempmax = -99999999; For cnt = 0 to P3-1{ if value3[cnt] > tempmax then{ tempmax = value3[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE3[tempIndex] = -99999999; } X3 = 0; for cnt = 0 to P3-1{ X3 = X3+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI3 = (1-(6*X3)/(P3*(P3^2-1)))*100; if RCI1 > 80 and RCI2 > 80 and RCI3 > 80 and CrossDown(RCI1,RCI3) Then sell(); if RCI1 < -80 and RCI2 < -80 and RCI2 < -80 and CrossUp(RCI1,RCI3) Then buy(); 3 input : P1(9),P2(13),P3(18); Var : cnt(0),Nth(0),tempmax(0), tempindex(0), X1(0),RCI1(0),X2(0),RCI2(0),X3(0),RCI3(0); Array : VALUE1[50](0),VALUE2[50](0),VALUE3[50](0),NTHVALUE[50](0); for cnt = 0 to 49{ VALUE1[cnt] = C[cnt]; VALUE2[cnt] = C[cnt]; VALUE3[cnt] = C[cnt]; } ############################################### For Nth = 0 to P1-1 { tempmax = -99999999; For cnt = 0 to P1-1{ if VALUE1[cnt] > tempmax then{ tempmax = VALUE1[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE1[tempIndex] = -99999999; } X1 = 0; for cnt = 0 to P1-1{ X1 = X1+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI1 = (1-(6*X1)/(P1*(P1^2-1)))*100; ############################################### For Nth = 0 to P2-1 { tempmax = -99999999; For cnt = 0 to P2-1{ if value2[cnt] > tempmax then{ tempmax = value2[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE2[tempIndex] = -99999999; } X2 = 0; for cnt = 0 to P2-1{ X2 = X2+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI2 = (1-(6*X2)/(P2*(P2^2-1)))*100; ############################################### For Nth = 0 to P3-1 { tempmax = -99999999; For cnt = 0 to P3-1{ if value3[cnt] > tempmax then{ tempmax = value3[cnt]; tempIndex = cnt; NTHVALUE[cnt] = Nth+1; } } VALUE3[tempIndex] = -99999999; } X3 = 0; for cnt = 0 to P3-1{ X3 = X3+ABS((cnt+1)-NTHVALUE[cnt])^2; } RCI3 = (1-(6*X3)/(P3*(P3^2-1)))*100; if RCI1 > 80 and RCI2 > 80 and CrossDown(RCI1,RCI2) Then sell(); if RCI1 < -80 and RCI2 < -80 and CrossUp(RCI1,RCI2) Then buy(); if RCI1 > 80 and RCI2 > 80 and RCI3 > 80 and CrossDown(RCI1,RCI3) Then sell(); if RCI1 < -80 and RCI2 < -80 and RCI2 < -80 and CrossUp(RCI1,RCI3) Then buy();
프로필 이미지
해피슈
2019-03-22
419
글번호 127302
시스템
답변완료

시스템문의합니다

당일 시가대비 20틱위에서 매도2계약들어가서 진입가 대비 10틱 20틱에서 1계약씩청산하고 청산이 안됐을시 50틱에서 추가로 가지고 있는 수량대비 2배로 추가매도하고 평단가 대비 10틱 20틱에서 반 반 청산하고 또 청산이 안됐을 경우 80틱에서 추가로 가지고있는 수량대비 2배로 추가매도해서 평단가 대비 10틱 20틱에서 반 반씩청산 하는시스템식을 만들고 싶습니다 그렇게 각 30틱마다 진입이 되겠끔해서 500틱까지 반복이 되겠끔 하고 싶습니다 매수도 마찬가지로요 만약 20틱에서 진입해서 다 청산이 되면 다시 20틱에 오면 매도가 되겠끔 50틱에서 추가로 들어가서 청산이 되면 다시 50틱에서도 진입이 &#46124;으면 좋겠습니다 단 진입이 되어있으면 추가 진입은 금지이고 각 진입이된 다음 30틱에서 진입이 되겠끔 부탁드립니다 만약 1계약이 청산된 상태라면 1계약은 추가로 진입가능하고요
프로필 이미지
초보트레이더11
2019-03-22
434
글번호 127300
시스템
답변완료

분할 청산 수식 부탁해요~~(국내 주식)

매수진입은 100회에 걸쳐 진입하였고 청산은 첫 신호에 전량 청산으로 요청한 식이 아래 식입니다. 여기에 추가 부탁드릴께요~~~ 청산도 해당 조건에 달성시 보유 주식에 10%씩 10회에 걸쳐 청산하는 식을 요청합니다. ==================================================================================== 안녕하세요 예스스탁입니다. Input: Period(14),LPercent(5),SPercent(80),금액(1000000),최대누적횟수(100); var : MoneyFlow(0); MoneyFlow = MFI(Period); if MoneyFlow < 5 and MaxEntries < 최대누적횟수 Then buy("b",OnClose,def,Floor(금액/c)); if MarketPosition == 1 and MoneyFlow >= SPercent Then ExitLong("bx"); 즐거운 하루되세요 > 이형지 님이 쓴 글입니다. > 제목 : MFI 매수-청산 수식 부탁해요~~ > 국내 주식 매매 30분봉 기준 MFI 저점(LPercent(5))이하에서는 신호 발생시마다 분할매수로 1회에 100만원씩 최대 100회(1억)까지 청산은 MFI 고점(SPercent)에서 일괄 청산하는 식을 만들어 주시면 감사하겠습니다.
프로필 이미지
이형지
2019-03-22
430
글번호 127298
시스템
답변완료

신규 진입 수식 부탁합니다.

해당 조건을 모두 만족할때 신규 진입 뜨는 수식 부탁해요.. 일봉 차트 - 국내 주식 CCI 일봉 > 0 && CCI 주봉 > 0 && 주봉 20일 이동평균 라인이 우상향 && 일봉이 5일이동평균(일봉)보다 아래 있을 때
프로필 이미지
이형지
2019-03-22
421
글번호 127296
시스템
답변완료

문의 드립니다

안녕하세요 항상 감사드립니다 문의하고싶은 내용은 바로 전 캔들의 스토캐스틱 값 입니다 제가 하고싶은 수식은 바로 전캔들의 스토캐스틱 값보다 크면 매수 작으면 매도 요렇게 수식을 만들고 싶은데 가능한건가요?? 10분봉 차트이며 스토캐스틱 값은 5 3 3 의 k선 값입니다 단 매수가 1회 진행되었으면 매도청산 이 진행되기 전까지 매수 금지.. 매도가 1회 진행되었으면 매수청산 이 진행되기 전가지 매도 금지
프로필 이미지
부는바람
2019-03-22
408
글번호 127295
시스템
답변완료

수식 문의

아래는 일전에 도움 받은 "일봉에서 볼 수 있는 주봉 RSI" 입니다. 아래의 수식은 DayOfWeek를 사용하여 주봉의 고,저가를 확인하는데요, 그런 방식이 아니라, 1. 현재봉을 포함 n개 전봉을 묶어서 하나의 봉처럼 카운팅하고 해당 고,저가를 확인 2. (n)+1~(n * 2)개전봉을 묶어서 하나의 봉처럼 카운팅하고 해당 고저가를 확인 3. (n*2)+1~(n * 3)개전봉 묶어서 하나의 봉처럼 카운팅하고 해당 고저가를 확인 4. (n*3)+1~(n * 4)개전봉 묶어서 하나의 봉처럼 카운팅하고 해당 고저가를 확인 . . . . x. 현재봉 기준 (n*(x-1))+1~(n * x)개전봉 묶어서 카운팅하고 해당 고저가를 확인 하여서, x까지를 Period로 설정한 RSI를 구하고 싶습니다. ######## 현재 설정된 분봉에서, 상위 프레임의 분봉 RSI를 구해 보고 싶어서 위와 같은 아이디어를 생각하게 되었습니다. 다른 방식이 있으면 그 또한 소개해 주시면 감사하겠습니다. 항상 친절한 답변 감사드립니다. ############# 아래 ############### Inputs: Length(9); Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); var : RSIv(0),didx(0), UpAvg1(0), DownAvg1(0),cnt(0); Array : MC[100](0); if DayOfWeek(date) < DayOfWeek(date[1]) Then{ didx = didx+1; UpAvg1 = UpAvg[1]; DownAvg1 = DownAvg[1]; for cnt = 1 to 99{ MC[cnt] = MC[cnt-1][1]; } } MC[0] = C; If didx == Length Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = MC[Counter] - MC[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End else If didx > Length Then Begin UpAmt = MC[0] - MC[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg1 * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg1 * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then RSIv = 100 * UpAvg / (UpAvg + DownAvg); Else RSIv = 0; plot1(RSIV); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70");
프로필 이미지
부똘이
2019-03-22
477
글번호 127294
지표
답변완료

수식화 가능할까요?

안녕하세요. 예스랭귀지에 푹 빠져있는 초보입니다. 다음의 설명을 수식으로 가능할까요??? 말로 설명을 드리면... ① 종가가 a봉 이평선 Envelop 하단 b% 이하로 떨어진 상태에서 ② 종가가 a봉 이평선과 Envelop b% 하단선의 c%를 상향 돌파하면 매수 (그림에서는 c=33.3%) ③ 종가가 a봉 이평선과 Envelop b% 하단선의 d%를 상향 돌파하면 매도 (그림에서는 d=66.6%) 즉... ① 이전 거래에서 충분히 과매도되어 있는 상태에서 ② 매수 기준선을 통과하면 매수 (매수 기준선은 envelop 하단선으로 설정함) ③ 매도 기준선을 통과하면 매도 (매도 기준선은 이평선을 넘지 않음) 수식화 가능하시면 요청드립니다. 감사합니다.
프로필 이미지
돼지엄마
2019-03-21
481
글번호 127293
시스템
답변완료

엔빌로프 알람소리 수식

1분차트에서&nbsp;엔빌로프(60,0.2%)&nbsp;상단과&nbsp;하단에&nbsp;가격이&nbsp;도달시&nbsp;알람소리나게 할 수 잇나요? 수식을 만든후에 어디에다 저장을 합니까? 지표쪽인가요 검색쪽인가요??
프로필 이미지
브이
2019-03-21
456
글번호 127292
지표