커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4386
글번호 230811
답변완료
거래차수 조절
아래는 거래횟수를 20회까지 입력하여 거래하는 buy 수식입니다.
input을 통해 거래차수를 조절하는 수식을 추가하고 싶습니다.
예를 들어
input : 거래차수(3)으로 입력하면
1차,2차 거래는 포지션 없이 진입과 청산 수식을 이행하다가
3차 거래부터 진입을 시작합니다.
******************************************************************
input : b1(9),b2(9),X1(9),X2(9),진입눌림(3),진입돌파(1),청산눌림(3),청산돌파(1),거래횟수(20),시작시간(090000) ;
var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
if (sdate != sdate[1] and stime >= 시작시간) or
(sdate == sdate[1] and stime >= 시작시간 and stime[1] < 시작시간) Then{
T1 = TotalTrades;
E1 = 0;
LL = L;
}
if stime >= 시작시간 then{
if L < LL Then
LL = L;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
LL = L;
}
if L < LL Then
LL = L;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*진입눌림 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파 Then{
buy("b2");
}
}
if MarketPosition == 1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EH = H;
E1 = 0;
}
if H > EH Then{
EH = H;
E1 = 0;
}
if E1 == 0 and C <= EH-PriceScale*X1 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{
exitlong("bx1");
E1 = 0;
}
}
}
if MarketPosition == 1 Then{
if entry >= 1 then{
if CurrentContracts > CurrentContracts[1] Then{
EH = H;
E1 = 0;
}
if H > EH Then{
EH = H;
E1 = 0;
}
if E1 == 0 and C <= EH-PriceScale*X2 Then{
E1 = 1;
L1 = L;
i1 = index;
}
if E1 == 1 and index > i1 Then{
if L < L1 Then
L1 = L;
if H >= L1+PriceScale*청산눌림 Then{
E1 = 2;
I1 = index;
S1 = L1;
}
}
if E1 == 2 and index > i1 and C <= S1-PriceScale*청산돌파 Then{
exitlong("bx2");
E1 = 0;
}
}
}
}
2018-05-23
188
글번호 119093
답변완료
검색문의드립니다.
Input : shortPeriod(12), longPeriod(26), Period(9),N(1);
Var : MACDv(0), MACDS(0),mav(0),T(0);
MACDv = MACD(shortPeriod, longPeriod);
MACDs = ema(MACDv,Period);
mav =ma(c,5);
if crossup(MACDV,MACDS) Then{
var1 = mav;
T = 1;
}
if CrossDown(MACDV,MACDS) Then{
var2 = mav;
T = -1;
}
if T == 1 Then{
if mav > var1 Then
var1 = mav;
}
if T == -1 Then{
if mav < var2 Then
var2 = mav;
}
plot1(var1,"매수");
plot2(var2,"매도");
plot3(ma(c,n),"N이평");
요청사항
var1와 var2 선의 값이 5%내로 가까워지면 잡을수 있는 수식 부탁드립니다.
2018-05-23
173
글번호 119090
답변완료
plot는 기술적지표에서만 쓸수있습니다 라는건 어떻게 바궈야할까요
plot1(RSI0,"RSI");
plot2(var3,"Fast_Metro");
plot3(var4,"Slow_Metro");
PlotBaseLine1(30, "기준선 30");
PlotBaseLine2(70, "기준선 70");
이 내용인데 시스템에서 하게돼면 기술적지표에서만 쓸수있다고 나와요
어떻게 바꿔야 할까요?
2018-05-23
181
글번호 119089
만두기 님에 의해서 삭제되었습니다.
2018-05-23
28
글번호 119088
답변완료
돌파식 수정요청
//사용자함수명 dema
input : Price(Numeric),Period(9);
dema = ema(ema(Price,Period),period);
//사용자함수명 tema
tema = ema(ema(ema(Price,Period),period),period);
var1=
100 - (100/(1+TEMA(if((C-C(1))>0,(C-C(1)),0), period) / TEMA(if((C-C(1))<0,abs((C-C(1))),0),period)))
var2=
100 - (100/(1+DEMA(if((C-C(1))>0,(C-C(1)),0), 9) / DEMA(if((C-C(1))<0,abs((C-C(1))),0),period)))
if Var1[1] > Var2[1] and Var1[1] < Var2[1] Then
Find(1);
검색식을 만들고 싶은데요
var2가 var1 돌파하는 검색식이요
여기서 외부변수에 price는 종가 c를 표현한건가요?
dema tema 계산 설명입니다
DEMA (Double Exponential Moving Average)
EMA의 EMA라고 이해.
< 계산 방법 >
EMA = {2 / ( n + 1)} X (당일종가 - 전일 EMA) + 전일 EMA
TEMA (Triple Exponential Moving Average)
EMA의 EMA의 EMA라고 이해
< 계산 방법 >
EMA = {2/(n+1)} * (당일종가 - 전일EMA) + 전일EMA
통상적으로 n = 9일을 기본값으로 합니다.
EMA (Exponential Moving Average, 지수이동평균)
가장 최근의 값에 더 많은 가중치를 부여하고
오래 된 값에는 적은 가중치를 부여하되,
비록 오래 된 값이라고 할지라도 완전히 무시하지는 않고 적게나마
반영시키는 계산방법으로
< 계산 방법 >
EMA(지수이동평균) = 전일지수이동평균 +{c×(금일종가지수-전일지수이동평균)}
※ c = 2 / (n+1)
단, 0 < c < 1
(9일의 경우 0.2, 12일의 경우 0.15, 26일의 경우엔 가중치 0.075 사용)
2018-05-22
157
글번호 119087
답변완료
종목검색식 부탁드립니다
일일이 수식 전파에 노고가 많어 십니다.
아래식은 조건을 만족하는 각 캔들을 선으로 연결하는 키움 지표 수식입니다.
valueWhen(1, ( c>c(1)*5 and amount > 2,500) ), (c-o)/2 + o)
각종목 현재봉에서 직전봉까지의 위 지표수식 값을 돌파하면서 거래량이 1,000,000주이상 발생하는 종목을 찾는 검색식을 부탁드립니다.
위 글을 다시 표현합니다.
직전봉까지에서 전일 종가의 5%(상승율)이상 상승하고 거래금액이 25억원(거래금액)이상인 조건을 만족하는 봉의 종가와 시가의 절반인 지점을 현재봉에서 거래량이 백만주 이상이면서 돌파하는 종목을 검색
- 상승율과 거래금액은 외부변수로 처리해주시기 바랍니다.
고마운 마음을 말로만 전했어 미안합니다.
2018-05-23
193
글번호 119086
답변완료
수식 문의 드립니다.
안녕하세요
수식 문의 드립니다.
선물 매수 진입에서... 순차적으로
매수1, 매수2, 매수3, 매수4 까지 하락시마다 진입합니다.
이때 매수4 만... 진입가 대비 선물 2포인트가 올랐을 때 청산 시키고자 합니다.
아래와 같이 수식을 만들었는데, 매수4의 청산이 발생하지 않습니다.
다른 조건에 의해서 진입 포지션이 청산되는데... 어디가 잘못됐는지 확인 부탁드립니다.
If
isEntryName("매수4")==True
Then
{
SetStopProfittarget(2,PointStop) ;
} Else
{
SetStopProfittarget(0);
}
감사합니다.
2018-05-22
150
글번호 119085
답변완료
간단한 질문 드립니다
If ~~~~ Then
{
Buy () ;
}
//매수 신호
위와 같이 if로 매수 신호를 발생시켰습니다.
매도 조건에 매수 신호날의 시가나 종가 데이터를 불러오고 싶은데 어떤 수식을 사용해야 하나요?
2018-05-22
137
글번호 119084
답변완료
수정및추가부탁드립니다
1,종목검색식
var1 = ma(C,5);
var2 = ma(C,10);
var3 = ma(c,20);
if m >= 1000000 and
C >= O*1.05 and C < O*1.30 and
var1 > var2 and var2 > var3 Then
find(1);
##추가 5일 10일 20일 이평 정배열에서 각이평 수렴 3%에서 5%이내수렴한 종목
and
input : abc(1.05);
if C > dayopen*abc and ma(V,1) > 1000000 Then
plot1(L,"검색");
검색표시가 5일 10일 20일 수렴한 위치 에서만 뜨는 종목만 찾게 해주세요
2018-05-22
178
글번호 119083