커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5532
글번호 230811
답변완료
수식작성 부탁드립니다
항상 감사한 마음 뿐입니다. 열심히 공부하고 있으나, 아직 예스랭귀지가 능숙하지 않아서 또 문의 드립니다. 트뷰 파인 언어로 되어 있습니다. 미리 감사드립니다. F로시작하는 것은 사용자 정의 함수입니다.
MRC_src = input (defval=hl2, group=group_MRC, title='Price Source')
MRC_len = input.int (defval=15, group=group_MRC, title='Lookback Period')
MRC_innermult = input.float (defval=1.0, group=group_MRC, title='Inner Channel Size Multiplier')
MRC_outermult = input.float (defval=2.0, group=group_MRC, title='Outer Channel Size Multiplier')
MRC_extrememult = input.float (defval=3.0, group=group_MRC, title='Outer Channel Size Multiplier')
pi = math.pi
var MRC_gradsize = 0.5
MRC_mult1 = pi * MRC_innermult
MRC_mult2 = pi * MRC_outermult
MRC_mult3 = pi * MRC_extrememult
F_SM(src, len) =>
a1 = math.exp(-math.sqrt(2) * pi / len)
a2 = 2 * a1 * math.cos(math.sqrt(2) * pi / len)
a3 = -math.pow(a1, 2)
a4 = a2
a5 = 1 - a4 - a3
result = 0.0
result := a5 * src + a4 * nz(result[1], src[1]) + a3 * nz(result[2], src[2])
result
F_MRC(src, len, mult1, mult2, mult3, gradsize) =>
meanline = src
meanrange = F_SM(ta.tr, len)
meanline := F_SM(src, len)
// criteria lines
up1 = meanline + meanrange * mult1
up2 = meanline + meanrange * mult2
up3 = meanline + meanrange * mult3
lo1 = meanline - meanrange * mult1
lo2 = meanline - meanrange * mult2
lo3 = meanline - meanrange * mult3
//extension lines
float up2_p4 = up2 + meanrange * gradsize * 0.4
float up2_p3 = up2 + meanrange * gradsize * 0.3
float up2_p2 = up2 + meanrange * gradsize * 0.2
float up2_p1 = up2 + meanrange * gradsize * 0.1
float up2_m1 = up2 + meanrange * gradsize * -0.1
float up2_m2 = up2 + meanrange * gradsize * -0.2
float up2_m3 = up2 + meanrange * gradsize * -0.3
float up2_m4 = up2 + meanrange * gradsize * -0.4
float lo2_p4 = lo2 - meanrange * gradsize * 0.4
float lo2_p3 = lo2 - meanrange * gradsize * 0.3
float lo2_p2 = lo2 - meanrange * gradsize * 0.2
float lo2_p1 = lo2 - meanrange * gradsize * 0.1
float lo2_m1 = lo2 - meanrange * gradsize * -0.1
float lo2_m2 = lo2 - meanrange * gradsize * -0.2
float lo2_m3 = lo2 - meanrange * gradsize * -0.3
float lo2_m4 = lo2 - meanrange * gradsize * -0.4
[meanline, meanrange, up1, up2, up3, lo1, lo2, lo3, up2_m1, up2_m2, up2_m3, up2_m4, up2_p1, up2_p2, up2_p3, up2_p4, lo2_p1, lo2_p2, lo2_p3, lo2_p4, lo2_m1, lo2_m2, lo2_m3, lo2_m4]
[meanline, meanrange, up1, up2, up3, lo1, lo2, lo3, up2_m1, up2_m2, up2_m3, up2_m4, up2_p1, up2_p2, up2_p3, up2_p4,
lo2_p1, lo2_p2, lo2_p3, lo2_p4, lo2_m1, lo2_m2, lo2_m3, lo2_m4] = F_MRC(MRC_src, MRC_len, MRC_mult1, MRC_mult2, MRC_mult3, MRC_gradsize)
p_meanline = plot(meanline, color=color.new(#FFCD00, 0), style=plot.style_line, title=' Mean', linewidth=2)
p_up1_00 = plot(up1 , color=color.new(color.green, 50), style=plot.style_circles, title=' U1', linewidth=1)
p_up2_00 = plot(up2 , color=color.new(color.red, 50), style=plot.style_line, title=' U2', linewidth=1)
p_up3_00 = plot(up3 , color=color.new(color.fuchsia, 50), style=plot.style_line, title=' U3', linewidth=1)
p_lo1_00 = plot(lo1 , color=color.new(color.green, 50), style=plot.style_circles, title=' S1', linewidth=1)
p_lo2_00 = plot(lo2 , color=color.new(color.red, 50), style=plot.style_line, title=' S2', linewidth=1)
p_lo3_00 = plot(lo3 , color=color.new(color.fuchsia, 50), style=plot.style_line, title=' S3', linewidth=1)
var color1 = color.new(color=color.rgb(99, 67, 196), transp = 50)
var color5 = color.new(color=color.rgb(67, 196, 179), transp = 50)
fill(p_up2_p4, p_up2_00, color=color1)
fill(p_up2_00, p_up2_m4, color=color5)
fill(p_lo2_p4, p_lo2_00, color=color1)
fill(p_lo2_00, p_lo2_m4, color=color5)
2023-05-10
1100
글번호 168844
답변완료
수식 변경 부탁드립니다
안녕하세요
키움수식입니다
예스수식으로 변경 부탁드립니다
행복한 하루 되세요
감사합니다
지표명 - 기간 고가,저가,중심선 긋기
수식1 중심선
a=Highest(H, period);
b=Lowest(L, period);
(A+B)/2
수식2
a=Highest(H, period)
수식3
b=Lowest(L, period)
지표조건설정
period - 26
라인설정
중심선 - 올리브, 점선, 굵기-1
고가선 - 빨강, 점선, 굵기-1
저가선 - 파랑, 점선, 굵기-1
2023-05-10
1103
글번호 168842
답변완료
문의드립니다
안녕하세요?
혼자해볼려고 노력해봐도 원자체가 그래프에 표현이 안되어서 문의드립니다
아래수식을 현재 지표속성창에서 원이나 점그래프로 최대크기로 지정하고 사용중입니다
그런데 수식에서 원의색깔(검정과흰색)과 원의크기를 조절할수있도록 부탁드립니다 감사합니다
if ss==-1 and ss!=ss[1] and tt==1 and tt !=tt[1] Then
{
plot1(var1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
if ss==1 and ss!=ss[1] and tt==-1 and tt !=tt[1] Then
{
plot2(var2);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
}
2023-05-10
1127
글번호 168841
답변완료
문의드립니다
이전 60일간 최고 고가 대비 -40퍼센트 가격을 나타내고 싶습니다
지표변환 부탁드립니다~
2023-05-10
1212
글번호 168838
답변완료
문의 드립니다.
((highest(high,기간))+(lowest(low,기간)))/2;
키움 수식인데 예스로 바꿔주세요.
검색을 해보려고 했는데 검색이 안되네요.
2023-05-10
1722
글번호 168837
매버릭 님에 의해서 삭제되었습니다.
2023-05-09
4
글번호 168836
답변완료
자동 진입 및 청산 디버깅 가능할까요?
페어전략차트에서 시스템트레이딩으로 실행 즉시 자동 매도/매수 진입하고 수익조건이 되면 일괄청산하고 싶습니다.
모의ID로 아래 실행시 페어 종목의 현재가로 MarketPosition(0)=-1, MarketPosition(1) = 1로 변경은 되는데 미체결 내역에 나오지 않고 엉뚱한 진입가를 받아오는데 디버깅 도와주세요.
If Date == 매수하루전 && MarketPosition(0) == 0 Then {
Sell("매도",AtStop,D1현재가,D1_수량);
Buy("매수",AtStop,D2현재가,D2_수량);
D1진입가 = data1(EntryPrice);
D2진입가 = data2(EntryPrice);
}
맨 마지막 아래 부분도 디버깅 가능할까요?
If MarketPosition > 0 Then {
If 순수익 > 최소수익 Then {
If MarketPosition(0) == -1 Then {
ExitShort("모든매도청산",AtLimit,D1현재가); //매수
ExitLong("모든매수청산",AtLimit,D2현재가); //매도
}
} Else if 순수익 < -200 && 진입주문명에 "매도2"가 없으면 Then {
Sell("매도2",AtStop,D1현재가,D1_수량);
Buy("매수2",AtStop,D2현재가,D2_수량);
}
}
2023-05-10
1585
글번호 168835
답변완료
수식 변형 가능???
52주 신저가 라인을 만들고자 합니다.
아래의 수식은 키움증권의 수식 응용 지표이며
A=Lowest(L, Period, 1)*변수;
ValueWhen(1, A, A)
Period=260;
변수=1.25;
추가로 검색식도 함께 부탁드립니다.
종가(C)가 상단 수식의 ValueWhen 돌파하는 하는 종목을 검색하고 싶습니다
2023-05-09
1664
글번호 168834
답변완료
수식작성 부탁드립니다
트레이딩뷰 코드 수식입니다. 예스랭귀지는 생소하다보니 도움 부탁드리겠습니다
F로 시작하는 문은 사용자 정의 함수이고요,
중간에 보시면 함수를 중첩해서 사용하고 있습니다.
F_Dynamic_shift(value, len) =>
result = float(na)
if len >= 1
for i = 0 to len by 1
if na(result) or not na(value[i])
result := value[i]
result
result
F_X_MA(src, len, wei) =>
sum = 0.0
ma = 0.0
result = 0.0
sum := nz(sum[1]) - nz(src[len]) + src
ma := na(src[len]) ? na : sum / len
result := na(result[1]) ? ma : (src * wei + result[1] * (len - wei)) / len
result
BNK_len = input.int(defval=10, group=group_BNK, title='banker len')
BNK_threshold1 = input.int(defval=2, group=group_BNK, title='banker entry threshold')
BNK_threshold2 = input.int(defval=3, group=group_BNK, title='banker ready threshold')
F_Banker_Flow(len)=>
bankerflow = 2 * F_X_MA((close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len)) * 20, 2, 1)
- 5 * F_X_MA(F_X_MA((close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len)) * 20, 2, 1), 2, 1)
bankerflow
Banker_Flow = F_Banker_Flow(BNK_len)
F_Banker_LongAttack(len, threshold1, threshold2) =>
bankerflow = F_Banker_Flow(len)
long_attack = ta.crossover(bankerflow, threshold1)
long_entry = bankerflow <= threshold1
long_ready = bankerflow < threshold2
[long_attack, long_entry, long_ready]
[BNK_attack_long, BNK_entry_long, BNK_ready_long] = F_Banker_LongAttack(BNK_len, BNK_threshold1, BNK_threshold2)
p_long_attack = plot(BNK_attack_long ? 30 : 0, title='long-attack', color=BNK_attack_col, linewidth=1, style=plot.style_area) //model banker pump or dump start soon
2023-05-09
2101
글번호 168830