커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1326
글번호 230811
답변완료
수식의뢰 드립니다.
안녕하세요!
가중이평기울기를 만들고 싶어서 매매에 도움을 받고져 의뢰드립니다.
이평선기울기에 대한 수치가 우측 이평선 끝부근에 이평선과 수치가 같이 나타내 주시면 매매에 도움이 될 것 같습니다.
감사합니다.
2025-03-21
389
글번호 189398
답변완료
종목 검색 부탁 드려요..^^
안녕하세요, 수고가 많으세요.
아래 조건에 부합되는 종목 검색식 부탁 드립니다.
Y1=MACD(short,long);
Y2=eavg(stochasticsslow(sto1,sto2),sto3);
Y3=RSI(period);
A=(Y1+Y2+Y3)/3;
지표조건
short 12
long 26
sto1 20
sto2 12
sto3 12
period 21
검색조건: A < -40 and
1봉전 종가 < 1봉전 A의 주가 and
2봉전 A > 1봉전 A
1봉전 A < 0봉전 A and
1봉전 종가대비 0봉전 주가 등락률 10% 이하
감사합니다.
2025-03-24
404
글번호 189397
답변완료
지표 수식 문의드립니다
안녕하세요
키움증권 수식으로 아래 1,2 수식을 지표화하면 다르게 만들어지는데
예스랭귀지에서도 동일하게 1,2 다르게 구현이 가능할까요?
기간은 260 으로 사용할 예정입니다
1. ma(sum(C*V, 기간1)/sum(V, 기간1),기간1)
2. sum(C*V, 기간1)/sum(V, 기간1),기간1)
2025-03-21
387
글번호 189396
답변완료
검색식 부탁 드립니다
A=avg((highest(high,기간)),기간)
지표조건
120
B=avg((highest(high,기간)),기간)
지표조건
240
1.분봉에서 A가 B를 돌파하고 주가는A위에 있는 검색식 부탁 드립니다
일목균형표 선행스팬2<=주가가 같아거나 높다 종목 검색식 부탁드립니다
2025-03-24
378
글번호 189395
고도산 님에 의해서 삭제되었습니다.
2025-03-21
46
글번호 189394
답변완료
지표 변환 부탁드립니다.
// This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
// https://creativecommons.org/licenses/by-nc-sa/4.0/
// © BigBeluga
//@version=6
indicator("Two-Pole Oscillator [BigBeluga]", max_labels_count = 500, max_lines_count = 500)
// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
int length = input.int(20, minval=1, title="Filter Length")
bool disp_lvl = input.bool(true, "Levels")
color up_color = input.color(#55ffda, "", inline = "color")
color dn_color = input.color(#8c5bff, "", inline = "color")
var buy_line = line(na)
var sell_line = line(na)
// }
// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
float sma1 = ta.sma(close, 25)
float sma_n1 = ((close - sma1) - ta.sma(close - sma1, 25)) / ta.stdev(close - sma1, 25)
float area = ta.sma(high-low, 100)
// Two-pole smooth filter function
f_two_pole_filter(source, length) =>
var float smooth1 = na
var float smooth2 = na
alpha = 2.0 / (length + 1)
if na(smooth1)
smooth1 := source
else
smooth1 := (1 - alpha) * smooth1 + alpha * source
if na(smooth2)
smooth2 := smooth1
else
smooth2 := (1 - alpha) * smooth2 + alpha * smooth1
// Oscillator
two_p = f_two_pole_filter(sma_n1, length)
two_pp = two_p[4]
// Colors
color buy_col1 = color.from_gradient(two_p, -1, 0.5, up_color, na)
color buy_col2 = color.from_gradient(two_p, -1, 0.5, color.new(up_color, 50), na)
color sell_col1 = color.from_gradient(two_p, -0.5, 1, na, dn_color)
color sell_col2 = color.from_gradient(two_p, -0.5, 1, na, color.new(dn_color, 50))
color color = two_p > two_pp
? color.from_gradient(two_p, -1,1, up_color, color.new(up_color, 0))
: color.from_gradient(two_p, -1,1,color.new(dn_color, 0), dn_color)
// Signals
bool buy = ta.crossover(two_p, two_pp) and two_p < 0 and barstate.isconfirmed
bool sell = ta.crossunder(two_p, two_pp) and two_p > 0 and barstate.isconfirmed
// }
// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
if buy //and two_p < -0.5
sell_line := line(na)
if disp_lvl
buy_line := line.new(
bar_index-1
, low[1] - area
, bar_index
, low[1] - area
, force_overlay = true
, color = buy_col1
, style = line.style_dashed
)
label.new(bar_index-1, low[1] - area
, color = buy_col1, style = label.style_label_up, force_overlay = true, size = size.tiny)
if ta.crossunder(low, buy_line.get_y1()) and barstate.isconfirmed
label.new(
bar_index-1
, buy_line.get_y1()
, color = color.new(up_color, 100)
, style = label.style_label_center
, force_overlay = true
, size = size.large
, text = "✖"
, textcolor = up_color
)
buy_line := line(na)
if sell //and two_p > 0.5
buy_line := line(na)
if disp_lvl
sell_line := line.new(
bar_index-1
, high[1] + area
, bar_index
, high[1] + area
, force_overlay = true
, color = sell_col1
, style = line.style_dashed
)
label.new(bar_index-1, high[1] + area
, color = sell_col1, style = label.style_label_down, force_overlay = true, size = size.tiny)
if ta.crossover(high, sell_line.get_y1()) and barstate.isconfirmed
label.new(
bar_index-1
, sell_line.get_y1()
, color = color.new(dn_color, 100)
, style = label.style_label_center
, force_overlay = true
, size = size.large
, text = "✖"
, textcolor = dn_color
)
sell_line := line(na)
switch
not na(buy_line) => buy_line. set_x2(bar_index)
not na(sell_line) => sell_line.set_x2(bar_index)
plotshape(buy ? two_p[1] : na, "Buy", shape.circle, location.absolute, buy_col2, -1, size = size.small)
plotshape(buy ? two_p[1] : na, "Buy", shape.circle, location.absolute, buy_col1, -1, size = size.tiny)
plotshape(sell ? two_p[1] : na, "Sell", shape.circle, location.absolute, sell_col2, -1, size = size.small)
plotshape(sell ? two_p[1] : na, "Sell", shape.circle, location.absolute, sell_col1, -1, size = size.tiny)
p11 = plot(1, color = color.new(chart.fg_color, 80))
plot(0.5, color = color.new(chart.fg_color, 50))
p00 = plot(0, color = color.new(bar_index % 2 == 0 ? chart.fg_color : na, 0))
plot(-0.5, color = color.new(chart.fg_color, 50))
p_1 = plot(-1, color = color.new(chart.fg_color, 80))
fill(p11, p00, 2, -1, color.new(chart.fg_color, 80), na)
fill(p_1, p00, 1, -2, na, color.new(chart.fg_color, 80))
p1 = plot(two_p, color = color, linewidth = 1)
p2 = plot(two_pp, display = display.none)
fill(p1, p2, two_p, two_pp, color, na)
// }
2025-03-21
534
글번호 189393
사공하늘 님에 의해서 삭제되었습니다.
2025-03-21
213
글번호 189392
답변완료
변환 부탁드립니다
아래 종목검색식 부탁드립니다.
A1 = if(CrossUp(ma(C, 60), ma(C, 240)), 1, 0);
A2 = if(C - C(1) > 0, 1, 0);
A3 = if(stdev(C,10) > REF(stdev(C,10), 1), 1, 0);
(A1 + A2 + A3) >= 2
2025-03-21
391
글번호 189390
답변완료
시스템 작성의뢰
수고 하십니다 !
1. 이동평균선 1,15,30,60,120,240,480,960,1920,3840,7680 선이 역배열 한 다음
이동평균선 60 선이 240 이평선을 업크로스 하고 100틱 이상 상승한다음 이동평균선 60 선 이
240 이평선을 다운크로스 할 때 240 이평선과 960 이평선의 간격이 13 틱이상 벌어졌으면
매도를 하고 50 틱 이상 하락을 하고 60 이평선과 240 이평선 이 업크로스 할때 청산을 한다
2.이동평균선 1,15,30,60,120,240,480,960,1920,3840,7680 선이 정배열 한 다음
이동평균선 60 선이 240 이평선을 다운크로스 하고 100틱 이상 하락한다음 이동평균선 60 선
이 240 이평선을 업크로스 할 때 240 이평선과 960 이평선의 간격이 13 틱이상 벌어졌으면
매수를 하고 50 틱 이상 상승을 하고 60 이평선과 240 이평선 이 다운크로스 할 때 청산을
한다 *** 부탁 드립니다 ***
2025-03-21
413
글번호 189389