커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표식 부탁

45도 각도로 이루어진 사선들을 화면에 표시하는 지표식을 부탁드립니다. XXXXXX XXXXXX XXXXXX 이런 식으로 해서 화면에 표시되도록요...
프로필 이미지
한글나라
2013-11-17
196
글번호 69559
지표
답변완료

10분봉에서 30분봉 실시간 스토캐스틱

10분봉에서 30분봉 실시간 스토캐스틱 보는법 과거차트를 복기해보려합니다. 예를 들어 2013년 10월2일 오전 9시10분 에서 30분봉 스토캐스틱를 보고싶습니다. 지금은 30분봉이 완성된 상태만 보입니다. (9시30분) 분봉 실시간으로 스토캐스틱 확인하는 수식 문의드립니다.
프로필 이미지
비류천
2013-11-17
235
글번호 69558
지표
답변완료

문의 드립니다

두 가지 수식이 궁금합니다. 1.시가에 매수하고 익절은 20틱, 손절은 15틱 당일청산, 하루한번 진입 오늘 손실이면(익절없이 종가청산에 손실도 포함) 다음날 두배로(2계약) 매수진입 다시 손실이면 다음날 4계약 진입하는 수식을 알고 싶습니다. 검색해서 buy("B",AtMarket,def,CurrentContracts[BarsSinceExit(1)+1]*2); 이 수식으로 작성해봤는데 잘 안됩니다. 2.오늘 수익이 0.5이하면 역시 다음날 두배로 진입하는 수식도 알려주세요. BarsSinceExit(1) == 1 무슨 뜻인가요? == 1의 의미가 무엇인지 궁금합니다. buy("B2",AtMarket,def,CurrentContracts[BarsSinceExit(1)+1]*2); 여기서 [BarsSinceExit(1)+1] 무슨 의미인지 궁금합니다. 자세한 설명 부탁합니다. 감사합니다.
프로필 이미지
서쪽하늘
2013-11-17
192
글번호 69557
시스템
답변완료

문의 (EX)

