커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1356
글번호 230811
살빼고싶다 님에 의해서 삭제되었습니다.
2024-11-29
18
글번호 185763
답변완료
지표식 요청 드립니다.
안녕하세요
항상 빠른 답변 감사 드립니다.
두가지 질문 드립니다.
첫째
당일 2시 시간을 기준으로 당일 고가 , 당일 저가, 2시종가 를 구하는 식이 궁금합니다.
둘째
아래 답변 해준것에 대해 수정을 요청 드립니다
1,
당일시가 N% +++> 전일종가 대비 당일 시가가 몇% 인지 표시하고자 합니다, 당일시가 = 1.2%(전종가 대비)
당일고가 N% +++> 전일종가 대비 당일 고가가 몇% 인지 표시하고자 합니다, 당일고가 = 7%(장중에 실시간 반영 되어 숫자가 변하겠지요)
input : per(3); 이 수식은 없어지겟죠 %값을 입력하는게 아니니...
2.
거래대금 표시가 자리수 표시가 없어 구분하기 어렵습니다. 자릿수 표시 수식 요청 드립니다.
만,억 단위로 구분 할 수 있는 수식을 요청 드립니다.
3. 글자 크기를 더 크게 가능한지요 노안으로 안습 ㅜㅜ
그럼 좋은 하루 되세요
input : per(3);
var : Grid(0);
if Index == 0 Then
{
Grid = Grid_New(1, 2, 5,White, Gray, 1, Gray, 0);
Grid_Cell(Grid,0,0,"당일시가 N%",0,0,BLACK,Green);
Grid_Cell(Grid,0,1,"당일고가 N%",0,0,BLACK,Green);
Grid_Cell(Grid,0,2,"당일거래대금",0,0,BLACK,Green);
Grid_Cell(Grid,0,3,"전일거대대금",0,0,BLACK,Green);
Grid_Cell(Grid,0,4,"거래대금",0,0,BLACK,Green);
Grid_Cell(Grid,1,0,NumToStr(DayOpen*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,1,NumToStr(DayHigh*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,2,NumToStr(Daymoney,0),0,0,BLACK,White);
Grid_Cell(Grid,1,3,NumToStr(daymoney,1),0,0,BLACK,White);
Grid_Cell(Grid,1,4,NumToStr(Money,0),0,0,BLACK,White);
}
if LastBarOnChart == 1 Then
{
Grid_Cell(Grid,1,0,NumToStr(DayOpen*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,1,NumToStr(DayHigh*(1+Per/100),2),0,0,BLACK,White);
Grid_Cell(Grid,1,2,NumToStr(Daymoney,0),0,0,BLACK,White);
Grid_Cell(Grid,1,3,NumToStr(daymoney,1),0,0,BLACK,White);
Grid_Cell(Grid,1,4,NumToStr(Money,0),0,0,BLACK,White);
}
Plot1(DayOpen);
2024-11-29
759
글번호 185762
답변완료
수고하십니다
항상노고에 감사드리며
타주기분봉으로 할수있게 부탁드립니다
input : length(20),hh(8),mult(3);
var : k(2),src(0),n(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0);
Var : tx1(0), tx2(0);
src = Close;
n = barindex;
//if IsLastBar업데이트[영문으로는 쓰기금지라 한글로 씀] and barindex>length then
//y = 0
sume = 0;
for i = 0 to length-1
{
sum = 0;
sumw = 0;
for j = 0 to length-1
{
w = exp(-(pow(i-j,2)/(hh*hh*2)));
sum = sum+src[j]*w;
sumw = sumw+w;
}
y2 = sum/sumw;
sume = sume+abs(src[i] - y2);
}
mae = sume/length*mult;
if CrossDown(src,y2+mae) then
{
tx1 = Text_New_Self(sdate,stime,H,"▼");
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,Cyan);
Text_setsize(Tx1,15);
}
if CrossUp(src,y2-mae) then
{
tx2 = Text_New_Self(sdate,stime,L,"▲");
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,Black);
Text_setsize(Tx2,15);
}
Plot1(y2);
Plot2(y2+mae);
Plot3(y2-mae);
2024-11-29
630
글번호 185761
답변완료
죄송합니다. 다시 한번 부탁드립니다.화살표 부탁드립니다.
input : period(20),period1(60),avgperiod(3);
var : a(0),b(0),aa(0),bb(0);
input : TrigLen(13), FastX(34), SlowX(55);
var : A1(0),xTrend(0), xFast(0), xSlow(0), xKVO(0), xTrigger(0);
// KVO 계산
A1=(H+L+C)/3;
xTrend = iff(A1 > A1[1], volume * 100, -volume * 100);
xFast = ema(xTrend, FastX);
xSlow = ema(xTrend, SlowX);
xKVO = xFast - xSlow;
xTrigger = ema(xKVO, TrigLen);
A=LRL(C, period);
B=MA(A, avgperiod)-MA(StdError(C, period),avgperiod);
AA=LRL(C, period1);
BB=MA(AA, avgperiod)-MA(StdError(C, period1),avgperiod);
if B<BB && xKVO>xTrigger && (CROSSUP(C,B) OR CROSSUP(C,BB)) && C>O Then
//if B>BB && xKVO>xTrigger && CROSSUP(C,B) && C>O Then
Find(1);
=============================================
위가 검색기인데. 화살표를 만들어 주시고 이것은 검색에서 만들어야 하는지 여쭤봅니다. 감사합니다.
2024-11-28
575
글번호 185760
답변완료
dayclose closed 차이 중에서
data1 data2 분봉에서
a. Data2(Highd(0))
b. Data2(DayHigh)
a는 맞고, b는 잘못된걸로 알고 있습니다만,
b가 a와 같은 값을 보이는것 같습니다.
전일이전 아닌 당일에서는 b로 사용해도 되나요?
2024-11-28
589
글번호 185759
답변완료
문의 드립니다.
해외 유튜브 [chart prime]에서 소개된 하기 내용을 다음 2가지로 부탁 드립니다.
1)Yes Language 지표로 변환
2)예스 트레이더 종목 검색
부탁 드립니다.
=====하기====
Linear Regression Oscillator [ChartPrime]
indicator("Linear Regression Oscillator [ChartPrime]", overlay=false, max_labels_count = 500)
// ---------------------------------------------------------------------------------------------------------------------}
// 𝙐𝙎𝙀𝙍 𝙄𝙉𝙋𝙐𝙏𝙎
// ---------------------------------------------------------------------------------------------------------------------{
int length = input.int(20, "Length")
float upper = input.float(1.5, "Upper Threshold", step = 0.1)
float lower = input.float(-1.5, "Lower Threshold", step = 0.1)
bool candles = input.bool(false, "Plot Bar Color")
color col_up = #10cab8
color col_dn = color.blue
// Source
series float source = close[barstate.isconfirmed ? 0 : 1]
// Max and Min prices for Invalidation Levels (period 5 bars back)
var lowest = array.new<float>(5)
var highest = array.new<float>(5)
var series float points = na
// ---------------------------------------------------------------------------------------------------------------------}
// 𝙄𝙉𝘿𝙄𝘾𝘼𝙏𝙊𝙍 𝘾𝘼𝙇𝘾𝙐𝙇𝘼𝙏𝙄𝙊𝙉𝙎
// ---------------------------------------------------------------------------------------------------------------------{
//@function Calculation of slope and intercept
//@param length LookBack Period
//@returns Linear Regression Oscillator
linear_regression_osc(int length)=>
n = length
sum_x = 0.0
sum_y = 0.0
sum_xy = 0.0
sum_x_squared = 0.0
for i = 0 to n - 1
sum_x := sum_x + i
sum_y := sum_y + source[i]
sum_xy := sum_xy + i * source[i]
sum_x_squared := sum_x_squared + i * i
m = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x * sum_x)
c = (sum_y - m * sum_x) / n
linear_regression = ((m * bar_index + c)*-1)
// Calculate linear regression Oscillator
linear_regression = linear_regression_osc(length)
// Normaliztion
linear_regression := (linear_regression - ta.sma(linear_regression, 100)) / ta.stdev(linear_regression, 100)
// Conditions of Mean Reversion and Trends
cond1 = ta.crossunder(linear_regression, 0)
cond2 = ta.crossover( linear_regression, 0)
cond_1 = ta.crossunder(linear_regression, linear_regression[2])
and
linear_regression > upper ? linear_regression[1] : na
cond_2 = ta.crossover(linear_regression, linear_regression[2])
and
linear_regression < lower ? linear_regression[1] : na
// Invalidation Price Levels
lowest. push(low)
highest.push(high)
switch
lowest.size() > 5 => lowest.shift(), highest.shift()
switch
cond1 => points := highest.max()
cond2 => points := lowest. min()
// ---------------------------------------------------------------------------------------------------------------------}
// 𝙑𝙄𝙎𝙐𝘼𝙇𝙄𝙕𝘼𝙏𝙄𝙊𝙉
// ---------------------------------------------------------------------------------------------------------------------{
// Defined Colors
color = linear_regression > 0
? color.from_gradient(linear_regression, 0, 2, color(na), col_up)
: color.from_gradient(linear_regression, -2, 0, col_dn, color(na))
color1= linear_regression > 0
? color.from_gradient(linear_regression, 0, 2, color(na), color.new(chart.fg_color, 50))
: color.from_gradient(linear_regression, -2, 0, color.new(chart.fg_color, 50), color(na))
color2= linear_regression > 0
? color.from_gradient(linear_regression, 0, 1, color(na), col_up)
: color.from_gradient(linear_regression, -1, 0, col_dn, color(na))
// Plot Oscillator
plot(linear_regression, color = color, style = plot.style_area)
// Zero Line
plot(0, color = color1, linewidth = 2)
// Upper and Lower Thresholds
p1 = plot(upper, display = display.none)
p3 = plot(lower, display = display.none)
p4 = plot(-4, display = display.none)
p2 = plot(4, display = display.none)
fill(p1, p2, 4, upper, na, color.new(col_up, 75))
fill(p3, p4, lower, -4, color.new(col_dn, 75), na)
if barstate.islast
l1 = label.new(bar_index, upper, str.tostring(upper),
style = label.style_diamond, size = size.tiny, textcolor = chart.fg_color, color = col_up)
label.delete(l1[1])
l2 = label.new(bar_index, lower, str.tostring(lower),
style = label.style_diamond, size = size.tiny, textcolor = chart.fg_color, color = col_dn)
label.delete(l2[1])
// Oscillator Mean Reversion above or below Thresholds
plotchar(cond_1, "", "◇",
color = col_dn,
location = location.absolute,
size = size.small,
offset = -1
)
plotchar(cond_2, "", "◇",
color = col_up,
location = location.absolute,
size = size.small,
offset = -1
)
// Oscillator Crosses zero Line
plotchar(cond1 ? 0 : na, "", "◆",
color = color.new(col_dn, 0),
location = location.absolute,
size = size.tiny,
offset = -1
)
plotchar(cond2 ? 0 : na, "", "◆",
color = color.new(col_up, 0),
location = location.absolute,
size = size.tiny,
offset = -1
)
// Trend Labels on the chart
switch
cond2 => label.new(chart.point.from_index(bar_index, low), "▲",
style = label.style_label_up,
textcolor = col_up,
size = size.large,
color = color(na),
force_overlay = true
)
cond1 => label.new(chart.point.from_index(bar_index, high), "▽",
style = label.style_label_down,
textcolor = col_dn,
size = size.large,
color = color(na),
force_overlay = true
)
// Meant Reversion Labels on the chart
switch
cond_2 => label.new(chart.point.from_index(bar_index, low),
text = "◆₩nReversion",
style = label.style_label_up,
textcolor = col_up,
size = size.normal,
color = color(na),
force_overlay = true
)
cond_1 => label.new(chart.point.from_index(bar_index, high),
text = "Reversion₩n◆",
style = label.style_label_down,
textcolor = col_dn,
size = size.normal,
color = color(na),
force_overlay = true
)
// Invalidation Price Levels
plot(not ta.change(points) ? points : na,
color = color2,
linewidth = 2,
style = plot.style_linebr,
force_overlay = true
)
if ta.change(points)
label.new(chart.point.from_index(bar_index, points[1]),
text = "Invalidation₩nLevel",
style = label.style_label_left,
textcolor = linear_regression < 0 ? col_up : col_dn,
size = size.small,
color = color(na),
force_overlay = true
)
// Candles Color
candle_col = candles ? (linear_regression < 0 ? col_dn : col_up) : na
plotcandle(open, high, low, close,
title = "Color Candles",
color = candle_col,
bordercolor = candle_col,
wickcolor = candle_col,
force_overlay= true
)
barcolor(candle_col)
2024-11-28
821
글번호 185758
답변완료
문의드립니다
기간값이 다른 2개를 볼린저밴드를 차트에 올렸을때
각각의 상단선, 하단선이 같아지는 봉 위아래에 "▼" 나타나게 해주세요
즉 기간값이 20 인 볼린저와
기간값이 60 인 볼리저의 상단과 하단값이 같아지는 봉에 표시를 하고 싶습니다
2개의 하단값이 같아지면 봉 아래에 화살표표시 (red 색상)
2개의 상단값이 같아지면 봉 위에 화살표표시 (블루색상)
완전 같거나 오차범위 0.5 이내
감사합니다
2024-11-28
501
글번호 185755
답변완료
수고하십니다. 키움 신호를 예스검색 화살표로 부탁드립니다 감사합니다.
A=LinearRegValue(C, period);
B=MA(A, avgperiod)-MA(StdError(C, period),avgperiod);
AA=LinearRegValue(C, period1);
BB=MA(AA, avgperiod)-MA(StdError(C, period1),avgperiod);
A1=(H+L+C)/3;
xTrend = if(A1 > A1(1), volume * 100, -volume * 100);
xFast = eavg(xTrend, FastX);
xSlow = eavg(xTrend, SlowX);
xKVO = xFast - xSlow;
xTrigger = eavg(xKVO, TrigLen);
B<BB && xKVO>xTrigger && (CROSSUP(C,B) OR CROSSUP(C,BB)) && C>O
=====================
지표변수
period 200
period1 160
avgperiod 50
triglen 25
fastx 100
slowx 80
2024-11-28
483
글번호 185754
살빼고싶다 님에 의해서 삭제되었습니다.
2024-11-28
46
글번호 185748