커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1328
글번호 230811
답변완료
검색식 부탁 드려요
1. 캔들(양봉캔들, 음봉캔들 모두 포함)중
"전체길이의 캔들몸통은 절반이하" , 전체길이의 캔들 윗꼬리는 절반이상" 인
종목 검색식 부탁드려요.
(단, 0봉전 ~ 30봉전 모든 종목)
2025-03-16
375
글번호 189219
답변완료
문의 드립니다
안녕하세요
다음 키움 지표을 예스로 전환해주세요
수식1 (O)
DayOpen()
수식2 (H)
DayOpen()+
(NpredayHigh(1)-NpredayOpen(1)
+NpredayHigh(2)-NpredayOpen(2)
+NpredayHigh(3)-NpredayOpen(3)
+NpredayHigh(4)-NpredayOpen(4)
+NpredayHigh(5)-NpredayOpen(5))/5
수식3 (L)
DayOpen()-
(NpredayOpen(1)-NpredayLow(1)
+NpredayOpen(2)-NpredayLow(2)
+NpredayOpen(3)-NpredayLow(3)
+NpredayOpen(4)-NpredayLow(4)
+NpredayOpen(5)-NpredayLow(5))/5
수식4 (C)
DayOpen()+
(NpredayClose(1)-NpredayOpen(1)
+NpredayClose(2)-NpredayOpen(2)
+NpredayClose(3)-NpredayOpen(3)
+NpredayClose(4)-NpredayOpen(4)
+NpredayClose(5)-NpredayOpen(5))/5
부탁 드립니다
감사합니다
2025-03-16
411
글번호 189218
답변완료
수식수정 부탁드립니다
input : 하락갭율(-2.5) ;
var : L0(0),L1(0),L2(0),L3(0),L4(0),L5(0);
Condition1 = ( O - C[1] ) / C[1] * 100 <= 하락갭율 ;
#1봉전 음봉이고 0봉전 음봉이면서 일정율의 하락갭이 발생하는 경우
if Condition1 == true and C < O and C[1] < O[1] Then #하락갭음봉기준
{
Var1 = C[1] ; #1봉전 음봉종가 저장
Var2 = O ; #0봉전 음봉의 시가 저장
Var3 = C ; #0봉전 음봉의 종가 저장
Var4 = H ; #0봉전 음봉의 고가 저장
Var5 = L ; #0봉전 음봉의 저가 저장
}
#1봉전 음봉이고 0봉전 음봉이면서 일정율의 하락갭이 발생하는 경우 전일종가라인간의
// 높낮이와 변동율을 비교하기 위한 수식(=하락갭음봉기준 전일종가라인선)
if Var1 > 0 and Var1 != Var1[1] Then
{
L0 = Var1 ; #하락갭음봉기준 전일종가라인선
L1 = L0[1]; #1변동전 전일종가라인
L2 = L1[1]; #2변동전 전일종가라인
L3 = L2[1]; #3변동전 전일종가라인
L4 = L3[1]; #4변동전 전일종가라인
L5 = L4[1]; #5변동전 전일종가라인
}
상기 수식을 토대로 하기의 신호검색 수식을 만들어 주세요
Input : 표시가격1(L/1.0015),표시가격2(L/1.0135),표시가격3(L/1.0135) ;
수식1> Plot1(표시가격1,"하락갭음봉후첫양봉");
1봉전 음봉이고 0봉전 음봉이면서 일정율의 하락갭이 발생(=하락갭음봉기준)한 이후
첫번째 양봉이 발생할때의 매수신호 수식. 단 이 양봉의 시가는 하락갭음봉기준의
종가(Var3)보다는 낮아야 하고, 음봉하락갭 전일종가라인선간의 비교에서
1변동전종가라인보다 낮아야 한다.(L1>L0), 하락갭음봉기준발생이후에 발생된 고가중
최고가도 L1보다 낮아야 한다. 돌파한게 있으면 안된다.
이 조건에 맞는 양봉발생시에 해당 양봉의 시가(Var6 = O)와 종가(Var7 = C)를
저장해야한다.
수식2> Plot2(표시가격2,"하락갭음봉후첫양봉시가아래첫양봉");
Plot1(=하락갭음봉후첫양봉)발생후 고가상으로 1변동전종가라인(L1)돌파하지
못하고 계속하락하거나 횡보후 하락하다가 음봉후 양봉출현시의 신호수식.
단 이 양봉의 시가는 Plot1의 양봉시가보다 낮아야 한다(O<=Var6).
이 조건에 맞는 양봉발생시에 해당 양봉의 시가(Var8 = O)와 종가(Var9 = C)를
저장해야한다.
수식3> Plot3(표시가격3,"하락갭음봉후첫양봉시가아래첫양봉후음양봉");
Plot2(=하락갭음봉후첫양봉시가아래첫양봉)발생후에도 고가상으로 1변동전종가
라인(L1)돌파하지 못하고 계속하락하거나 횡보후 하락하다가 음봉후 양봉출현시의
신호수식. 단 이 양봉의 시가는 Plot2의 양봉시가보다 낮아야 한다(O<=Var8).
추가 고려사항>
1. 고가상으로 1변동전종가라인(L1)을 돌파하는 경우가 나오면 신호조건은 무시된다
조건진행중 최고가가 L1을 돌파하는 경우가 나오면 더이상 신호는 발생되지
않아야 한다는 것임
2. PLOT3 신호발생이후에는 더이상 신호표시하지 않음
2025-03-17
337
글번호 189217
신대륙발견 님에 의해서 삭제되었습니다.
2025-03-16
4
글번호 189216
답변완료
지표식
A=ma(v(1),20)*10<v;
VALUEWHEN(1,A,L)
지표식 부탁 드립니다.
2025-03-16
364
글번호 189215
답변완료
종목 검색식 작성을 부탁드립니다
안녕하세요
종목 검색식 작성을 부탁드립니다
이동 = ma(C,30);
테마 =TEMA(C,기간);
기준선 = (highest(high,중간값)+lowest(low,중간값))/2;
크로스 = crossup(기준선, 테마);
크로스&&
C>이동
//기간=10
//중간값=26
2025-03-16
365
글번호 189214
답변완료
변환 부탁드립니다
아래 함수을 예스트레이더 종목검색으로 변환 부탁드립니다
A=OBV();
증가 = A > A(1);
감소 = A < A(1);
조건1 = Sum(감소,7)==7 && Sum(증가(7),7) == 7;
조건2 = valuewhen(1, 조건1, A(7));
CrossUp(A, 조건2)
2025-03-16
347
글번호 189213
답변완료
수고하십니다
수식1
고=max(dayhigh(),npredayhigh(1),npredayhigh(2));
저=min(daylow(),npredaylow(1),npredaylow(2));
(고*61.8+저*38.2)/100
수식2
A1=DayHigh()-DayLow();
A2=Max(DayClose(),DayOpen())-DayLow();
최종=A1/A2>비율 && DayHigh()/nPreDayClose(1)>
(1+상승률/100);
(Valuewhen(1,최종,DayHigh())+
Valuewhen(1,최종,Max(DayClose(),DayOpen())))/2;
비율=2 상승률=10
수식1,수식2 라인을 몸통으로 돌파하는 종목을 찾고 싶어서 부탁드립니다.
2025-03-15
406
글번호 189212
답변완료
식을 예스랭귀지로 변환 부탁드립니다.
아래식을 예스랭귀지로 변환 부탁드립니다.
// 입력값 설정
input Period = 18; // 이동평균 주기
input MultiD = 0.5; // 초기 표준편차 배수
input RSILength = 14; // RSI 주기
input MACDFast = 12; // MACD 빠른 선
input MACDSlow = 26; // MACD 느린 선
input MACDSignal = 9; // MACD 신호선
// 변수 선언
var MAv = 0; // 이동평균선
var BBup = 0; var BBdn = 0; // 볼밴 0.5σ
var BBup1 = 0; var BBdn1 = 0; // 볼밴 1σ
var BBup1_5 = 0; var BBdn1_5 = 0; // 볼밴 1.5σ
var BBup2 = 0; var BBdn2 = 0; // 볼밴 2σ
var BBup2_5 = 0; var BBdn2_5 = 0; // 볼밴 2.5σ
var BBup3 = 0; var BBdn3 = 0; // 볼밴 3σ
var BBWidth = 0; // 볼밴 폭 (스퀴즈 감지용)
var MACDLine = 0; var SignalLine = 0; var MACDHist = 0; // MACD 변수
var RSIVal = 0; // RSI 값
var OBVVal = 0; // OBV 값
var VolumeSpike = 0; // 거래량 급증 여부
// 계산
MAv = sma(close, Period); // 단순 이동평균선 (SMA)
// 볼린저밴드 계산 (다양한 표준편차)
BBup = MAv + (stdev(close, Period) * MultiD);
BBdn = MAv - (stdev(close, Period) * MultiD);
BBup1 = MAv + (stdev(close, Period) * 1);
BBdn1 = MAv - (stdev(close, Period) * 1);
BBup1_5 = MAv + (stdev(close, Period) * 1.5);
BBdn1_5 = MAv - (stdev(close, Period) * 1.5);
BBup2 = MAv + (stdev(close, Period) * 2);
BBdn2 = MAv - (stdev(close, Period) * 2);
BBup2_5 = MAv + (stdev(close, Period) * 2.5);
BBdn2_5 = MAv - (stdev(close, Period) * 2.5);
BBup3 = MAv + (stdev(close, Period) * 3);
BBdn3 = MAv - (stdev(close, Period) * 3);
// 볼밴 폭 계산 (스퀴즈 감지)
BBWidth = BBup2 - BBdn2;
// MACD 계산
MACDLine = ema(close, MACDFast) - ema(close, MACDSlow);
SignalLine = ema(MACDLine, MACDSignal);
MACDHist = MACDLine - SignalLine;
// RSI 계산
RSIVal = rsi(close, RSILength);
// OBV 계산
OBVVal = obv;
// 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상)
VolumeSpike = volume > (sma(volume, 5) * 2);
// 매매 신호 조건
var LongEntry = 0; // 롱 진입 신호
var PartialExit = 0; // 일부 청산 신호
var FullExit = 0; // 전량 매도 신호
// 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스
LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and MACDLine crosses above SignalLine);
// 일부 청산 조건: RSI 70 초과
PartialExit = (RSIVal > 70);
// 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락)
FullExit = (close > close[1] and OBVVal < OBVVal[1]);
// 시각화
plot(MAv, "이평", color.blue);
plot(BBup, "0.5", color.gray);
plot(BBdn, "0.5", color.gray);
plot(BBup1, "1", color.gray);
plot(BBdn1, "1", color.gray);
plot(BBup1_5, "1.5", color.orange);
plot(BBdn1_5, "1.5", color.orange);
plot(BBup2, "2", color.red);
plot(BBdn2, "2", color.red);
plot(BBup2_5, "2.5", color.purple);
plot(BBdn2_5, "2.5", color.purple);
plot(BBup3, "3", color.black);
plot(BBdn3, "3", color.black);
// 매매 신호 시각화
plotshape(LongEntry, "롱 진입", shape.triangleup, location.belowbar, color.green, size.small);
plotshape(PartialExit, "일부 청산", shape.triangledown, location.abovebar, color.yellow, size.small);
plotshape(FullExit, "전량 매도", shape.triangledown, location.abovebar, color.red, size.small);
// 추가 지표 플롯 (선택적)
plot(MACDLine, "MACD", color.blue);
plot(SignalLine, "Signal", color.red);
plot(RSIVal, "RSI", color.purple);
plot(OBVVal, "OBV", color.teal);
2025-03-15
500
글번호 189211