1. 아래 전체식 검증부탁드립니다. EL[#2]가 제대로 작동을 안하는듯 합니다. if (MarketPosition == 1) then { if ( CrossDown(M1, M2 - PriceSclae * 5) ) then { MTS.xELReady = TRUE; MTS.xELClose = C; } } ................. ................. if (MarketPosition == 1) then { if ( (최종 매수청산조건 ) then { if (MTS.xELReady == TRUE) AND (TimeToMinutes(stime) >= TimeToMinutes(EntryTime) + 30) AND (MTX == M1 OR CROSSUP(MTX, M1)) ) then { ExitLong("EL[#1]", ONCLOSE, DEF); } if ( (MTS.xELReady == TRUE) AND (TimeToMinutes(stime) >= TimeToMinutes(EntryTime) + 30) ) then { ExitLong("EL[#2]", ATSTOP, MTS.xELClose - PriceScale * 3); } } } 2. 아래 1번케이스와 2번 케이스가 있는데, 2개의 목적은 동일합니다. 근데 1번은 2번을 단순히 풀어쓴 것으로밖에 보이질 않는데, 제가 의도한대로 작동을 하지 않더군요. YT가 내부적으로 디코딩하는 것이 달라서가 아닐까 하는 추측뿐입니다. 자세히 설명해주시면 감사하겠습니다. 1번 케이스 if ( (MTAxTS.xELCheck == 0) AND (MTA > MTS) AND (DayIndex > 0) ) then { MTAxTS.xELCheck = 1; } if ( (MTAxTS.xELCheck == 1) AND (CrossDown(MTA, MTS)) ) then { MTAxTS.xELCheck = 2; MTAxTS.xELClose = d1CLOSE; } if ( (MTAxTS.xELCheck == 2) AND (MTA < MTS) ) then { MTAxTS.xELCheck = 3; MTAxTS.xELReady = TRUE; } if ( (MTAxTS.xELCheck == 3) AND (CrossUp(MTA, MTS)) ) then { MTAxTS.xELCheck = 4; } if ( (MTAxTS.xELCheck == 4) AND (CrossDown(MTA, MTL)) ) then { MTAxTS.xELCheck = 5; } if ( (MTAxTS.xELCheck == 5) AND (d1CLOSE > MTAxTS.xELClose) ) then { MTAxTS.xELCheck = 6; } if ( (MTAxTS.xELCheck == 6) AND (MTA < MTL) ) then { MTAxTS.LT.xELReady = TRUE; } if ( (MTAxTS.xELReady == TRUE) AND (CrossUp(MTA, MTS + PriceScale)) ) then { MTAxTS.xELReady = FALSE; MTAxTS.xELCheck = 0; MTAxTS.xELClose = 0; } 2번 케이스 if ( (MTAxTS.xELCheck == 0) AND (MTA > MTS) AND (DayIndex > 0) ) then { MTAxTS.xELCheck = 1; } if ( (MTAxTS.xELCheck == 1) AND (CrossDown(MTA, MTS)) AND (MTA < MTS) ) then { MTAxTS.xELCheck = 2; MTAxTS.xELReady = TRUE; MTAxTS.xELClose = d1CLOSE; } if ( (MTAxTS.xELCheck == 2) AND (CrossUp(MTA, MTS)) AND (MTA > MTS) ) then { MTAxTS.xELCheck = 3; } if ( (MTAxTS.xELCheck == 3) AND (CrossDown(MTA, MTL)) AND (d1CLOSE > MTAxTS.xELClose) ) then { MTAxTS.xELCheck = 4; } if ( (MTAxTS.xELCheck == 4) AND (MTA < MTL) ) then { MTAxTS.LT.xELReady = TRUE; } if ( (MTAxTS.xELReady == TRUE) AND (CrossUp(MTA, MTS + PriceScale)) ) then { MTAxTS.xELReady = FALSE; MTAxTS.xELCheck = 0; MTAxTS.xELClose = 0; } 3. 아래 진입식과 청산식이 있는데, 명칭 이후에 붙을 수 있는 모든 옵션에 대해 나열해주시고 간단히 설명해주시면 감사하겠습니다. Buy("BUY[A]"); ExitLong("EL[A]", ONCLOSE, DEF); 4. 장의 성격에 따라 진입을 다르게 해주고 싶습니다. 급등하는 장에서는 시장가라도 따라붙어서 진입하고, 횡보장에서는 다소 느긋하게 싸게 진입을 원합니다. 시스템트레이딩 설정창에서 보면 여러가지(현재가, 시장가, 상대1호가 2호가) 등을 정해줄 수 있던데 시스템 식에서는 이를 어떻게 표현가능한지요?? 5. VARS: 시작시간(0), 연장시간(0); 시작시간 = 090000; 라고 할때 연장시간 = 시작시간 + TimeToMinutes(30); 라고 단순하게 해주면 되는가요?? 시간 연산은 어떠한 룰이 있는지요?? 늘 감사드립니다.
프로필 이미지
TRF
2013-11-18
196
글번호 69556
시스템
답변완료

수식 질문 드립니다.

늘 친절한 답변에 감사드립니다. 아래의 수식을 각종 차트에 적용하면 거래가 7회 또는 8회 밖에 안일어 나고,, 연속 2회 손실이 나도 매매수량이 2배로 증가하지 않습니다. 어디를 수정해야 "최초 투입금액은 연속 2회 손실이나면 매매수량을 2배로 증가하되 최대투입금액은 8,000,000원이고 이익이 나면 다시 1,000,000만원으로 환원하여 거래한다."라는 조건을 만족시킬 수 있는지 알려주시면 감사하겠습니다. var : Vol(0); if TotalTrades == 0 Then var1 = 1000000; if TotalTrades >= 2 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then var1 = min(var2*2,8000000); if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int(var1/C)/10)*10; Else vol = int(var1/C); if CodeCategory == 6 Then vol = int(var1/(C*BigPointValue)); if dayindex == 1 Then { if data2(bids) > data2(asks) then buy("b",OnClose,def,Vol); if data2(bids) < data2(asks) Then sell("s",OnClose,def,Vol); }
프로필 이미지
앙두
2013-11-16
203
글번호 69555
시스템
답변완료

