커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7521
글번호 230811
답변완료
수식 확인 부탁드리겠습니다.
안녕하세요!!
하기 조건에 맞는 시스템 수식 확인 좀 부탁 드리겠습니다.
*주식 일봉 기준*
-조건-
#1. 기간이 14이고 ADX값이 30이상인 조건에서 DI- 가 ADX선을 하향 돌파
#2. 종가가 시가보다 커야 함
#3. 매수: 위 조건이 맞는 일봉이 나왔을 경우 다음 날 시가에 매수. (이해를 돕고자 파일 첨부하였습니다.)
#4. 매도는 최대 수익대비 80%까지 하락하였을 경우 매도
2014-02-14
209
글번호 72536
답변완료
수식 추가부탁합니다
안녕하세요
1,2식 모두에 추가식 부탁할께요
매수 매도 진입후 +- 너스,10틱 이하에는 반대포지션으로 안바뀌도록해주세요
너무 잖은 매수 매도가 일어나서 추가로 식을 만들려구요
손절은 10틱으로 해주세요
수고하세요~~~
1.
value1 = (highest(H,9)+lowest(L,9))/2; //전환
value2 = (highest(H,26)+lowest(L,26))/2; //기준
if (stime >= 160000 and stime < 180000) Or
(stime >= 200000 and stime < 220000) then{
If crossup(value1,value2) Then
{
Buy ("LE") ;
}
If crossdown(value1,value2) Then
{
Sell ("SE");
}
}
if CrossDown(value1,value2) Then
ExitLong();
if crossup(value1,value2) Then
ExitShort();
2.
Input : shortPeriod(18), longPeriod(26), Period(9);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
value3 = (Highest(High, 9) + Lowest(Low, 9)) / 2;
value4 = (Highest(High, 26) + Lowest(Low, 26)) / 2;
Condition1 = value1 > value2 and value3 > value4;
Condition2 = value1 < value2 and value3 < value4;
if stime >= 180000 and stime < 240000 then{
If Condition1 == true and Condition1[1] == false Then
Buy();
If Condition2 == true and Condition2[1] == false Then
Sell();
}
If Condition2 == true and Condition2[1] == false Then
ExitLong();
If Condition1 == true and Condition1[1] == false Then
ExitShort();
2014-02-13
184
글번호 72535
답변완료
수식부탁드립니다.
수고가 많으십니다.
다름이 아니라 이 수식이 에러가 나오는데 무엇이 잘못된건지알수가 없네요
수정식부탁드립니다.
Input : shortPeriod(12), longPeriod(26), Period(9),P1(5),P2(20);
var : ma1(0,data1),ma2(0,data1), MACDv2(0,data2),MACDs2(0,data2);
MACDV2 =data2(MACD(shortPeriod, longPeriod));
MACDS2 = data2(ema(MACDV2, Period));
MA1 = data1(ma(C,P1));
ma2 = data1(ma(c,P2));
#data2 MACD 골든크로스 매수
If Crossdown(MACDV2, MACDS2) Then
Buy();
If Crossup(MACDV2, MACDS2) Then
sell();
2014-02-13
176
글번호 72534
qormswhd 님에 의해서 삭제되었습니다.
2014-02-13
0
글번호 72533
답변완료
문의드립니다.
연결선물지수 : 90틱
사용지표(맨밑에참고)---------------
호가잔량(3) -> 하이투자증권 지표 그대로 사용
기본지표(1.5,20)
신호지표1(25,55,45,0,20)
신호지표2(28,56,48,0,21)
신호지표3(40,80,60,0,30)
----------------
#각 수식 문구에 주석 넣어 주시면 감사하겠습니다. 수정을 위해서요.#
*진입신호
1.매수진입
신호지표1~3 중 골드크로스(SIG가 STD를 상향돌파) 때
호가잔량(매도<매수)과 기본지표(SIG>STD)는 골드상태이면 매수
2.매도진입
신호지표1~3 중 데드크로스(SIG가 STD를 하향돌파) 때
호가잔량(매도>매수)과 기본지표(SIG<STD)는 데드상태이면 매도
3.장시작후 첫봉으로 매수,매도 진입 (첫봉에서만 해당)
장시작후 첫봉 완성후
1)매수진입
호가잔량 매수>매도 and 기본지표 SIG>STD and (신호지표1~3 중 하나라도 SIG>STD)일때 매수
1)매도진입
호가잔량 매수<매도 and 기본지표 SIG<STD and (신호지표1~3 중 하나라도 SIG<STD)일때 매도
4.진입횟수는 하루 4번으로 제한
5.청산 누계로 손실 1.5p 이상이면 당일 매매 스톱
6.첫번째 청산과 두번째 청산이 연속 손실이면 당일 매매 스톱
*청산
1.청산
1)신호지표2가 진입신호 반대로 크로스날때 청산
(매수청산: 신호지표2 SIG가 STD 하향돌파시, 매도청산: 신호지표2 SIG가 STD 상향돌파시)
2)신호지표1 or 3으로 진입한 경우 (위항목의 1번청산 조건으로 청산 안된 경우)
-.매수청산
신호지표 1 or 3 로 매수(SIG가STD상향돌파) 진입한후 데드크로스(SIG가STD하향돌파) 났는데도
신호지표 2 가 SIG<STD 데드상태면
신호지표 1 or 3 데드크로스(SIG가STD하향돌파)로 청산
-.매도청산
신호지표 1 or 3 로 매도(SIG가STD하향돌파) 진입한후 골드크로스(SIG가STD상향돌파) 났는데도
신호지표 2 가 SIG>STD 골드상태면
신호지표 1 or 3 골드크로스(SIG가STD하향돌파)로 청산
2.기타
수익고점대비 -0.6p 이면 청산
손절 : 2p
신호마감시간: 144800
당일청산시간: 150310
만기일청산시간: 142800
*사용자지표 수식
#기본지표(1.5,20)---------------------------
input : Atime(1.5),P1(20);
var : cnt(0),count(0),sum1(0),mav1(0);
Array : CC[100](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 < var1[1] and stime > stime[1]) Then{
for cnt = 1 to 99{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
sum1 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count];
}
mav1 = sum1/P1;
plot1(mav1, "STD");
plot2(c, "SIG");
-----------------------------------------------
#신호지표1-------------------------------------
INPUTS: R(28), S(56), U(48), ZEROLINE(0), SMTHLEN(21);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
#신호지표2-------------------------------------
INPUTS: R(25), S(55), U(45), ZEROLINE(0), SMTHLEN(20);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
#신호지표3-------------------------------------
INPUTS: R(40), S(80), U(60), ZEROLINE(0), SMTHLEN(30);
var : TSIv(0),TSIS(0);
TSIv = TSI(C, R, S, U);
TSIs = Ema(TSI(C, R, S, U), SMTHLEN);
if TSIv > TSIv[1] Then
Plot1(TSIv,"SIG");
Else
Plot1(TSIv,"SIG");
if TSIs > TSIs[1] Then
Plot2(TSIs,"STD");
Else
Plot2(TSIs,"STD");
PlotBaseLine1(0,"기준선");
-----------------------------------------------
2014-02-14
177
글번호 72532
답변완료
안녕하세요. 문의드립니다.
안녕하세요. 문의드립니다.
예스랭기지 수식작성 예제를 보고 공부를 시작 하였는데요
내용은 아래와 같습니다.
내용의 설명 부탁 드립니다. 전날을 의미하는 내용이 어떤것인지요?
sdate 또는 datvolume []괄호가 사용되면 이전값 참조인데 전날을 의미하나요 이전봉을
의미하는지요? ()와 [] 의 차이점이 있나요
감사합니다.
[설명]
전일 동시간대의 거래량을 가져오는 식입니다.
for문을 이용해서 이전봉들의 시간과 날짜를 차례로 가져와
오늘날짜보다 이전일이고 시간이 같거나 작은 봉이면
해당봉의 거래량을 저장하고 cnt에 for문의 최종값보다 큰값을
할당하여 for문을 종료시키게 됩니다.
[지표식]
var : cnt(0),PredayV(0);
for cnt = 1 to 500 {
if stime[cnt] <= stime and sdate[cnt] < sdate then{
PredayV = DayVolume[cnt];
cnt = 501; //for문을 중지
}
}
plot1(PredayV,"전일동시간대");
2014-02-13
169
글번호 72531
답변완료
지표식 질문드립니다.
키움 지표에 RMI(Relative Momentum Index, 상대모멘텀지수) 있는데 RSI(상대강도지수)의 문제점을 해결하기 위해 RSI에 모멘텀 개념을 넣어 자표로 전환한 것입니다.
수식은 아래와 같으며 우리 트레이더에서 적용해보고 싶은데 Yeslanguage로 어떻게 해야 하는지요?
수식 RMI %n%.%m%
if((avg(if(c<c(n),(c(n)-c),0),m))<=0,100,
(100-
(100/(1+
(
(avg(if(c>c(n),(c-c(n)),0),m))/
(avg(if(c<c(n),(c(n)-c),0),m))
)
)
)
)
)
지표설정조건
n 5
m 14
2014-02-13
199
글번호 72530
답변완료
분봉에 일봉이평표기하기
분봉챠트에 표기하고픈 내용 : 일봉상 5일이평, 10일이평, 20일이평, 60일이평선
커뮤니티에 있는대 적용이 안되어서 부탁드립니다
input:기간(5),기간1(10),기간2(20),전일개수(5);
var:일봉기간합(0,data1),일봉기간합1(0,data1),일봉기간합2(0,data1);
var: 일봉기간(0,data1),일봉기간1(0,data1),일봉기간2(0,data1);
var: 전일기간(0,data1);
Array:일봉이평[3,5](0,data1);
일봉기간합=0;
for 일봉기간=0 to 기간-1{
일봉기간합=일봉기간합+DayClose(일봉기간);
일봉이평[0,0]=일봉기간합/(기간);
}
일봉기간합1=0;
for 일봉기간1=0 to 기간1-1{
일봉기간합1=일봉기간합1+DayClose(일봉기간1);
일봉이평[1,0]=일봉기간합1/(기간1);
}
일봉기간합2=0;
for 일봉기간2=0 to 기간2-1{
일봉기간합2=일봉기간합2+DayClose(일봉기간2);
일봉이평[2,0]=일봉기간합2/(기간2);
}
if data1(date[1] != date) then{
for 전일기간= 1 to 전일개수-1{
일봉이평[0,전일기간]=일봉이평[0,전일기간-1][1];
일봉이평[1,전일기간]=일봉이평[1,전일기간-1][1];
일봉이평[2,전일기간]=일봉이평[2,전일기간-1][1];
}
}
Plot1(일봉이평[0,0],"일봉이평");
plot2(일봉이평[1,0],"일봉이평1");
plot3(일봉이평[2,0],"일봉이평2");
60일이평만 추가 부탁드립니다
2014-02-13
187
글번호 72529
답변완료
문의드립니다.
안녕하세요.
한가지 궁금한 사항이있어서 질문 드립니다.
==============
매도청산
==============
예를들어 5분차트에서 스토캐스틱(12,5,5) 70위에서 데드 => 매도 진입
데드가 났다는 것은 이미 이평선 기울기가 하락 있다는 뜻일텐데요.(2월 13일)
5분차트 차트상으로 보면 10시 1시 2시에 위의 매도 신호가 났다고 하면
5분 이평선 기울기가 11시 30분 위로 틀어지는데요.
매도 포지션을 5분 이평선의 기울기가 틀어질때까지 가지고 있다가 청산
할려면 매매식을 어떻게 작성해여 하는지요.
==============
매수청산
==============
예를들어 5분차트에서 스토캐스틱(12,5,5) 20 아래에서 데드 => 매수 진입
청산은 위와 반대로 입니다.
좋은하루 되세요.
감사합니다.
2014-02-13
192
글번호 72525