커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6138
글번호 230811
답변완료
지표문의
돈키언 채널 보조지표를 분봉에서 보고싶습니다.
일반적으로 식을 적용하게 되면 분봉상의 고점저점을 선택하는데요
분봉에서 일봉상의 55일 최고점 20일 최저점의 라인을 보고싶습니다.
---
시스템 수식이 필요합니다.
55일 최고점돌파 매수 20일최저점 청산
55일 최저점돌파 매도 20최고정 돌파 청산
---
지표2
전날atr값을보고싶습니닺
2018-06-25
220
글번호 119990
답변완료
상한가질문입니다
질문1.
상한가 수식 관련된 것에보면 bp라는 거이 보이는데
이게 정확히 먼지궁금합니다.
질문2.
답변에 보면 대부분 상한가 관련되어서는 아래의 수식을 답변을 주시는데요
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then {
if date >= 20030721 then {
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else {
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then {
if sdate < 20101004 Then{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
if c[N] >= 상한가[N] Then
find(1);
수식에서 궁금한게
이해를 하자면 n봉전에 상한가를 갔는지 확인하는 수식인것은 알겠는데요
bp[0]라는 말은 현재 봉을 기준으로 bp라는 값을 얻어오는데
N값은 현재봉이아니라 그이전의 봉의 상한가를 찾는것인데
bp를 그때 기준으로 옮기지 않고도 상한가가 찾아지는게 신기합니다
제가 잘못이해한것인지
아님 bp에도 bp[n] 이런식으로 고쳐야하는지궁금합니다.
bp가 무엇이길래 bp는 현재봉기준으로 값을 얻어도 예전 상한가를 도달한지 알수잇는지궁금합니다
2018-06-23
238
글번호 119989
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 코딩 변환부탁드립니다.
Function: EhlersDSMA
using elsystem ;
inputs:
Period( numericsimple ) ;
variables:
a1( 0 ),
b1( 0 ),
c1( 0 ),
c2( 0 ),
c3( 0 ),
Zeros( 0 ),
Filt( 0 ),
ScaledFilt( 0 ),
RMS( 0 ),
count( 0 ),
alpha1( 0 ),
DSMA( 0 ) ;
once
begin
if Period <= 0 then
throw Exception.Create( "The 'Period' input to the " +
"EhlersDSMA function must be greater than 0." ) ;
//Smooth with a Super Smoother
a1 = ExpValue( -1.414 * 3.14159 / ( .5 * Period ) ) ;
b1 = 2 * a1 * Cosine( 1.414 * 180 / ( .5 * Period ) ) ;
c2 = b1 ;
c3 = -a1 * a1 ;
c1 = 1 - c2 - c3 ;
end ;
//Produce Nominal zero mean with zeros in the transfer
//response at DC and Nyquist with no spectral distortion
//Nominally whitens the spectrum because of 6 dB
//per octave rolloff
Zeros = Close - Close[2] ;
//SuperSmoother Filter
Filt = c1 * ( Zeros + Zeros[1] ) / 2 + c2 * Filt[1] + c3 * Filt[2] ;
//Compute Standard Deviation
RMS = 0;
For count = 0 to Period - 1
begin
RMS = RMS + Filt[count] * Filt[count] ;
end ;
RMS = SquareRoot( RMS / Period ) ;
//Rescale Filt in terms of Standard Deviations
If RMS <> 0 then
ScaledFilt = Filt / RMS ;
alpha1 = AbsValue( ScaledFilt ) * 5 / Period ;
DSMA = alpha1 * Close + ( 1 - alpha1 ) * DSMA[1] ;
EhlersDSMA = DSMA ;
2. 코딩 변환부탁드립니다.
Indicator: DSMA
// TASC JUL 2018
// Ehlers DSMA
inputs:
Period( 40 ) ;
variables:
DSMAValue( 0 ) ;
DSMAValue = EhlersDSMA( Period ) ;
Plot1( DSMAValue, "DSMA" ) ;
if AlertEnabled then
begin
if Close crosses over DSMAValue then
Alert( "Price crossing over DSMA" )
else if Close crosses under DSMAValue then
Alert( "Price crossing under DSMA" ) ;
end ;
3.
코딩변환 + 해선용으로 n분부터 n분까지만 매매 코드 추가 부탁드립니다.
inputs:
FastPeriod( 40 ),
SlowPeriod( 100 ) ;
variables:
FastDSMAValue( 0 ),
SlowDSMAValue( 0 ) ;
FastDSMAValue = EhlersDSMA( FastPeriod ) ;
SlowDSMAValue = EhlersDSMA( SlowPeriod ) ;
if FastDSMAValue crosses above SlowDSMAValue then
Buy next bar at Market
else if FastDSMAValue crosses below SlowDSMAValue then
SellShort next bar at Market ;
4. 기타
-09:30~10:00 봉 가운데
-봉 길이가
-전일 봉 길이 평균의 2배이상인 봉이 나타났을 때 고저셋업
a-양봉이면 고가 + n틱에 매수진입
b-음봉이면 저가 - n틱에 매도 진입
a시 셋업 고가를 하향돌파할 때 매수 손절 청산
b시 셋업 저가를 상향돌파할 때 매도 손절 청산
5. 기타
4번 해선용으로
2018-06-23
336
글번호 119988
답변완료
문의 드립니다
매번 수고가 많습니다 ^^*
1, 아래식 변환 부탁드립니다
M=Macd(기간1, 기간2);
MS=ma(M, s기간,가중);
if( (M > Ms) && (M(1) < Ms(1)), max(C,O), 0)
M=Macd(기간1,기간2);
MS=ma(M, s기간,가중);
if( (M < Ms) && (M(1) > Ms(1)), max(C,O), 0)
(* 조건만족시 "화살표"나 "다른기호"에의거 해당봉에서 볼수있도록 부탁드립니다)
2, 아래 첨부내용은 지난자료 검색하다 발견한 다른분의 질의답변내용인데요...
답변 2번항목에서 <피라미딩> 이라는 용어가 나오는데 이것이 무엇인지?
어떻게 허용하는지? 문의드립니다
* 저도 현재 아래 질문한분과 똑같은 현상이 발생되고있어서 한번 적용해볼려고 합니다
음성신호가 아예 안나는 경우도있고
시초에 한번만 음성신호 발생후 이후에는 같은조건 만족시에도 음성신호가 안나고
띵띵 소리만 나는 경우도 있네요
(아래 58249번 및 "프로그램사용법QNA" 9174번 질의 관련입니다)
감사합니다 !!!
----------------------------------------------------------------------------------
(별첨내용)
1
경로와 파일명만 일치하면 됩니다.
다만 인터넷에서 글복사시에 ₩의 폰트가 깨질수 있습니다.
경로명 중간의 ₩를 다시 타이핑하시기 바랍니다.
2
수식상으로는 수정할 내용이 없습니다.
<***피라미딩>을 모든 진입신호 허용으로 하시면 됩니다.
============
즐거운 하루되세요
> 매일 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 안녕하세요?
1.몇일전만들어주신소리출력건인데요, 근데 alert(띵 띵)소리는나는데
제가 지정하는소리는출력이안되는데,
혹시조언해주실수있는내용이있으신지요?
당연히 음성파일형식도wav.로시도했구요. 사용중인프로그람은 해선 에스그로발,
국선NH트레 이더 입니다
2. 아래첨부한수식이 신호가 전챠트시작초입에 단한번만발생하는데
조건만족시마다 계속적으로 신호가발생하게하여주세요 .
2018-06-23
227
글번호 119987
답변완료
행복; 지표식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
지표식 관련입니다
주기; 일봉
컴퓨터날자; 20180623
지표에 표시하는 일자; 2018년 6월 12일
일 때 표시하는 방법
1안); 6월 12일을 지점
If sDate == 20180612 Then
plot1(2);
2안); 컴퓨터날자로부터 11일 전
If sDate == CurrentDate[0] - 11 Then
plot1(2);
3안); 오늘 기준 마지막 영업일(bdate)인 6월 22일 기준으로 7 영업일(bdate[7]) 전
If sDate == bdate[7] Then
plot1(2);
<< 질문 >>
- 3안)의 지표식이 맞나요?
- 어떻게 해야 하는지요?
수고하십시요^^
<< 질문
2018-06-23
230
글번호 119986
답변완료
필터링문의드립니다.
매수조건. 1.5 포인트 상승이후는 매수진입금지
매도조건. 1.5 포인트 하락이후 매도진입금지
갑사합니다.
2018-06-23
217
글번호 119985
답변완료
수식 문의드립니다.;
매수 : 이전 1봉(봉 1개) 종가 대비 5% 상승시 매수
매도: 이전 1봉(봉 1개) 종가 대비 5% 하락시 매도
2018-06-23
198
글번호 119984
렉쳐 님에 의해서 삭제되었습니다.
2018-06-23
9
글번호 119983
답변완료
시스템식 여쭤봅니다.
개별종목 분봉차트를 띄워놓고 분봉차트를 띄워놓고 매매하려고 합니다.
금액을 설정하고 싶습니다.
매도가 일어나서 모든 물량이 매도되면 그 날은 재매수 금지
1차매수는 주가가 위에서 부터 아래로 흘러서 일봉기준 10일선에 닿자마자 전체금액의
40% 매수
2차매수는 주가가 위에서 부터 아래로 흘러서 일봉기준 20일선에 닿자마자 전체금액의
30% 매수
3차매수는 2차매수후 그 가격보다 주가가 5% 더 떨어지면
나머지30% 매수
1차매도는 주가가 매수가에서 5% 올랐을때 전체물량의 30%
2차매도는 주가가 매수가에서 10% 올랐을때 나머지 물량의 50%
3차매도는 주가가 매수가에서 15% 올랐을대 나머지 물량 전부
3차 매수가에서 -5% 가 되면 물량의 50% 매도
3차 매수가에서 -10%가 되면 전체 물량 매도
1차 매수일 이후 5일 경과하는 날 시초가에 전량 매도
감사합니다.
2018-06-24
203
글번호 119982