커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1526
글번호 230811
답변완료
지표문의
1.아래지표 수정 좀해주세요
검증이안됨
INPUT: len(300), // 분석할 봉 수
priceStep(100), // 가격 구간 크기
topN(3); // 상위 HVN/LVN 개수
VAR: i(0), j(0),
priceMin(0), priceMax(0),
level(0), maxVol(0), minVol(999999999),
pocLevel(0), pocPrice(0);
ARRAY: vap , // 가격대별 거래량
hvnLevel , hvnVol ,
lvnLevel , lvnVol ;
{ 1. 최소, 최대 가격 찾기 }
priceMin = Low;
priceMax = High;
FOR i = 1 TO len BEGIN
IF Low[i] < priceMin THEN priceMin = Low[i];
IF High[i] > priceMax THEN priceMax = High[i];
END;
{ 2. vap 배열 초기화 }
FOR j = 0 TO 999 BEGIN
vap[j] = 0;
END;
{ 3. 거래량 누적 }
FOR i = 0 TO len-1 BEGIN
level = INTPART( (Close[i] - priceMin) / priceStep );
IF level >= 0 AND level < 1000 THEN
vap[level] = vap[level] + Volume[i];
END;
{ 4. Top N HVN 찾기 }
FOR j = 1 TO topN BEGIN
maxVol = 0;
pocLevel = 0;
FOR i = 0 TO 999 BEGIN
IF vap[i] > maxVol THEN BEGIN
maxVol = vap[i];
pocLevel = i;
END;
END;
hvnLevel[j] = pocLevel;
hvnVol[j] = maxVol;
vap[pocLevel] = 0;
END;
{ 5. Top N LVN 찾기 }
FOR j = 1 TO topN BEGIN
minVol = 999999999;
pocLevel = 0;
FOR i = 0 TO 999 BEGIN
IF vap[i] > 0 AND vap[i] < minVol THEN BEGIN
minVol = vap[i];
pocLevel = i;
END;
END;
lvnLevel[j] = pocLevel;
lvnVol[j] = minVol;
vap[pocLevel] = 999999999;
END;
{ 6. HVN / LVN 출력 ? Plot 이름 고정 }
IF topN >= 1 THEN BEGIN
pocPrice = priceMin + hvnLevel[1] * priceStep;
PLOT(pocPrice, "HVN1", RED);
pocPrice = priceMin + lvnLevel[1] * priceStep;
PLOT(pocPrice, "LVN1", BLUE);
END;
IF topN >= 2 THEN BEGIN
pocPrice = priceMin + hvnLevel[2] * priceStep;
PLOT(pocPrice, "HVN2", RED);
pocPrice = priceMin + lvnLevel[2] * priceStep;
PLOT(pocPrice, "LVN2", BLUE);
END;
IF topN >= 3 THEN BEGIN
pocPrice = priceMin + hvnLevel[3] * priceStep;
PLOT(pocPrice, "HVN3", RED);
pocPrice = priceMin + lvnLevel[3] * priceStep;
PLOT(pocPrice, "LVN3", BLUE);
END;
그럼 수고하세요
2025-09-03
278
글번호 193701
2wnwn 님에 의해서 삭제되었습니다.
2025-09-03
45
글번호 193700
답변완료
n일동안 캔들(고가,저가)가격이 n개 이상 겹치는 최저가를 이은선
n일동안 캔들(고가,저가)가격이 n개 이상 겹치는 가격에서
최저가를 이은선 수식 부탁드립니다
2025-09-03
216
글번호 193696
답변완료
부틱드립니다
수고하십니다
아래수식을 예스 화살표신호수식 부탁드립니다
a = eavg(c,10);
a1 = eavg(c,34);
b = rsi(14);
crossup(a,a1) && b>=55 && c> o
2025-09-03
227
글번호 193695
답변완료
문의드립니다.
다시 한번 문의드립니다.
아래 답변대로 적용하면 신호발생후부터 양봉 3개, 음봉 3개가 연속해 나올 때 청산이 됩니다.
제가 만들고자 하는 청산식은
"매수신호 발생후부터가 아니라 매수신호 발생전에 신호가 나온 봉을 포함해 3양봉이 나오고(신호봉은 반드시 3개 양봉중 마지막 양봉이라야 합니다) 그 직후 3음봉이 연달아서 나올 때 청산입니다"
제 표현력의 한계가 이정도이니 양해바랍니다.
-----------------------------------------------------------------------------
if MarketPosition == 1 and BarsSinceEntry == 3 and #매수진입 이후 3봉 경과
CountIf(C > O,3)[BarsSinceEntry] == 3 and #진입봉기준 3연속 양봉
CountIf(C < O,3) == 3 Then #현재 3연속 음봉
ExitLong();
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 제가 질문하는 능력이 많이 떨어져서 전달이 제대로 안되는 거 같아
한번 더 질문드립니다.
아래는 제 질문에 대한 예스스탁의 답변입니다.
----------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
if CountIf(C>O,3) == 3 and C[3] <= O[3] Then
Buy();
if MarketPosition == 1 and BarsSinceEntry == 3 and CountIf(C<O,3) == 3 Then
ExitLong();
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
연속 2양봉후 3번째 양봉에서 매수(즉, 진입봉 포함 연속 3양봉시 매수)진입후 이어서 연속 3음봉일 때 청산하는 식도 구하고 싶습니다. 즉, 3양봉이라서 매수신호가 나왔는데 바로 3음봉으로 꺽이면 청산하는 식입니다.
결국 양봉, 양봉, 양봉(매수신호 발생)후 이어서 음봉, 음봉, 음봉이 연달아 나오면 청산입니다.
----------------------------------------------------------------------------
1. 매수신호가 필요한게 아니라 청산식만 필요합니다.
2. 우선 연속으로 양봉 2개가 나옵니다. 그리고 3번째 양봉이 나오고나서부터 연속해 3음봉이 나오면 청산하는 청산식입니다. 간단히 말하자면 3개의 양봉 후 3개의 음봉이 나오면 청산하느 식입니다. 즉, 진입봉을 포함해 연속 3양봉이 나온후(마지막 봉이 양봉이라야 합니다) 바로 연속해서 3음봉이 나오면 청산하는 식입니다.
미리 노고에 감사드립니다.
2025-09-02
200
글번호 193694
님이랑 님에 의해서 삭제되었습니다.
2025-09-02
21
글번호 193693
답변완료
변환을 부탁드립니다.
트레이딩뷰의 Squeeze Momentum 입니다. 수고스럽겠지만 예스랭귀지로 변환을 부탁드립니다.
//
// @author LazyBear
// List of all my indicators: https://www.tradingview.com/v/4IneGo8h/
//
study(shorttitle = "SQZMOM_LB", title="Squeeze Momentum Indicator [LazyBear]", overlay=false)
length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = input(true, title="Use TrueRange (KC)", type=bool)
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = (sqzOn == false) and (sqzOff == false)
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)),
lengthKC,0)
bcolor = iff( val > 0,
iff( val > nz(val[1]), lime, green),
iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray
plot(val, color=bcolor, style=histogram, linewidth=4)
plot(0, color=scolor, style=cross, linewidth=2)
2025-09-02
424
글번호 193692
답변완료
변환 부탁드립니다
다음 수식을 예스트레이더로 부탁드립니다.
A = RSI(5);
B = Barssince(CrossDown(A, 20));
D = Barssince(CrossUp(A, 80));
E = ValueWhen(1, CrossDown(A, 30), L);
B < 30 && B < D && C < E
2025-09-02
247
글번호 193691
파크에버뉴 님에 의해서 삭제되었습니다.
2025-09-02
0
글번호 193690