커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1526
글번호 230811
답변완료
종목검색 부탁드립니다.
매번 많은 도움을 받고 있습니다.
항상 감사드립니다.
첨부파일의 그림과 같이 슈퍼트랜드1(10.2)>슈퍼트랜드2(10.3)>슈퍼트랜드3(10.4)의 배열조건에서 아래처럼 종목검색을 했더니 배열과 관계없이 너무 많은 종목이 검색되었습니다. 수정부탁드리겠습니다.
.............
슈퍼트랜드 구문1
구문2
구문3
조건 = C >= SuperTrend1&&C>SuperTrend2&&C>SuperTrend3&&
SuperTrend1 >= SuperTrend2&&
SuperTrend2 >= SuperTrend3&&
SuperTrend1 > SuperTrend3&&
SuperTrend1[1]<SuperTrend1&&
SuperTrend2[1]<SuperTrend2&&
SuperTrend3[1]<SuperTrend3;
if 조건 && 조건[1] == False Then
Find(1);
2025-09-05
187
글번호 193740
답변완료
부틱드립니다
수고하십니다
아래수식을 예스지표로 부탁드립니다
1.
S=sum(1);
R=Rsi(기간);//14
u70=valuewhen(1,crossup(R,70),S);
u50=valuewhen(1,crossDOWN(R,50),S);
순번조건=U70<u50 ;
조건=
CountSince(순번조건 && !순번조건(1),
Crossup(R,50))==1;
valuewhen(1,조건 && !조건(1),O)
------------------------------------------
2.
S=sum(1);
R=Rsi(기간);//14
u60=valuewhen(1,crossup(R,60),S);
u70=valuewhen(1,crossup(R,70),S);
순번조건=U60<u70 ;
조건=
CountSince(순번조건 && !순번조건(1),
Crossdown(R,60))==2;
조건 && !조건(1)
Text_new(------------- H,"▼" 표시)
Text_New_Self(-----------------"▼" 표시)
--------------------------------------
3.
S=sum(1);
R=Rsi(기간);//14
u40=valuewhen(1,crossdown(R,40),S);
u30=valuewhen(1,crossdown(R,30),S);
순번조건=U40<u30 ;
조건=
CountSince(순번조건 && !순번조건(1),
Crossup(R,30))==2;
조건 && !조건(1)
Text_new(------------- L,"▲" 표시)
Text_New_Self(-----------------"▲" 표시)
2025-09-05
211
글번호 193739
답변완료
검색식 부탁드립니다._(__)_
항상 도와주심에 감사드립니다._(__)_
1. 아래의 수식을 종목검색식으로 변환 부탁드리고요
a = avg(c,20);
crossup(c(2),a(2))
and o(2) < c(2)
and o(1) > c(1)
and (c(2)*0.95 <= c(1))
and (o(1)*0.97 <= c(1))
and o < c
and highest(h,4,1) < c
and highest(c,4,1) < c
and v(2) > v(1)
and v(1)*2 <= v
and avg(v,5) >= 15000
2. 엔벨로프(20,10) 지지선과 아래의 수식의 이격이 5퍼센트이내일 때 높이 순서 상관없이
엔벨돌파종목 검색식도 부탁드립니다.
var1 = macd(12,26);
var2 = Sar(0.02,0.2);
if var1 >= 0 and CrossUp(c,Var2) and C >= C[1]*1.03 and C > O Then
value1 = (C+O)/2;
if value1 > 0 and CrossUp(c,value1) Then
Find(1);
2025-09-05
224
글번호 193738
답변완료
변환 부탁드립니다
아래 수식 변환 부탁드립니다
A= C > O;
B= C > C (1)*1.02;
조건 =A && Barssince(B) >= 3;
2025-09-04
200
글번호 193737
답변완료
변환 부탁 드립니다.
안녕 하세요.
항상 감사 드리고 있습니다.
키움의 신호 수식인데, 예스트레이더 검색식으로 변경 부탁 드립니다.
ATR_BUY = ATR(c_buy);
NLOSS_BUY = a_buy * ATR_BUY;
TRAIL_BUY = IF(C > TRAIL_BUY(1) AND C(1) > TRAIL_BUY(1),
MAX(TRAIL_BUY(1), C - NLOSS_BUY),
IF(C < TRAIL_BUY(1) AND C(1) < TRAIL_BUY(1),
MIN(TRAIL_BUY(1), C + NLOSS_BUY),
IF(C > TRAIL_BUY(1), C - NLOSS_BUY, C + NLOSS_BUY)));
ATR_SELL = ATR(c_sell);
NLOSS_SELL = a_sell * ATR_SELL;
TRAIL_SELL = IF(C > TRAIL_SELL(1) AND C(1) > TRAIL_SELL(1),
MAX(TRAIL_SELL(1), C - NLOSS_SELL),
IF(C < TRAIL_SELL(1) AND C(1) < TRAIL_SELL(1),
MIN(TRAIL_SELL(1), C + NLOSS_SELL),
IF(C > TRAIL_SELL(1), C - NLOSS_SELL, C + NLOSS_SELL)));
LINREG_CLOSE = LinearRegressionValue(C, linreg_length, 0);
SIGNAL_LINE = AVG(LINREG_CLOSE, signal_length);
C > SIGNAL_LINE AND CROSSUP(EAVG(C, 1), SIGNAL_LINE) AND C>O;
지표변수
a_buy 2
c_buy 1
a_sell 2
c_sell 1
signal_length 7
linreg_length11
2025-09-04
229
글번호 193736
답변완료
변환 부탁드립니다.
트레이딩뷰 수식입니다.
변환 부탁 드립니다.
//@version=6
strategy("Triangular Hull Moving Average [BigBeluga X PineIndicators]", "THMA [BigBeluga X PineIndicators]", overlay = true, commission_value = 0.01, slippage = 2, initial_capital = 1000, margin_long = 0, margin_short = 0, default_qty_value = 1)
// INPUTS
int len_ = input.int(40, "Length")
float source = input.source(close, "Source")
bool volat = input.bool(true, "Volatility", inline = "vola"), len_vol = input.int(15, "", inline = "vola")
color_u = input.color(#16e5a0, "", inline = "colors")
color_d = input.color(#741ddd, "", inline = "colors")
// Neue Option: Entry Direction Auswahl
entry_mode = input.string("Long & Short", "Trade Direction", options = ["Only Long", "Only Short", "Long & Short"])
// CALCULATIONS
float volatility = ta.hma(high - low, len_vol)
var string trend = ""
vv = ta.percentile_nearest_rank(volatility, 1000, 100)
vol = volatility / vv
// THMA-Funktion
thma(_src, _length) =>
ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.wma(_src, _length), _length)
float thma = thma(source, len_)
float thma1 = thma[2]
bool signal_up = ta.crossover(thma, thma1)
bool signal_dn = ta.crossunder(thma, thma1)
switch
signal_up => trend := "🢁"
signal_dn => trend := "🢃"
color = thma > thma1 ? color_u : color_d
color1 = color
atr = ta.atr(200)
// PLOT
plotcandle(thma, thma + volatility, thma1 - volatility, thma1, "", color.new(color1, volat ? 40 : 0), color.new(color1, volat ? 40 : 100), bordercolor = color.new(color1,0))
plotshape(signal_up ? thma1 - atr : na, "Up", shape.triangleup, location.absolute, color = color.new(color, 60), size = size.small, force_overlay = true)
plotshape(signal_up ? thma1 - atr : na, "Up", shape.triangleup, location.absolute, color = color.new(color, 0), size = size.tiny, force_overlay = true)
plotshape(signal_dn ? thma1 + atr : na, "Dn", shape.triangledown, location.absolute, color = color.new(color, 60), size = size.small, force_overlay = true)
plotshape(signal_dn ? thma1 + atr : na, "Dn", shape.triangledown, location.absolute, color = color.new(color, 0), size = size.tiny, force_overlay = true)
if barstate.islast
dash = table.new(position.bottom_right, 10, 10, bgcolor = color.new(chart.fg_color, 90), border_color = chart.bg_color, border_width = 5)
dash.cell(0, 0, "Trend: " + trend, text_color = trend == "🢃" ? color_d : color_u)
dash.cell(0, 1, "Volatility: " + str.tostring(vol * 100, format.percent), text_color = chart.fg_color)
// Entry- und Close-Logik
bool allow_long = entry_mode == "Only Long" or entry_mode == "Long & Short"
bool allow_short = entry_mode == "Only Short" or entry_mode == "Long & Short"
// Long & Short-Modus: Positions eröffnen
if signal_up and allow_long
strategy.entry("Long", strategy.long)
if signal_dn and allow_short
strategy.entry("Short", strategy.short)
// Spezielle Schließlogik für "Only Long" und "Only Short"
if entry_mode == "Only Long"
// Bei Short-Signal bestehende Long-Position schließen
if signal_dn
strategy.close("Long")
if entry_mode == "Only Short"
// Bei Long-Signal bestehende Short-Position schließen
if signal_up
strategy.close("Short")
2025-09-04
386
글번호 193735
답변완료
문의 드립니다
1일의 전일저가라인이 3일에도 그대로 적용되는데 3일에 2일의 저가라인 표시를 정확히 하는 법 부탁드립니다.
지표는 시고저라인 n(1)로 적용했읍니다.
2025-09-04
193
글번호 193734
답변완료
증권사 이동시 예스트레이더 이전설치문의
사용증권사 변경으로 변경전에 증권사에서 작성한 모든 프로그램을 변경후 증권사에 설치하는 방법을 알려 주세요.
1. 주요이관대상 : 예스트레이더/YesLang 폴더에 저장된 사용자가 작성한 모든 프로그램
2. 주요 질의 내용
ㅇ 이관전에 사용하던 예스트레이더 환경으로 이관된 증권사에서 그대로 사용하는 방법이 있는지요?
ㅇ 이관전에 예스트레이더/YesLang에 저장된 사용자 프로그램들을 모두 복사하여 이관되는 증권사의 예스트레이더/YesLang에 모두 복사하면 되는지 여부?
ㅇ 아님 프로그램 건별로 이관되는 증권사 yesLang 폴더에 복사 해야 되는지요?
항상 신속하고 정확한 답변에 감사 드려요.
2025-09-04
332
글번호 193733
답변완료
안녕하세요. 수식 문의 드립니다.
지표에 다음과 같이 숫자를 보이게 하고 싶네요..
2025-09-04
283
글번호 193728