커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

어제 수식 수정부탁드려요

제가 원하는 곳에서 신호가 않나와서요 --------------------------------- 그림 1에서 네모 봉을 확인후(봉의 몸통으로 이평선을 돌파한경우에만) + 아래 화살표처럼 CCI 우상향일시 동그라미 봉에서 매수가 진입이 되게 하고싶습니다 동그라미가 음봉으로 시작하면 안되고 네모봉 종가와 같거나 양봉으로 시작해야 됩니다 매도일때는 반대의경우 입니다 1번그림처럼 네모봉이 5 10 20 분봉이 돌파 해도 되지만 바로아래그림처럼 5, 10 20 60 120 모두 돌파해도 상관없습니다 5 10만 돌파하거나 5.20만 돌파 하면 안됩니다 네모 봉 몸통으로 3개이상만 순서상관없이 돌파하면 됩니다 ------------------------------------ 그림 4처럼 이전 봉들이 연속적으로 3개이상 돌파봉이 되었다면 진입 금지 입니다 이전 최근 5봉의 몸통으로 응봉이든 양봉이든 5 10 20분봉(순서는 상관없음) 돌파한봉이 3개이하 일경우 위와같이 봉몸통으로 돌파한봉이 최근 5개봉중 3개 이하 여야되고 5,10 20 60 120 중 순서는 상관없이 3개 봉 이하일때만 진입입니다 ---------------------------------------- 그림 2처럼 만든어주신 시스템 적용했는데 원하지 않는 곳에서 매매가 시작 됩니다 ----------------------------------- 그림 3처럼 만약 네모 봉에서 매도 신호가 발생을했으면 동그라미 봉이 양봉으로 끝났을때 청산 원하는데 그렇게 안되는거 같아서 수정부탁드려요 --------------------------- 1번시스템은 위와 같이 수정 부탁드리오 2번시스템은 위내용과 동일하고 5 10 20 60 120분봉 2개이상 몸통돌파봉을 확인하고 경우 매수일경우 매도일경우 청산도 위와 같이 해주시면됩니다 혹시 가능하다면 초보라서 시스템에 자세한 주석 부탁드립니다 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 부탁드려요 > 안녕하세요 예스스탁입니다. 1 input : StartTime(91000),EndTime(130000); input : P1(5),P2(10),P3(20),CCIP(9); input : 진폭봉수(5),진폭틱수(50),N(5),돌파봉수(3); input : 익절틱수(100),손절틱수(100); var : Tcond(false),mav1(0),mav2(0),mav3(0),CCIv(0); if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; mav1 = ma(C,P1); mav2 = ma(C,P2); mav3 = ma(C,P3); CCIv = CCI(CCIP); var1 = 0; if max(C,O) > mav1 and mav1 > min(C,O) Then var1 = var1+1; if max(C,O) > mav2 and mav2 > min(C,O) Then var1 = var1+1; if max(C,O) > mav3 and mav3 > min(C,O) Then var1 = var1+1; if Tcond == true then { if MarketPosition <= 0 and C > max(mav1,mav2,mav3) and min(mav1,mav2,mav3) > O and CCIv > CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then buy("b",AtStop,NextBarSdate+PriceScale*1); if MarketPosition >= 0 and C < max(mav1,mav2,mav3) and min(mav1,mav2,mav3) < O and CCIv < CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then sell("s",AtStop,NextBarSdate-PriceScale*1); if MarketPosition == 1 then { if C < O Then ExitLong("bx1"); } if MarketPosition == -1 then { if C > O Then ExitShort("sx1"); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStoploss(PriceScale*손절틱수,PointStop); if EndTime > Starttime Then SetStopEndofday(EndTime); if EndTime < Starttime Then { if sdate != sdate[1] Then SetStopEndofday(EndTime); if bdate != bdate[1] Then SetStopEndofday(0); } 2 input : StartTime(91000),EndTime(130000); input : P1(5),P2(10),P3(20),P4(60),P5(120),CCIP(9); input : 진폭봉수(5),진폭틱수(50),N(5),돌파봉수(3); input : 익절틱수(100),손절틱수(100); var : Tcond(false),mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),CCIv(0); if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then Tcond = true; if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; mav1 = ma(C,P1); mav2 = ma(C,P2); mav3 = ma(C,P3); mav4 = ma(C,P4); mav5 = ma(C,P5); CCIv = CCI(CCIP); var1 = 0; if C > mav1 and mav1 > O Then var1 = var1+1; if C > mav2 and mav2 > O Then var1 = var1+1; if C > mav3 and mav3 > O Then var1 = var1+1; if C > mav4 and mav4 > O Then var1 = var1+1; if C > mav5 and mav5 > O Then var1 = var1+1; var2 = 0; if C < mav1 and mav1 < O Then var2 = var2+1; if C < mav2 and mav2 < O Then var2 = var2+1; if C < mav3 and mav3 < O Then var2 = var2+1; if C < mav4 and mav4 < O Then var2 = var2+1; if C < mav5 and mav5 < O Then var2 = var2+1; if Tcond == true then { if MarketPosition <= 0 and var1 >= 2 and CCIv > CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then buy("b",AtStop,NextBarSdate+PriceScale*1); if MarketPosition >= 0 and var2 >= 2 and CCIv < CCIv[1] and highest(h,진폭봉수) >= lowest(L,진폭봉수)+PriceScale*진폭틱수 and AccumN(var1,N) <= 돌파봉수 then sell("s",AtStop,NextBarSdate-PriceScale*1); if MarketPosition == 1 then { if C < O Then ExitLong("bx1"); } if MarketPosition == -1 then { if C > O Then ExitShort("sx1"); } } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStoploss(PriceScale*손절틱수,PointStop); if EndTime > Starttime Then SetStopEndofday(EndTime); if EndTime < Starttime Then { if sdate != sdate[1] Then SetStopEndofday(EndTime); if bdate != bdate[1] Then SetStopEndofday(0); } 즐거운 하루되세요 > 가날 님이 쓴 글입니다. > 제목 : 시스템식 부탁드려요 > 매매 시작시간은 오전 9시 10분 종료시간은 13시 매수조건 : 전양봉이 몸통으로 5 10 20이평을(순서는 상관없음) 돌파후 양봉시작 + CCI 우상향일시 + 이전 최근 5봉의 최저점 최고점 진폭 50틱이상 + 이전 최근 5봉의 몸통으로 응봉이든 양봉이든 5 10 20분봉(순서는 상관없음) 돌파한봉이 3개이하 일경우 매도조건 : 전음봉이 몸통으로 5 10 20이평을(순서는 상관없음) 돌파후 양봉시작 + CCI 우하향일시 매도 + 이전 최근 5봉의 최저점 최고점 진폭 50틱이상 + 이전 최근 5봉의 몸통으로 응봉이든 양봉이든 5 10 20분봉(순서는 상관없음) 돌파한봉이 3개이하 일경우 청산조건 : 매수후 완성봉이 음봉나올때 나 수익 100틱 손절 100틱 매도후 완성봉이 양봉이 나오면 청산 수익 100틱 손절 100틱 제가 숫자로 지정한것들은 변수로 설정 부탁드립니다 ----------------------- 추가적으로 위 시스템이랑 모두 같은 조건에서 전양봉이 몸통으로 5 10 20분봉(순서는 상관없음) 돌파후 양봉시작 을 -> 전양봉이 몸통으로 5 ,10,20,60,120 이평선중에 ( 순서는 상관없음) 2개 분봉 돌파 음봉도 반대의 경우로 매매할수있는 시스템식도 추가적으로 부탁드려요 총2개 부탁드려요 요청이 많아서 죄송 합니다
프로필 이미지
가날
2020-06-10
2495
글번호 139671
시스템
답변완료

문의 드립니다

안녕하세요! 1, 아래 67854번 관련 어제 아래와같은 답변을 받았는데요(수식1) 제가 바라는것은 캔들이 해당 기준선에 도달한 직후부터 이후 1-2분정도만 음성신호가 발생되는 수식이었으면합니다 가능하다면 다시 부탁드리겠습니다 2, 아래 (수식2) 에서도 음성신호 수식으로 수정 부탁드립니다 * 단, plot3 부터 plot8까지의 부분만 음성이 나오면 됩니다 자꾸 번거롭게해드려서 죄송하고 감사합니다 !!! --------------------------------------------------------------------------------------- (수식1) Inputs: TurnLen(9), StdLen(26), PrdLen(52); Variables: 기준선(0); 기준선 = (Highest(High, StdLen) + Lowest(Low, StdLen)) / 2; Plot1(기준선, "기준선"); var1 = TimeToMinutes(stime); var2 = TimeToMinutes(time); if crossup(h,기준선) or CrossDown(l,기준선) Then { if var2 >= var1+50 then PlaySound("C:₩예스트레이더₩data₩Sound₩60분기준선.wav"); } (수식 2) var : CC(0,data1),HH(0,data1),LL(0,data1),OO(0,data1); var : C1(0,data1),H1(0,data1),L1(0,data1),O1(0,data1); var : C2(0,data1),H2(0,data1),L2(0,data1),O2(0,data1); CC = (data1(c)+data2(c))/2; if data1(date != date[1]) Then { HH = CC; LL = CC; OO = (data1(O)+data2(O))/2; O1 = OO[1]; O2 = O1[1]; C1 = CC[1]; C2 = C1[1]; H1 = HH[1]; H2 = H1[1]; L1 = LL[1]; L2 = L1[1]; } if CC > HH Then HH = CC; if CC < LL Then LL = CC; plot1(HH,"중간값 중 당일 최고값"); plot2(LL,"중간값 중 당일 최저값"); plot3(C1,"전일종가합/2"); plot4(H1,"전일 중간값 중 당일 최고값"); plot5(L1,"전일 중간값 중 당일 최저값"); plot6(C2,"전전일종가합/2"); plot7(H2,"전전일 중간값 중 당일 최고값"); plot8(L2,"전전일 중간값 중 당일 최저값");
프로필 이미지
유로파54
2020-06-10
2112
글번호 139670
지표
답변완료

문의드립니다

긴시간의 분봉을 이용하여 Onclose 주문을 이용한 시스템을 작성하였을 때에 시뮬레이션상으로는 해당 봉의 종가에 청산되는 것으로 나오는데 예를 들어 120분봉을 사용한다고 가정하였을때에 하루에 봉은 4개입니다. 1번봉 9시~11시 / 2번봉 11시~1시 / 3번봉 1시~3시 / 4번봉 3시~5시 코스피 200 선물의 경우 만기일이 아닌 경우 3시36분~45분 종가 단일가인데 4번봉에서 Onclose주문이 나갔을 때에 몇시 몇분에 주문이 나가는지 궁금합니다. 만기일일 경우와 만기일이 아닐 경우에 자동적으로 알아서 분이 수정되는지도 궁금합니다. 만약 이런 기능을 제공하지 않는다면 해결법에 대해서도 알려주시면 감사하겠습니다.
프로필 이미지
파트라
2020-06-09
2055
글번호 139666
시스템
답변완료

수식 문의드려요.

과거 10개봉중 RSI(20)이하이며 전최저점인 봉을 현저점이 돌파하고 돌파한 종가의 RSI값이 전저점보다 높으면 매수 (최근 5개봉 이내 매수를 진입한 경우 재진입 금지) 과거 10개봉중 RSI(80)이상이며 전최고점인 봉을 현고점이 돌파하고 돌파한 종가의 RSI값이 전고점보다 낮으면 매도 (최근 5개봉 이내 매도를 진입한 경우 재진입 금지) 매수진입 이후 10개봉중 RSI(80)이상이며 전최고점인 봉을 현고점이 돌파하고 돌파한 종가의 RSI값이 전고점보다 낮으면 매수청산 매도진입 이후 10개봉중 RSI(20)이하이며 전최저점인 봉을 현저점이 돌파하고 돌파한 종가의 RSI값이 전저점보다 높으면 매도청산
프로필 이미지
에이드
2020-06-09
2056
글번호 139665
시스템
답변완료

문의드립니다.

늘 수고가 많습니다. 10시 15분과 18시 15분 항생장이 시작할때 갭문제로 고민중입니다. 나름 해결방안으로 직전 종가보다 150틱(조정가능) 이상 갭으로 상승 또는 하락으로 시작할때 그 시가 위에서 매수신호만 나오고 시가 아래에선 매도신호만 나오게 하고 싶습니다. 즉, 10시 15분과 18시 15분 이후 2시간 동안만 매매가 되게 하는 5, 20이평 골드/데드 시 스템신호인데 갭이 150틱이상 벌려져서 갭상승으로 시작할땐 시가 위에서만 신호가 나오고 150틱이상 벌려져서 갭하락으로 시작할땐 시가 아래에서 매도신호만 나오게 하고 싶습니 다. (시가 위나 시가 아래의 기준은 봉의 종가기준입니다) 감사드립니다.
프로필 이미지
카르마다
2020-06-09
2100
글번호 139664
지표
답변완료

수식 부탁 드립니다,

안녕하세요 1. 60봉 최저가가 상승상태이고(이후 하락안함) 5이평선이 60이평 crossup 할때 매수 2. 5이평선이 60이평선 crossup 한 상태이고(다시 5이평이 60이평 아래로 안감) 최근 60봉 최저가가 상승시 매수 부탁드립니다.
프로필 이미지
orfeu
2020-06-08
2161
글번호 139662
시스템
답변완료

지표

********************************************* 내려오던 캔들중 최저가격을 찍은 캔들 이후 이전캔들의 고가를 높인 캔들이 후 다음 캔들이 최저의 가격과 동일 하거나 최저가격보다 1틱 높고 다음캔들에서 신호 ****************************************************** 말로 하기도 이렇게 어려운데 수식으로 표현해서 눈으로 나타나게 하는 쌤들은 진짜 천재네요 ******************************************************* 번호로 쓰긴했는데요 쌤의 수식에서 추가하고 싶은 내용이 있어요 if H < H[1] and #현재봉은 전봉의 고가보다 작음 H[1] < H[2] and L[1] < L[2] and #전봉고가는 잔전봉의 고가보다 작고 전봉저가도 전전봉 저가보다 작음 H[2] > H[3] then #전전봉고가는 전전전봉고가보다 큼(상승) sell(); ____________________________________________________________________ 추가 {이전캔들의 고가를 높인 캔들 이후 전봉의 저가보다 같거나 높아야 합니다 다음캔들에서 신호} ______________________________________________________________-__--- 현재봉의 고가는 전봉의 고가보다 작고 전봉의 고가는 전전봉의 고가보다 작고 전봉의 저가도 전전봉의 저가보다 작고 전전봉의 고가는 전전전봉의 고가보도 크다(전전봉은 고가기준 상승) 라고 하면 될것 같습니다. __________________________________________________________________ 내려오던 캔들 중에 한캔들이 앞 캔들의 고가를 높여야 하고, 저가의 가격이 같거나 높은 캔들의 다음캔들에서 신호 ___________________________________________________________________
프로필 이미지
회원
2020-06-09
2155
글번호 139661
지표
답변완료

질문 드립니다.

현재봉은 어떻게 표시 합니까?
프로필 이미지
월드맨
2020-06-08
2100
글번호 139660
지표
답변완료

분봉상 누적거래량 수식 문의

var1 = V; 를 사용하면 해당 봉에 대한 거래량만 표시가 되는데요 당일 최초의 분봉을 기준으로 해서 거래량을 누적해서 보여주는 수식이 있을까요? 예를 들어 당일 최초 분봉의 거래량이 1000 이라면 누적거래량은 1000, 두번째 분봉의 거래량이 2000 이라면 누적거래량은 3000, 세번째 분봉의 거래량이 3000 이면 누적거래량 6000... 이런식으로 장종료까지 누적해서 계속 보여주고 다음날엔 다시 당일의 최초봉을 기준으로 보여주는 누적거래량 지표 좀 적어주시면 감사하겠습니다
프로필 이미지
아래위
2020-06-09
3071
글번호 139659
지표