커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1703
글번호 230811
답변완료
검색식 수식 부탁드립니다~~~
안녕하세요^^ 수고 많으십니다~~
종목검색에서, 일봉기준, 최근 30봉의 평균적인
"위꼬리+아래꼬리"의 비율이 "고가-저가"폭의 50% 이하
인것을 검색하고 싶은데...
검색식 수식 좀 부탁드립니다~~
2024-09-22
566
글번호 183618
Trader 님에 의해서 삭제되었습니다.
2024-09-22
0
글번호 183617
답변완료
종목검색식 부탁드림니다.
항상노고에 감사드림니다.
아래의 수식을 종목검색식으로 부탁드림니다.
A=(Dayhigh()-Daylow())/100;
B=Dayhigh()-(A*조정);
crossup(C,B)
지표변수: 조정 35.4
2024-09-22
632
글번호 183616
답변완료
문의드립니다.
S=sum(1);
M5=ma(C,기간1,지수);
M2=ma(C,기간2);
상전=M5>M5(1) && M5(1)<M5(2);
DC=Valuewhen(1,Crossdown(M5,M2),S);
상1=Valuewhen(1,상전,S);
상2=Valuewhen(2,상전,S);
상3=Valuewhen(3,상전,S);
GC=Valuewhen(1,CrossUp(M5,M2),S);
조건W=상3<DC && DC<상2 && 상2<상1 && 상1<GC;
조건W && !조건W(1)
기간1 5
기간2 20
1. 상2 저점 보다 상3 저점이 상승하는 W패턴을 추가하고 싶네요.
2. 일봉하고 3분봉에서 사용하고 싶은데 수식이 다르다면 각각 알려주시면 감사하겠습니다.
2024-09-23
600
글번호 183615
손주형 님에 의해서 삭제되었습니다.
2024-09-21
19
글번호 183614
답변완료
트레이딩뷰의 파인스크랩터를 트레이딩뷰로 변환 부탁드립니다.
코딩을 위한 노력을 해 보았으나 실격부족으로 어려워서 부탁을 드립니다.
다음의 트레이딩뷰의 코딩을 예스스탁 프로그램으로 맞게 변환을 부탁드립니다.
신호는 조건이 만족한 직전봉에 표기가 되고 있으니 조건 만족봉에 매수매도의 시그널이 되도록 부탁을 드립니다.
//@version=5
indicator("ALMA ", overlay=true)
//ALMA Smoothing
src = input(close, title='Source', group = "ALMA Smoothing")
smooth = input.int(1, title='Smoothing', minval=1, group = "ALMA Smoothing")
length1 = input.int(25, title='Lookback', minval=1, group = "ALMA Smoothing")
offset = 0.85
sigma1 = 7
pchange = ta.change(src, smooth) / src * 100
avpchange = ta.alma(pchange, length1, offset, sigma1)
//RSI
rsi = ta.rsi(close, 14)
rsiL = rsi > rsi[1]
rsiS = rsi < rsi[1]
//Chande Momentum
length11 = 9
src1 = close
momm = ta.change(src1)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = math.sum(m1, length11)
sm2 = math.sum(m2, length11)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)
cL = chandeMO > chandeMO[1]
cS = chandeMO < chandeMO[1]
//GAMA credit to author: © LeafAlgo https://www.tradingview.com/v/th7NZUPM/
length = input.int(14, minval=1, title="Length", group = "Gaussian Adaptive Moving Average")
adaptive = input.bool(true, title="Adaptive Parameters", group = "Gaussian Adaptive Moving Average")
volatilityPeriod = input.int(20, minval=1, title="Volatility Period", group = "Gaussian Adaptive Moving Average")
// Calculate Gaussian Moving Average
gma = 0.0
sumOfWeights = 0.0
sigma = adaptive ? ta.stdev(close, volatilityPeriod) : input.float(1.0, minval=0.1, title="Standard Deviation", group = "Gaussian Adaptive Moving Average")
for i = 0 to length - 1
weight = math.exp(-math.pow(((i - (length - 1)) / (2 * sigma)), 2) / 2)
value = ta.highest(avpchange, i + 1) + ta.lowest(avpchange, i + 1)
gma := gma + (value * weight)
sumOfWeights := sumOfWeights + weight
gma := (gma / sumOfWeights) / 2
gma:= ta.ema(gma, 7)
gmaColor = avpchange >= gma ? color.rgb(0, 161, 5) : color.rgb(215, 0, 0)
// Color bars based on signals until the next signal occurs
var int currentSignal = 0
currentSignal := avpchange >= gma ? 1 : -1//le_final ? -1 : currentSignal
var color barColor = na
if currentSignal == 1
barColor := color.rgb(0, 186, 6)
else if currentSignal == -1
barColor := color.rgb(176, 0, 0)
barcolor(barColor)
plotcandle(open, high, low, close, "Bar Color", barColor, barColor, bordercolor = barColor)
//Plotting
ema = ta.ema(close, 7)
plot(ema, color=gmaColor, linewidth=3, title="Gaussian Moving Average")
plotshape(ta.crossover(avpchange,gma) and barstate.isconfirmed, "Buy Signal", text = "B", textcolor = color.white, style = shape.labelup, location = location.belowbar, color = color.rgb(0, 161, 5), offset = -1)
plotshape(ta.crossunder(avpchange,gma) and barstate.isconfirmed, "Sell Signal", text = "S", textcolor = color.white, style = shape.labeldown, location = location.abovebar, color = color.rgb(215, 0, 0), offset = -1)
bgcolor(ta.crossover(avpchange,gma) and barstate.isconfirmed and rsiL and cL ? color.rgb(0, 162, 5, 85): na, offset = -1)
bgcolor(ta.crossunder(avpchange,gma) and barstate.isconfirmed and rsiS and cS ? color.rgb(207, 0, 0, 85): na, offset = -1)
barcolor(gmaColor)
alertcondition(ta.crossover(avpchange,gma) and barstate.isconfirmed, title="Buy Signal", message="Go Long! {{exchange}}:{{ticker}}")
alertcondition(ta.crossunder(avpchange,gma) and barstate.isconfirmed, title="Sell Signal", message="Go Short! {{exchange}}:{{ticker}}")
2024-09-21
1042
글번호 183613
답변완료
검색식 부탁 드려요
1. 캔들이 (몸통기준,종가기준) 전환선 위에 있는 종목검색식.
2. 현재봉 (0봉전) 이 26봉중 신고가인(종가기준) 검색식
3. 25봉 전 종가가(현재봉미포함), 현재봉포함 26봉중 최저가인(종가기준) 검색식
4. 양봉 캔들이 기준선을 돌파 했을때(관통) 검색식
5. 양봉캔들이 전환선을 돌파했을때(관통) 검색식
6. 캔들이 10개 있다면(1,2,3,4,5,6,7,8,9,10번 : 10개 캔들),
- 10번 캔들은 10개 캔들중 신고가 임.(몸통기준,종가기준)
---》즉,10번캔들이 1번 캔들의 고점(몸통및 종가기준)을 돌파한 종목
- 1번 캔들의 고점이(몸통기준,종가기준)10번 캔들 다음으로 높음
상기 캔들의 조건을 만족하는 10봉 신고가 (몸통,종가기준) 종목 검색식 부탁드려요.
## 대략 이런모양입니다 (반드시 1번캔들 고점이 10번 캔들 다음으로높음)
10
--------------------------------> 10번이 1번 전고점 돌파
1
------------------------------
2 9
3 8
4 7
5 6
2024-09-23
690
글번호 183612
답변완료
문의드립니다.
input : _value(Numeric),_Avg(Numeric);
var : _X(0);
var : normalize(0);
_X = _Value / _Avg;
Normalize =
IFF(_X > 1.50 , 1.00 ,
IFF(_X > 1.20 , 0.90 ,
IFF(_X > 1.00 , 0.80 ,
IFF(_X > 0.80 , 0.70 ,
IFF(_X > 0.60 , 0.60 ,
IFF( _X > 0.40 , 0.50 ,
IFF(_X > 0.20 , 0.25 ,0.1)))))));
이렇게 사용자 함수를 만들어 검증을 하면 첨부한 것과 같이 나옵니다
뭐가 문제인지 궁금합니다
2024-09-21
609
글번호 183611
아침식사됩니다 님에 의해서 삭제되었습니다.
2024-09-21
1
글번호 183610