커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1692
글번호 230811
답변완료
옵션 매매건수 데이터
시스템트레이딩 초보라서 그러는데 참조데이터에 선물 데이터 같은 옵션 매수호가 총건수, 옵션 매도호가 총건수 추가하는 방법 좀 알려주시면 감사하겠습니다.
2022-07-05
1342
글번호 160466
답변완료
동일전략만 중복제한
안녀하세요.
아래 다른 글에서 하루한번만 진입하도록 제한하는 방식을 entry를 사용하여
다음과 같이 알려주셨습니다.
--------------------------------
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
---------------------------------
그런데, 만일 아래와 같이 2개의 전략이 합성된 시스템을 운용중일경우
-------------------------
if crossup(c,2*DayHigh(1)) then
{
buy("매수1");
}
if crossup(c,2*Dayclose(1)) then
{
buy("매수2);
}
--------------------------------------
entry<1로 제한하면 어느전략이든지 관계없이 하루에 1번만 진입하게 되는것 같습니다.
저는 동일한 전략일경우에만 하루1번만으로 제한하고 싶습니다.
(즉, 매수1이후에 매수2신호가 뜨면 허용되도록)
어떻게 수식을 작성하면 될런지요?
2022-07-05
1413
글번호 160465
답변완료
buy,sell 함수 기존포지션
안녕하세요
buy, sell함수는 기존에 다른 포지션이 있으면 청산시키고 해당 포지션으로 진입하게끔 한다고 알고 있습니다.
만일, 동일한 계좌에 동일한 종목에 대해 2개의 전략을 운용중이라고 할때,
전략1에 의해 매수포지션인 상태에서(1계약), 전략2에 의해 sell함수에 의해 매도포지션 진입신호(1계약)가 발생하면,
이때도 기존 포지션을 청산하고 매도포지션을 진입하는것인가요?
아니면, 전략차트가 서로 다르므로, 그냥 매도주문이 나가면서 해당계좌에서 무포지션이 되는건가요?
2022-07-05
1502
글번호 160464
답변완료
문의
1. 옆봉이 음봉이고 옆봉의 종가를 건드리지 않고 상승이면 매수신호
2. 옆봉이 양봉이고 옆봉의 종가를 건드리지 않고 하락이면 매도신호
수식좀 알려주시면 감사하겠습니다.
2022-07-05
1508
글번호 160463
답변완료
함수요청
안녕하세요?
아래 글번호 77938번 재질문입니다.
국내선물 1분봉으로 일중거래를 하고자 합니다.
당일의 의미있는 고점(HH)과 저점(LL)을 설정하고
고점 돌파 후 3개봉 연속으로 상승하면서 양봉이면 매수1
(3개의 상승 양봉 모두 고점보다 큰 값이어야 함)
저점 이탈 후 3개봉 연속으로 상승하면서 양봉이면 매수2
(3개의 상승 양봉 모두 저점보다 작은 값이어야 함)
고점 돌파 후 3개봉 연속으로 하락하면서 음봉이면 매도1
(3개의 하락 음봉 모두 고점보다 큰 값이어야 함)
저점 이탈 후 3개봉 연속으로 하락하면서 음봉이면 매도2
(3개의 하락 음봉 모두 저점보다 작은 값이어야 함)
진입은 하루에 최대 1번만 하며, 진입 포지션 반대로 신호가 생성되면 청산하고자 합니다.
가령, 매매는 아래 1~8번 시나리오 가운데 최대 1개만 발생할 수 있습니다.
1. 매수1(진입)-> 매도1(매수청산)
2. 매수1(진입)-> 매도2(매수청산)
3. 매수2(진입)-> 매도1(매수청산)
4. 매수2(진입)-> 매도2(매수청산)
5. 매도1(진입)-> 매수1(매도청산)
6. 매도1(진입)-> 매수2(매도청산)
7. 매도2(진입)-> 매수1(매도청산)
8. 매도2(진입)-> 매수2(매도청산)
HH를 돌파한 이후에 3개봉 연속으로 상승하면서 양봉이어야 매수신호가 생성되여야 합니다.
작성주신 스크립트는 현재가가 돌파하고 상승 양봉 3개가 나와서가 아니라 양봉 3개가 상승하면서 HH를 돌파해도 신호가 생성됩니다.
매도의 경우도 마찬가지입니다.
스크립트 주정 부탁드립니다.
2022-07-05
1498
글번호 160462
답변완료
첫봉에 관한 질문입니다!
안녕하세요^^
매일 귀찮게 질문 많이 드리는데 친절하게 답변해 주셔서 정말 감사드립니다.
시스템 트레이딩 사용을 위해 수식을 만들어서 사용중인데 9~10시 사이에 신호가 안나오는거 같아서 확인해 보니 첫봉을 카운팅하지 못하는거 같습니다.
첨부파일 보시면 타증권사 HTS들은 첫봉에 캔들을 전부 생성해 주는데, 예스는 지원을 안하는거 같습니다.
data1 = 10분봉
data2 = 60분봉
data3 = 120분봉
이런식으로 차트를 세팅해서 보는데 상세 수식 생략하고 말씀드려도 아실테니(밑에 대충 작성합니다 틀려도 이해해주세요)
if
(data1(C-O) > 1 OR data2(C-O) > 1 OR data3(C-O) > 1) AND
data1macd > data1macd[1] and
data2macd > data2macd[1] and
data3macd > data3macd[1] then
buy
질문 1. 위의 수식일 경우 아침에 60분봉, 120분봉의 첫봉을 카운팅하지 못하는거 같습니다. 그래서 11시까지 신호가 발생하지 않는거 같은데 어떻게 해결해야 할까요? 위의 그림처럼 첫봉을 포함해서 볼 수 있는 방법이 없나요?
질문 2. 어제 if분은 봉 완성이 기준이라고 말씀해 주셨는데 수식에 60분봉 이상이 들어가면 10시 이후에나 신호가 가능한건가요 설마..
질문 3. 어제 답변해주신 봉완성 기준의 신호 카운팅을 봉생성 후 신호발생으로 개선할 여지가 내부적으로 없는건가요? 봉생성 기준으로 선택해서 사용할 수 있으면 참 좋을거 같습니다. 이건 데이터나 비용이 추가로 들어가는 부분이 아니니까요. 며칠전에 1000틱 이상은 왜 지원을 안해주냐는 질문에는 데이터를 보관하는데 서버용량이나 유지비용이 들어가니 그렇구나 했습니다.(이 부분도 타 증권사 HTS들은 지원을 해주는 곳도 많던데 안된다니 슬펐습니다 ㅠㅠ 예스가 기능적인 부분이나, 수식작성에 큰 강점이 있거든요)
시스템 트레이딩을 사용하는 사람중에 분명 60분봉, 혹은 큰 봉을 보면서 단타 시스템을 만든 사람도 있을 텐데.. 분봉 캔들이 생성 후 상승해가면서 신호가 발생할때 시장가로 매수하는 사람들은 캔들 완성 후면 이건 완전 후행이거든요.. 시스템 트레이딩을 사용하는 의미가 없어집니다.
타 증권사 hts들은 해당 캔들에서 신호가 발생하면 바로바로 신호를 보내주는데 많은걸 지원하는 예스에서 이게 안된다니 조금 의아하네요.. 이유가 혹시 있을까요? 수많은 증권사들의 hts에서 신호를 발생하는 즉시 보여주는 이유가 있을텐데, 왜 예스만 봉완성시에만 신호를 카운팅하는건지 설명좀 부탁드립니다.
2022-07-05
1509
글번호 160455
답변완료
함수요청
안녕하세요?
국내선물 5분봉으로 일중거래를 하고자 합니다.
개장하고 첫봉(9시 5분 완성봉)의 저가 > 20ma이며, 봉완성봉의 종가가 20ma를 2번 이탈하면 매도
(2번 이탈의 의미는 이탈->돌파->재이탈입니다.)
개장하고 첫봉(9시 5분 완성봉)의 고가 < 20ma이며, 봉완성봉의 종가가 20ma를 2번 돌파하면 매수
(2번 돌파의 의미는 돌파->이탈->재돌파입니다.)
장중 고점 돌파 완성 익봉에 매도청산, 매수청산
장중 저점 이탈 완성 익봉에 매도청산, 매도청산
15시 15분 강제청산
매수든 매도는 진입기준으로 최대 1회만 발생합니다.
2022-07-05
1261
글번호 160450
답변완료
문의드립니다
Text_Setbold(tx2,1);
글씨 볼드체 말고 그냥 보통글씨로 표현하려면 어떻게 표시하면 되나요?
2022-07-05
1576
글번호 160448
답변완료
array 질문2
주신 답변 감사합니다.
그런데 수정이 필요한 부분을 요청드립니다.
신호값 : 1
array의 값:10,12, 4,5,7,8,9,6,4,2,1 의 값이 array에 있을때
위 신호값이 1이 나올때 array에 들어 있는 값 5라고 한다면 1이 나온 5와 직전 array 값 4을 제외하고 다시 array 만들고 싶습니다.
결과는 11, 20, 10,12, 7,8,9,6,4,2,1
11, 20은 계속 추가된 값임: 계속 array에 값이 추가되지만 5와 4는 array에서 계속 제외 됨
아래 주신 coding을 어떻게 수정하면 좋겠습니까?
var : i(0),ii(0),TrnPNum(0);
Array : bTnRv[10](0);
Array : dTnRv[10](0);
ii = 0;
For i = 0 to 9
{
dTnRv[i] = 0;
if i != TrnPNum or i == TrnPNum-1 Then
{
dTnRv[ii] = bTnRv[i];
ii = ii +1;
}
}
2022-07-05
1461
글번호 160445