커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

시스템 문의드립니다

1.금일 장중최고가>최근5일간 최고가 2.ibs<0.15 3.ibs=(종가-저가)/(고가-저가) 매수는 1,2 동시만족시 당일종가에 매수 매도는 종가>전일고가 일때 당일종가 매도 최적화를 위해 기간과 0.15 수치를 변수로 하고 싶습니다 부탁드립니다 감사합니다
프로필 이미지
후니러비
2021-03-08
672
글번호 146885
시스템
답변완료

문의드립니다

var1 = ma(c,5); var2 = ma(c,20); var3 = ma(c,60); 위 var1 , var2, var3 중에서 가장 큰값에서 두번째큰값을 빼고 또 세번째로 큰값을 뺐을때 수치를 알고 싶습니다
프로필 이미지
처음처럼22
2021-03-08
488
글번호 146884
지표
답변완료

부탁드립니다.

당일 거래대금이 200억이상이고, 20일 이격이 105인 종목들 중에서 시가총액대비 당일 기관매수금액으로 나눈 순위대로(20종목만) 검색하고 싶습니다.(시가총액대비 기관 매수금액이 많은 순서) 감사합니다.
프로필 이미지
디엠
2021-03-08
576
글번호 146883
종목검색
답변완료

재문의 드립니다~

안녕하세요? 지난달에 시그널메이커에서 만든 전략을 예스로 옮기는 작업을 부탁드렷었습니다. 원글 : 71328 그리고 알려주신방법으로 테스트해보니 XAverage 함수 에러가 나서 다시 수정요청을 드렸습니다. 원글 : 71356 최종 수정해주신 수식으로 적용을 해보니 매매신호가 나와서 점검을 해보았으나 시그널메이커에서 나오는 신호와 완전히 다르게 나옵니다. 비슷하거나 유사한게 아니라 완전히 다릅니다. 다시한번 아래의 시그널메이커를 예스로 정상변환하신건지 확인한번 더 부탁드립니다. 코드 아래에 추가로 주석을 추가하였습니다. 주석 참고부탁드립니다. input : Exit_PT(200),Exit_LPT(200),BuyProfit(150),SellProfit(150),StopTick(100); //괄호안의 숫자는 틱수이며 각각 //하루최대수익틱수(매매시간내에 200틱에 도달하면 자동청산 후 종료), 하루최대손실 틱수(매매시간내에 200틱 도달하면 자동청산 후 종료), 매수진입시 익절틱수, 매도진입시 익절틱수, 매수 또는 매도진입시 손절틱수 var :SP(0); Params : TradingStartTime1(090000),TradingEndTime1(045400); //오전 9시부터 익일 새벽 4시 54분가지 매매진행하며 매매종료시간이 되면 자동청산합니다. var : Today_P( 0 ), Pre_NetProfit( 0 ), ProfitPoint( 0 ),LossPoint(0), myOpenProfit(0),TickPoint(0); Params : FastPeriod(92), SlowPeriod(109), SignalPeriod(85); SP = SignalPosition; TickPoint = OneTick * PriceScale; V0 = MACD(C, FastPeriod, SlowPeriod); V1 = XAverage(V0, SignalPeriod); if Time = 090000 Or (Time >= 090000 And (Time[1] < 090000 Or Date<>date[1])) Then Begin ProfitPoint = 0; Today_P = 0; Pre_NetProfit = NetProfit[1]; condition99 = false; condition88 = false; End; Today_P = NetProfit - Pre_NetProfit; // 하루 누적 수익 myOpenProfit = OpenPositionProfit; If (Today_P + myOpenProfit) >= (Exit_PT * TickPoint ) Then condition99 = true; If (Today_P + myOpenProfit) <= (-Exit_LPT * TickPoint) Then condition88 = true; if TradingStartTime1 < TradingEndTime1 Then Begin If TradingStartTIME1 <= TIME And TIME <= TradingEndTIME1 Then COND44 = True Else COND44 = False; End Else Begin If TradingStartTIME1 <= TIME Or TIME <= TradingEndTIME1 Then COND44 = True Else COND44 = False; End; If Cond44 = False Then Begin if SP <> 0 Then Begin ExitLong("마감 매수 청산",OnClose,def,def,CurrentContracts); ExitShort("마감 매도 청산",OnClose,def,def,CurrentContracts); End; Cond44 = False; End; ProfitPoint = Exit_PT * TickPoint - Today_P - myOpenProfit; LossPoint = Exit_LPT * TickPoint + Today_P + myOpenProfit; if 1 = Sp then Begin ExitLong("매수 익절마감", Atlimit, close + ProfitPoint); ExitLong("매수 손절마감", AtStop, close - LossPoint); ExitLong("매수 청산", Atlimit, EntryPrice + BuyProfit * TickPoint ); End Else if -1 = Sp then Begin ExitShort("매도 익절마감", Atlimit, close - ProfitPoint); ExitShort("매도 손절마감", AtStop, close + LossPoint); ExitShort("매도 청산", Atlimit, EntryPrice - SellProfit * TickPoint ); End; //지정한 시간대에만 거래 if Cond44 And false = condition99 And false = condition88 Then Begin if CrossUp(V0,V1) Then Buy("매수") Else if CrossDown(V0,V1) Then Sell("매도"); End; SetStopLoss(StopTick * TickPoint * currentcontracts ,pointstop); //TrailingStop 적용하기 Params : up_price1(135), dn_price1(100), up_price2(100), dn_price2(80),up_price3(50), dn_price3(1); //135틱 이상 수익중이다가 100틱으로 떨어질때 트레일링스탑 적용, 참고로 시그널메이커에서는 위와 같이 세팅했을 경우 135틱 이상 수익중일때만 트레일링스탑이 적용되었습니다. //그러니까 135틱 이상 수익이 발생하지 않으면 2단계(100틱 => 80틱) 3단계(50틱 => 1틱) 트레일링 스탑이 적용되지 않았습니다. var : TickSize(0); TickSize = OneTick * PriceScale; If MaxContractProfit < TickSize * (up_price1 + 10) Then SetStopTrailing(TickSize * dn_price1, TickSize * up_price1) Else if MaxContractProfit < TickSize * (up_price2 + 10) Then setstopTrailing(TickSize * dn_price2, TickSize * up_price2) Else SetStopTrailing(TickSize * dn_price3, TickSize * up_price3);
프로필 이미지
jyck
2021-03-08
609
글번호 146878
시스템
답변완료

