커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3391
글번호 230811
답변완료
전략실행과 시뮬레에션 진입의 차이?
전략실행챠트와 전략실행 성능보고서상의 진입과 시뮬레이션챠트와 시뮬레이션에서의 진입이 상이합니다. 청산은 봉이 완성되기 전에 청산이 될 수 있기 때문에 약간의 차이가 있을 수 있다고 생각되지만 진입은 봉이 완성되고나서 진입이 되기때문에 차이가 나지 않아야 될 것으로 생각이 됩니다. 시뮬레이션으로는 챠트와 성능보고서에 진입이 된 것으로 나오는데 전략실행상으로는 나타나지 않습니다. 이와관련 캡쳐를 첨부파일에 첨부하오니 원인을 파악하여 주시면 고맙겠습니다.
2025-10-01
242
글번호 194463
답변완료
안녕하세요
주식 차트에서
분봉 거래대금을 (1억)으로 표현하여
구현할 수 있는 지표 문의드립니다.
감사합니다!
2025-10-01
235
글번호 194462
답변완료
부탁드립니다.
1. 종가가 양봉이면서 최근 20개이내 봉 중에서 가장 긴 양봉의 최고가보다 높으면 파란색으로, 종가가 음봉이면서 최근 20개이내 봉 중에서 가장 긴 음봉의 최저가보다 낮으면 빨강색으로 구현해 주세요
2. 종가가 최근 20개이내 봉 중에서 아래 꼬리가 몸통보다 가장 긴 봉의 최저가보다 낮으면 파란색으로, 최근 20개이내 봉 중에서 위꼬리가 몸통보다 가장 긴 봉의 최고가보다 높으면 빨강색으로 구현해 주세요
고맙습니다.
2025-10-01
206
글번호 194461
답변완료
문의 드립니다.
안녕하세요
항상 친절한 답변에 깊이 감사드립니다.
아래의 서식에서
손절 서식 추가 부탁드립니다.
추적 손절(input): 손절 2% (수익시에는 최대수익 대비 2% 하락할때 손절)
Input : shortPeriod(12), longPeriod(26), Period(6);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
2025-10-01
223
글번호 194451
답변완료
시스템식 문의 드립니다.
안녕하세요
항상 빠른 답변 감사 드립니다.
두가지 시스템식을 문의드립니다.
1번
분봉상에 시스템식을 적용 하려는데 타주기 일봉의 조건을 적용 하고자 합니다.
분봉상 시스템 적용
일봉상 ma(c,5) >= low 조건이 만족할때
아래 조건을 실행 한다.
if MarketPosition <= 0 and c > Emav and C > sarv and CrossUp(macdv,macds) Then
Buy();
위 식을 요청 드립니다.
2번
// 수익 1% 이상일 때 청산(익절) 조건 추가
// 롱 포지션: 현재가가 진입가의 1% 이상 상승하면 청산
if (MarketPosition > 0) and (close >= entryPrice * 1.01) then
ExitLong("익절Long");
// 숏 포지션: 현재가가 진입가의 1% 이상 하락하면 청산
if (MarketPosition < 0) and (close <= entryPrice * 0.99) then
ExitShort("익절Short");
위 식이 오류가 있으면 바로 잡아 주시고 , 혹 피라미딩 설정을 해야 하는지요?
그럼 좋은 하루 되세요^^
2025-10-01
248
글번호 194450
답변완료
종목검색 문의드립니다
수고하십니다
a=macd(12,26);
b=eavg(a,9);
d=valuewhen(1,crossup(a,0),c);
e=valuewhen(1,crossup(a,b),c);
crossup(c,d)&&crossup(c,e)
키움수식인데 종목검색식 부탁드립니다
2025-10-01
195
글번호 194449
답변완료
부탁드립니다
수고하십니다
예스로 부탁드립니다
//@version=3
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Pretty Good Oscillator s c ript may be freely distributed under the MIT license.
study("Pretty Good Oscillator", shorttitle="PGO")
length = input(title="Length", type=integer, defval=14, minval=1)
upperLevel = input(title="Upper Level", type=float, step=0.1, defval=2.0)
lowerLevel = input(title="Lower Level", type=float, step=0.1, defval=-2.0)
maxLevel = input(title="Max Level", type=float, step=0.1, defval=4.0)
minLevel = input(title="Min Level", type=float, step=0.1, defval=-4.0)
highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=bool, defval=true)
src = input(title="Source", type=source, defval=close)
pgo = (src - sma(src, length)) / atr(length)
pgoColor = pgo > upperLevel ? #0ebb23 : pgo < lowerLevel ? #ff0000 : #f4b77d
plot(pgo, title="PGO", linewidth=2, color=pgoColor, transp=0)
transparent = color(white, 100)
maxLevelPlot = hline(maxLevel, title="Max Level", linestyle=dotted, color=transparent)
upperLevelPlot = hline(upperLevel, title="Upper Level", linestyle=dotted)
hline(0, title="Zero Level", linestyle=dotted)
lowerLevelPlot = hline(lowerLevel, title="Lower Level", linestyle=dotted)
minLevelPlot = hline(minLevel, title="Min Level", linestyle=dotted, color=transparent)
fill(upperLevelPlot, lowerLevelPlot, color=purple, transp=95)
upperFillColor = pgo > upperLevel and highlightBreakouts ? green : transparent
lowerFillColor = pgo < lowerLevel and highlightBreakouts ? red : transparent
fill(maxLevelPlot, upperLevelPlot, color=upperFillColor, transp=90)
fill(minLevelPlot, lowerLevelPlot, color=lowerFillColor, transp=90)
2025-10-01
333
글번호 194448
답변완료
하이킨 아시 차트
안녕하세요.
봉캔들을 꽉 채우려고 하거든요
아래 수식 A,B에서 뭐가 잘 못 되었을까요?
A:
// === Heikin Ashi Candle ===
VAR : haO(0), haC(0), haH(0), haL(0);
// Heikin Ashi 종가
haC = (O + H + L + C) / 4;
// Heikin Ashi 시가 (재귀: 첫 봉 초기화)
IF CurrentBar == 1 THEN
haO = (O + C) / 2;
ELSE
haO = (haO[1] + haC[1]) / 2;
// HA 고가/저가
haH = MAXLIST(H, haO, haC);
haL = MINLIST(L, haO, haC);
// === 출력: Heikin Ashi 캔들 ===
PLOT1(haO); // Heikin Ashi Open
PLOT2(haH); // Heikin Ashi High
PLOT3(haL); // Heikin Ashi Low
PLOT4(haC); // Heikin Ashi Close
B:
// === 입력 ===
INPUT : ShowArrows(1), ShowBaseline(1);
// === Heikin Ashi 캔들 계산 ===
VAR : haO(0), haC(0), haH(0), haL(0);
// HA Close
haC = (O + H + L + C) / 4;
// HA Open (시드 + 재귀) : CurrentBar 없이 [1] 체크로 처리
IF haO[1] == 0 THEN
haO = (O + C) / 2;
ELSE
haO = (haO[1] + haC[1]) / 2;
// HA High / Low
haH = MAXLIST(H, haO, haC);
haL = MINLIST(L, haO, haC);
// === HA 캔들 출력 (메인 봉을 Heikin Ashi로 대체) ===
PLOT1(haO); // Open
PLOT2(haH); // High
PLOT3(haL); // Low
PLOT4(haC); // Close
// === 기준값 P (평라인) ===
VAR : P(0);
P = (haO + haC) / 2;
// === 상태/전환 판정 ===
VAR : isBull(False), isBear(False), upTrn(False), dnTrn(False);
isBull = haC >= haO;
isBear = haC < haO;
upTrn = isBull && !isBull[1]; // 양봉 시작
dnTrn = isBear && !isBear[1]; // 음봉 시작
// === 전환 시점의 P 값을 고정(계단 유지) ===
VAR : baseUp(0), baseDn(0);
// 최근 양봉 시작 시점의 P
IF upTrn THEN
baseUp = P;
ELSE
BEGIN
IF baseUp[1] == 0 THEN
baseUp = P; // 초기 시드
ELSE
baseUp = baseUp[1];
END;
// 최근 음봉 시작 시점의 P
IF dnTrn THEN
baseDn = P;
ELSE
BEGIN
IF baseDn[1] == 0 THEN
baseDn = P; // 초기 시드
ELSE
baseDn = baseDn[1];
END;
// === 최근 전환 방향 기억 (양봉=1, 음봉=0) ===
VAR : activeUp(0);
IF upTrn THEN
activeUp = 1;
ELSE
BEGIN
IF dnTrn THEN
activeUp = 0;
ELSE
activeUp = activeUp[1];
END;
// === 최종 기준선 선택 ===
VAR : BASELINE(0);
IF (baseUp[1] == 0) && (baseDn[1] == 0) THEN
BASELINE = P; // 전환 없을 때는 P로 시작
ELSE
BEGIN
IF activeUp == 1 THEN
BASELINE = baseUp;
ELSE
BASELINE = baseDn;
END;
// === 전환 화살표 시리즈 ===
VAR : sigUp(0), sigDn(0);
IF ShowArrows == 1 THEN
BEGIN
IF upTrn THEN
sigUp = C;
ELSE sigUp = 0;
IF dnTrn THEN
sigDn = C;
ELSE sigDn = 0;
END
ELSE
BEGIN
sigUp = 0;
sigDn = 0;
END;
// === 보조 출력 ===
// PLOT5: 기준선, PLOT6/7: 전환 화살표(▲/▼)
IF ShowBaseline == 1 THEN PLOT5(BASELINE);
PLOT6(sigUp);
PLOT7(sigDn);
2025-10-01
272
글번호 194446
답변완료
지표와 종목검색식 문의드립니다.
수고하십니다.
지표와 종목검색식 좀 부탁드려요~
1. 일봉 차트에 들어갈 슈퍼트렌드 10, 3 값을 만들고 싶습니다.
2. 어제와 오늘 슈퍼트렌드 10, 3 골든크로스 된 종목검색식을 만들고 싶습니다.
3. 사용법 문의인데요.
예스랭기지 편집기에서 검증 후 3202 파워종목검색에서 바로 불러와서 검색 버튼을 누르면 되는건가요?
2025-10-01
306
글번호 194439