커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8140
글번호 230811
답변완료
문의드립니다.
안녕하세요
매도의 경우, 캔들의 가격이 X라는 이평선을 cross down 후 다시 반등하여
직전의 고점 가격과 동일 혹은 돌파하였다가 다시 X 이평선을 이탈하면 신호가
나오도록 수식 문의드립니다.
항상 감사드립니다.
좋은 하루되세요
2020-04-22
417
글번호 138241
답변완료
문의드립니다.
inp_BB_Length = input(20, minval = 1, title = "BB: Periods")
inp_BB_Deviations = input(2, minval = 0.0001, title = "BB: Deviations")
inp_MACD_Fast = input(12, title = "MACD: Fast EMA", minval = 1)
inp_MACD_Slow = input(26, title = "MACD: Slow EMA", minval = 1)
inp_MACD_Signal = input(9, title = "MACD: Signal MA", minval = 1)
inp_Filter_High = input(10, title = "Filter: High", step = 0.1)
inp_Filter_Low = input(-10, title = "Filter: Low", step = 0.1)
MA_Fast = ema(close, inp_MACD_Fast)
MA_Slow = ema(close, inp_MACD_Slow)
MACD = MA_Fast - MA_Slow
St_Dev = stdev(MACD, inp_BB_Length)
Upper = (St_Dev * inp_BB_Deviations + (sma(MACD, inp_BB_Length)))
Lower = ((sma(MACD, inp_BB_Length)) - (St_Dev * inp_BB_Deviations))
Source_Line = 0.0
Source_Line := MACD
f_Angle(Source, ATR_Period) =>
Rad_To_Degree = 180 / 3.14159265359
Angle = Rad_To_Degree * atan((Source[0] - Source[1]) / atr(ATR_Period))
Angle = f_Angle(Source_Line, 40)
Line_Color = Angle > inp_Filter_High ? color.aqua : Angle < inp_Filter_Low ? color.yellow : color.gray
hline(inp_Filter_High, title = "Filter Top", color = color.gray, linewidth = 1)
hline(inp_Filter_Low, title = "Filter Bottom", color = color.gray, linewidth = 1)
plot(Angle, color = Line_Color, linewidth = 2, title = "Slope Angle", transp = 0)
변환 문의드립니다. 항상 감사드립니다.
2020-04-22
480
글번호 138234
답변완료
n개봉 최고가, 최저가, 중간값 지표
최근 n개봉을 기준으로
최고가, 최저가, 중간값을 차트에 겹쳐서 볼 수 있도록 하고싶습니다.
(중간값은 (최고가+최저가)/2)
채널지표처럼 차트에 같이 나타나게 보였으면 좋겠습니다.
지표 수식으로 구현이 가능할까요?
2020-04-22
527
글번호 138233
답변완료
이평선 돌파
해당 종목들이 검색되는게 있지만
안되는 종목들이 더 많고 이유를 모르겠네요..
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 이평선 돌파
>
안녕하세요
예스스탁입니다.
문의하신 내용은 하나의 봉에서
시가는 3개 이평들보다 작고 종가는 3개 이평보다 큰
봉을 찾고자 하시는 내용인것 같습니다.
input : P1(5),P2(10),P3(20);
var1 = ma(C,P1);
var2 = ma(C,P2);
var3 = ma(C,P3);
if C > max(var1,var2,var3) and min(var1,var2,var3) > O Then
find(1);
즐거운 하루되세요
> 쓰임과이롬 님이 쓴 글입니다.
> 제목 : 이평선 돌파
> 항상 감사합니다.
첨부 이미지 처럼 종목을 찾고 싶습니다.
2020-04-22
621
글번호 138232
답변완료
문의드립니다
안녕하세요?
아래수식의 plot1과plot2가 작동할시 직전봉에만 추세선이있을시만 알림음을받고싶습니다
도움주셔서 감사합니다
1.
Input : af(0.02), maxAF(0.2);
var1 = SAR(af,maxAF);
if crossup(c,var1) Then
{
value1 = var1;
}
if CrossDown(c,var1) Then
{
value2 = var1;
}
plot1(value1);
plot2(value2);
2.
input : Left(5),right(5),표시소숫점자리(2),굵기(1),연장(0);
var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0);
Array : SHD[5](0),SHT[5](0),SHV[5](0),SHTL[100](0),SHTX[100](0);
Array : SLD[5](0),SLT[5](0),SLV[5](0),SLTL[100](0),SLTX[100](0);
if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then
{
var2 = 0;
var1 = var1+1;
if var1 == 1 then
{
SHD[0] = sdate[right];
SHT[0] = stime[right];
SHV[0] = H[right];
for cnt = 1 to 4
{
SHD[cnt] = SHD[cnt-1][1];
SHT[cnt] = SHT[cnt-1][1];
SHV[cnt] = SHV[cnt-1][1];
}
if SLV[0] > 0 Then
{
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
TL_SetSize(TL,굵기);
TL_SetColor(TL,red);
}
if SHV[1] > 0 Then
{
#TL_Delete(HTL1);
HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]);
TL_SetColor(HTL1,RED);
TL_SetSize(HTL1,굵기);
}
}
if var1 >= 2 and H[right] > SHV[0] then
{
SHD[0] = sdate[right];
SHT[0] = stime[right];
SHV[0] = H[right];
if SLV[0] > 0 Then
{
TL_Delete(TL);
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
TL_SetSize(TL,굵기);
TL_SetColor(TL,red);
}
if SHV[1] > 0 Then
{
#TL_Delete(HTL1);
HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]);
TL_SetColor(HTL1,RED);
TL_SetSize(HTL1,굵기);
}
}
SHTL[0] = TL_New(sdate[right],stime[right],H[right],sdate,stime,H[right]);
TL_SetColor(SHTL[0],RED);
TL_SetSize(SHTL[0],굵기);
SHTX[0] = Text_New(sdate,stime,H[right],NumToStr(H[right],표시소숫점자리));
Text_SetColor(SHTX[0],RED);
Text_SetStyle(SHTX[0],2,1);
for cnt = 1 to 99
{
SHTL[cnt] = SHTL[cnt-1][1];
SHTX[cnt] = SHTX[cnt-1][1];
}
}
if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then
{
#plot2(L,"2",blue);
var1 = 0;
var2 = var2+1;
if var2 == 1 then
{
SLD[0] = sdate[right];
SLT[0] = stime[right];
SLV[0] = L[right];
for cnt = 1 to 4
{
SLD[cnt] = SLD[cnt-1][1];
SLT[cnt] = SLT[cnt-1][1];
SLV[cnt] = SLV[cnt-1][1];
}
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
TL_SetSize(TL,굵기);
TL_SetColor(TL,BLUE);
}
if SLV[1] > 0 Then
{
#TL_Delete(LTL1);
LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]);
TL_SetColor(LTL1,BLUE);
TL_SetSize(LTL1,굵기);
}
}
if var2 >= 2 and L[right] < SLV[0] then
{
SLD[0] = sdate[right];
SLT[0] = stime[right];
SLV[0] = L[right];
TL_Delete(TL);
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
TL_SetSize(TL,굵기);
TL_SetColor(TL,blue);
}
if SLV[1] > 0 Then
{
#TL_Delete(LTL1);
LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]);
TL_SetColor(LTL1,BLUE);
TL_SetSize(LTL1,굵기);
}
}
SLTL[0] = TL_New(sdate[right],stime[right],L[right],sdate,stime,L[right]);
TL_SetColor(SLTL[0],BLUE);
TL_SetSize(SLTL[0],굵기);
SLTX[0] = Text_New(sdate,stime,L[right],NumToStr(L[right],표시소숫점자리));
Text_SetColor(SLTX[0],BLUE);
Text_SetStyle(SLTX[0],2,0);
for cnt = 1 to 99
{
SLTL[cnt] = SLTL[cnt-1][1];
SLTX[cnt] = SLTX[cnt-1][1];
}
}
for cnt = 0 to 99
{
if SHTL[cnt] > 0 then
{
TL_SetEnd(SHTL[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt]));
if H >= TL_GetBeginVal(SHTL[cnt]) Then
SHTL[cnt] = 연장;
}
if SLTL[cnt] > 0 then
{
TL_SetEnd(SLTL[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt]));
if L <= TL_GetBeginVal(SLTL[cnt]) Then
SLTL[cnt] = 연장;
}
if SHTL[cnt] > 0 Then
{
Text_SetLocation(SHTX[cnt],sdate,stime,TL_GetBeginVal(SHTL[cnt]));
}
if SLTL[cnt] > 0 Then
{
Text_SetLocation(SLTX[cnt],sdate,stime,TL_GetBeginVal(SLTL[cnt]));
}
}
2020-04-22
556
글번호 138231
새벽에 님에 의해서 삭제되었습니다.
2020-04-22
0
글번호 138229
여행88 님에 의해서 삭제되었습니다.
2020-04-22
2
글번호 138223
답변완료
문의드립니다.
inp_BB_Length = input(20, minval = 1, title = "BB: Periods")
inp_BB_Deviations = input(2, minval = 0.0001, title = "BB: Deviations")
inp_MACD_Fast = input(12, title = "MACD: Fast EMA", minval = 1)
inp_MACD_Slow = input(26, title = "MACD: Slow EMA", minval = 1)
inp_MACD_Signal = input(9, title = "MACD: Signal MA", minval = 1)
inp_Filter_High = input(10, title = "Filter: High", step = 0.1)
inp_Filter_Low = input(-10, title = "Filter: Low", step = 0.1)
MA_Fast = ema(close, inp_MACD_Fast)
MA_Slow = ema(close, inp_MACD_Slow)
MACD = MA_Fast - MA_Slow
St_Dev = stdev(MACD, inp_BB_Length)
Upper = (St_Dev * inp_BB_Deviations + (sma(MACD, inp_BB_Length)))
Lower = ((sma(MACD, inp_BB_Length)) - (St_Dev * inp_BB_Deviations))
Source_Line = 0.0
Source_Line :=(Upper + Lower) / 2
f_Angle(Source, ATR_Period) =>
Rad_To_Degree = 180 / 3.14159265359
Angle = Rad_To_Degree * atan((Source[0] - Source[1]) / atr(ATR_Period))
Angle = f_Angle(Source_Line, 40)
Line_Color = Angle > inp_Filter_High ? color.aqua : Angle < inp_Filter_Low ? color.yellow : color.gray
hline(inp_Filter_High, title = "Filter Top", color = color.gray, linewidth = 1)
hline(inp_Filter_Low, title = "Filter Bottom", color = color.gray, linewidth = 1)
plot(Angle, color = Line_Color, linewidth = 2, title = "Slope Angle", transp = 0)
변환 문의드립니다. 감사합니다.
2020-04-22
369
글번호 138221
디딤돌 님에 의해서 삭제되었습니다.
2020-04-22
7
글번호 138219