수식부탁드립니다

input : 진입날짜(20210102),진입시간(90000); input : 진입수수료(0),청산수수료(0); input : 진입슬리피지(0),청산슬리피지(0); Input : P1(5), P2(20); var : T(0),sumPL(0),totalPL(0),HH(0); value1 = ma(C, P1); value2 = ma(C, P2); if sdate == 진입날짜 and (stime == 진입시간 or (stime > 진입시간 and stime[1] < 진입시간)) Then Condition1 = true; if Condition1 == true then { If T <= 0 and CrossUP(value1, value2) Then { var1 = C; if T == -1 Then { sumPL = SumPL+(var2-C-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } T = 1; } If T >= 0 and CrossDown(value1, value2) Then { var2 = C; if T == 1 Then { sumPL = sumPL+(C-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } T = -1; } if T == 1 Then totalPL = sumPL+(C-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if T == -1 Then totalPL = sumPL+(var2-C-진입수수료-청산수수료-진입슬리피지-청산슬리피지); if totalPL > HH Then HH = totalPL; if NextBarSdate != sDate Then { if T == -1 Then { sumPL = SumPL+(var2-C-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } if T == 1 Then { sumPL = sumPL+(C-var1-진입수수료-청산수수료-진입슬리피지-청산슬리피지); } T = 0; totalPL = sumPL; } plot1(totalPL,"누적수익"); } 질문) 위 수식에서 진입날짜가 아닌 현재 바(bar) 보다 1000바 전 부터 진입. 예) 진입날짜 ==> 진입바수(barindex-1000) 미리 감사드립니다~^^*
프로필 이미지
천상나루
2021-03-08
571
글번호 146876
지표
답변완료

함수요청

안녕하세요? 국내선물 5분봉으로 거래를 하고자 합니다. 아래의 전략을 스크립트로 작성 요청드립니다. 감사합니다. - 매도: (a)시초가가 볼린저밴드 상단을 돌파하여 시작하여 (b)볼린저밴드 하단을 이탈 완성하되 (c)완성시점 봉의 종가가 시초가보다 낮으면 (d)익봉 시가에 진입 - 매수: (e)시초가가 볼린저밴드 하단을 이탈하여 시작하여 (f)볼린저밴드 상단을 이탈 완성하되 (g)완성시점 봉의 종가가 시초가보다 높으면 (h)익봉 시가에 진입 (b[f]시점에 c[g]가 동시에 만족하면 d[h]에 당일 1번 진입합니다.) - 매도청산 : 매도진입 이후 시초가를 상방돌파 완성하면 익봉시가에 청산 - 매수청산 : 매수진입 이후 시초가를 하방돌파 완성하면 익봉시가에 청산 - 시간청산 : 15시 20분 완성이후 익봉 시가에 청산 - a 조건이 만족되고(이것은 9시 첫 데이터가 나오면 결정됨) 이후에 b와 c가 시간적으로 동시에 만족되면 d에 a매도진입을 합니다. 마찬가지로 e 조건이 만족되고(이것은 9시 첫 데이터가 나오면 결정됨) 이후에 f와 g가 시간적으로 동시에 만족되면 f에 매수진입을 합니다. - b[f]시점에 c[g]가 동시에 만족하면 d[h]에 당일 1번 진입합니다. - (a, b, c)는 매도조건이며, (e, f, g)는 매수조건입니다.
프로필 이미지
흰둥이아빠
2021-03-09
604
글번호 146874
시스템

맴맴잉 님에 의해서 삭제되었습니다.

프로필 이미지
맴맴잉
2021-03-08
25
글번호 146873
시스템
답변완료

함수문의 드립니다

안녕하세요~ 1. 문장 앞에 #을 붙이면 1줄이 주석인데 여러줄을 한번에 주석으로 처리하는 방법? 2. a x (b + c) then buy; 를 아래처럼 작성 가능하나요? if 조건A and (조건B Or 조건C ) THEN Buy;
프로필 이미지
코퍼
2021-03-08
599
글번호 146864
시스템
답변완료

출력관련하여..

안녕하세요..항상 감사합니다. 일봉차트의 데이터들을 csv파일로 출력되게 작성했는데요 과거일자들을 전부 출력되어서 아래의 수식은 오늘 날짜만 출력되게 사용하는데요.. if NextBarSdate != sDate and NextBarSdate == CurrentDate Then { } 혹시 과거일자중 마지막 일자의 데이터만 출력되게 할 수 있을까요..?
프로필 이미지
디딤돌
2021-03-08
861
글번호 146862
시스템