커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1323
글번호 230811
답변완료
지표문의 드립니다
안녕하세요 관리자님!!
항상 감사드립니다
익절지표를 찾는중인데요
혹시 스퀴즈모멘텀 지표를 예스랭귀지에서 구현할수 있을까요?
혹시 있다면 최신버전으로 부탁드리겠습니다
감사합니다^^
2025-04-19
327
글번호 190264
답변완료
수식좀 요청 드립니다.
ㅇ 매번 많은 도움에 고맙 습니다.
ㅇ아래 수식에서 VAR1 추세선 이러고 하셨는데....
<그림> 처럼 추세의 고점 과 저점을 나누어서 중심선을 연결 할수는 있나요?
input : i_lenHARSI(10),i_smoothing(3),i_lenRSI(3);
var : i_colUp(0),i_colDown(0),i_colWick(0),i_source(0);
var : _closeRSI(0),_openRSI(0),_highRSI_raw(0),_lowRSI_raw(0);
var : _highRSI(0),_lowRSI(0),_close(0),_open(0),_high(0),_low(0);
Var : cnt(0), DownAmt1(0), UpAmt1(0), UpSum1(0), DownSum1(0), UpAvg1(0), DownAvg1(0),RSIV1(0);
Var : DownAmt2(0), UpAmt2(0), UpSum2(0), DownSum2(0), UpAvg2(0), DownAvg2(0),RSIV2(0);
var : bodyColour(0),wickColour(0);
i_colUp = red;
i_colDown = teal;
i_colWick = gray;
i_source = (o+h+l+c)/4 ;
_closeRSI = rsi(i_lenHARSI)-50;
_openRSI = IFF(IsNaN(_closeRSI[1]) == False, _closeRSI[1], _closeRSI);
If CurrentBar == 1 AND i_lenHARSI > 0 Then Begin
UpSum1 = 0;
DownSum1 = 0;
For cnt = 0 To i_lenHARSI - 1 Begin
UpAmt1 = H[cnt] - H[cnt+1];
If UpAmt1 >= 0 Then
DownAmt1 = 0;
Else Begin
DownAmt1 = -UpAmt1;
UpAmt1 = 0;
End;
UpSum1 = UpSum1 + UpAmt1;
DownSum1 = DownSum1 + DownAmt1;
End;
UpAvg1 = UpSum1 / i_lenHARSI;
DownAvg1 = DownSum1 / i_lenHARSI;
End
Else
If CurrentBar > 1 AND i_lenHARSI > 0 Then Begin
UpAmt1 = H[0] - H[1];
If UpAmt1 >= 0 Then
DownAmt1 = 0;
Else Begin
DownAmt1 = -UpAmt1;
UpAmt1 = 0;
End;
UpAvg1 = (UpAvg1[1] * (i_lenHARSI - 1) + UpAmt1) / i_lenHARSI;
DownAvg1 = (DownAvg1[1] * (i_lenHARSI - 1) + DownAmt1) / i_lenHARSI;
End;
If UpAvg1 + DownAvg1 <> 0 Then
RSIV1 = 100 * UpAvg1 / (UpAvg1 + DownAvg1);
Else
RSIV1 = 0;
If CurrentBar == 1 AND i_lenHARSI > 0 Then Begin
UpSum2 = 0;
DownSum2 = 0;
For cnt = 0 To i_lenHARSI - 1 Begin
UpAmt2 = L[cnt] - L[cnt+1];
If UpAmt2 >= 0 Then
DownAmt2 = 0;
Else Begin
DownAmt2 = -UpAmt2;
UpAmt2 = 0;
End;
UpSum2 = UpSum2 + UpAmt2;
DownSum2 = DownSum2 + DownAmt2;
End;
UpAvg2 = UpSum2 / i_lenHARSI;
DownAvg2 = DownSum2 / i_lenHARSI;
End
Else
If CurrentBar > 2 AND i_lenHARSI > 0 Then Begin
UpAmt2 = L[0] - L[1];
If UpAmt2 >= 0 Then
DownAmt2 = 0;
Else Begin
DownAmt2 = -UpAmt2;
UpAmt2 = 0;
End;
UpAvg2 = (UpAvg2[1] * (i_lenHARSI - 1) + UpAmt2) / i_lenHARSI;
DownAvg2 = (DownAvg2[1] * (i_lenHARSI - 1) + DownAmt2) / i_lenHARSI;
End;
If UpAvg2 + DownAvg2 <> 0 Then
RSIV2 = 100 * UpAvg2 / (UpAvg2 + DownAvg2);
Else
RSIV2 = 0;
_highRSI_raw = RSIV1-50;
_lowRSI_raw = RSIV2-50;
_highRSI = max(_highRSI_raw, _lowRSI_raw);
_lowRSI = min(_highRSI_raw, _lowRSI_raw);
_close = (_openRSI + _highRSI + _lowRSI + _closeRSI) / 4;
_open = iff(isnan(_open[i_smoothing]) == true, (_openRSI + _closeRSI) / 2 , (_open[1] * i_smoothing + _close[1]) / (i_smoothing + 1));
_high = max(_highRSI, max(_open, _close));
_low = min(_lowRSI, min(_open, _close));
bodyColour = iff(_close > _open , i_colUp , i_colDown);
wickColour = i_colWick;
var1 = TL_New_Self(sDate,sTime,_open,sDate,sTime,_close);
//var2 = TL_New_Self(sDate,sTime,_high,sDate,sTime,max(_open,_close));
//var3 = TL_New_Self(sDate,sTime,_Low,sDate,sTime,min(_open,_close));
TL_SetColor(var1,bodyColour);
TL_SetColor(var2,i_colWick);
TL_SetColor(var2,i_colWick);
TL_SetSize(var1,3);
TL_SetSize(var2,1);
TL_SetSize(var3,1);
if LastBarOnChart == 1 Then
Plot1(0);
ㅇ 고맙습니다. 좋은 한주 되십시요.
1
2025-04-20
458
글번호 190263
답변완료
수식 문의 드립니다.
키움수식을 예스 지표로 나타내고 싶습니다.
항상 고맙습니다.
***********************************************
기준선-상단선
HighestSince(1, CrossUp(Rsi(Period), 50),C)
중심선1
A = HighestSince(1, CrossUp(Rsi(Period), 50),C);
B = LowestSince(1, CrossUp(Rsi(Period), 50),C);
(A + B)/2
하단선
LowestSince(1, CrossUp(Rsi(Period), 50),C)
----------------------------------------------------
Period // 8
================================
*. 선_굵기, 색상- 조정
2. 파동선
3. 파동선을 잇는 추세선
부탁 드립니다
2025-04-19
444
글번호 190262
답변완료
문의드립니다
input : Period(14);
Input : af(0.02), maxAF(0.2);
var : DP(0),DM(0),sarv(0);
DP = DiPlus(Period);
DM = DiMinus(Period);
sarv = SAR(af,maxAF);
if dp > dm and C > sarv Then
{
plot1(99999999,"라인1");
plot2(0,"라인2");
}
else if dp < dm and C < sarv Then
{
plot1(0,"라인1");
plot2(99999999,"라인2");
}
Else
{
Plot1(0);
plot2(0);
}
--------------------
위식을 차트에 적용하니까 오류가 납니다
수정좀 부탁드립니다
감사합니다
2025-04-18
362
글번호 190261
고도산 님에 의해서 삭제되었습니다.
2025-04-18
55
글번호 190260
답변완료
수식 부탁드립니다...
시스템을 매수용 따로 매도용 따로 부탁드립니다...
틱으로 계산했는데...틱으로 계산이 안되는 경우 포인트로 해주셔도 괜찮습니다...
10틱= 1포인트
매수용 (해외선물 골드)
1차 매수 조건
당일시가 대비 -160틱 하락하면 매수 진입
1차 매도청산 조건
익절 1차 진입가 대비 +40틱
손절 1차 진입가 대비 -180틱
2차 매수조건
1차 진입 조건에서 익절이 난 경우
당일시가 대비 -260틱 하락 하면 매수 진입
1차 진입 조건에서 손절이 난 경우(시가대비 -340틱 하락 한 경우)
당일 시가 대비 -260틱 하락 하면 매수 진입 하여야 하는데 이미 -340틱이 났으므로
기다렸다가 손절가 대비 +80틱 오르면 매수진입
2차 청산조건
익절 2차 진입가 대비 +50틱
손절 2차 진입가 대비 -180틱
1차 매수조건에서 익절 혹은 손절이 된 경우 1차 매수조건에서는 진입하지 않고
2차 매수조건에서만 진입
2차 익절 혹은 손절 이후 매매 중지
매도용 (해외선물 골드)
1차 매도 조건
당일시가 대비 +160틱 상승하면 매도 진입
1차 매수청산 조건
익절 1차 진입가 대비 -40틱
손절 1차 진입가 대비 +180틱
2차 매도조건
1차 진입 조건에서 익절이 난 경우
당일시가 대비 +260틱 상승 하면 매도 진입
1차 진입 조건에서 손절이 난 경우(시가대비 +340틱 상승 한 경우)
당일 시가 대비 +260틱 상승 하면 매도 진입 하여야 하는데 이미 +340틱이 났으므로
기다렸다가 손절가 대비 -80틱 하락 매도진입
2차 청산조건
익절 2차 진입가 대비 -50틱
손절 2차 진입가 대비 +180틱
1차 매도조건에서 익절 혹은 손절이 된 경우 1차 매도조건에서는 진입하지 않고
2차 매도조건에서만 진입
2차 익절 혹은 손절 이후 매매 중지
감사합니다...
2025-04-18
232
글번호 190255
답변완료
수식변환 부탁드립니다.
일봉의 5일선을 분봉에 나타내고자 합니다.
키움 함수
np = nPreDayClose(기간);
키움 수식 표현입니다.
(DayClose()+nP(1)+nP(2)+nP(3)+nP(4))/5
위 수식으로 예스분봉에서 지표로 나타내고 싶습니다.
2025-04-18
319
글번호 190254
답변완료
사용자 함수 에러를 잡아주세요
tradingview에서 parabolic RSI라는 지표를 YT로 변환중 _pine_sar라는 함수를 작성하는데
'문법에러, 잘못된 토큰,'<File End>'라는 에러를 만났는데 도대체 무슨 말인지 모르겠네요. 제가 작성한 함수는 다음과 같습니다.
input: src(NumericSeries),start(Numeric),inc(Numeric),max1(Numeric),len(numeric);
var: src_high(0),src_low(0);
var: result(NaN);
var: maxMin(Nan);
var: acceleration(Nan);
var: isBelow(0),isFirstTrendBar(false);
src_high = src+1;
src_low = src-1;
if barindex <= len+2 Then {
if src > src[1] Then {
isBelow = 1;
maxMin = src_high;
result = src_low[1];
} else {
isBelow = 0;
maxMin = src_low;
result = src_high[1];
}
isFirstTrendBar = true;
acceleration = start;
}
result = result + acceleration * (maxMin - result);
if isBelow==1 Then {
if result > src_low Then {
isFirstTrendBar = true;
isBelow = 0;
result = max(src_high, maxMin);
maxMin = src_low;
acceleration = start;
} else {
if result < src_high Then {
isFirstTrendBar = true;
isBelow = 1;
result = min(src_low, maxMin);
maxMin = src_high;
acceleration = start;
}
if isFirstTrendBar==False Then {
if isBelow==1 Then {
if src_high > maxMin Then {
maxMin = src_high;
acceleration = min(acceleration + inc, max1);
} else {
if src_low < maxMin Then {
maxMin = src_low;
acceleration = min(acceleration + inc, max1);
}
}
}
if isBelow==1 Then {
result = min(result, src_low[1]);
if barindex > 1 Then {
result = min(result, src_low[2]);
}
} else {
result = max(result, src_high[1]);
if barindex > 1 Then{
result = max(result, src_high[2]);
}
}
_pine_sar = numToStr(result,2) + ";" + numToStr(isBelow,0);
2025-04-18
261
글번호 190253
답변완료
종목 검색 부탁드립니다.
전일대비 100봉이내 20% 이상 상승하면서 20일 60일선을 동시돌파한 종목을 검색하고 십습니다.
2025-04-18
227
글번호 190251