커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7134
글번호 230811
답변완료
지표 수식 변환
안녕하세요.
하기 트레이딩뷰 지표를 예트 지표로 변환하고 싶습니다.
//@version=4
study("Price-Curve Channel",overlay=true)
length = input(100),mult = input(1.),src = input(close)
//----
a=0.,b=0.,size =0.
size := change(a[1]) > 0 or change(b[1]) < 0 ? atr(length) : nz(size[1],tr)
a := max(src,nz(a[1],src)) - size/pow(length,2)*(nz(barssince(a[1] > a[2]) + 1,1)*mult)
b := min(src,nz(b[1],src)) + size/pow(length,2)*(nz(barssince(b[1] < b[2]) + 1,1)*mult)
//----
plot(a,"Upper",color=#0cb51a,linewidth=2,transp=0)
plot(b,"Lower",color=#ff1100,linewidth=2,transp=0)
위 스크립트에서 함수 레퍼런스로 참고할 싸이트도 같이 올려드립니다.
https://www.tradingview.com/pine-script-reference/
2020-09-10
1280
글번호 142251
답변완료
지그재그
안녕하세요 관리자님
이전 답변에 감사 드립니다.
지그재그 수식중에
특정 조건 만족시 지그재그를 셀수 있는지 셀수 있다면
예를 들어(기준선1[0] >= 기준선2[0]) hi 3번까지 매수 진입 활성화
(기준선1[0] < 기준선2[0]) Lo 3번까지 매도 진입 활성화
이런 식으로 만들수 있는지 문의 드립니다.
늘 감사 드립니다.
좋은 하루 되세요
Input:기준선기간1(20),기준선기간2(60);
var:기준선1(0),기준선2(0);
기준선1 = (Highest(High, 기준선기간1) + Lowest(Low, 기준선기간1)) / 2 ;
기준선2 = (Highest(High, 기준선기간2) + Lowest(Low, 기준선기간2)) / 2 ;
(기준선1[0] >= 기준선2[0])
(기준선1[0] < 기준선2[0])
Input:chngRate(0.1);
Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Min(valArr[1],valArr[2]) * (1 + (chngRate/100)) < H and lastHiVal < H;
Condition2 = Max(valArr[1],valArr[2]) * (1 - (chngRate/100)) > L and (lastLoVal > L || lastLoVal == 0);
If Condition1 Then { lastHiVal = H; lastLoVal = 0; }
If Condition2 Then { lastLoVal = L; lastHiVal = 0; }
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
if turnPntArr[1][0]=="Hi" Then{
buy();
}
if turnPntArr[1][0] =="Lo" Then{
sell();
}
}
Else
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
}
}
TL_SetSize(TL1,1);
if turnPntArr[1][0] == "Hi" Then
TL_SetColor(TL1,RED);
Else
TL_SetColor(TL1,BLUE);
2020-09-10
881
글번호 142246
답변완료
종목이 안나와요
아래의수식에서 250일동안의 누적인 sum값에 대해 # datep(250)
1.
25일 기간 위 sum값의 최고값의 절대값과 최저값의 절대값 중 큰 값이 # k(25)
500일 기간 위 sum값의 최고값의 절대값과 최저값의 절대값 중 큰 값의 # n(500)
30% 미만인 주식 종목 검색식인데요....
첨부와 같이 지표로 만들어 보면 많이 나오는데
종목이 검색이 되지를 않네요...???
2. 180일동안의 sum값과 120일동안의 sum값에 대해서도 # datep(250), datep(180), datep(120)
동시에 만족하는 종목을 검색하려면 어떻게 하나요?
3. 과거특정일에서 그 이전 데이타를 검색하는 수식도 부탁드립니다.
( 예를 들어 2020-08-31에 검색했을때의 검색값 )
과거특정일에서부터 N일 동안의 검색 데이타를 모두 검색되면 더욱 좋겠습니다.
( 예를 들어 2020-08-01 ~ 2020-08-31 한달 동안에 매일 검색했을때 나올
모든 검색값 N일 = 31일 )
Input : datep(250), n(500), k(25);
VAR : CNT(0), SUM(0),hh(0),hi(0),ll(0);
SUM = 0;
For cnt = 0 to datep
{ if c[cnt] > c[cnt+1] Then
sum = sum + v[cnt];
Else if c[cnt] < c[cnt+1] Then
sum = sum - v[cnt];
Else
sum = sum + 0 ; }
IF abs(highest(sum,n)) >= abs(lowest(sum,n)) Then
var1 = abs(highest(sum,n));
Else
var1 = abs(lowest(sum,n));
IF abs(highest(sum,k)) >= abs(lowest(sum,k)) Then
var2 = abs(highest(sum,k));
Else
var2 = abs(lowest(sum,k));
If Var2 < Var1*0.3
Then
find(1);
2020-09-10
937
글번호 142242
답변완료
진입 청산
일반종목 일봉 사용자입니다.
최근 20일 동안 최고점 이후 ...
사는조건:
기준선(예:20선)아래에서
FasTK(스토캐스틱패스트 K선)이 상승반전시
FasTk[2]>=FasTk[1] and FasTk[1]<FastK <- 진입
상승반전하는경우가 2번이상이면 2번까지만 진입
손절조건:
120일선 하향 돌파시 손절
익절조건:
10일선 하향 돌파시 익절
-------------------
항상 감사합니다.
2020-09-10
859
글번호 142241
답변완료
부탁 드립니다.
도움에 감사 드립니다.
1)
다음 수식이
그림과 같이 비정상적으로 지표가 그려 집니다.
조치가 가능한지요?
var1=dayopen;
var11=DAYOPEN(1);
plot1(var1,"당일시가",blue,def,1);
plot11(var11,"전일시가",YELLOW,def,0);
2)
그림2
변환 부탁 드립니다.
2020-09-10
1206
글번호 142240
답변완료
수식 문의
BANDwidth 의 당일 첫번째 하락 변곡점의 시간을 기준으로
당일 형성된 주가의 최고가와 최저가의 진폭을 선으로 긋고 싶습니다.
그림 속 동그라미 :
1. BANDwidth의 당일 첫번째 하락 변곡입니다.
(상승변곡은 무시함)
2. 이 변곡점이 당일 몇번째 봉에서 발생했는지 찾습니다.
3. 그 전까지 아래지표는 당일최고/저가를 계속 추적합니다.
4. 찾은 봉의 숫자를 아래 지표 N값에 넣어줍니다.
-------- 아래 ------------
input : N(10);
if dayindex == 0 then{
var1 = h; #첫봉 고가
var2 = L; #첫봉 저가
}
if dayindex < N Then{
if H > var1 Then
var1 = H;
if L < var2 Then
var2 = L;
}
var3 = var1 - var2; #진폭
plot1(var1,"n봉고가");
plot2(Var2,"n봉저가");
2020-09-11
1112
글번호 142239
답변완료
지표전환 부탁
(A)
수식1
기간=매집가격*80;
지수평균((highest(종가,(기간/2))+highest(종가,기간))/2.,기간)+
if(종가>시가,1-(abs(종가-시가)/abs(highest((종가-
시가),기간))),1)*D1*stdev((저가+고가+종가)/3,기간)
수식2
지수평균((highest(종가,24)+highest(종가,48))/2,48)+
if(종가<시가,1-((종가-시가)/highest((종가-
시가),48)),1)*0.5*stdev((저가+고가+종가)/3,48)
추가설정
매집가격 2
d1 0.7
(B)
수식1
지수평균((Lowest(종가,24)+Lowest(종가,48))/2.,48)+
if(종가<시가,1-((종가-시가)/Lowest((종가-
시가),48)),1)*0.5*stdev((저가+고가+종가)/3,48)
수식2
지수평균((Lowest(종가,24)+Lowest(종가,48))/2.,48)+
if(종가<시가,1-((시가-종가)/Lowest((종가-
시가),48)),1)*0.5*stdev((저가+고가+종가)/3,48)
2020-09-09
1954
글번호 142238
답변완료
시스템 수식전환 부탁
예스 시스템 수식으로 전환부탁 드려요
<1>
매수진입
a=100*( (avg( (C+H+L)/3,20)+2*Stdev((C+H+L)/3,20))
-(Avg((C+H+L)/3,20)-2*Stdev((C+H+L)/3,20))) / Avg
((C+H+L)/3,20);
b=(Highest(v,기간1)+Lowest(V,기간1))/2;
CrossUp(c,highest(H(1),수치)) && v>b
매수청산
F=avg(c(10),20)>avg(c,20) &&
avg(c(10),30)>avg(c,30) &&
avg(c,20)<high &&
close<open;
F
매도진입
b=(Highest(v,기간1)+Lowest(V,기간1))/2;
CROSSDOWN(c,lowest(L(1),수치)) && v>b
매도청산
F=avg(c(10),20)<avg(c,20) &&
avg(c(10),30)<avg(c,30) &&
avg(c,20)>low &&
close>open;
F
추가설정
수치 3
기간1 9
<2>
매수진입
Crossup(h,BBandsUp(Period,D1)) and c >=
SAR(af,maxAF)
and V > avg(V,Period) * Multiple
&&
V > V(1) * Multiple
and
avg(c,MA1) >= avg(c,MA2)
and
Disparity(Period) <= Percent
매수청산
F=avg(c(10),20)>avg(c,20) &&
avg(c(10),30)>avg(c,30) &&
avg(c,20)<high &&
close<open;
F
매도진입
Crossdown(h,BBandsUp(Period,D1)) and c <
SAR(af,maxAF)
and V > avg(V,Period) * Multiple
&&
V > V(1) * Multiple
and
avg(c,MA1) >= avg(c,MA2)
and
Disparity(Period) <= Percent
매도청산
F=avg(c(10),20)<avg(c,20) &&
avg(c(10),30)<avg(c,30) &&
avg(c,20)>low &&
close>open;
F
추가설정
period 10
d1 2
af 0.02
maxaf 0.2
multipie 1
percent 100
ma1 1
ma2 20
2020-09-09
1449
글번호 142237
회원 님에 의해서 삭제되었습니다.
2020-09-09
472
글번호 142236