커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1311
글번호 230811
alsode 님에 의해서 삭제되었습니다.
2025-06-09
2
글번호 191509
답변완료
시스템 수식으로 바꿔주세요
var : 시가양합(0),현재양합(0),양합지수(0);
시가양합 = Data1(OpenD(0))+Data2(OpenD(0));
현재양합 = Data1(close)+Data2(close);
양합지수 = 시가양합-시가양합;
위 식을 당일 시스템으로 바꿔주세요
양합지수가 기준선"0" 을 상향돌파할때 매수
양합지수가 기준선"0" 을 하향돌파할때 매도
양합지수가 기준선"+1.50" 을 상향돌파할때 매도
양합지수가 기준선"-0.50" 을 하향돌파할때 매수
더운데 감사합니다.
2025-06-09
235
글번호 191508
답변완료
수식변환 부탁드립니다.늘 감사합니다
1번**
//@version=6
indicator("Reversal BB", overlay = true)
// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
int length = input(50)
float factor = input.float(1.0, "Factor", step = 0.1)
// Color
color col_up = input(color.lime, "", inline = "col")
color col_dn = input(color.rgb(221, 26, 26), "", inline = "col")
color col_ul = input(color.aqua, "", inline = "col")
// }
// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
trend(length)=>
var direction = 0
var count_up = 0.
var count_dn = 0.
float volatility = ta.sma(high-low, 70) * factor
float upper = ta.highest(ta.sma(close, 25) + volatility, int(length/2))
float lower = ta.lowest(ta.sma(close, length) - volatility, int(length/2))
bool sig_up = ta.crossover(hlc3, upper) and barstate.isconfirmed
bool sig_dn = ta.crossunder(hlc3, lower) and barstate.isconfirmed
switch
sig_up => direction := 1
sig_dn => direction := -1
upper := direction == 1 ? float(na) : upper
lower := direction == -1 ? float(na) : lower
// Trends Duration
if direction == 1
count_up += 0.5
count_dn := 0
if direction == -1
count_dn += 0.5
count_up := 0
count_up := count_up > 70 ? 70 : count_up
count_dn := count_dn > 70 ? 70 : count_dn
[upper, lower, direction, count_up, count_dn]
[upper, lower, direction, count_up, count_dn] = trend(length)
float upper_band = lower + ta.atr(100)*5
float lower_band = upper - ta.atr(100)*5
color upper_col = color.new(col_dn, int(count_dn))
color lower_col = color.new(col_up, int(count_up))
color upper_band_col = color.new(col_ul, 70 - int(count_up))
color lower_band_col = color.new(col_ul, 70 - int(count_dn))
// }
// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
plot(upper_band, "Upper Wave", style = plot.style_linebr, color = bar_index % 2 == 0 ? na : upper_band_col, linewidth = 1)
plot(lower_band, "Lower Wave", style = plot.style_linebr, color = bar_index % 2 == 0 ? na : lower_band_col, linewidth = 1)
plot(upper, "Upper Band", style = plot.style_linebr, color = upper_col, linewidth = 2)
plot(lower, "Lower Band", style = plot.style_linebr, color = lower_col, linewidth = 2)
plot(upper, "Upper Band Shadow", style = plot.style_linebr, color = color.new(col_dn, int(count_dn*2)), linewidth = 6)
plot(lower, "Lower Band Shadow", style = plot.style_linebr, color = color.new(col_up, int(count_up*2)), linewidth = 6)
plotshape(direction != direction[1] and direction == 1 ? lower : na, "Trend Up", shape.circle, location.absolute, size = size.tiny, color = col_up)
plotshape(direction != direction[1] and direction == 1 ? lower : na, "Trend Up", shape.circle, location.absolute, size = size.small, color = color.new(col_up, 70))
plotshape(direction != direction[1] and direction == -1 ? upper : na, "Trend Down", shape.circle, location.absolute, size = size.tiny, color = col_dn)
plotshape(direction != direction[1] and direction == -1 ? upper : na, "Trend Down", shape.circle, location.absolute, size = size.small, color = color.new(col_dn, 70))
// Trend Duration (70 max)
// if barstate.islast
// if direction == 1
// label.delete(label.new(bar_index, lower, str.tostring(count_up), color = color(na), style = label.style_label_left, textcolor = chart.fg_color)[1])
// if direction == -1
// label.delete(label.new(bar_index, upper, str.tostring(count_dn), color = color(na), style = label.style_label_left, textcolor = chart.fg_color)[1])
// }
2번 **
//@version=4
study(title=" New RSI ",shorttitle = "NRSI", format=format.price, precision=0, overlay=false)
//
DZbuy = 0.1
DZsell = 0.1
Period = 14
Lb = 60
red=#f887fa
green=color.rgb(10, 193, 254)
//
RSILine = rsi(close,Period)
jh = highest(RSILine, Lb)
jl = lowest(RSILine, Lb)
jc = (wma((jh-jl)*0.5,Period) + wma(jl,Period))
Hiline = jh - jc * DZbuy
Loline = jl + jc * DZsell
R = (4 * RSILine + 3 * RSILine[1] + 2 * RSILine[2] + RSILine[3] ) / 10
//
a=plot(R, title='R', color=color.white, linewidth=1, style=plot.style_line, transp=0)
b=plot(Hiline, title='Hiline', color=color.gray, linewidth=1, style=plot.style_line, transp=0)
c=plot(Loline, title='Loline', color=color.gray, linewidth=1, style=plot.style_line, transp=0)
plot(jc, title='Jc', color=#68158e, linewidth=2, style=plot.style_line, transp=50)
//
col_1 = R > Hiline ? red:na
col_2 = R < Loline ? green:na
//
fill(a, b, color=col_1,transp=0)
fill(a, c, color=col_2,transp=0)
2025-06-09
373
글번호 191506
답변완료
주간시장? 야간시장 구분건.
if (sDate != sDate[1] and sTime >= 84500) or
(sDate == sDate[1] and sTime >= 84500 and sTime[1] < 84500) Then{var1=0;}
var1=var1+1;
var2=ma(C,var1);
통합차트에서 이런 수식이런 봉카운드가 기준장부터 첫봉 시장해서
야간장까지 쭉 카운트 되나요?
아님 주간장만 카운트 되나요?
2025-06-09
217
글번호 191505
답변완료
수식부탁드립니다.
1.
if t2 ==-2 and 20<= ad
Then
{
sell("s")
}
2.
if t2 ==-2 and dmiv[1] < dmiv
then
{
sell("s")
}
1과2모두 t2는 파라볼릭 신호입니다.파라볼릭 지표신호는 동일하고 추가조건만 조금 다른데
1번은 분명히 파라볼릭매수신호인데 매도진입이 되었습니다.
원인을 못 찾겟습니다. 원인좀 부탁드립니다.
2025-06-09
229
글번호 191504
답변완료
지표 변환 부탁드립니다.
키움 수식인데 변환 부탁드립니다.
수식1
S=sar(af,maxAf);
--------------------------------
수식2
S=sar(af,maxAf);
D=ValueWhen(1,CrossDown(C,S),S(1));
Ds=ValueWhen(1,CrossDown(C,S),S);
DDs2=S-(Ds-D)/2;
DDs4=S-(Ds-D)/4;
U=ValueWhen(1,CrossUp(C,S),S(1));
Us=ValueWhen(1,CrossUp(C,S),S);
UUs2=(U-Us)/2+S;
UUs4=(U-Us)/4+S;
if(C>S, UUs2,DDs2)
---------------------------------
수식3
S=sar(af,maxAf);
D=ValueWhen(1,CrossDown(C,S),S(1));
Ds=ValueWhen(1,CrossDown(C,S),S);
DDs2=S-(Ds-D)/2;
DDs4=S-(Ds-D)/4;
U=ValueWhen(1,CrossUp(C,S),S(1));
Us=ValueWhen(1,CrossUp(C,S),S);
UUs2=(U-Us)/2+S;
UUs4=(U-Us)/4+S;
if(C>S, UUs4,DDs4)
-----------------------------------
수식4
S=sar(af,maxAf);
조건=Crossup(C,S);
시작가=ValueWhen(1,조건,O);
bs=BarsSince(조건);
라인1=if(조건,시작가,시작가+시작가*(비율1/100)*bs);
if(S<C && S<라인1,라인1,S);
------------------------------------
수식5
S=sar(af,maxAf);
조건=Crossup(C,S);
시작가=ValueWhen(1,조건,O);
bs=BarsSince(조건);
라인2=if(조건,시작가,시작가+시작가*(비율2/100)*bs);
if(S<C && S<라인2,라인2,S);
===================
설정
af=0.01
maxAf=0.2
비율1=0.5
비율2=1
2025-06-09
252
글번호 191503
답변완료
업데이트에 따른 진입시간 오류
이전까지 1545까지해서 진입청산을 진행했는데
새벽 1159가 넘어가는 시간은 익일처리가 되지 않고 당일로 계산이 되는듯합니다.
if stime > 084500 and stime < 055900
이렇게 하면 오류가 잡히는것 같습니다.
0845를 당일로 하여 당일 저고점을 체크하고 진행을 해야 하는데 새벽이 당일로 잡혀버리는 오류가 발생하는 상황...
대처방안 부탁드립니다.
2025-06-09
208
글번호 191502
답변완료
오늘 업데이트후
오늘 업데이트후 ,
주간 데이타만 사용하려고 합니다.,
KOSPI KOSDAQ 상승종목수,하락종목수를 참조 할때 어떤것은 복합,주간,야간 으로 설정하게 되어있고
어떤것은 KRX 만 선택 하도록 되어 있습니다.
어떻게 전략 챠트를 설정해야 하나요?
2025-06-09
214
글번호 191500
답변완료
지표식인대 시스템 신호 부탁 드립니다.
input:p9(9),p26(26),p52(52);
var:a9(0),a26(0),af1(0),af2(0);
a9=(highest(h,p9)+lowest(l,p9))/2;
a26=(highest(h,p26)+lowest(l,p26))/2;
af1=(a9+a26)/2;
af2=(highest(h,p52)+lowest(l,p52))/2;
plot1(af1-af2, "선행12 41.6%");
plot2(a26-af2[p26-1], "기준-선행2 43.7%");
plot3(a9-af2[p26-1], "전환-선행2 40.4%");
PlotBaseLine1(0,"zero");
안녕 하세요.
1.양으로 전환 될때 매수 음으로 전환 될때 매도
2.기준선(제로) 위에 있을때 매수 아래에 있을때 매도 이렇게 두가지 수식 부탁 드립니다.
수고하세요.
2025-06-09
227
글번호 191499