커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1587
글번호 230811
답변완료
검색식 부탁 드립니다
avg((highest(high,기간)),기간)
지표조건
기간 240
1.분봉 돌파 검색식 부탁 드립니다
A=(C- lowest(C, period))/C*100;// GOLDENPOWER 지표
GB=max(A, 0);
B=(highest(C, period) -C)/C*100;
GS=max(B, 0);
BB=(C-lowest(L,Period))/(highest(H,Period)-lowest(L,Period))*100; // 스토F 지표
SS=Sum(C-lowest(L,기간1),기간2) //스토 슬루우 지표
/Sum((highest(H,기간1)-lowest(L,기간1)),기간2)* 100; //스토케스틱 슬로우 본선
AA=eavg(SS, 기간3); //스토케스틱 시그널선
D=CROSSUP(GB,GS) && CROSSUP(BB,50) && SS>AA && V>MA(V,period)*배수;
valuewhen(1,D,C)
지표조건
period 14
기간1 12
기간2 5
기간3
배수 1
2. 분봉상 첫번째돌파 검색식 부탁 드립니다 첫번째만 검색 돌도록 부탁 드립니다
2025-03-12
293
글번호 189069
답변완료
수식 변환
안녕하세요.
하기 키움수식을 예스랭귀로 변환 요청드립니다.
감사합니다.
RWL = max( (H(1)-LOW ) / ( (ref( sum( atr(1), 2), 1) / 2) * sqrt(2) ),
( H(2)-LOW ) / ( (ref( sum( atr(1), 3), 1) / 3) * sqrt(3) ),
( H(3)-LOW ) / ( (ref( sum( atr(1), 4), 1) / 4) * sqrt(4) ),
( H(4)-LOW ) / ( (ref( sum( atr(1), 5), 1) / 5) * sqrt(5) ),
( H(5)-LOW ) / ( (ref( sum( atr(1), 6), 1) / 6) * sqrt(6) ),
( H(6)-LOW ) / ( (ref( sum( atr(1), 7), 1) / 7) * sqrt(7) ),
( H(7)-LOW ) / ( (ref( sum( atr(1), 8), 1) / 8) * sqrt(8) ),
( H(8)-LOW ) / ( (ref( sum( atr(1), 9), 1) / 9) * sqrt(9) ) );
RWL
RWH = max( (H-LOW(1) ) / ( (ref( sum( atr(1), 2), 1) / 2) * sqrt(2) ),
( H-LOW(2) ) / ( (ref( sum( atr(1), 3), 1) / 3) * sqrt(3) ),
( H-LOW(3) ) / ( (ref( sum( atr(1), 4), 1) / 4) * sqrt(4) ),
( H-LOW(4) ) / ( (ref( sum( atr(1), 5), 1) / 5) * sqrt(5) ),
( H-LOW(5) ) / ( (ref( sum( atr(1), 6), 1) / 6) * sqrt(6) ),
( H-LOW(6) ) / ( (ref( sum( atr(1), 7), 1) / 7) * sqrt(7) ),
( H-LOW(7) ) / ( (ref( sum( atr(1), 8), 1) / 8) * sqrt(8) ),
( H-LOW(8) ) / ( (ref( sum( atr(1), 9), 1) / 9) * sqrt(9) ) );
RWH
2025-03-12
352
글번호 189068
답변완료
종목검색식 부탁드립니다
1. 캔들(양봉캔들,음봉캔들 모두포함)의
몸통이 전체길이의 절반이하 이고,
윗꼬리는 전체길이의 절반 이상인
종목검색식 부탁드립니다.
(전체길이의 캔들몸통은 절반이하,캔들 윗꼬리는 절반이상)
2025-03-12
312
글번호 189066
답변완료
수식변환 부탁드립니다.
안녕하세요
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("Nadaraya-Watson Envelope [LuxAlgo]", "LuxAlgo - Nadaraya-Watson Envelope", overlay = true, max_lines_count = 500, max_labels_count = 500, max_bars_back=500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
h = input.float(8.,'Bandwidth', minval = 0)
mult = input.float(3., minval = 0)
src = input(close, 'Source')
repaint = input(true, 'Repainting Smoothing', tooltip = 'Repainting is an effect where the indicators historical output is subject to change over time. Disabling repainting will cause the indicator to output the endpoints of the calculations')
//Style
upCss = input.color(color.teal, 'Colors', inline = 'inline1', group = 'Style')
dnCss = input.color(color.red, '', inline = 'inline1', group = 'Style')
//-----------------------------------------------------------------------------}
//Functions
//-----------------------------------------------------------------------------{
//Gaussian window
gauss(x, h) => math.exp(-(math.pow(x, 2)/(h * h * 2)))
//-----------------------------------------------------------------------------}
//Append lines
//-----------------------------------------------------------------------------{
n = bar_index
var ln = array.new_line(0)
if barstate.isfirst and repaint
for i = 0 to 499
array.push(ln,line.new(na,na,na,na))
//-----------------------------------------------------------------------------}
//End point method
//-----------------------------------------------------------------------------{
var coefs = array.new_float(0)
var den = 0.
if barstate.isfirst and not repaint
for i = 0 to 499
w = gauss(i, h)
coefs.push(w)
den := coefs.sum()
out = 0.
if not repaint
for i = 0 to 499
out += src[i] * coefs.get(i)
out /= den
mae = ta.sma(math.abs(src - out), 499) * mult
upper = out + mae
lower = out - mae
//-----------------------------------------------------------------------------}
//Compute and display NWE
//-----------------------------------------------------------------------------{
float y2 = na
float y1 = na
nwe = array.new<float>(0)
if barstate.islast and repaint
sae = 0.
//Compute and set NWE point
for i = 0 to math.min(499,n - 1)
sum = 0.
sumw = 0.
//Compute weighted mean
for j = 0 to math.min(499,n - 1)
w = gauss(i - j, h)
sum += src[j] * w
sumw += w
y2 := sum / sumw
sae += math.abs(src[i] - y2)
nwe.push(y2)
sae := sae / math.min(499,n - 1) * mult
for i = 0 to math.min(499,n - 1)
if i%2
line.new(n-i+1, y1 + sae, n-i, nwe.get(i) + sae, color = upCss)
line.new(n-i+1, y1 - sae, n-i, nwe.get(i) - sae, color = dnCss)
if src[i] > nwe.get(i) + sae and src[i+1] < nwe.get(i) + sae
label.new(n-i, src[i], '▼', color = color(na), style = label.style_label_down, textcolor = dnCss, textalign = text.align_center)
if src[i] < nwe.get(i) - sae and src[i+1] > nwe.get(i) - sae
label.new(n-i, src[i], '▲', color = color(na), style = label.style_label_up, textcolor = upCss, textalign = text.align_center)
y1 := nwe.get(i)
//-----------------------------------------------------------------------------}
//Dashboard
//-----------------------------------------------------------------------------{
var tb = table.new(position.top_right, 1, 1
, bgcolor = #1e222d
, border_color = #373a46
, border_width = 1
, frame_color = #373a46
, frame_width = 1)
if repaint
tb.cell(0, 0, 'Repainting Mode Enabled', text_color = color.white, text_size = size.small)
//-----------------------------------------------------------------------------}
//Plot
//-----------------------------------------------------------------------------}
plot(repaint ? na : out + mae, 'Upper', upCss)
plot(repaint ? na : out - mae, 'Lower', dnCss)
//Crossing Arrows
plotshape(ta.crossunder(close, out - mae) ? low : na, "Crossunder", shape.labelup, location.absolute, color(na), 0 , text = '▲', textcolor = upCss, size = size.tiny)
plotshape(ta.crossover(close, out + mae) ? high : na, "Crossover", shape.labeldown, location.absolute, color(na), 0 , text = '▼', textcolor = dnCss, size = size.tiny)
//-----------------------------------------------------------------------------}
2025-03-12
518
글번호 189065
답변완료
안녕하세요.
안녕하세요..
지표에 시초가 가격을 왼쪽 상단에 보이게 할 수 있게 부탁드립니다...
시초가를 A 부분에요
2025-03-12
334
글번호 189064
구름달 님에 의해서 삭제되었습니다.
2025-03-12
0
글번호 189063
새벽에 님에 의해서 삭제되었습니다.
2025-03-12
10
글번호 189062
답변완료
함수요청
안녕하세요?
아래 스크립트에서 매수신호는 매도신호를 매도신호는 매수신호를
매수청산신호는 매도청산신호를 매도청산신호는 매수청산신호가 생성되도록 신호를 거꾸로 나오게 해주세요
input : n(5);
input : cc(5), sm(4), lm(11);
var1 = ma(c,cc);
var2 = ma(c,sm);
var3 = ma(c,lm);
Condition1 = var1 < Var3 and Var2 > Var3;
Condition2 = var1 > Var3 and Var2 < var3;
if NextBarSdate != sDate Then
{
if DayClose(1) < DayOpen(1) and DayClose(0) > DayOpen(0) Then
{
if max(DayClose(1),DayOpen(1)) > max(DayClose(0),DayOpen(0)) and
min(DayClose(1),DayOpen(1)) < min(DayClose(0),DayOpen(0)) and
condition2 == true
Then
Buy("b1",AtMarket);
if max(DayClose(1),DayOpen(1)) < max(DayClose(0),DayOpen(0)) and
min(DayClose(1),DayOpen(1)) > min(DayClose(0),DayOpen(0)) and
condition2 == true then
Buy("b2",AtMarket);
}
if DayClose(1) > DayOpen(1) and DayClose(0) < DayOpen(0) Then
{
if max(DayClose(1),DayOpen(1)) > max(DayClose(0),DayOpen(0)) and
min(DayClose(1),DayOpen(1)) < min(DayClose(0),DayOpen(0)) and
condition1 == true Then
Sell("s1",AtMarket);
if max(DayClose(1),DayOpen(1)) < max(DayClose(0),DayOpen(0)) and
min(DayClose(1),DayOpen(1)) > min(DayClose(0),DayOpen(0))and
condition1 == true Then
Sell("s2",AtMarket);
}
}
if MarketPosition == 1 Then
{
if IsEntryName("b1",0) == true and BarsSinceEntry == n Then
{
if NextBarOpen >= EntryPrice Then
ExitLong("bx1",AtMarket);
Else
Sell("s3",AtMarket);
}
if IsEntryName("b2",0) == true and BarsSinceEntry == n Then
{
if NextBarOpen >= EntryPrice Then
ExitLong("bx2",AtMarket);
Else
Sell("s4",AtMarket);
}
if IsEntryName("b3",0) == true and BarsSinceEntry == n Then
{
ExitLong("bx3",AtMarket);
}
if IsEntryName("b4",0) == true and BarsSinceEntry == n Then
{
ExitLong("bx4",AtMarket);
}
}
if MarketPosition == -1 Then
{
if IsEntryName("s1",0) == true and BarsSinceEntry == n Then
{
if NextBarOpen <= EntryPrice Then
ExitShort("sx1",AtMarket);
Else
Buy("b3",AtMarket);
}
if IsEntryName("s2",0) == true and BarsSinceEntry == n Then
{
if NextBarOpen <= EntryPrice Then
ExitShort("sx2",AtMarket);
Else
Buy("b4",AtMarket);
}
if IsEntryName("s3",0) == true and BarsSinceEntry == Then
{
ExitShort("sx3",AtMarket);
}
if IsEntryName("s4",0) == true and BarsSinceEntry == n Then
{
ExitShort("sx4",AtMarket);
}
}
2025-03-11
346
글번호 189060
답변완료
안녕하세요~ 문의드립니다.
차트에 오늘 날짜를 기준으로 N일 전날을 차트에 후행스팬으로 표기하는 지표식 부탁드립니다. 가령 2025년 3월 11일 당일 종가를 60일전 2025년 1월 10일에 후행스팬처럼 차트에 표기하고 싶습니다.
감사합니다~^
2025-03-11
354
글번호 189059