수고하십니다! 문의드려요.

갭보정된 CSar를 구현해보려고 해서 var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); if date!=date[1] then { gap = Open-Close[1]; sumGap = sumGap+gap; } GO = O - sumGap; GH = H - sumGap; GL = L - sumGap; GC = C - sumGap; 이걸 이용해서 사용자 함수의 CSar 항목 중에서 각 해당Open,High,Low,Close 등의 글자를 GO,GH, GL,GC로 바꾸는 방법을 사용했습니다. Csar부분은 제가 바꾼 이름 "gap_CSar"로 변경했구요. 다른 지표는 다 잘 되는데 유독 요놈만 안되는 이유를 모르겠습니다. 증상은 Csar의 값이 굉장히 크게 나와 차트가 거의 일직선으로 압축되는 현상이 발생합니다. 외부변수의 속도값을 크게해봐도 별반 나아지는게 없네요. 즉 외부변수의 문제는 아닌듯합니다. 그냥, 버그이겠거니 하고, 갭보정된 분봉차트로 일반의"파라볼릭종가"를 적용했을 때의 속도값으로 시스템식을 만들어보고 돌려봐도, 원하는대로 나오지가 않습니다. 즉, 사용자함수 부분에서 오류가 난걸로 보입니다. 제가 놓친것이 무엇일까요?
프로필 이미지
차싸
2013-11-16
323
글번호 69554
사용자 함수
답변완료

문의

질문드립니다. 주종목을 일봉으로 잡고, 참조1을 60분봉으로 잡았을때입니다. 이경우 60분기준으로 특정조건을 만족했을때, 청산신호가 나오게 할수는 없는지요? 감사합니다.
프로필 이미지
별이777
2013-11-16
185
글번호 69553
시스템
답변완료

수식문의

LRL 관련 value1 = 봉수 value2 = 봉수의 제곱 value3 = 봉수의 평균 value4 = 봉수의 제곱평균 value5 = 봉수의 평균제곱 value6 = 종가*봉위치 value7 = value6의 이동평균 value8 = 종가이동평균 인데 이중 봉수는 첨부화일에서 어떻게 적용해야 하나요? 도와주세요...
프로필 이미지
khg1017
2013-11-16
224
글번호 69552
시스템
답변완료

도와주세요 ..

수고많으십니다 .. 1;종가로 피봇1차저항선을 하향돌파하면 ("s1") 라는진입명으로매도진입하는수식에 몇가지를 추가하고싶습니다 진입필터로 당일최고가가 피봇2차저항선을 돌파한적잇어야하고 and 당일최고종가가 피봇2차 저항선을 돌파한적없어야한다 ; 위에진입조건을만족하여 ("s1") 로 진입한뒤 손절청산되엿다면 .. 리버설 진입으로 종가로 당일최고가 돌파시 매수진입 ; ("s1") 진입이 손절되면 리버설진입만 세팅되고 다시 ("s1") 진입조건이만족되도 매도진입은 하지않습니다 2;직전포지션이 매도포지션이고, 진입명이"s1" 이고 , 익절로청산되엿다면 종가로 피봇1차지지선을 하향돌파시 "s2"로 매도진입 ; "s2" 진입이손절로 끝나면 다시조건 만족해도 진입금지 ; 피봇선수식은 생략해도 됩니다 .. 잘 부탁드리겟습니다 ;
프로필 이미지
CSI300
2013-11-15
231
글번호 69551
시스템