커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3686
글번호 230811
답변완료
손절 문의
안녕하세요?
주말사이 질문을 많이 올립니다.. 항상 감사드립니다.
1)
시스템 트레이딩 설정에서 '손절매' 항목이 있는데요.
이게 실행 되면, 10봉 내에는 거래를 못하는 로직을 만들고 싶은데요.
어떻게 할 수 있을까요?
2)
30분 주기의 시스템이라면 손절매는 30분이 완성 안되더라도 손절이 될까요?
3)
RSI 골드 크로스시 2계약을 매수하고 3% 수익시 1계약 매도, 데드크로시스 1계약 매도 하는 시스템 좀 가이드 부탁드립니다.
2020-07-20
1541
글번호 140794
답변완료
월요일 시초가 매수, 금요일 15시 매도
안녕하세요.
선물을 월요일 시초가에 무조건 매수하고 금요일 15시에 매도하려 합니다. 부탁드리겠습니다.
그리고 금요일이 공휴일인 경우 피할 순 없는거죠?
감사합니다.
2020-07-20
1556
글번호 140793
답변완료
검색식 부탁드립니다. 항상 도움 주셔서 감사드립니다.
안녕하세요. 항상 도움 주셔서 감사드립니다.
코로나로 힘들지만 행복한 한주 되셨으면 합니다.
다음 조건의 검색식 부탁드립니다.
A. 60일 거래량 이동평균의 300% 이상의 거래량이 검색기준일 기준으로 40일~50일 사이에 1회 이상 발생
B. 20일선 하향반전이 10일~15일 사이 발생
C. 20일선 하향추세 3일 이상 발생이 검색일 기준 15일 내에 1회 이상 발생
D. 20일선 일봉종가기준 상향돌파가 4일~7일 사이에 발생
E. 검색일 기준 3일 이내에 종가와 20일 이평선과의 이격이 2% 이내
A부터 E까지 모두 & 조건입니다.
일봉 기준입니다.
2020-07-20
1749
글번호 140791
답변완료
질문 올립니다.
안녕하세요. 늘 감사드립니다.
MACD를 이용한 매매식 질문 올리고자 합니다.
1.
어제 MACD의 최고값, 최저값의 절대치의 평균을 오늘의 MACD 과매수 과매도 기준으로 해서,
과매수 이탈시 매도, 과매도 돌파시 매수 하는 식 부탁 드립니다.
가령, 어제 MACD 최고값이 30이었고, 최저값이 -25였다면, 최고 최저치의 각각의 절대값의 평균은 27.5이므로,
오늘 MACD가 27.5를 하향 이탈할 때 매도,
오늘 MACD가 -27.5를 상향 돌파할 때 매수.
2.
위와 비슷한 로직입니다만,
현재 시점을 기준으로, 과거 10(외부변수)시간 내(즉, 10간 전 ~ 현재)의 MACD 최고 최저값들의 절대치의 평균을 오늘의 MACD 과매수 과매도 기준선들로 삼아서,
역시
과매수 기준선 하향 이탈시 매도,
과매도 기준선 상향 돌파시 매수
하는 식 부탁드립니다.
감사합니다!
2020-07-20
1466
글번호 140790
강산 님에 의해서 삭제되었습니다.
2020-07-19
4
글번호 140789
요타 님에 의해서 삭제되었습니다.
2020-07-19
35
글번호 140788
답변완료
지지저항선
지지저항선을 표시하고자합니다
선물챠트에서
일정한 가격을 입력하고 지지저항의 간격을 정해주면 지지선 몇개 저항선 몇개를 표시하고자 합니다
예를 들어 기즌준격 290.00을 입력하고
지지저항의 간격을 1.50으로 정하면 기준선 및 위아래에 몇개(정할수있음)의 선을 표시하고자 합니다. 위로 291.50, 293.00, 294.50 아래로 288.50, 287.00, 286.50 으로 표시돼도록
물론 기준선 및 저앙선, 지지선의 색깔을 구분하면 좋겠습니다
감사합니다
2020-07-19
1633
글번호 140787
답변완료
수식어 부탁드립니다
var : entry(0);
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;
if MarketPosition <= 0 and entry < 1 Then
buy("b",atlimit,dayhigh-PriceScale*80);
if MarketPosition == 1 Then
exitlong("bx",atlimit,lowest(L,BarsSinceEntry)+PriceScale*50);
if MarketPosition >= 0 and entry < 1 Then
sell("s",atlimit,daylow+PriceScale*1350);
if MarketPosition == -1 Then
ExitShort("sx",atlimit,Highest(H,BarsSinceEntry)-PriceScale*60);
if sdate != sdate[1] Then
SetStopEndofday(55000);
if bdate != bdate[1] Then
SetStopEndofday(0);
----------------------------------
수식어 추가입니다.
1. 손절 20틱
2. 23시 50분부터 buy, sell 진입신호금지 수식어입니다.
청산은 무관합니다.
2020-07-20
1364
글번호 140786
답변완료
수식 검토 요청합니다.
아래 수식은 수동으로 2가지 종목을 각각 매매후에 자리를 뜨고 자러 가는 사이에
본절 청산과 수익 추적 청산 하기 위한 수식입니다.
에러가 있는지 검토 요청드립니다.
수식이 문제가 없더라도 실전에서 문제가 없겠습니까?
GetPositionOpenPL 과 GetpositionQuantity 은
호출을 얼마 시간단위로 호출하는 것인지요?
분봉이 완성될 때마다 호출되는 것인지요?
GetPositionOpenPL 이 실제와 다를 때도 있습니까?
실제와 동일시하는 수식이 있으면 부탁드립니다.
var: quantity1(0),quantity2(0),러셀원가(0),가솔린원가(0);
var: 러셀이익(0),가솔린이익(0);
var: PL1(0),PL2(0),T(0);
var:러셀본전가(0), 가솔린본절가(0),러셀고가(0),가솔린고가(0), 러셀최고가(0),가솔린최고가(0);
PL1=GetPositionOpenPL("RTUV20","7212383908"); //러셀
PL2=GetPositionOpenPL("RB020","7212383908"); // 가솔린
quantity1=GetpositionQuantity("RTUV20","7212383908");//러셀 보유수량
quantity2=GetpositionQuantity("RB020","7212383908");//가솔린 보유수량
IF quantity1==0 Then
{
러셀원가 = PL1 ;
러셀이익=0 ;
러셀최고가=0;
러셀본전가=0 ;
T=0 ;
}
IF quantity2==0 Then
{
가솔린원가 = PL2 ;
가솔린이익=0;
가솔린최고가=0;
가솔린본절가=0;
T=0 ;
}
IF quantity1>0 Then
{
러셀이익 = PL1 -러셀원가 ;
}
IF quantity1>0 Then
{
러셀이익 > 러셀이익[1] ;
러셀최고가=러셀이익 ;
}
IF quantity2>0 Then
{
가솔린이익 = PL2 -가솔린원가 ;
}
IF quantity2>0 Then
{
가솔린이익 >가솔린이익[1] ;
가솔린최고가 = 가솔린이익;
}
IF quantity1[1]==0 and quantity1>0 then
{
러셀본전가 =c;
}
IF quantity2[1]==0 and quantity2>0 then
{
가솔린본절가 =c;
}
// 러셀을 수동으로 매매하고 이익이 나서 이익을 시스템식으로 보전하려고 합니다.
//러셀 매매후 이익이 나면
if quantity1>0 AND PL1 > 러셀원가 Then
{
러셀이익 = PL1 - 러셀원가 ;
T=1;
}
//가솔린 매매후 이익이 나면
if quantity2>0 AND PL2 > 가솔린원가 Then;
{
가솔린이익 = PL2 - 가솔린원가 ;
T=-1;
}
// 러셀 매수후 이익이 나서 본절가로 가격이 떨어지면 본절가 청산합니다.
IF quantity1==1 and T==1 and 러셀이익 > pricescale*40 Then
{
Sell("bx1",AtStop,러셀본전가); // 러셀 본절가는 수동으로 넣어 줍니다.옆의 수식 맞습니까? 포지션이 매도이면 이 명령은 손으로 삭제합니다.
T=0 ;
// 러셀 매수후 이익이 많이 나서 최고값 대비 50%로 가격이 떨어지면 수익 청산합니다.
if 러셀최고가 >= 러셀원가+pricescale*60 then
sell("bx2",atstop,(러셀최고가- 러셀원가)*0.5 ); // 포지션이 매도이면 이 명령은 손으로 삭제합니다.
T=0 ;
}
// 러셀 매도후 이익이 나서 본절가로 가격이 떨어지면 본절가 청산합니다.
IF quantity1==1 and T==1 and 러셀이익 > pricescale*40 Then {
Buy("sx1",AtStop,러셀본전가); // 러셀 본절가는 수동으로 넣어 주기도 합니다.옆의 수식 맞습니까? 포지션이 매수이면 이 명령은 손으로 삭제합니다.
T=0 ;
// 러셀 매도후 이익이 많이 나서 최고삾 대비 50%로 가격이 덜어지면 수익 청산합니다.
if 러셀최고가 >= 러셀원가*60 then
Buy("sx2",atstop,(러셀최고가 - 러셀원가)*0.5 ); // 포지션이 매수이면 이 명령은 손으로 삭제합니다.
T=0 ;
}
//////////////////////////////////////////////////////////
// 가솔린 매수후 이익이 나서 본절가로 가격이 떨어지면 본절가 청산합니다.
IF quantity2==1 and T==-1 Then
{
Sell("bx11",AtStop,가솔린본절가); // 러셀 본절가는 수동으로 넣어 주기도 합니다..옆의 수식 맞습니까? 포지션이 매도이면 이 명령은 손으로 삭제합니다.
T=0 ;
// 가솔린 매수후 이익이 많이 나서 최고값 대비 50%로 가격이 떨어지면 수익 청산합니다.
if highest(H,BarsSinceEntry) >= entryprice+pricescale*40 then
sell("bx22",atstop,highest(H,BarsSinceEntry)-(highest(H,BarsSinceEntry)-entryprice)*0.5 ); // 포지션이 매도이면 이 명령은 손으로 삭제합니다.
T=0 ;
}
// 가솔린 매도후 이익이 나서 본절가로 가격이 떨어지면 본절가 청산합니다.
IF quantity1==1 and T==-1 Then {
Buy("sx11",AtStop,가솔린본절가); // 러셀 본절가는 수동으로 넣어 줍니다.옆의 수식 맞습니까? 포지션이 매수이면 이 명령은 손으로 삭제합니다.
T=0 ;
// 가솔린 매도후 이익이 많이 나서 최고삾 대비 50%로 가격이 덜어지면 수익 청산합니다.
if highest(H,BarsSinceEntry) >= entryprice+pricescale*40 then
Buy("sx22",atstop,lowest(L,BarsSinceEntry)+(entryprice-lowest(L,BarsSinceEntry))*0.5 ); // 포지션이 매수이면 이 명령은 손으로 삭제합니다.
T=0 ;
}
MessageLog("quantity1= %.f " , quantity1 );
MessageLog("PL1= %.f " , PL1 );
2020-07-19
1464
글번호 140785