커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1581
글번호 230811
답변완료
예트로 변환 부탁합니다
트레이딩뷰 소스를 예트로 변환 부탁합니다. 제가 시도했는데 box에서 막히네요.
//@version=5
indicator("ZLMA Trend Levels [ChartPrime]", overlay = true)
//-----------------------------------}
// User Inputs
//-----------------------------------{
int length = input.int(15, title="Length") // Length for the moving average calculations
bool show_levl = input.bool(true, "Trend Levels") // Toggle to show trend levels
// Colors for the trend levels
color up = input.color(color.red, "+", group = "Colors", inline = "i")
color dn = input.color(color.lime, "-", group = "Colors", inline = "i")
var box1 = box(na) // Variable to store the box
series float atr = ta.atr(200) // Average True Range (ATR) for trend levels
//-----------------------------------}
// Indicator Calcs
//-----------------------------------{
series float emaValue = ta.ema(close, length) // EMA of the closing price
series float correction = close + (close - emaValue) // Correction factor for zero-lag calculation
series float zlma = ta.ema(correction, length) // Zero-Lag Moving Average (ZLMA)
bool signalUp = ta.crossover(zlma, emaValue) // Signal for bullish crossover
bool signalDn = ta.crossunder(zlma, emaValue) // Signal for bearish crossunder
// Determine the color of ZLMA based on its direction
color zlma_color = zlma > zlma[3] ? up : zlma < zlma[3] ? dn : na
color ema_col = emaValue < zlma ? up : dn // Determine the EMA color
//-----------------------------------}
// Visualization
//-----------------------------------{
// Plot the Zero-Lag Moving Average
p1 = plot(zlma, color = zlma_color, linewidth = 1, title = 'zlma') // Plot ZLMA
p2 = plot(emaValue, color = ema_col, linewidth = 1, title = 'emaValue') // Plot EMA
fill(p1, p2, zlma, emaValue, color.new(zlma_color, 80), color.new(ema_col, 80)) // Fill between ZLMA and EMA
// Method to draw a box on the chart
method draw_box(color col, top, bot, price)=>
box.new(
bar_index, top, bar_index, bot, col, 1,
bgcolor = color.new(col, 90),
text = str.tostring(math.round(price, 2)),
text_size = size.tiny,
text_color = chart.fg_color,
text_halign = text.align_right
)
// Logic to draw trend levels as boxes on the chart
if show_levl
bool check_signals = signalUp or signalDn // Check if there is an up or down signal
switch
// Draw a box when a bullish signal is detected
signalUp => box1 := up.draw_box(zlma, zlma - atr, close)
// Draw a box when a bearish signal is detected
signalDn => box1 := dn.draw_box(zlma + atr, zlma, close)
switch
// Extend the right side of the box if no new signal is detected
not signalUp or not signalDn => box1.set_right(bar_index + 4)
=> box1 := box(na) // Otherwise, reset the box
switch
// Add a downward label when price crosses below the bottom of the box
ta.crossunder(high, box1.get_bottom()) and not check_signals[1] and not check_signals and emaValue > zlma=>
label.new(bar_index - 1, high[1], "▼", color = color(na), textcolor = dn, style = label.style_label_down)
// Add an upward label when price crosses above the top of the box
ta.crossover(low, box1.get_top()) and not check_signals and not check_signals[1] and emaValue < zlma=>
label.new(bar_index - 1, low[1], "▲", color = color(na), textcolor = up, style = label.style_label_up)
// Plot shapes for up and down signals
plotshape(signalUp ? zlma : na, "sig up", shape.diamond, location.absolute, color = up, size = size.tiny)
plotshape(signalDn ? zlma : na, "sig dn", shape.diamond, location.absolute, color = dn, size = size.tiny)
//-----------------------------------}
2025-03-30
709
글번호 189681
답변완료
조건식으로 변형부탁드립니다
v100이 m30 을 돌파할때 종목이 검색되게 하고싶습니다 v100은 거래량가중이동평균100선이구요 m30은 이동평균30선입니다..
부가적인조건은 v100선이 우상향으로 상방으로 기울기좀 높아진것을 원합니다.우상향으로 돌파하는것을 뜻합니다. 그리고 이것을 or로 처리해서 3분봉, 15분봉, 일봉 3가지로 모두검색되게하고싶습니다
2025-03-28
540
글번호 189679
답변완료
검색식 문의 들여요~
일봉 전봉 대비 양봉으로 인것 검색식 좀 찾아주세요~
2025-03-28
384
글번호 189671
답변완료
setstopendofday
안녕하세요 수고가 많으십니다
장마감전 포지션 청산은 아래와 같이
(예를 들어 오후 3시 15분)
하는 것을 알게 되었는데요
SetStopEndofday(15150);
혹시 장시작 이후 포지션 진입을 지정하려면
어떻게 해야하는지 문의드립니다
(예를 들어 9시 1분 이후)
감사합니다!
2025-03-28
378
글번호 189670
답변완료
문의 드립니다.
만약 a,b,c,d 4개의 라인이 있다고 가정할 때....
상단선(최고선)과 하단선(최저선)을 추출하여 별도의 라인을 표현하고 싶습니다.
즉, 2개의 라인이 추가되어 총 6개의 라인이 되겠지요.
답변에 항상 감사드립니다.
2025-03-28
400
글번호 189665
답변완료
질문 드리겠습니다
분봉상에서 조건검색하는 식인데요
분봉 검색할때 일봉 ( 타주기 )에서 찾는것도 합성할 수 있나요?
일봉상 조건도 추가 해주시면 감사하겠습니다
if (countif(crossup(h,cc[0]),100)>=1) or (countif(crossup(h,cc[1]),100)>=1) Then
{
Find(1);
}
이 부분에다가 일봉상에서 검색하는 아래 조건도 and 로 추가 부탁드립니다
var10=Money/100000000;
if countif(h>l*1.07 and var1>30,100) >= 6 Then Find(1);
즉 분봉 조건 and 일봉조건 둘다 만족할때 search 를 하고 싶습니다
감사합ㄴ니다
아래는 수식입니다
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0),tl1(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),cc[50](0),vv[150](0),ttl[10](0);
if Bdate != Bdate[1] Then
DD = DD+1;
#H>vi(1)*0.95 h>l*1.07
if h>l*1.07 Then
{
d1 = dd;
d2 = d1[1];
#if d1 >= d2+1 Then
#if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
if d2 == 0 or (d2 > 0 and d1 >= d2+3) Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
tl=TL_NEW(sDatE,sTimE,100,sDatE,sTimE,999999);
TL_SetSize(tl,0);
TL_SetColor(tl,Black);
For cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
For cnt = 0 to 150
{
vv[cnt]=0;
}
For cnt = 1 to (var1-Var2)
{
vv[cnt-1]=h[cnt];
}
Var20=Money/100000000;
if Var20>30 Then
{
For cnt = 49 DownTo 1
{
cc[cnt]= cc[cnt-1];
}
cc[0]=value1*0.9;
}
}
}
if (countif(crossup(h,cc[0]),100)>=1) or (countif(crossup(h,cc[1]),100)>=1) Then
{
Find(1);
}
2025-03-28
528
글번호 189664
답변완료
예스 스팟 매도식 추가 가능여부 문의 드립니다.
안녕하세요 왜인지 모르겠지만 자꾸 글이 업로드 에러가 나서 첨부파일로 질문을 대체했습니다.
죄송한데 첨부 파일 한번 확인 부탁드립니다.
2025-03-27
441
글번호 189663
deeparc 님에 의해서 삭제되었습니다.
2025-03-27
0
글번호 189662
답변완료
피보나치 문의드립니다
안녕하세요 관리자님!!
피보나치를 이용하여 실거래를 하고 있습니다
분봉차트에서의 피보나치는 당일의 시가에서부터 시작되는데
이를 응용해서 미국장에서부터 시작되는 피보나치선을 구현하고 싶습니다
즉 미국장 개장시간이 시가인 피보나치선이 필요합니다
부탁드립니다^^
2025-03-27
456
글번호 189661