커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1531
글번호 230811
답변완료
등가 옵션 기준 지표 부탁드려요.
등가 옵션 기준(총 16쌍) ----> ATM±40포인트 및 2.5포인트 간격
[예시]
var1 = call(2.0)-put(0.5)
var2 = call(0.7)-put(0.2)
var3 = call(0.5)-put(1.2)
1.당일시가 abs(콜-풋) 차이가 가장 작은 값의 양합(콜+풋)
---> var2(0.9)
2.1번값의 ATM-1 양합(콜+풋) (단 당일시가 0이 아닌 콜,풋 가격이여야 유효한 경우)
---> var2-1(양합) = var1(2.5)
3.1번값의 ATM+1 양합(콜+풋) (단 당일시가 0이 아닌 콜,풋 가격이여야 유효한 경우)
---> var2+1(양합) = var3(1.7)
4.2,3번 모두 해당 상황 없으면 n/a
5.2,3번 중 1개만 있으면 2,3 양합(콜+풋) 음수 처리
---> var1(-2.5) or var3(-1.7)
6.2.3번 양합 중 큰 값을 양수 작은 값을 음수 처리
---> var1(2.5) var3(-1.7)
무더운 날씨 건강 조심하시고,
항상 도움을 주셔서 감사드립니다~~~
2025-08-06
233
글번호 193038
답변완료
지표 변환 부탁드립니다.
// 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 Poles Trend Finder MTF [BigBeluga]", overlay = true)
// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
alpha = input.float(0.10, minval=0.01, maxval=1.0, step = 0.01, title="Alpha")
source = input.source(close, "Source")
offset = 3
tf1 = input.timeframe("60", "Timeframe1")
tf2 = input.timeframe("120", "Timeframe2")
tf3 = input.timeframe("240", "Timeframe3")
tf4 = input.timeframe("720", "Timeframe4")
tf5 = input.timeframe("D", "Timeframe5")
c_up = input.color(#00b8a5, "")
c_dn = input.color(#b80090, "")
var float f = na
var float f_prev1 = na
var float f_prev2 = na
// }
// CALCULATIONS――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
// Apply two-pole Gaussian filter
if bar_index >= 2
f := math.pow(alpha, 2) * source + 2 * (1 - alpha) * f_prev1 - math.pow(1 - alpha, 2) * f_prev2
else
f := source // Warm-up for first bars
// Shift state
f_prev2 := f_prev1
f_prev1 := f
tp1 = request.security("", tf1, f_prev1 > f_prev1[offset])
tp2 = request.security("", tf2, f_prev1 > f_prev1[offset])
tp3 = request.security("", tf3, f_prev1 > f_prev1[offset])
tp4 = request.security("", tf4, f_prev1 > f_prev1[offset])
tp5 = request.security("", tf5, f_prev1 > f_prev1[offset])
avg = math.avg(tp1 ? 1 : 0, tp2 ? 1 : 0, tp3 ? 1 : 0, tp4 ? 1 : 0, tp5 ? 1 : 0)
dash = table.new(position.bottom_right, 100, 100)
if barstate.islast
dash.merge_cells(0, 0, 8, 0)
dash.cell(0, 0, str.tostring(syminfo.basecurrency) + (avg > 0.5 ? " 🢁" : " 🢃"), text_color = avg > 0.5 ? c_up : c_dn, tooltip = "Average Trend")
draw_gauge(col, tf, trend)=>
if barstate.islast
s = timeframe.in_seconds(tf)
m = timeframe.in_seconds(tf) / 60
h = timeframe.in_seconds(tf) / 60 / 60
d = timeframe.in_seconds(tf) / 60 / 60 / 24
tff = h < 24 and h >= 1 ? str.tostring(h) + "H" : m >= 1440 ? str.tostring(d) + "D" : m < 60 and m > 1 ? str.tostring(m) + "M" : m < 1 ? str.tostring(s) + "S" : tf
color = trend ? c_up : c_dn
dash.cell(col, 1, "", bgcolor = color)
dash.cell(col, 2, tff, text_color = chart.fg_color, text_size = size.normal)
dash.cell(col+1, 1, "", bgcolor = color(na), width = 1)
// }
// PLOT ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――{
draw_gauge(0, tf1, tp1)
draw_gauge(2, tf2, tp2)
draw_gauge(4, tf3, tp3)
draw_gauge(6, tf4, tp4)
draw_gauge(8, tf5, tp5)
plot(f_prev1, "1", color = f_prev1 > f_prev1[offset] ? c_up : c_dn, linewidth = 3)
plot(f_prev1, "2", color = color.new(f_prev1 > f_prev1[offset] ? c_up : c_dn, 80), linewidth = 25)
// }
2025-08-06
428
글번호 193032
답변완료
함수
안녕하세요
아래식을 최대한 쉽게 설명부탁드려요
중이평 = ma(c,min(DayIndex+1,중이평봉수));
감사합니다
2025-08-06
235
글번호 193023
답변완료
종목검색식 부탁드립니다
1. 주봉 20 이평 (단순) 을 캔들이 양봉으로 돌파하거나,
주봉 20이평선에(단순) 캔들이 상하(위, 아래)
각각 1% 이내로 근접하고 양봉일때 ,
종목검색식 부탁드립니다.
2. 다음 수식을 참조하여 종목 검색식 부탁드려요
아래수식을 1) ~ 5) 까지 OR (또는) 해서, 1개의 종목검색식으로 부탁드립니다.
----------
1) M= Macd(12,26);
Ms=eavg(M,9);
골든크로스 첫봉 때
2) S=StochasticsSlow(12,5);
Ss=eavg(S,3);
골든크로스 첫봉때
3) CC=CCi(9);
Cs=eavg(CC,12);
골든크로스 첫봉때
4) R=Rsi(14);
Rs=eavg(R,9);
골든크로스 첫봉때
5) Dp =DiPlus(14);
Dm=DiMinus(14);
골든크로스 첫봉때
2025-08-06
245
글번호 193022
답변완료
문의드립니다.
1.var1이 0이 아닌 경우만 배열변수로 저장해서 외부변수의 기간(5)갯수의 배열변수의 합을 구하는 식
input : 기간(5);
vars : cnt(0),cnt2(0);
Array : array1[100](0),array2[100](0);
If var1 != 0 Then
{array1[0] = Var1;
for cnt = 1 to 99{
array1[cnt] = array1[cnt-1][1];}}
for cnt = 0 to 기간 - 1
{ cnt2 = cnt2 + array1[cnt][0];}
2.var1이 0이 아닌 경우의 과거 봉은 제외하고
input : 기간(5);
vars : cnt(0),cnt2(0);
if var1 != 0 Then
for cnt = 0 to 기간 - 1
{ cnt2 = cnt2 + var1[cnt];}
var1이 0이 아닐 때의 값 기간의 합을 구하고 싶은데요 수치가 제대로 안나와요. 과거전봉의 갯수 상관없이 var1 != 0 이 아닌 5개봉(input값)ㅠ.ㅠ
어떻게 수정해야 하죠?
답변부탁드립니다..수고하세요^^
2025-08-05
197
글번호 193021
답변완료
도움 부탁드립니다
안녕하세요
무더운 여름 잘 보내시길 바랍니다.
아래 지표는 커뮤니티에서 다운받은 지표인데 궁금한것이 챠트캔들위에 나타나는 삼각형의
표시가 캔들이 몇개이상 지나고 난 후에 캔들위에 표시가 되는데 궁금한것은
1. 보통 캔들이 완성된후에 생기는데 이처럼 여러개의 캔들이 지나서 나타나는 이유.
2. 후행성이 아닌 실시간 켄들에 나타나게 할 수는 없는지요.
3. 2번째 질문에 답이 안된다면 캔들 표식이 아닌 다른 방법으로도 실시간 알수는 없는지요
감사합니다.
input : len(3);
input : mult(0.6);
input : color_t_up(Lime);
var : color_t(orange);
input : color_t_dn(Red);
var : p_h(nan);
var : p_l(nan);
var : trend(False);
var : market_state(""),ph(0),pl(0),tx(0);
market_state = "Range";
if SwingHigh(1,h,len,len,len+len+1) != -1 Then
{
p_h = h[len];
tx = Text_New(sDate[len],sTime[len],p_h,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Blue);
Text_SetSize(tx,12);
}
if SwingLow(1,l,len,len,len+len+1) != -1 Then
{
p_l = l[len];
tx = Text_New(sDate[len],sTime[len],p_l,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Red);
Text_SetSize(tx,12);
}
var : avgv(0),ATrv(0),hl2(0),upper(0),lower(0),tx1(0);
avgv = (p_h+p_l)/2;
atrv = atr(200)*mult;
upper = avgv + atrv;
lower = avgv - atrv;
hl2 = (h+l)/2;
if hl2 > upper Then
{
color_t = color_t_up;
trend = true;
market_state = "Momentum Up";
}
if hl2 < lower Then
{
color_t = color_t_dn;
trend = false;
market_state = "Momentum Down";
}
// -----------------------------------}
// VISUALIZATIONS
// -----------------------------------{
plot1(avgv, "MidLine",color_t);
plot2(upper, "Upper");
plot3(lower, "Lower");
2025-08-05
266
글번호 193020
답변완료
트레이닝 궁굼합니다. 가능할까요?
아래 지표설정대로 제가 지정하는 종목에(1개~다수) 대해서 일봉기준으로 매매하고 싶습니
다.
1. 매수후 중복으로 나오는 매수신호는 무시
2. 지정하는 종목(1~다수)
3. 매도신호시 청산(통합주문2101에서 해도 무방한가요?)
input : length(15);
input : show_levl(true);
var : up(0),dn(0),A(0),emaValue(0),correction(0),zlma(0);
var : signalUp(False),signalDn(False),zlma_color(0),ema_col(0);
var : TOP(0),BTM(0),box(0),tx(0),tx1(0),check_signals(False);
up = Black;
dn = Blue;
#var box1 = box(na) // Variable to store the box
a = atr(200);
emaValue = ema(close, length);
correction = close + (close - emaValue);
zlma = ema(correction, length);
signalUp = CrossUp(zlma, emaValue);
signalDn = CrossDown(zlma, emaValue);
zlma_color = iff(zlma > zlma[3] , up , iff(zlma < zlma[3] , dn , Nan));
ema_col = iff(emaValue < zlma , up , dn);
plot1(zlma, "ZLMA",zlma_color); // Plot ZLMA
plot2(emaValue,"EMA",ema_col);
if signalUp Then
{
Top = zlma;
BTM = zlma-A;
box = box_new(sDate,sTime,Top,NextBarSdate,NextBarStime,BTM);
Box_SetColor(box,up);
Box_SetFill(box,true);
var3 = (Top+BTM)/2;
tx = Text_New(NextBarSdate,NextBarStime,var3,NumToStr(C,2));
Text_SetStyle(tx,1,2);
}
else if signalDn Then
{
Top = zlma+A;
BTM = zlma;
box = box_new(sDate,sTime,Top,NextBarSdate,NextBarStime,BTM);
Box_SetColor(box,dn);
Box_SetFill(box,true);
var3 = (Top+BTM)/2;
tx = Text_New(NextBarSdate,NextBarStime,var3,NumToStr(C,2));
Text_SetStyle(tx,1,2);
}
Else
{
Box_SetEnd(box,sDate,sTime,BTM);
Text_SetLocation(tx,sDate,sTime,var3);
}
check_signals = signalUp or signalDn;
if CrossDown(high, BTM) and emaValue > zlma Then
{
tx1 = Text_New(sDate[1],sTime[1],H[1],"▼");
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,dn);
}
if CrossUp(low, Top) and emaValue < zlma Then
{
tx1 = Text_New(sDate[1],sTime[1],L[1],"▲");
Text_SetStyle(tx1,2,0);
Text_SetColor(tx1,up);
}
2025-08-05
296
글번호 193019
답변완료
아래 93786 관련
500봉에서 8월5일 장끝나고 검색을 하면 나오는 50 종목중 제가 원하는건 crossup(c,var2) 에 해당되는 종목인데
var1 에 해당되는 종목,var 에 해당되는 종목 , 이도저도 아닌 정체불명의 종목,그리고 원하는 crossup(c,var2) 에 해당되는 종목이 다 뒤섞여서 검색이 됩니다. 실제 원하는 종목은 25종목 검색 되구요.
수고스럽지만 다시한번 검토 부탁드립니다.
2025-08-05
211
글번호 193018
답변완료
지정가격 선긋기
지정된 가격에 선을 긋고 선을 그은 가격이 표시되는 수식좀 알려주세요.
첨부된 사진과 같이 432.75, 432.60, 432.40, 432.15, 432.10 이렇게 5개의 선을 긋고 그 가격이 표시되도록 하는 수식좀 알려주시면 됩니다.
또, 432.75와 432.10 은 선을 굵게 표시해주세요.
2025-08-05
303
글번호 193017