커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1541
글번호 230811
답변완료
문의드립니다.
If c > c[100] and c < c[200] then Buy("",atmarket,DEf,1);
If c < c[100] and c > c[200] then Sell("",atmarket,DEf,1);
var: BBB(0),CCC(0);
BBB= highest(low,10);
CCC= Lowest(low,10);
if barssinceentry >3 and Maxpositionprofit >= (3000/BigPointValue) and Crossdown (C,CCC[1]) Then ExitLong("11",AtMarket);
if barssinceentry >3 and Maxpositionprofit >= (3000/BigPointValue) and Crossup(C,BBB[1]) Then ExitShort("22",AtMarket);
SetStopLoss(4,PercentStop);
///////////////////////////////////////////////////////////////////////////////////
실버 120분봉 적용
위 수식을 적용했을때 첨부파일에 체크한것처럼 매도 청산후 바로 매도 진입후 연속 청산이 나가는 현상이 있는데 이 부분을 고치기 위해서 "barssinceentry >3" 적용했지만 효과가 없는 것 같습니다. 이부분 보완 가능할까요??
1. 매도 청산후 재매도 들어가는데 해당봉에 바로 청산되는것 방지
2025-06-26
212
글번호 192102
답변완료
부탁드립니다.
supertrend2 통과시 세로선이 생깁니다. 동시에 봉 위아래 화살표가 생기도록 부탁드립니다.
input : period1(10),multiplier1(3);
input : period2(20),multiplier2(2);
input : period3(30),multiplier3(3);
var : src(0);
var : AtrV1(0),upperBand1(0),lowerBand1(0), prevLowerBand1(0), prevUpperBand1(0);
var : prevSuperTrend1(0), superTrend1(C), direction1(0),alpha1(0),source1(0);
var : AtrV2(0),upperBand2(0),lowerBand2(0), prevLowerBand2(0), prevUpperBand2(0);
var : prevSuperTrend2(0), superTrend2(C), direction2(0),alpha2(0),source2(0);
var : AtrV3(0),upperBand3(0),lowerBand3(0), prevLowerBand3(0), prevUpperBand3(0);
var : prevSuperTrend3(0), superTrend3(C), direction3(0),alpha3(0),source3(0);
var : TL1(0),TL2(0),TL3(0),TL(0),box1(0),box2(0);
src = (H+L)/2;
if CurrentBar > 1 Then
{
alpha1 = 1 / period1;
source1 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV1 = alpha1 * source1 + (1 - alpha1) * ATrV1[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand1 = src + multiplier1 * AtrV1;
lowerBand1 = src - multiplier1 * AtrV1;
prevLowerBand1 = lowerBand1[1];
prevUpperBand1 = upperBand1[1];
if lowerBand1 > prevLowerBand1 or close[1] < prevLowerBand1 Then
lowerBand1 = lowerBand1;
Else
lowerBand1 = prevLowerBand1;
if upperBand1 < prevUpperBand1 or close[1] > prevUpperBand1 Then
upperBand1 = upperBand1;
Else
upperBand1 = prevUpperBand1;
if C > UpperBand1 Then
direction1 = 1;
if C < LowerBand1 Then
direction1 = -1;
if direction1 == 1 Then
supertrend1 = lowerband1;
Else
supertrend1 = upperband1;
alpha2 = 1 / period2;
source2 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV2 = alpha2 * source2 + (1 - alpha2) * ATrV2[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand2 = src + multiplier2 * AtrV2;
lowerBand2 = src - multiplier2 * AtrV2;
prevLowerBand2 = lowerBand2[1];
prevUpperBand2 = upperBand2[1];
if lowerBand2 > prevLowerBand2 or close[1] < prevLowerBand2 Then
lowerBand2 = lowerBand2;
Else
lowerBand2 = prevLowerBand2;
if upperBand2 < prevUpperBand2 or close[1] > prevUpperBand2 Then
upperBand2 = upperBand2;
Else
upperBand2 = prevUpperBand2;
if C > UpperBand2 Then
direction2 = 1;
if C < LowerBand2 Then
direction2 = -1;
if direction2 == 1 Then
supertrend2 = lowerband2;
Else
supertrend2 = upperband2;
alpha3 = 1 / period3;
source3 = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV3 = alpha3 * source3 + (1 - alpha3) * ATrV3[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand3 = src + multiplier3 * AtrV3;
lowerBand3 = src - multiplier3 * AtrV3;
prevLowerBand3 = lowerBand3[1];
prevUpperBand3 = upperBand3[1];
if lowerBand3 > prevLowerBand3 or close[1] < prevLowerBand3 Then
lowerBand3 = lowerBand3;
Else
lowerBand3 = prevLowerBand3;
if upperBand3 < prevUpperBand3 or close[1] > prevUpperBand3 Then
upperBand3 = upperBand3;
Else
upperBand3 = prevUpperBand3;
if C > UpperBand3 Then
direction3 = 1;
if C < LowerBand3 Then
direction3 = -1;
if direction3 == 1 Then
supertrend3 = lowerband3;
Else
supertrend3 = upperband3;
if C > superTrend1 Then
{
Plot1(superTrend1,"매수1", rgb(247, 75, 201), 0, 1);
NoPlot(2);
}
Else
{
Plot2(superTrend1,"매도1", Indigo, 0, 1);
NoPlot(1);
}
if C > superTrend2 Then
{
Plot3(superTrend2,"매수2", rgb(247, 75, 201), 0, 2);
NoPlot(4);
}
Else
{
Plot4(superTrend2,"매도2", Indigo, 0, 2);
NoPlot(3);
}
if C > superTrend3 Then
{
Plot5(superTrend3,"매수3", rgb(247, 75, 201), 0, 7);
NoPlot(6);
}
Else
{
Plot6(superTrend3,"매도3", Indigo, 0, 7);
NoPlot(5);
}
}
var : box(0);
if CrossUp(c,supertrend2) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL,rgb(255, 215, 0));
TL_SetSize(TL,1);
TL_SetStyle(TL,2);
}
Else if CrossDown(c,supertrend2) Then
{
TL = TL_New(sDate,sTime,0,sDate,sTime,999999999);
TL_SetColor(TL, rgb(193, 216, 251));
TL_SetSize(TL,2);
TL_SetStyle(TL,2);
}
Else
{
if var4 > 0 and Index < var4+5 Then
{
TL_SetEnd(TL1,NextBarSdate,NextBarStime,var1);
TL_SetEnd(TL2,NextBarSdate,NextBarStime,var2);
TL_SetEnd(TL3,NextBarSdate,NextBarStime,var3);
Box_SetEnd(box1,NextBarSdate,NextBarStime,var2);
Box_SetEnd(box2,NextBarSdate,NextBarStime,var3);
}
}
2025-06-25
283
글번호 192101
답변완료
문의드립니다~^^
안녕하세요~^^ 문의드립니다
종목검색에서~
var1 = dayhigh;
var2 = daylow;
var4 = dayopen;
var5 = var2+(var1-var2)*0.500;
조건1)전일종가대비 오늘 시초가가 3% (갭) 이상인 종목으로~
조건2) 현재가(C) > var4 and c > var5 then
조건1) 조건2) 모두 충족되는 종목이 나타날수 있도록~ 종목검색식 부탁드립니다~^^
2025-06-26
203
글번호 192100
답변완료
수식 부탁드립니다.
Inputs: 기간시작(10), 기간끝(40);
Vars: 신호값(0), 중심(0), p1(0), p2(0), p3(0), p4(0), p5(0), p6(0), p7(0), 평균값(0);
중심 = Average(High, 40) * 1.02;
평균값 = (p1 + p2 + p3 + p4 + p5 + p6 + p7) / 7;
p1 = IFF(중심 < Average(Close, 10), Average(Close, 10), 중심);
p2 = IFF(중심 < Average(Close, 15), Average(Close, 15), 중심);
p3 = IFF(중심 < Average(Close, 20), Average(Close, 20), 중심);
p4 = IFF(중심 < Average(Close, 25), Average(Close, 25), 중심);
p5 = IFF(중심 < Average(Close, 30), Average(Close, 30), 중심);
p6 = IFF(중심 < Average(Close, 35), Average(Close, 35), 중심);
p7 = IFF(중심 < Average(Close, 40), Average(Close, 40), 중심);
// 이전 봉과 비교해서 하나라도 값이 달라지면 신호
If (p1 <> p2) or (p2 <> p3) or (p3 <> p4) or (p4 <> p5) or (p5 <> p6) or (p6 <> p7) or (p7 <> p1) Then
신호값 = 평균값; // 또는 원하는 y값(예: Close, High 등)
Else
신호값 = Nan; // 표시 안함(플랫폼에 따라 Null, NaN 등 사용 가능)
Plot1(신호값, "변화점");
**************// 질문1.
plot1 선그래프가 아닌 점그래프로 변환시
점그래프 발생시점 첫번째 점만 표시하고 싶습니다~! //
----------------------------------------------------------------------
Input: src(numeric), length(numeric), weight(numeric);
Vars: sum(0), output(0), i(0);
sum = 0;
For i = 0 To length - 1 Begin
sum = sum + src[i];
End;
If length > 0 Then
output = sum / length;
Else
output = 0;
WeightedSimpleAverage = (src * weight + output * (length - weight)) / length;
End;
**************// 질문2 사용자 함수작성해서 쓸려고 하는데 문법에러, 잘못된 토큰:'end'라고 뜨네요
어떻게 사용해야하는지요? ㅠ
2025-06-25
216
글번호 192099
요타 님에 의해서 삭제되었습니다.
2025-06-26
25
글번호 192098
답변완료
왜 이런 현상이 생기나요
안녕하세요?
그림에서 test 23-0 지표가 오리지널 지표 입니다.
1) 제일 아래의 test 23-2 지표는 위의 지표를 A0 라는 사용자 함수로 만든 후, 그 A0를 출력시킨 것입니다.
=>
일단 이녀석은 위의 오리지널 지표랑 값은 같게 나오는데, 문제는 오리지널 지표는 차트의 처음부터 나오는데, 이 녀석은 왜 25년 1월 13일부터 지표가 그려지는지 모르겠습니다. 즉, 오리지널 지표를 사용자 함수로 만들면 이렇게 앞부분이 안 그려지는 이유가 뭔지 궁금합니다.
2) 중간에 그려진 test 23-1 지표는 위의 23-0 지표를 사용자 함수로 만든 A0 함수에다가 다른 사용자 함수 A1, A2와 함께 새로운 지표를 만들고자 했는데, 이상하게도 사용자 함수 A1, A2와 같이 사용하니 값이 그림처럼 달라집니다. 즉, 여기서는 수식에 A0, A1, A2 함수들이 등장하는데, 그 중 A0만을 그린 것입니다. (물론, 사용자 함수 A1, A2를 주석처리하면 A0 함수를 그릴 때, 3번째 지표인 test 23-2와 동일하게 나옵니다.)
=>
(1) 이 경우에는 아까의 test 23-2 지표처럼 25년 1월 13일부터 지표가 그려지는 것도 있지만,
(2) 더 심각한 것은 보시다시피, 지표값 자체가 오리지날 지표인 test 23-0과 비슷은 하지만, 값이 틀립니다. 원래 지표는 -10 ~ 10 의 값을 갖는데, 이 친구는 약 -5,83 ~ 5.83 의 값을 갖는 것으로 보이고, 오리지널은 음수로 바뀌었는데, 이 친구는 아직 양수이기도 하고(25년 5월 22일), 신뢰가 안갑니다. (첫번째 그림)
(3) 웃긴 것은 지금의 차트는 세아베스틸 연결 선물인데, 다른 종목으로 바꾸면, 3가지 모두 값이 같게 나옵니다. (2번째 그림) 물론, 지표가 처음 그려지는 것은 사용자 함수로 바꿔서 그리는 것이 오리지날 지표에 비해 여러 봉 뒤부터 그려지는 문제는 똑같습니다. (3번째 그림)
이런 부분들에 대해서 왜 이런 일이 생기는지?
이걸 피하는 방법은 뭐가 있는지?
등이 궁금해서 여쭤 봅니다.
참고로, 오리지널 지표는 HMA 를 사용했습니다.
감사합니다.
2025-06-25
334
글번호 192097
답변완료
다시 문의 드립니다.
종목 검색식에 넣었는데요
에러가 뜹니다.
사진으로 첨부했습니다.
안녕하세요
예스스탁입니다
종목검색화면에서 주봉으로 지정하고 검색하시면 됩니다.
1
input : N(52);
if c > highest(H,52)[1] Then
Find(1);
2
input : N(52);
if c < lowest(L,52)[1] Then
Find(1);
즐거운 하루되세요
> 가자아이 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요
항상 감사드립니다.
아래의 조건에 부합되는 종목이 검색될 수 있도록 부탁드립니다.
1. 52주 신고가를 새롭게 상향 돌파하는 종목
2. 52주 신저가를 새롭게 하향 돌파하는 종목
감사합니다.
2025-06-25
252
글번호 192096
답변완료
재 문의 드립니다.
안녕하세요
보내주신 서식을
국내 ETF에 시스템을 접목했는데
아무런 매매가 일어나질 않습니다.
피라미딩도 알려주신대로 모든 진입허용으로 했습니다.
참고로 일봉 기준으로 매매를 하고 있습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.
>
안녕하세요
예스스탁입니다
설정창의 피라미팅탭에서 피라미딩을
모든진입신호 허용으로 설정하고 적용하시면 됩니다.
input : 총매수금(100000000);
var1 = rsi(14);
if sTime >= 91000 and var1 <= 55 Then
{
if MarketPosition == 0 or (MarketPosition == 1 and MaxEntries < 40 and C < AvgEntryPrice) Then
Buy("b",OnClose,Def,Floor((총매수금/40)/c));
}
if MarketPosition == 1 Then
ExitLong("bx",AtLimit,AvgEntryPrice*1.10);
즐거운 하루되세요
> 가자아이 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요
항상 감사드립니다.
아래의 조건으로 매매 시스템 서식 부탁드립니다.
*매수조건 (40분할 매수)
1. RSI(period 14) 55 이하일때 매수 (INPUT)
2. 1의 조건이 부합될때 09시10분에 매수 주문 (INPUT)
3. 1의 조건이 부합될때 매수 주문량은 전체 자금의 1/40씩 매수(INPUT)
(분할 매수가 불가능할 경우엔 매수만 해주세요)
4. 두번째 매수부터는 RSI 55 이하, 평균 단가 이하일때만 매수주문 (INPUT)
*매도 조건
1. 10% 수익 실현시 전량 매도 (INPUT)
감사합니다.
2025-06-25
280
글번호 192095
답변완료
질문 부탁드립니다
수고가 많으십니다
지난 답변 감사드립니다
질문1)
분봉 검색에서 당일 포함 지난 10거래일 동안 조건만족이 8번이상 만족시에 검색을 하게 할 수 있을까요?
아래 첨부한 수식은 당일 조건만족이 1번 이상 발생했을때 검색하는 수식입니다
if Bdate != Bdate[1] Then
{
DD = DD+1;
Condition3=False;
}
if (h>l*1.08) then
{...
}
if Condition3==False and (aa[0]<h and aa[0]>l) Then
{
Condition3=true;
}
if condition3==true then find(1);
질문2)
당일 포함 지난 10거래일 동안 8번 이상 조건을 만족하지만
조건만족 횟수의 절반 이상이 거래일의 초반 1/3지점 이내에서 발생했을때 검색을 하게 할 수 있을까요?
예를들어서 초반 3거래일 (10거래일 * 1/3 = 3.333... 을 정수부만 취해서 3일) 동안 4번 이상 발생했을때만 검색을 하고자 합니다
감사합니다
2025-06-25
227
글번호 192084