커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1527
글번호 230811
답변완료
매수신호
안녕하세요
5분봉 사용 중이며 특정시간 8시 45분에서 8시 50분에 완성되는 봉이 양봉이면 매수신호, 음봉이면 매도신호가 나오고 특정시간 9시 5분에 청산신호가 나오는 수식 부탁합니다.
2025-09-02
153
글번호 193672
답변완료
갯수 만족
안녕하세요. 늘 도움 주셔서 감사합니다.
신호 수식을 작성하는데 있어, 다음과 같은 조건의 수식 작성이 가능할까요?
조건1= ~~~;
조건2=~~
.
.
조건5= ~~~
이렇게 5개의 조건 중 4개 이상의 조건을 만족하면 차트에 신호가 나오게 하고 싶습니다.
혹시 이런 수식 구현이 가능할까요?
좋은 하루 보내세요~
감사합니다.
2025-09-02
158
글번호 193663
답변완료
조건검색식 문의드립니다.
//@version=5
indicator("RSI Shift Zone [ChartPrime] with Custom Line Width and Breakout Signals", overlay = false, max_labels_count = 500)
// --------------------------------------------------------------------------------------------------------------------{
rsi_len = input.int(14, "RSI length")
upper_level = input.int(70, "Upper RSI Level", minval = 50)
lower_level = input.int(30, "Lower RSI Level", maxval = 50)
min_channel_len = input.int(15, "Minimal bars length of the channel")
display_rsi_val = input.bool(false, "Display RSI Values at the Zones")
show_breakout_signals = input.bool(true, "Show Breakout Signals") // 신호 표시 여부 설정
// Line Width Inputs
upper_line_width = input.int(3, "Upper Line Width", minval=1, maxval=5)
lower_line_width = input.int(3, "Lower Line Width", minval=1, maxval=5)
center_line_width = input.int(2, "Center Line Width", minval=1, maxval=5)
upper_col = input.color(#21c997, "↑", inline = "colors")
lower_col = input.color(#cc24e2, "↓", inline = "colors")
center_line_col = input.color(color.gray, "Center Line Color")
breakout_col = input.color(color.green, "Breakout Signal Color") // 돌파 신호 색상
var start = int(na)
var trigger = false
var float upper = na
var float lower = na
var channel_color = color(na)
var bool is_lower_channel = na // 하단 채널인지 여부를 저장하는 변수 추가
color bar_color = na
// --------------------------------------------------------------------------------------------------------------------{
rsi = ta.rsi(close, rsi_len)
channel_upper = ta.crossover(rsi, upper_level) and not trigger
channel_lower = ta.crossunder(rsi, lower_level) and not trigger
rsi_color = color.from_gradient(rsi, lower_level, upper_level, lower_col, upper_col)
if channel_upper
label.new(bar_index, rsi, style = label.style_circle, size = size.tiny, color = color.new(rsi_color, 45))
label.new(bar_index, rsi, str.tostring(upper_level), style = label.style_label_center, size = size.small, color = color.new(rsi_color, 100))
start := bar_index
trigger := true
upper := high
lower := low
channel_color := rsi_color
bar_color := rsi_color
is_lower_channel := false // 상단 채널임을 표시
if display_rsi_val
label.new(bar_index, hl2, "RSI: " + str.tostring(upper_level), style = label.style_label_right, color = color.new(rsi_color, 100), textcolor = color.white, size = size.small)
if channel_lower
label.new(bar_index, rsi, style = label.style_circle, size = size.tiny, color = color.new(rsi_color, 45))
label.new(bar_index, rsi, str.tostring(lower_level), style = label.style_label_center, size = size.small, color = color.new(rsi_color, 100))
start := bar_index
trigger := true
upper := high
lower := low
channel_color := rsi_color
bar_color := rsi_color
is_lower_channel := true // 하단 채널임을 표시
if display_rsi_val
label.new(bar_index, hl2, "RSI: " + str.tostring(lower_level), style = label.style_label_right, color = color.new(rsi_color, 100), textcolor = color.white, size = size.small)
if bar_index-start >= min_channel_len
trigger := false
trigger_change = channel_upper != channel_upper[1] or channel_lower != channel_lower[1]
// 상단선 돌파 신호 로직 수정: 하단 채널에서 생성된 박스의 상단만 돌파할 때 신호 발생
upper_breakout = not na(upper) and close > upper and show_breakout_signals and is_lower_channel
// --------------------------------------------------------------------------------------------------------------------}
// Plotting
// --------------------------------------------------------------------------------------------------------------------{
barcolor(bar_color)
prsi = plot(rsi, "RSI", color = rsi_color, linewidth = 2)
p50 = plot(50, color = color.gray, editable = false)
plower = plot(lower_level, "Lower RSI Level", color = color.gray)
pupper = plot(upper_level, "Upper RSI Level", color = color.gray)
fill(prsi, pupper, rsi >= upper_level ? color.new(rsi_color, 80) : na)
fill(prsi, plower, rsi <= lower_level ? color.new(rsi_color, 80) : na)
plot(trigger_change ? float(na) : upper, force_overlay = true, style = plot.style_linebr, offset = -1, color = channel_color, editable = false, linewidth=upper_line_width)
plot(trigger_change ? float(na) : lower, force_overlay = true, style = plot.style_linebr, offset = -1, color = channel_color, editable = false, linewidth=lower_line_width)
p1 = plot(trigger_change ? float(na) : upper, force_overlay = true, style = plot.style_linebr, color = color.new(channel_color, 70), linewidth = upper_line_width, editable = false)
p2 = plot(trigger_change ? float(na) : lower, force_overlay = true, style = plot.style_linebr, color = color.new(channel_color, 70), linewidth = lower_line_width, editable = false)
fill(p1, p2, color.new(channel_color, 90))
// 중심선 플롯
plot(trigger_change ? float(na) : math.avg(upper, lower), force_overlay = true, style = plot.style_linebr, offset = -1, color = center_line_col, editable = false, linewidth=center_line_width)
plot(trigger_change ? float(na) : math.avg(upper, lower), force_overlay = true, style = plot.style_linebr, color = center_line_col, editable = false, linewidth=center_line_width)
// 상단선 돌파 신호 표시 (하단 채널에서 생성된 박스의 상단 돌파만)
plotshape(upper_breakout, title="Upper Breakout", style=shape.triangleup, location=location.belowbar, color=breakout_col, size=size.small)
// --------------------------------------------------------------------------------------------------------------------}
일봉상 위 신호가 발생한 종목을 검출할 수 있도록 해주시면 감사드리겠습니다 (__)
항상 감사드립니다 :)
2025-09-02
216
글번호 193662
답변완료
어떻게 고쳐야 할까요?
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
신호가 나올때 하단에 가격을 표시할려면 어떻게 수정해야 하나요?
수고 많으십니다.
그리고 시가와 종가를 둘다 표시할수 있나요?
2025-09-01
147
글번호 193661
답변완료
수식좀 부탁드립니다
if CrossUp(var1, var2) then buy(); if NextBarOpen > 0 Then playsound("C:₩예스트레이더₩data₩sound₩alert.wav") 위의 경우 신호완성시 소리가 한번만 나게 부탁드립니다 계속 울리네요
2025-09-01
161
글번호 193660
답변완료
문의드립니다.
제가 질문하는 능력이 많이 떨어져서 전달이 제대로 안되는 거 같아
한번 더 질문드립니다.
아래는 제 질문에 대한 예스스탁의 답변입니다.
----------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
if CountIf(C>O,3) == 3 and C[3] <= O[3] Then
Buy();
if MarketPosition == 1 and BarsSinceEntry == 3 and CountIf(C<O,3) == 3 Then
ExitLong();
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
연속 2양봉후 3번째 양봉에서 매수(즉, 진입봉 포함 연속 3양봉시 매수)진입후 이어서 연속 3음봉일 때 청산하는 식도 구하고 싶습니다. 즉, 3양봉이라서 매수신호가 나왔는데 바로 3음봉으로 꺽이면 청산하는 식입니다.
결국 양봉, 양봉, 양봉(매수신호 발생)후 이어서 음봉, 음봉, 음봉이 연달아 나오면 청산입니다.
----------------------------------------------------------------------------
1. 매수신호가 필요한게 아니라 청산식만 필요합니다.
2. 우선 연속으로 양봉 2개가 나옵니다. 그리고 3번째 양봉이 나오고나서부터 연속해 3음봉이 나오면 청산하는 청산식입니다. 간단히 말하자면 3개의 양봉 후 3개의 음봉이 나오면 청산하느 식입니다. 즉, 진입봉을 포함해 연속 3양봉이 나온후(마지막 봉이 양봉이라야 합니다) 바로 연속해서 3음봉이 나오면 청산하는 식입니다.
미리 노고에 감사드립니다.
2025-09-01
155
글번호 193659
답변완료
예스트레이더 종목검색으로 요청합니다^^*
아래수식은 키움에서 작성된 수식입니다..
이것을 예스종목검색으로 요청합니다..
Crossup(Disparity(10),105)&&
avg(C,10)>Avg(C(1),10)&&
Avg(C(1),10)<Avg(C(2),10)
2025-09-01
170
글번호 193658
답변완료
종목검색식 수정 ~`
간단하게 이평 GC,RSI와 슈퍼트렌드를 조합한 검색식입니다
아래의 식에서 "슈퍼"라고 표시된 부분에서 에러가 생기는데 확인 요청 드립니다
INPUT : 기간1(5), 기간2(15), 기간3(9), ATR기간(10), 승수(2);
VAR : A(0), A1(0), B(0), 기본선(0), 상단(0), 하단(0), 슈퍼(0);
// EMA 조건
A = EMA(C, 기간1);
A1 = EMA(C, 기간2);
// RSI 조건
B = RSI(기간3);
// 슈퍼트렌드 계산
기본선 = (H + L) / 2;
상단 = 기본선 + 승수 * ATR(ATR기간);
하단 = 기본선 - 승수 * ATR(ATR기간);
슈퍼 = IF C > 슈퍼[1] THEN MAX(하단, 슈퍼[1]), ELSE MIN(상단, 슈퍼[1]);
// 조건식
IF CROSSUP(A, A1) // EMA 단기선이 중기선 돌파
&& B >= 55 // RSI가 55 이상
&& C > O // 양봉
&& V > V[1] * 1.5 // 거래량 전일 대비 1.5배 이상
&& C > 슈퍼 // 종가가 슈퍼트렌드 위
THEN FIND(1);
2025-09-01
191
글번호 193657
kody 님에 의해서 삭제되었습니다.
2025-09-01
4
글번호 193656