커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

주문방식 등에 대해

항상 감사합니다. 1. 시스템 관련 현재가로 우선 주문한 뒤에 0.5초 뒤 현재가 +-1 가격으로 주문하려면 어떤 함수를 써서 어떻게 코딩을 해야 하는 지요. 2. 이전에 완성봉 관련해서 해주신 답변을 보고 의문이 들어 질문드립니다. 그럼 중간에 실시간으로 만들어지고 있는 값을 변수에다 저장시키고 그 변수에 값이 도달하면 즉시 주문이 되는 방식으로 주문을 만들면 미완성 봉이라도 주문을 할 수 있지는 않을까요? 예를 들어 30분봉의 볼린저밴드 상단선 값은 봉이 완성될 때까지 계속 변화하고 있을텐데요. 그 변화하고 있는 값을 지표값같은 곳에다 저장한 뒤 현재가가 그 값을 돌파하면 매수하는 식으로는 할 수 없는 건가요? 2번은 전화를 통해 답을 들었으므로 답 안해주셔도 됩니다.
프로필 이미지
잡다백수
2017-10-12
88
글번호 113314
시스템

대단한콩 님에 의해서 삭제되었습니다.

프로필 이미지
대단한콩
2017-10-12
4
글번호 113313
시스템
답변완료

문의드립니다

안녕하세요 1분봉차트에서 5분봉과 15분봉의 스토케스틱(5,3,3 단순이평사용)을 date2,date3를 사용하지않고 직접 표시하는 식을 부탁드립니다.
프로필 이미지
뉴스타트
2017-10-12
111
글번호 113312
지표
답변완료

수식 문의 드립니다.

안녕하세요 하기 확인 부탁드립니다. var1 = ADX(P); if MarketPosition == 1 and IsEntryName("b1") == true and countif(C< O,2) == 2 and var1 <= var1[1] Then{ sell("s111"); } if MarketPosition == -1 and IsEntryName("s1") == true and countif(C>O,2) == 2 and var1 <= var1[1] Then{ buy("b111"); } 상기 수식에서 조건 한가지를 추가하고 싶습니다. 매도 진입시 DM 선이 ADX 라인 위에 있을때는 진입 대기 합니다. DM 과 DP 모두가 ADX 라인 위에 있을때는 진입합니다. DM선만 위에 있을때 적용합니다. 매수 진입시 DP 선이 ADX 라인 위에 있을때는 진입 대기 합니다. DP 와 DM 모두가 ADX 라인 위에 있을때는 진입합니다. DP선만 위에 있을때 적용합니다. 감사합니다.
프로필 이미지
softtoug
2017-10-12
110
글번호 113311
시스템
답변완료

식문의드립니다

안녕하세요 , 식 문의드립니다. 1.검색식 a 일봉상 20일 이동평균선이 우상향 방향이고(정배열이 아니여도 괜찮습니다) 캔들이 이 이평선을 하회하는 주식 장마감후에는 종가기준 장중에는 현재가 기준 b 일봉상 현재를 기준으로 최근 20일간 평균거래량(또는 거래대금)이 20배이상 넘는 일자가 하루라도 있는 종목검색 a,b따로 별개입니다. 검색식에서 어떻게 적용해야하는지도 알려주세요.. 2.지표식 일봉상 설정한 5일 10일 20일 60일 이동평균선을 5분봉상에도 동일한 값으로 나타나게 부탁드립니다. (봉갯수로 계산시 값차이가나서요..)
프로필 이미지
스누피독
2017-10-11
127
글번호 113310
종목검색

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
몽이7989
2017-10-11
16
글번호 113309
시스템
답변완료

시스템식 문의 드립니다....

수고가 많으시죠...^^ macd (24.52.18) macd (12. 26.9) 1 macd(24.52.18)가 기준선 0선 위에 있고 macd(12.26.9)골든크로스에 매수 macd(24.52.18) 0선 데드크로스에 매수청산 2 macd(24.52.18)가 기준선 0선 아래에 있고 macd(12.26.9)데드크로스에 매도 macd(24.52.18) 0선 골든크로스에 매도청산 이상입니다...
프로필 이미지
우섭
2017-10-11
131
글번호 113308
시스템
답변완료

