커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3450
글번호 230811
답변완료
검색식 부탁 드립니다
D=valuewhen(1,date!=date(1),V);
D의 지표값이 분봉에서 1봉전보다 15%이상 하락 한 종목 검색식 부탁 드립니다
2025-07-31
239
글번호 192899
답변완료
종목검색식 부탁드립니다.
input : BBP(20),EVP(15);
var : BBmd(0),EVmd(0);
BBmd = ma(c,BBP);
EVmd = ma(C,EVP);
if crossup(evmd,bbmd) Then
find(1);
추가좀 부탁드립니다. 위 식이 나온후
5ma(지수이평)가 종목을 찾고싶습니다.
2025-07-31
239
글번호 192898
답변완료
당일 수익이 1.12 Point 이상 수익이 달성되면 더 이상 거래가 되지 않도록 하는
선물 자동매매시스템 수식에
거래시간이
09시05분 ~ 15시25분 으로 설정되어 있습니다.
거래 시작된 후
선물지수 거래횟수에 관계없이
당일 수익이 1.12 Point 이상 수익이 달성되면
더 이상 거래가 되지 않도록 하는
수식이 필요합니다.
감사합니다.
2025-07-31
259
글번호 192895
답변완료
시스템 부탁 드립니다.
var : mav1(0),mav2(0),mav3(0),T1(0),T2(0),T3(0);
mav1 = ma(c,5);
mav2 = ma(c,20);
mav3 = ma(c,60);
if mav1 > mav1[1] Then
T1 = 1;
if mav1 < mav1[1] Then
T1 = -1;
if T1 == 1 and T1[1] != 1 Then
var1 = 0;
if T1 == 1 and C > O and (C+O)/2 >= mav1 and mav2 > mav2[1] and mav1 > mav2 Then{
var1 = var1+1;
if var1 == 1 Then
buy("5매수");
}
if T1 == -1 and T1[1] != -1 Then
var2 = 0;
if T1 == -1 and C < O and (C+O)/2 <= mav1 and mav2 < mav2[1] and mav1 < mav2 Then{
var2 = var2+1;
if var2 == 1 Then
sell("5매도");
}
위 수식에서 매수신호, 매도신호시 손절선을 표시하고 싶습니다.
매수신호가 나오면 신호나온 캔들 저점에 수평선
매도신호가 나오면 신호 나온 캔들 고점에 수평선 이렇게 선을 표시하고 싶습니다.
선은 마지막 신호에만 표시하고 지나간 신호는 선이 없었으면 합니다.
2025-07-31
249
글번호 192891
답변완료
종목 검색 부탁드립니다.
srcF = CLOSE;
srcS = CLOSE;
VWmaF = SUM(srcF * VOLUME, lenF) / SUM(VOLUME, lenF);
VWmaS = SUM(srcS * VOLUME, lenS) / SUM(VOLUME, lenS);
AvgF = MA(srcF, lenF);
AvgS = MA(srcS, lenS);
VPC = VWmaS - AvgS;
VPR = IF(AvgF != 0, VWmaF / AvgF, 0);
VM = IF(MA(VOLUME, lenS) != 0, MA(VOLUME, lenF) / MA(VOLUME, lenS), 0);
VPCI = VPC * VPR * VM;
lenV = IF(VPC < 0, CEIL(ABS(VPCI - 3)), IF(VPC >= 0, CEIL(VPCI + 3), 1));
VPCc = IF(VPC > -1 AND VPC < 0, -1, IF(VPC < 1 AND VPC >= 0, 1, VPC));
PriceV = IF(lenV != 0, (LOW * (1 / VPCc) * (1 / VPR)) / lenV / 100, 0);
DeV = mult * VPCI * VM;
AVSL = MA(LOW - PriceV + DeV, lenS);
AVSL
지표조건
lenF 12
lenS 26
lenT 9
mult 1
offset 1
위 LINE을 지수이평 5일선이 돌파 하는 검색식 부탁드립니다
2025-07-31
256
글번호 192890
답변완료
문의
하루 2번 거래하는 수식입니다.
두번째 b2 진입에 필터를 두고 싶습니다.
필터 내용입니다.
1) b1 진입이 SetStopInactivity로 청산되면 b2 진입에 필터가 작동됩니다.
2) b2 진입은 ( c<dayopen-2.5 and b2 진입조건) 이 경우에만 허용됩니다.
항상 고맙습니다.
***************************************************************************************
input : b1(116);
input : b1ls(1.5),b1tr(2.7),mi1(0.5),bg1(150);
input : b2(122);
input : b2ls(2),b2tr(3.6),mi2(0),bg2(0);
var : T1(0),entry(0),LL(0),EH(0);
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 and C >= daylow+PriceScale*B1 Then
buy("b1");
if TotalTrades > TotalTrades[1] Then
LL = L;
if L < LL Then
LL = L;
if MarketPosition == 0 and entry == 1 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then
buy("b2");
if MarketPosition== 1 Then
{
if IsEntryName("b1") == true Then
{
SetStopLoss(b1ls,PointStop);
SetStopTrailing(b1tr,0,PointStop,1);
SetStopInactivity(mi1,bg1,PointStop);
}
Else if IsEntryName("b2") == true Then
{
SetStopLoss(b2ls,PointStop);
SetStopTrailing(b2tr,0,PointStop,1);
SetStopInactivity(mi2,bg2,PointStop);
}
Else
{
SetStopLoss(0);
SetStopTrailing(0,0);
SetStopInactivity(0,0);
}
}
2025-07-31
226
글번호 192889
답변완료
질문 부탁드립니다
지난 답변 관련 재문의 드리고 싶은데요
최초 만족시에만 저장하는 경우에
1. x,y 에 큰 값을 주거나 (if var==0 and 없이)
2. if var1==0 and 을 하거나
둘 다 같은 의미로써 둘중 하나로 하면 된다는 거죠??
즉 아래 두 식은 같은 의미
if aa[y] >= aa[x] *2 then
{
var1= aa[y];
y=4+(x*5) + 1;
x=6;
}
if var1 ==0 and aa[y] >= aa[x] *2 then
{
var1= aa[y];
}
아래는 수식입니다
감사합니다
var : x(0) , y(0);
var1=0;
for x = 0 to 5
{
for y= 0 to 4+(x*5)
{
if var1 ==0 and aa[y] >= aa[x] *2 then
{
var1= aa[y];
}
}
}
2025-07-31
231
글번호 192888
답변완료
종목검색 부탁드립니다.
안녕하세요?
다음의 수식의 종목검색식 부탁드립니다.
감사합니다.
max( avg(C,5), avg(C,20), avg(C,60)) <
min( avg(C,5), avg(C,20), avg(C,60)) * (1+5/100) &&
C > highest(H(1),5) && C(1) <= highest(H(2),5)
and
CrossUp(h,BBandsUp(20,2))
2025-07-31
261
글번호 192887
답변완료
수식 수정을 부탁드립니다
UT Bot + LinReg Candles 지표를 시스템용으로 작성한 것인데 67줄에 에러 메세지가 뜹니다 한번 살펴 봐 주시면 감사하겠습니다. 늘 친절히 답해 주셔서 너무나 감사드립니다.
늘 건강하세요.
// === 입력 변수 선언 ===
Input:
a_buy(2.0), // 매수 민감도 (ATR 배수)
c_buy(1), // 매수 ATR 기간
signal_length(7), // 신호 평활화 (이 수식에서는 사용되지 않음)
sma_signal(true), // 단순이동평균 사용 여부 (이 수식에서는 사용되지 않음)
lin_reg(true), // 선형회귀 사용 여부 (이 수식에서는 사용되지 않음)
linreg_length(11); // 선형회귀 길이 (이 수식에서는 사용되지 않음)
// === 변수 선언 ===
Vars:
src_buy(0),
atr_buy(0),
nLoss_buy(0),
trail_buy(0), // 이 변수는 YesLanguage에서 자동으로 이전 바 값을 기억해요!
ema_buy(0),
above_buy(false),
buy_signal_raw(false),
buy_signal(false);
// === UT Bot 매수 계산 ===
src_buy = C; // 종가 사용
atr_buy = ATR(c_buy); // ATR 계산
nLoss_buy = a_buy * atr_buy; // 손실 기준값
// 트레일링 스톱 계산 (매수용)
// IsNaN(trail_buy[1])은 첫 번째 바에서 true가 돼요.
if IsNaN(trail_buy[1]) then // 첫 번째 봉에서는 trail_buy를 초기화해요.
{
trail_buy = src_buy - nLoss_buy;
}
else // 두 번째 봉부터는 이전 봉의 trail_buy 값(trail_buy[1])을 사용해서 계산해요.
{
if src_buy > trail_buy[1] and src_buy[1] > trail_buy[1] then
{
trail_buy = IFF(trail_buy[1] > src_buy - nLoss_buy, trail_buy[1], src_buy - nLoss_buy);
}
else if src_buy < trail_buy[1] and src_buy[1] < trail_buy[1] then
{
trail_buy = IFF(trail_buy[1] < src_buy + nLoss_buy, trail_buy[1], src_buy + nLoss_buy);
}
else // 그 외의 경우 (방향 전환 시)
{
trail_buy = IFF(src_buy > trail_buy[1], src_buy - nLoss_buy, src_buy + nLoss_buy);
}
}
// EMA(src_buy, 1)은 종가(C)와 같으므로 C로 간단히 표시해요.
ema_buy = C;
above_buy = CrossUp(ema_buy, trail_buy); // 종가가 트레일링 스톱을 상향 돌파했는지 확인
// 원시 매수 신호: 종가가 trail_buy 위에 있고, 상향 돌파 조건이 만족할 때
buy_signal_raw = (src_buy > trail_buy) AND above_buy;
buy_signal = buy_signal_raw; // 확정 매수 신호
// === 조건검색 및 시스템 매매 로직 ===
// 매수 신호가 발생하면 매수 진입!
If buy_signal == TRUE Then
{
Buy("UTBot_Buy"); // 진입 전략 이름을 "UTBot_Buy"로 지정
}
// 매도 조건 (매수 신호가 더 이상 유효하지 않을 때 청산)
// 가장 기본적이고 오류가 적은 형태로 ExitLong을 사용합니다.
If buy_signal == FALSE Then
{
ExitLong; // 현재 열린 모든 Long 포지션을 청산합니다.
}
2025-07-31
308
글번호 192882