커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5481
글번호 230811
답변완료
부탁합니다
하기 수식을 지표식만 예스로 부탁드립니다.
study(title="Normalized smoothed MACD", shorttitle = "NSM", overlay=false)
//
inpFastPeriod = input(defval=12, title="MACD fast period", minval=1, type=input.integer)
inpSlowPeriod = input(defval=26, title="MACD slow period", minval=1, type=input.integer)
inpMacdSignal = input(defval=9, title="Signal period", minval=1, type=input.integer)
inpSmoothPeriod = input(defval=5, title="Smoothing period", minval=1, type=input.integer)
inpNormPeriod = input(defval=20, title="Normalization period", minval=1, type=input.integer)
price = input(close, title="Price Source",type=input.source)
//
emaf = 0.0
emas = 0.0
val = 0.0
nval = 0.0
sig = 0.0
//
red =color.new(#FF0000, 0)
green=color.new(#32CD32, 0)
black=color.new(#000000, 0)
if bar_index > inpSlowPeriod
alphaf = 2.0/(1.0+max(inpFastPeriod,1))
alphas = 2.0/(1.0+max(inpSlowPeriod,1))
alphasig = 2.0/(1.0+max(inpMacdSignal,1))
alphasm = 2.0/(1.0+max(inpSmoothPeriod,1))
emaf := emaf[1]+alphaf*(price-emaf[1])
emas := emas[1]+alphas*(price-emas[1])
imacd = emaf-emas
mmax = highest(imacd,inpNormPeriod)
mmin = lowest(imacd,inpNormPeriod)
if mmin != mmax
nval := 2.0*(imacd-mmin)/(mmax-mmin)-1.0
else
nval := 0
val := val[1] + alphasm*(nval-val[1])
sig := sig[1] + alphasig*(val-sig[1])
//
plot(val, color=val>val[1]?green:red, style=plot.style_line, linewidth=2, title="Reg smooth MACD")
plot(sig, color=black, style=plot.style_cross, linewidth=1, title="Signal line")
hline(0, title='0', color=color.gray, linestyle=hline.style_dotted, linewidth=1)
//
alertcondition(crossunder(val,sig),title="Sell",message="Sell")
alertcondition(crossover(val,sig),title="Buy",message="Buy")
alertcondition(crossunder(val,sig) or crossover(val,sig) ,title="Sell/Buy",message="Sell/Buy")
2020-04-22
544
글번호 138252
미스포터 님에 의해서 삭제되었습니다.
2020-04-22
1
글번호 138251
답변완료
지표식 부탁합니다
수고하십니다.
아래 식에서 매일 시가가 다르다면 선이 꺾입니다.
꺾이기 이전의 선은 보이지 않게 할 수 있으면 수정부탁합니다.
var1 = dayopen(0);
Plot1(var1,"시가");
2020-04-22
421
글번호 138250
부똘이 님에 의해서 삭제되었습니다.
2020-04-22
6
글번호 138249
답변완료
설명서 예제의 질문있습니다.
아래 예제의 3번째줄 보면 highest(H,dayindex+1)이 당일 현재시점까지의 최고가로 되어있는데, dayindex가 당일 첫번째 봉이면 dayindex + 1은 당일 두번째 봉아닌가요?
'당일 현재시점까지'가 어떻게 나온건지 궁금합니다.
---- 예제
함수 : DayIndex
예제 : if dayindex == 0 then  당일 첫봉
highest(H,dayindex+1)  당일 현재시점까지의 최고가
(첫 봉이 0이므로 dayindex에 1을 더해줘서 계산한다);
ma(c,dayindex+1)  당일 이평
C[dayindex]  첫봉의 종가
2020-04-22
299
글번호 138247
답변완료
아래 수식이 해석 부탁드리겠습니다.
아래 부분에서 var3, var4가 이해가 안갑니다.
당일 고가와 진입한 다음봉 갯수 + 1 중에서 높은 가격을 산출하고??
ATR(20)*Mult를 뺐는데.. ATR(20)은 또 당최 뭔말인지.. 상세한 해석 부탁드려도 될까요..
감사합니다.
---------------------
Input: Mult(7);
var3 = Highest(H, BarsSinceEntry+1) - ATR(20)*Mult;
var4 = Lowest(L, BarsSinceEntry+1) + ATR(20)*Mult;
if marketposition <> 0 then
{
exitlong("ExL-001", atstop, var3);
exitshort("ExS-001", atstop, var4);
}
2020-04-22
308
글번호 138246
답변완료
함수요청
안녕하세요?
아래의 전략에 대해 스크립트 작성 요청드립니다.
종목: 크루드오일
주기: 60분봉, 참조 30분봉
매수: 가격이 30분봉 20ma 상단 위에 2개봉 연속으로 위치해 있으며, 상승 이동중인 60분봉 20ma를 돌파 완성 익봉에 진봉
매도: 가격이 30분봉 20ma 하단 아래에 2개봉 연속으로 위치해 있으며, 상승 이동중인 60분봉 20ma를 이탈 완성 익봉에 진봉
2020-04-22
348
글번호 138245
답변완료
월봉Ploting
아래와 같이 일봉에서 월봉을 나타내는 것을 이전 질문에서 찾았는데
-> 월봉 안을 음영이나 색갈로 나타낼 수 없는지요?
-> 월별로 시가와 종가를 Ploting 해서 지표 속성에서 채우기로 나타낼수
있음 좋겠습니다.
항상 감사드립니다.
var : TL1(0),TL2(0),TL3(0),TL4(0),idx(-1);
if bdate > bdate[1]+30 Then
{
idx = 0;
var1 = O; # 월시가
var2 = sdate;
var3 = stime;
var4 = VAR1[1];
var5 = O;
var6 = var4[1];
}
else
{
idx = idx+1;
if idx > 0 then
{
if idx == 1 then
{
TL1 = TL_New(sdate[1],stime[1],var1,sdate,stime,var1);
TL2 = TL_New(var2,var3,O,sdate,stime,O);
TL3 = TL_New(var2,var3,var1,var2,var3,O);
TL4 = TL_New(sdate,stime,var1,sdate,stime,O);
}
else
{
TL_SetEnd(TL1,sdate,stime,var1);
TL_SetBegin(TL2,var2,var3,O);
TL_SetEnd(TL2,sdate,stime,O);
TL_SetBegin(TL3,var2,var3,var1);
TL_SetEnd(TL3,var2,var3,O);
TL_SetBegin(TL4,sdate,stime,var1);
TL_SetEnd(TL4,sdate,stime,O);
}
if C > var1 Then
{
TL_SetColor(TL1,red);
TL_SetColor(TL2,red);
TL_SetColor(TL3,red);
TL_SetColor(TL4,red);
TL_SetSize(TL1,2); TL_SetSize(TL2,2); #TL_SetSize(TL3,1); TL_SetSize(TL4,1);
}
else
{
TL_SetColor(TL1,RGB(070,130,180)); # Steel Blue
TL_SetColor(TL2,RGB(070,130,180));
TL_SetColor(TL3,RGB(070,130,180));
TL_SetColor(TL4,RGB(070,130,180));
TL_SetSize(TL1,1); TL_SetSize(TL2,1); # TL_SetSize(TL3,1); TL_SetSize(TL4,1);
}
}
}
Plot10(var1, "종가");
2020-04-22
369
글번호 138244
여행88 님에 의해서 삭제되었습니다.
2020-04-22
18
글번호 138243