문의드립니다

@문의1) *식1 참조, 첨부파일 참조 아래식은 첨부 그림에서와 같이 시작시간 후 진입 조건이 되면 바로 진입이 됩니다 (시작시간 전 Crossup(mav2,mav3) 된 상태에서 조건이 만족 됨) 시작 시간 전 Crossup/down(mav2,mav3) 조건은 무시하고 셋팅 시작 시간 이후의 cross up/down(mav2,mav3) 이 되면 진입이 되도록 수정 요청드립니다 @문의2) *식2 참조 청산 식에서 파라볼릭 신호에 의한 청산이 이루어 지지 않았습니다. 60틱 이상이 된후 파라볼릭 신호에 의해 청산이 되어야하는데 60이하로 다시 상승된 상태에서 파라볼릭 신호가 발생하여 청산이 안된듯 합니다. 60이상이 한번이라도 되면 파라볼릭 신호에 의해 청산이 되도록 수정 요청드립니다. ***식1) input : short(12),long(26),sig(9),P1(3),P2(30),P3(120); input : 시작시간(223000), 종료시간(050000); input : 진입회수(1); var : mav1(0,data1),mav2(0,data1),mav3(0,data1); var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1); var : MACDO2(0,data2), MACDV2(0,data2); var : BH(0,data1),SL(0,data1); MACDO2 = data2(MACD_OSC(short,long,sig)); MACDV2 = data2(MACD(short,long)); mav1 = data1(ma(c,P1)); mav2 = data1(ma(c,P2)); mav3 = data1(ma(c,P3)); if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{ Tcond = true; Bcount = 0; Scount = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; } //진입회수 if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then Bcount = Bcount+1; if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then Scount = Scount+1; //진입 if Tcond == true Then{ if Bcount < 진입회수 and MACDO2 > MACDO2[1] and MACDV2 > MACDV2[1] and crossup(mav2,mav3) Then buy("Buy"); if Scount < 진입회수 and MACDO2 < MACDO2[1] and MACDV2 < MACDV2[1] and CrossDown(mav2,mav3) Then sell("Sell"); } //청산1 if MarketPosition == 1 Then{ BH = highest(H,BarsSinceEntry); if BH >= EntryPrice+PriceScale*30 and BH < EntryPrice+PriceScale*40 Then ExitLong("B익절1",AtStop,BH-PriceScale*10); if BH >= EntryPrice+PriceScale*40 Then ExitLong("B익절2",AtStop,BH-PriceScale*5); ExitLong("B손절",AtStop,EntryPrice-PriceScale*30); } if MarketPosition == -1 Then{ SL = Lowest(L,BarsSinceEntry); if SL <= EntryPrice-PriceScale*301 and SL > EntryPrice-PriceScale*40 Then ExitShort("S익절1",AtStop,SL+PriceScale*101); if SL <= EntryPrice-PriceScale*40 Then ExitShort("S익절2",AtStop,sL+PriceScale*5); ExitShort("S손절",AtStop,EntryPrice+PriceScale*30); } if 종료시간 <= sTime and sTime < 시작시간 then { if MarketPosition == 1 then{ ExitLong("B장종료"); } if MarketPosition == -1 then{ ExitShort("S장종료"); } } ***식2) input : short(12),long(26),sig(9),P1(3),P2(30),P3(120); input : af(0.02),maxaf(0.2); input : 시작시간(110000), 종료시간(150000); input : 진입회수(1); var : mav1(0,data1),mav2(0,data1),mav3(0,data1); var : Tcond(False,data1),Bcount(0,data1),Scount(0,data1); var : MACDO2(0,data2), MACDO1(0,data1); var : BH(0,data1), SL(0,data1); var : para(0,data1); MACDO2 = data2(MACD_OSC(short,long,sig)); MACDO1 = data1(MACD_OSC(short,long,sig)); mav1 = data1(ma(c,P1)); mav2 = data1(ma(c,P2)); mav3 = data1(ma(c,P3)); para = data1(sar(af,maxaf)); if stime == 시작시간 or (stime >시작시간 and stime[1] < 시작시간) Then{ Tcond = true; Bcount = 0; Scount = 0; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then{ Tcond = false; } //진입회수 if MarketPosition != MarketPosition[1] and MarketPosition == 1 Then Bcount = Bcount+1; if MarketPosition != MarketPosition[1] and MarketPosition == -1 Then Scount = Scount+1; //진입 if Tcond == true Then{ if Bcount < 진입회수 and MACDO2 > MACDO2[1] and crossup(mav2,mav3) Then buy("Buy"); if Scount < 진입회수 and MACDO2 < MACDO2[1] and CrossDown(mav2,mav3) Then sell("Sell"); } //청산2 if MarketPosition == 1 Then{ BH = highest(H,BarsSinceEntry); if BH >= EntryPrice+PriceScale*40 and BH < EntryPrice+PriceScale*60 Then ExitLong("B익절1",AtStop,BH-PriceScale*20); if BH >= EntryPrice+PriceScale*60 and CrossDown(C,para) Then ExitLong("B익절Pa"); ExitLong("B손절",AtStop,EntryPrice-PriceScale*40); } if MarketPosition == -1 Then{ SL = Lowest(L,BarsSinceEntry); if SL <= EntryPrice-PriceScale*40 and SL > EntryPrice-PriceScale*60 Then ExitShort("S익절1",AtStop,SL+PriceScale*20); if SL <= EntryPrice-PriceScale*60 and CrossUp(C,para) Then ExitShort("S익절Pa"); ExitShort("S손절",AtStop,EntryPrice+PriceScale*40); } if 종료시간 <= sTime or sTime < 시작시간 then { if MarketPosition == 1 then{ ExitLong("B장종료"); } if MarketPosition == -1 then{ ExitShort("S장종료"); } }
프로필 이미지
라떼처럼
2017-10-11
153
글번호 113307
시스템
답변완료

