커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3376
글번호 230811
답변완료
청산문의
매수/매도 포지션마다 각각 다른 청산조건을 입력하고 싶습니다
1. 매수
- IF 현재가 > 손절가 이면 익일 시가청산 * 손절가를 이탈하지 않으면 익일 시가청산
- 매수포지션은 손절가를 이탈하지 않을경우 익일 시가에 청산하기 위함
IF MarketPosition == 1 then {
if NextBarSdate == SDATE Then
ExitLong("LS",AtLimit,LatestEntryPrice(0)-LTR);
IF NextBarSdate != SDATE Then
ExitLong("EL",ATMARKET);
2. 매도
- IF 현재가 < 손절가 이면 당일 종가청산 * 손절가를 이탈하지 않으면 당일청산
- 매도포지션은 손절가를 이탈하지 않을경우 당일청산
IF MarketPosition == -1 then
IF NextBarSdate == SDATE Then EXITSHORT("SS",AtStop,LatestEntryPrice(0) + STR);
ELSE SetStopEndofday();
이렇게 수식을 입력하였는데요, 매수포지션도 종가에 청산됩니다.
그리고 매수포지션과 매도포지션 수식을 따로 입력해서 시뮬레이션을 돌리면 제가 원하는대로 각각 진입/청산은 잘 됩니다. 매수/매도 함수를 합치면 계속 오류가 납니다.
저번주에 답변을 주셨으나 답을 잘못 알려주신것 같아서 다시 질문 드립니다.
2020-05-24
2450
글번호 139122
답변완료
시스템매매 문의입니다.
안녕하세요. 예스트레이더로 자동매매를 처음 시작하게 되어서 문의드립니다.
제가 자동매매를 하고싶은 수식은 다음과 같습니다.
9시5분부터 14시 30분까지 매수주문이 들어가고
3분봉차트상 종가가 bbandsup(40,2)과 bbandsup(50,2)를 돌파하며
3분봉차트상 종가가 envelopeup(20,5) 또는 envelopeup(10,5) 를 돌파하며
종가가 1000원 이상이고 변동성완화장치(VI)에 2% 이내 근접하지 않고
일 거래량이 100000이상이고 3분봉차트상 2봉전 거래량보다 1봉전 거래량이 3배 커야하고,
일봉상 5일간의 최고가를 돌파 or 60일간의 최고가를 돌파하는 종목을 매수주문 넣고 싶습니다.
아 그리고 종목당 금일 장시작 예수금의 20%씩 매수하고 싶습니다. 즉 한번에 총 5종목까지만 잔고에 보유할 수 있게끔요.
매도는 제가 매수한 가격보다 2%가 상승하면 익절주문을 내고 제가 매수한 가격보다 2%가 하락하면 손절주문을 내고싶습니다.
3시15분에 잔고의 모든종목을 시장가로 매도시키고
제가 매수한 봉에서도 매도가 나갈 수 있게 하고싶습니다.
2020-05-23
2565
글번호 139121
답변완료
조건만족 후 분할매수
매수조건 만족후// condition1
매수조건이 유지되고 당일의 주가가 조건만족봉의 종가보다 1%이상되지 않는 조건에서
일정시간(180분) 동안 일정 금액(천만원)을 3회에 걸쳐서 분할매수 하는 수식은 어떻게 되나요?
condition1 = crossup(C, x);
if condition1 = true then begin
매수조건....
=============================================
2020-05-23
2352
글번호 139120
답변완료
당월 수익후 거래제한
월단위 거래하는 시스템입니다.
만약, 당월 수익이 3%가 넘는다면 이후 당월 거래를 제한하는 시스템 수식을 알고 싶습니다.
또한, 월말 마지막 주의 마지막 거래일은 신규 진입을 제한하고,
보유 포지션이 있을 경우 강제로 청산하고 하는 수식을 알려주셨으면 합니다.
2020-05-23
2335
글번호 139119
답변완료
기존 지표 수식에 알람을 넣을 수 있나요?
항상 수고하십니다.
예스랭귀지에서 단순이동평균2 를 열어보면
#
Input : Period1(5),Period2(10);
var1 = ma(C,Period1);
var2 = ma(C,Period2);
Plot1(var1, "이동평균1");
Plot2(var2, "이동평균2");
#
이렇게 나와있는데요. 저기에 수식을 추가해서 알람기능을 넣고 싶습니다.
봉이 Period1,2 를 돌파했을때 한번, 돌파해서 마감했을 경우 한번 울리게 하고싶습니다.
장중 가격이 변동되면서 봉이 완성되기 전에 Period1,2 를 아래,위로 여러번 돌파할 경우도 있을텐데요,
여러번 울리지 않고 돌파 최초의 1회, 그리고 봉 완성시 종가가 돌파했을때 1회, 총 2회만 울렸으면 좋겠습니다.
그리고 그 알람기능을 키고 끌 수 있을까요?
수식작성해주시는 담장자분의 노고에 항상 감사하드립니다!
2020-05-23
2357
글번호 139118
답변완료
지표문의합니다.
안녕하세요! 지표 문의드립니다.
1. 일목 지표에서 전환선이 기준선을 크로스업,다운 시에
선행스팬1의 색을 지정해서 바꾸고 싶습니다.
ex) 크로스업일때 연빨간색, 크로스다운일때 연파랑색
2. 현재 캔들 포함 지정 N만큼 이전 N캔들 색을 바꾸고 싶습니다.
ex) 20선 이동평균선(빨간색)기준에 해당하는
이전 캔들 하나의 색을 빨간색으로 바꾸는 것.
수고하세요!
2020-05-23
2271
글번호 139117
답변완료
문의드립니다.
// INPUTS //
st_mult = input(2, title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(14, title = 'SuperTrend Period', minval = 1)
// CALCULATIONS //
up_lev = hl2 - (st_mult * atr(st_period))
dn_lev = hl2 + (st_mult * atr(st_period))
len = input(20)
//DI+ and DI-
upz = change(up_lev)
down = -change(dn_lev )
trur = rma(tr, len)
plus = fixnan(rma(upz > down and upz > 0 ? upz : 0, len) / trur)
minus = fixnan(rma(down > upz and down > 0 ? down : 0, len) / trur)
sum = plus + minus
adx = rma(abs(plus - minus) / (sum == 0 ? 1 : sum), len)
di = plus - minus
x=adx-di*100
zz=x/-1
plot(zz, linewidth=2)
plot(0,color=color.black)
//
showZones = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule:
bullishRule = zz > 0
// bearish signal rule:
bearishRule = zz <= 0
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ruleState == 1 ? color.blue : ruleState == -1 ? color.red : color.gray : na, title=" Bullish/Bearish Zones", transp=90)
도움주셔서 감사드립니다.
좋은 하루되세요
2020-05-22
2483
글번호 139116
답변완료
수식전환 부탁요
키움수식을 예스 지표수식으로 전환부탁드립니다
<a>
수식1
A=If(ATR(sp)>eavg(ATR(Lp),sigp),
If(sar(af,maxaf)<C,2,1),
If(sar(af,maxaf)>C,-2,-1));
B=crossup(A,0);
B1=crossdown(A,0);
B2=crossup(A,-2);
B3=crossdown(A,2);
D=valuewhen(1, b or b1 or b2 or b3, o);
d1=crossup(c,D);
d2=crossdown(c,D);
G=valuewhen(1, d1 or d2, o);
g1=crossup(c,G);
g2=crossdown(c,G);
valuewhen(1, g1 or g2 , o)
수식2
A=HIGHEST(LOWEST(L,P1)+ATR(P1),P2);
B=LOWEST(HIGHEST(H,P1)-ATR(P1),P2);
D=(A+B)/2;
d1=crossup(c,D);
d2=crossdown(c,D);
E=valuewhen(1, d1 or d2,o)
지표조건설정
sp 4/ lp 10/ sigp 7/ af 0.02/ maxaf 0.2
p1 5/ p2 8
<b>
수식1
A=Bbandsup(period,D1);
B=Bbandsdown(period1,D2);
a1=crossup(c,A);
a2=crossdown(c,A);
b1=crossup(c,B);
F=valuewhen(1, a1 or a2 or b1, o);
f1=crossup(c,F);
f2=crossdown(c,F);
G=valuewhen(1, f1 or f2 , o);
g1=crossup(c,G);
g2=crossdown(c,G);
valuewhen(1, g1 or g2, o)
수식2
HH=highestsince(1,date!=date(1),H);
LL=Lowestsince(1,date!=date(1),L);
중심선=(HH+LL)/2;
A=(HH-LL)*0.236;
B=중심선+ A*0.236;
D=중심선- A*0.5
b1=crossup(c,B);
b2=crossdown(c,B);
d1=crossup(c,D);
d2=crossdown(c,D);
G=valuewhen(1, b1 or b2 or d1 or d2, o);
g1=crossup(c,G);
g2=crossdown(c,G);
valuewhen(1, g1 or g2, o)
지표조건설정
period 3/ period1 5/d1 2/d2 2.4
2020-05-22
2758
글번호 139115
답변완료
부탁드립니다.
다음 수식을 예스지표로 전환부탁드립니다.
1.거래량
수식1
BT3=V(1)+V(2)+V(3)/3;
BT3<V
수식2
BT5=V(1)+V(2)+V(3)+V(4)+V(5)/5;
BT5<V
수식3
BT7=V(1)+V(2)+V(3)+V(4)+V(5)+V(6)+V(7)/7;
BT7<V
수식4
BT10=V(1)+V(2)+V(3)+V(4)+V(5)+V(6)+V(7)+V(8)+V(9)+V(10)/10;
BT10<V
조건설정 없음
2.등분선(양봉)
수식1
조건1=eavg((C-C(1))*V/C,SPeriod);
조건2=C>C(1)+C(1)*종가비율 && 조건1>조건1(1)+조건1(1)*FI비율;
if(C>O&&조건2,(C-O)/4+O,0);
수식2
if(C>O&&조건2,(C-O)/2+O,0);
수식3
if(C>O&&조건2,(C-O)/4*3+O,0);
지표조건설정 0.2
fi비율 1
speriod 1
3.등분선(음봉)
수식1
조건1=eavg((C-C(1))*V/C,SPeriod);
조건2=C<C(1)+C(1)*종가비율 && 조건1>조건1(1)+조건1(1)*FI비율;
if(C<O&&조건2,(C-O)/4+O,0);
수식2
if(C<O&&조건2,(C-O)/2+O,0);
수식3
if(C<O&&조건2,(C-O)/4*3+O,0);
지표조건설정 0.2
fi비율 1
speriod 1
2020-05-22
1932
글번호 139114