커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1711
글번호 230811
답변완료
선 속성 설정 추가 부탁 드립니다.
안녕하세요.
아래 식을 봤는데 이 식에서
선 색상과 선 굵기 그리고 각 선의 오른쪽 상단에 각각 다른 텍스트를 표현하고 싶습니다.
가능하다면 부탁 드립니다..
감사합니다.
---------------------------
아래 식에선 선 개수가 5개이니 텍스트도 각 선마다 1개씩, 그리고 각 선마다 색상과 굵기를 설정할 수 있기를 원합니다..
input : n(5);
var : cnt(0);
Array : TL[20](0), TXT[20](0);
if Bdate != Bdate[1] Then
{
If DayClose(1) < DayOpen(1) Then
value1 = ((DayLow(1)*2)+DayHigh(1)+DayClose(1))/4;
Else If DayClose(1) > DayOpen(1) Then
value1 = ((DayHigh(1)*2)+DayLow(1)+DayClose(1))/4;
Else
value1 = ((DayClose(1)*2)+DayHigh(1)+DayLow(1))/4;
TL[0] = TL_New(sDate,sTime,value1,NextBarSdate,NextBarStime,value1);
TL_SetExtRight(TL[0],true);
For cnt = 1 to 19
{
TL[cnt] = TL[cnt-1][1];
}
TL_Delete(TL[n]);
}
2021-12-16
713
글번호 154548
답변완료
지표 질문입니다
1. 전일과 분리되어 당일부터 시작되는 종가 파라볼릭차트에서
파라볼릭이 상승에서 하락 또는 하락에서 상승으로 바뀌면
직전 파라볼릭 상승,하락 구간에서 천정(H1)과 바닥(L1) 사이 진동폭(=H1-L1)을
H1과 L1에 각각 적용시킨다
L=L1-(H1-L1)
H=H1+(H1-L1)
2. 전일과 연결되어 진행되는 종가 파라볼릭차트에서
파라볼릭이 상승에서 하락 또는 하락에서 상승으로 바뀌면
직전 파라볼릭 상승,하락 구간에서 천정(H1)과 바닥(L1) 사이 진동폭(=H1-L1)을
H1과 L1에 각각 적용시킨다
L=L1-(H1-L1)
H=H1+(H1-L1)
감사합니다
2021-12-16
818
글번호 154547
답변완료
문의
예제 수식에 청산 수식 a),b) 추가 부탁 드립니다.
1)PercentStop
ex) if c > dayopen + 0.05 then
buy();
a)0.55 퍼센트 이상 수익을 내고 있을 때
SetStopLoss(0.2,PercentStop);
SetStopTrailing(1.5,0,PercentStop,1);
SetStopInactivity(0.2,50,PercentStop);
b)0.75 퍼센트 이상 수익을 내고 있을 때
SetStopLoss(0.3,PercentStop);
SetStopTrailing(1.6,0,PercentStop,1);
SetStopInactivity(0.3,50,PercentStop);
2)PriceStop
ex) if c > dayopen + 0.05 then
buy();
a) 2.00 포인트 이상 수익을 내고 있을 때
SetStopLoss(2.00,PriceStop);
SetStopTrailing(4.00,0,PriceStop);
SetStopInactivity(1.00,50,PriceStop);
b)3.00 포인트 이상 수익을 내고 있을 때
SetStopLoss(2.20,PriceStop);
SetStopTrailing(4.20,0,PriceStop);
SetStopInactivity(1.20,50,PriceStop);
2021-12-16
1000
글번호 154543
답변완료
부탁합니다
shortlen = input(5, minval=1, title="Short Period")
longlen = input(10, minval=1, title="Long Period")
siglen = input(5, minval=1, title="Signal Line Period)")
erg = tsi(close, shortlen, longlen)
sig = ema(erg, siglen)
osc = erg - sig
plot(erg, color=fuchsia, title="Indicator")
plot(sig, color=aqua, title="Signal")
plot(osc, color=red, style=histogram, title="Oscillator")
상기 수식을 예스로 전환 부탁합니다.
아래위 기준선(30,-30)도 같이 부탁합니다.
2021-12-16
848
글번호 154539
답변완료
수고합니다.
안녕하세요
틱챠트에서 10분간 발생한 봉개수 알고 싶습니다.
2021-12-16
771
글번호 154538
답변완료
일목균형표 시스템문의
안녕하세요.
선물기준입니다.
일목균형표에서 전환선과 기준선이 데드날때 매도
매도포지션을 5일선과 10일선 골든날때 매도청산
골든날때 매수해서 10일선과 5일선이 데드날때 매수청산하고 싶습니다.
그리고 이동평균선과 기준선이 골든날때매수 하는것도 가능한가요?
선물일봉에서 20일선과 기준선이 골든나면 매수
매도는 20일선 깨면 청산
부탁드립니다.
2021-12-16
1101
글번호 154531
답변완료
일목균형표 시스템문의
안녕하세요.
선물기준입니다.
일목균형표에서 전환선과 기준선이 데드날때 매도
매도포지션을 5일선과 10일선 골든날때 매도청산
골든날때 매수해서 10일선과 5일선이 데드날때 매수청산하고 싶습니다.
그리고 이동평균선과 기준선이 골든날때매수 하는것도 가능한가요?
선물일봉에서 20일선과 기준선이 골든나면 매수
매도는 20일선 깨면 청산
부탁드립니다.
2021-12-16
836
글번호 154530
답변완료
시스템식 요청과 질문 올립니다
감사합니다
1. 다음 시스템식을 부탁드립니다
전일종가가 그저께저가보다 낮고, 당일 60분봉이 몸체길이 1포인트 이상의 양봉이면 60분봉의 '저가+(고가-저가)*0.25'(소수둘째자리에서 반올림)에 2계약을 매수하고 고가+0.5에 2계약을 매도한다
전일종가가 그저께 고가보다 높고, 당일 60분봉이 몸체길이 1포인트 이상의 음봉이면 60분봉의 '고가-(고가-저가)*0.25(소수둘째자리에서 반올림)에 2개를 매도하고 저가-0.5에 2계약을 매수한다
체결되면 매도는 몸통길이 1포인트 이상의 양선에서 (고가+저가)/2 가격에 매수한다
매수는 몸통길이 1포인트 이상의 음선에서 (고가+저가)/2 가격에 매도한다.
모든 체결 건의 trailing stop은 진입가 대비 진입후 최대이익의 80%이다.(str주문가격은 소수둘째자리에서 반올림한다)
모든 스탑로스주문은 4포인트이다.
2. 질문드립니다.
1) 동일한 시스템식을 첫번째 60분봉에서 한번. 그리고 다음 60분봉에서 한번만
사용하려면 어떻게 합니까? 그리고 동일 로직을 60분봉, 20분봉에서 각각 적용하려면 어떻게 하는지요
시스템식을 자동매매로 사용하기 위하여 어떤 방법과 절차를 거쳐야 하는지 전반적인 설명을 해주시면 고맙겠습니다.
2)혹시 trailing stop이 체결되면 원래 진입가격에 동일한 수량으로 재진입하게 할 수는 없습니까?
3) trailing stop이나 stoploss 주문은 당일에만 유효합니까? 혹시 다음날에도 가능한지요
4) if marketposition ==1 Then if ......exitshort("sx1"); 이런 문장에서 혹시 계좌내에 다른 전략으로 보유하고 있는 매수포지션이 있는 경우에도 주문이 나갈 수 있습니까? 그리고 신호가 두번째 세번째 나온 때도 반복해서 주문이 실행되는지, 방지하려면 어떻게 하는지 궁금합니다.
감사합니다
2021-12-16
831
글번호 154528
답변완료
문의드립니다.
아래 수식을 예스로 부탁드립니다.
중심선도 부탁드리며 전봉대비 상하 색상구분되게 부탁드립니다.
indicator("Nadaraya-Watson Envelope [LUX]",overlay=true,max_bars_back=1000,max_lines_count=500,max_labels_count=500)
length = input.float(500,'Window Size',maxval=500,minval=0)
h = input.float(8.,'Bandwidth')
mult = input.float(3.)
src = input.source(close,'Source')
up_col = input.color(#39ff14,'Colors',inline='col')
dn_col = input.color(#ff1100,'',inline='col')
//----
n = bar_index
var k = 2
var upper = array.new_line(0)
var lower = array.new_line(0)
lset(l,x1,y1,x2,y2,col)=>
line.set_xy1(l,x1,y1)
line.set_xy2(l,x2,y2)
line.set_color(l,col)
line.set_width(l,2)
if barstate.isfirst
for i = 0 to length/k-1
array.push(upper,line.new(na,na,na,na))
array.push(lower,line.new(na,na,na,na))
//----
line up = na
line dn = na
//----
cross_up = 0.
cross_dn = 0.
if barstate.islast
y = array.new_float(0)
sum_e = 0.
for i = 0 to length-1
sum = 0.
sumw = 0.
for j = 0 to length-1
w = math.exp(-(math.pow(i-j,2)/(h*h*2)))
sum += src[j]*w
sumw += w
y2 = sum/sumw
sum_e += math.abs(src[i] - y2)
array.push(y,y2)
mae = sum_e/length*mult
for i = 1 to length-1
y2 = array.get(y,i)
y1 = array.get(y,i-1)
up := array.get(upper,i/k)
dn := array.get(lower,i/k)
lset(up,n-i+1,y1 + mae,n-i,y2 + mae,up_col)
lset(dn,n-i+1,y1 - mae,n-i,y2 - mae,dn_col)
if src[i] > y1 + mae and src[i+1] < y1 + mae
label.new(n-i,src[i],'▼',color=#00000000,style=label.style_label_down,textcolor=dn_col,textalign=text.align_center)
if src[i] < y1 - mae and src[i+1] > y1 - mae
label.new(n-i,src[i],'▲',color=#00000000,style=label.style_label_up,textcolor=up_col,textalign=text.align_center)
cross_up := array.get(y,0) + mae
cross_dn := array.get(y,0) - mae
alertcondition(ta.crossover(src,cross_up),'Down','Down')
alertcondition(ta.crossunder(src,cross_dn),'Up','Up')
2021-12-16
718
글번호 154527