수식요청드립니다.

수식왕 예스스탁님 매번 감사합니다. 1. 시스템 진입 종가가 20이평 상향돌파 청산 조건 1. 종가가 20이평을 하향돌파 한 뒤 3개봉 이내에 다시 20이평 위로 오지 않는다 거나 or 조건 2. 종가가 20이평을 하향돌파한 뒤 20이평 -2%까지 떨어졌다. 기본적으로 종가가 20이평을 하향돌파 한 뒤 3개봉이 지나고 청산을 하는 것이나 종가가 20이평을 하향돌파한 뒤 낙폭이 너무 크면 낙폭에 따라 바로 청산한다는 의미. 2. 시스템 진입 '특정 가격'(변수a)에 가격이 오면(특정가격보다 가격이 낮아졌거나(하향돌파) 높아졌거나(상향돌파) 같거나) 진입 청산 특정 가격(변수b)이 되면 청산 3. 시스템 진입 '특정 가격'(변수a)에 가격이 도달하면 진입 청산 '특정 가격'대비 n%가 떨어지면 청산 거나 or '특정 가격'대비 n%가 오르면 청산 4. 2번이랑 3번 시스템은 봉이 완성되는 문제가 아니라 가격인데요. 그럼 가격에 도달하면 바로 청산 신호가 나오는 건가요? 5. 진입 연결선물지수 종가가 20이평을 상향돌파하면 참조데이터 buy 청산 연결선물지수 종가가 20이평을 하향돌파하면 참조데이터 sell 6. 6번을 두개의 상품으로 운용하려고 한다면, 예를 들어 kodex200, kodex 인버스 이렇게 사려고 한다면 차트를 각각 kodex200, kodex 인버스를 띄워놓고 연결선물지수를 참조데이터로 불러놓고 6번식을 같이 적용하면 되는 건가요? 그럼 kodex200을 매수진입때는 샀다가 매도진입때는 kodex인버스를 사나요?
프로필 이미지
잡다백수
2017-10-12
136
글번호 113306
시스템