커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1526
글번호 230811
답변완료
전략작성등
아래수식은 검색되는 종목수가 너무많아 집중이 안되니 1%이상 상승한것만 검색되는 수식으로 제어부탁드립니다.이것이 0선 상향돌파수식이 맞는지도 확인 부탁합니다^^
Input : shortPeriod(12), longPeriod(26);
value1 = MACD(shortPeriod,longPeriod);
If CrossUp(value1,0)Then
{
If C==C[1] Then
value2 = 0.001;
Else
value2 = (C-C[1])/C[1]*100;
}
Else
value2 = 0;
Find(1);
2025-09-12
197
글번호 193949
답변완료
문의드립니다.
아래의 트레이딩뷰 수식을 변환부탁드립니다.
입력값은 수정가능하게 부탁드립니다.
항상 감사드립니다. 수고하세요!!!
===============================
//@version=5
indicator("ATR Trailing Stop Strategy (Sylvain Vervoort)", overlay = true)
// 입력값
nATRPeriod = input.int(5, "ATR Period")
nATRMultip = input.float(1.5, "ATR Multiplier")
// ATR 계산
atrValue = ta.atr(nATRPeriod)
nLoss = nATRMultip * atrValue
// Trailing Stop 변수 선언
var float xATRTrailingStop = na
// 로직
if (close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0))
xATRTrailingStop := math.max(nz(xATRTrailingStop[1]), close - nLoss)
else if (close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0))
xATRTrailingStop := math.min(nz(xATRTrailingStop[1]), close + nLoss)
else if (close > nz(xATRTrailingStop[1], 0))
xATRTrailingStop := close - nLoss
else
xATRTrailingStop := close + nLoss
// 현재 방향
longCondition = close > xATRTrailingStop
shortCondition = close < xATRTrailingStop
// 시그널
longSignal = longCondition and not longCondition[1] // 롱 전환
shortSignal = shortCondition and not shortCondition[1] // 숏 전환
// 차트 표시
plot(xATRTrailingStop[1], color=color.blue, title="ATR Trailing Stop", linewidth=2)
// 시그널 마커
plotshape(longSignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large, text="BUY")
plotshape(shortSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large, text="SELL")
=======================================================
2025-09-12
238
글번호 193948
답변완료
슈퍼트렌드
사용자 함수로 가능한가요?
2025-09-12
166
글번호 193947
답변완료
부탁드립니다.
아래 수식을 강세약세로 만들어 주세요
Plot2(ATR_당일캔들_추세밴드_상단,"ATR_당일캔들_추세밴드_상단",
ifF(ATR_당일캔들_추세밴드_변환 > 0, rgb(242, 192, 192), rgb(149, 224, 249)), Def,
iFF(ATR_당일캔들_추세밴드_수평 > 0,2,4) );
Plot3(ATR_당일캔들_추세밴드_하단,"ATR_당일캔들_추세밴드_하단",
ifF(ATR_당일캔들_추세밴드_변환 > 0,rgb(242, 192, 192), rgb(149, 224, 249)), Def,
iFF(DayIndex < 30 && ATR_당일캔들_추세밴드_변환 > 0 && Abs(H - DayOpen)/PriceScale < 3, 10,
iFF(ATR_당일캔들_추세밴드_수평 > 0, 2,
IFF(ATR_당일캔들_추세밴드_Cnt < 0 && ATR_당일캔들_추세밴드_Cnt > -6,2, 4)) ));
2025-09-12
223
글번호 193946
시우아빠 님에 의해서 삭제되었습니다.
2025-09-12
0
글번호 193945
시우아빠 님에 의해서 삭제되었습니다.
2025-09-12
0
글번호 193944
답변완료
부틱드립니다
수고하십니다
아래수식 Plot1,Plot2,Plot3을 아닌 캔들 저가에 각각"▲"표시
화면rsi에도 각각 "▲" 표시 수식부탁드립니다
input : 기간(14);
var : S(0),R(0),u40(0),u30(0),순번조건(False);
var : cs(Nan),조건1(False),조건2(False),조건3(False);
S=Accum(1);
R=Rsi(기간);//14
if CrossDown(R,40) Then
u40 = S;
if CrossDown(R,30) Then
u30 = S;
순번조건=U40<u30 ;
if 순번조건 && 순번조건[1] == False Then
cs = 0;
if Crossup(R,30) Then
cs = cs+1;
조건1 = cs==1;
조건2 = cs==2;
조건3 = cs==3;
if 조건1 and 조건1[1] ==False Then
var1 = L;
if 조건2 and 조건2[1] ==False Then
var2 = L;
if 조건3 and 조건3[1] ==False Then
var3 = L;
Plot1(Var1);
Plot2(Var2);
Plot3(Var3);
2025-09-11
229
글번호 193943
답변완료
수식문의입니다
input : 기간1(5),기간2(10),기간3(20);
var : mav1(0), mav2(0), mav3(0);
var : DPT(0),DPY(0),Bline(0);
mav1 = ema(C,기간1);
mav2 = ema(C,기간2);
mav3 = ema(C,기간3);
if mav1 < mav2 && mav2 < mav3 && mav1 < mav3 Then
DPT = C;
if DPT[2] > DPT[1] && DPT[1] < DPT Then
DPY = DPT[1];
if CrossUp(mav1,DPY) Then
Bline = mav1;
plot1(Bline,"기준선");
상기 기준선(plot1)은 계단식으로 오르락 내리락하는 라인을 형성합니다.
1. 라인이 변동된 시작봉부터 다시 변동된 봉까지의 봉의 갯수표시하는 지표수식
2. 전라인의 가격과 변동이 된 라인의 가격과의 변동율을 표시하는 수식(상승+,하락-율)
3. 라인이 동일방향으로 변동될때의 갯수를 표시하는 수식. 즉 연속으로 라인이 하락으로
변동되어 간다면 하락변동될때마다 하락한 변동된 라인 갯수를 표시하는 것이며, 하락변동되다가 상승변동된다면 다시 카운팅되어야한다
2와 3은 라인이 변동되는 봉에 표시하되 하락변동된 경우에는 봉의 고가위에, 상승변동된때에는 봉의 저가아래에 표시되게 하여야한다.
1은 변동으로 확정된 봉의 갯수는 동일하게 표시하되, 변동후 라인이 무변동으로 지속되고 있을때에는 마지막봉(현재봉)에 무변동으로 지속된 봉의 갯수를 표시되게 하여야한다
2025-09-11
210
글번호 193942
답변완료
수식문의
안녕하세요?
94210 번을 아래와 같이 살짝 변형하고 싶습니다.
* 매수신호 또는 매도신호가 나오면 그 봉 이후, n(10)봉까지만 지표값을 아래처럼 그리고, n봉이 지나면 지표값은 0값을 갖습니다.
즉, 매수신호와 매도신호가 모두 false 인 상태에서 n(10)봉이 지나면 지표값은 0 값을 갖는데, 이때, 지표의 색은 얇은 검정색입니다. 즉, 기존의 파란색/빨간색의 두께는 3으로 설정하고, 새로 나오는 0값을 갖는 검정색의 두께는 0 입니다.
이 내용만 추가되고 나머지는 동일합니다.
단, 이번에는 테스트용 신호를 아래와 같이 바꿉니다.
메수신호 = 60이평 < 5이평과 20이평 && crossup(5이평, 20이평);
메도신호 = 60이평 > 5이평과 20이평 && crossDown(5이평, 20이평);
//////////////////////////////////////////////////////////////
아래는 94210번과 그 답변을 복사했습니다.
안녕하세요
예스스탁입니다.
var :macdv(0),macdsig(0),macdosc(0),매수신호(False),매도신호(False);
var : t(0),p0(0),q0(0),r(0);
MACDv = MACD(12,26);
MACDsig = ema(MACDv,9);
macdosc = MACDv-ema(MACDv,9);
매수신호 = MACDv > 0 && macdosc > macdosc[1];
매도신호 = MACDv < 0 && macdosc < macdosc[1];
if 매수신호 Then
{
t = 1;
p0 = c;
r = 0;
}
Else if 매도신호 Then
{
t = -1;
q0 = c;
r = 0;
}
Else
{
if t == 1 Then
r = (c-p0)/p0*100;
if t == -1 Then
r = (c-q0)/q0*100;
}
Plot1(r,"r",IFf(t==1,Blue,Red));
즐거운 하루되세요
> 에구머니 님이 쓴 글입니다.
> 제목 : 수식 문의
> 안녕하세요?
매수신호가 발생한 봉의 종가를 p0로 기억합니다.
그 다음봉부터 종가가 p0 대비 몇 % 오르거나 내렸는지를 파란색으로 지표로 나타냅니다.
새롭게 매도신호가 나오기 전까지 계속 나타냅니다. 매도신호가 나오면 파란색 지표는 그리는 것을 멈춥니다.
매도신호가 나오면 매도신호가 발생한 봉의 종가를 q0로 기억합니다.
그 다음봉부터 종가가 q0 대비 몇 % 오르거나 내렸는지를 빨간색으로 지표로 나타냅니다.
새로 매수신호가 나오기 전까지 계속 나타냅니다. 새로 매수 신호가 뜨면 기존의 빨간색 지표는 그리는 것을 멈춥니다.
주의사항: 매수신호가 나온 후, 매도 신호가 아닌 매수신호가 또 나올 수 있습니다.
이 경우, 새로운 매수신호가 나온 것을 기준으로 합니다.
물론, 10일 연속 매수신호가 나올 수도 있는데, 이 경우도 마찬가지로 p0 값이 매일 바뀌면서 매일 새롭게 시작합니다.
테스트용으로:
MACDv = MACD(12,26);
MACDsig = ema(MACDv,9);
macdosc = MACDv-ema(MACDv,9);
매수신호 = MACDv > 0 && macdosc > macdosc[1];
매도신호 = MACDv < 0 && macdosc < macdosc[1];
감사합니다.
2025-09-12
224
글번호 193941