커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1514
글번호 230811
답변완료
종목검색 부탁드립니다
이런 프로그램이 있는지 처음 알았네요 공부중입니다 잘 부탁드립니다
제가 사용하고 있는 다바스 상단 돌파 수식이 있는데 예스트레이더로 검색하고 싶습니다
부탁드립니다
LT=LOWEST(L,P1);
HT=HIGHEST(H,P1);
NewH=VALUEWHEN(1,H>HT(1),H);
BOX1=HIGHEST(H,P1-2)<HIGHEST(H,P1-1);
TOP=VALUEWHEN(1,BarsSince(H>HT(1))==(P1-2)AND BOX1,NewH);
BTM=VALUEWHEN(1,BarsSince(H>HT(1))==(P1-2)AND BOX1,LT);
top
2023-08-17
874
글번호 171589
답변완료
5이평선 고점라인
안녕하세요!
5일 이평선의 고점라인 수식작성 부탁드립니다.
주린이라서 가능하시면 최대한 자세히...
2023-08-17
968
글번호 171568
답변완료
수식작성 부탁드립니다.
수식작성에서 주가등락률을 일정기간 설정할수있는 양식 부탁드립니다.
2023-08-17
1103
글번호 171567
답변완료
83343 에러 문의
제가 머를 잘못핸걸까요?
2023-08-17
850
글번호 171566
답변완료
고가 투자심리도 공식을 별도로 구현하고 싶습니다.
Input : Period(10);
var : Simri(0);
Simri = Sum(if(h>h[1],10,0),Period);
plot1(simri,"종가 투자심리도");
Simri = Sum(if(h>h[1],10,0),Period); 이 부분에서 오류가 있다고 합니다.
2023-08-17
811
글번호 171564
답변완료
종목검색식 재문의
안녕하세요.
많은 개발요구에 친절히 응대해주셔서 감사합니다 ㅠㅠ
다름아니라 제가 이전글에서 요청글을 잘못써서인지, 제가 원하는 종목검색식이 나오지 않았더라구요.
dayvolume이 검색시점의 volume이 아니라 그냥 분별 누적볼륨으로 나와서 문제인것 같습니다.
다시한번 제가 원하는 로직을 말씀드리면 아래와 같습니다.
로직 :
1. 15시에 해당종목의 누적볼륨이 10000으로 가정한다면
2. 9시1분, 9시2분, 9시3분 등 1분봉 각각의 볼륨을 10000(검색시점의 누적볼륨)으로 나눔
ex) 901이 100이라면 0.01 902이 200이라면 0.02 ... 1428이 150이라면 0.015
3. 각 분봉의 값중 max 추출 (위 예시에서는 0.02가 가장 큰값이 되겠죠?)
4. 위 로직을 통해, max값이 0.015 이하인 종목들 검색
입니다.
너무 감사드립니다!!
==========================================================================
안녕하세요
예스스탁입니다.
var : ii(0),r(0),hr(0),cnt(0);
if sDate != sDate[1] Then
ii = 0;
Else
ii = ii+1;
var1 = DayVolume;
hr = 0;
For cnt = 0 to ii
{
r = (v[cnt]-Var1)/Var1*100;
if hr == 0 or (hr > 0 and r < hr) Then
hr = r;
}
if hr < 0.01 Then
Find(1);
즐거운 하루되세요
> 깅창 님이 쓴 글입니다.
> 제목 : 1분봉 검색식
> 안녕하세요
1분봉 차트가 띄워져 있을때
현재 시점의 누적 거래량을 분모로 하고
1분봉 거래량을 분자로해서 비율을 중 가장 큰 값을 구하고 싶습니다.
예를들어 검색시점의 당일 누적 거래량이 10000이라고 할때,
901 거래량이 100이면 0.01
901 거래량이 200이면 0.02
...
검색시점 거래량이 100이면 0.01
이런식으로 구한 값중 가장 큰 값을 구하는 겁니다.
이 가장 큰 값이 0.01 이하인 종목을 찾고싶어요.
수식부탁드립니다.
미리감사드립니다.
2023-08-17
1040
글번호 171563
답변완료
부탁드립니다.
1. 당일 콜의 현재가가 풋 보조1, 2, 3, 4, 5중에 보조 3의 가격보다 위에서 장이 시작하여 1개라도 보조 풋의 최고가 이하로 하락하면 파란색으로, 그 다음 풋의 최고가 이상으로 상승하면 빨강색으로 기본차트에 구현해 주세요
2. 당일 콜의 현재가가 풋 보조1, 2, 3, 4, 5,중에 보조 3의 가격보다 아래에서 장이 시작하여 1개라도 보조 풋의 최고가 이상으로 상승하면 빨강색으로, 그 다음 풋의 최저가 이하로 하락하면 파란색으로 기본차트에 구현해 주세요
3. 당일 보조 풋의 최고가가 기본 콜의 최저가와 20틱 이내이면 그때부터 빨강색으로 기본차트에 구현해 주세요
항상 고맙습니다.
2023-08-17
980
글번호 171562
답변완료
문의 드립니다!
무더위에 연일 수고가 많습니다!
1, 아래 수식1에서 세로선 발생조건을
(1)N틱전 발생으로 해주시고
(2)세로선 발생시는 동시에 알람신호도 울리도록 수정 부탁드립니다
2, 아래 수식2는 한개의 챠트에 여러개 수식을 각각 다르게 설정해서 사용하고있는데요
이 수식에서 세로선 발생과 동시에
발생된 세로선의 우측 적당한 공간에(가능한 우측 최상단이나 최하단) data번호를 나타내 보이도록 할수있을까요?
즉 아래 수식의 경우는 data11과 data18을 적용한것인데요
이 수식에서 세로선이 발생시 "data11, data18" 이렇게 표시가 되거나
혹은 단순히 "11, 18" 이렇게만 표시가 되어도 상관없습니다
한번 표시된 data번호는 이후에 다른세로선의 data번호가 발생되더라도 계속 존속되었으면합니다
감사합니다!!!
--------------------------------------------------
(수식 1)
var : tl1(0,data1),tl2(0,data1);
var : V1(Data1(C),data1);
if CrossDown(data1(L),data2(H)) or
Crossup(data1(h),data2(L)) Then
{
v1 = data1(C);
}
plot1(v1);
plot2(v1);
if CrossDown(data1(L),data2(H)) or
Crossup(data1(h),data2(L)) Then
{
tl1 = TL_New(sdate,stime,9999999,sdate,stime,0);
TL_SetColor(tl1,magenta);
TL_SetSize(tl1,4);
}
(수식 2)
input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5);
var : cond11(false,data1),cond21(false,data1);
var : cond12(false,data1),cond22(false,data1);
var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1);
plot1(data11(highD(0)),"data11고가");
plot2(data11(LowD(0)),"data11저가");
plot3(data18(highD(0)),"data18고가");
plot4(data18(LowD(0)),"data18저가");
cond11 = data18(highD(0)) >= data11(highD(0)-PriceScale*0);
cond21 = data11(lowD(0)) <= data18(lowD(0)+PriceScale*0);
if sTime >= 90300 and Cond11 == true and cond11[1] == false Then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL1,yellow);
TL_SetSize(TL1,굵기1);
}
if sTime >= 90300 and Cond21 == true and cond21[1] == false then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL2,yellow);
TL_SetSize(TL2,굵기2);
}
cond12 = data18(LowD(0)) <= data11(lowD(0)+PriceScale*0);
cond22 = data11(highD(0)) >= data18(highD(0)-PriceScale*0);
if sTime >= 90300 and Cond12 == true and cond12[1] == false Then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL3,yellow);
TL_SetSize(TL3,굵기3);
}
if sTime >= 90300 and Cond22 == true and cond22[1] == false then
{
PlaySound("C:예스트레이더(x64)dataSound작은교대선.wav");
TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999);
TL_SetColor(TL4,yellow);
TL_SetSize(TL4,굵기4);
}
2023-08-17
1146
글번호 171561
답변완료
부탁드립니다
안녕하세요
무더운 날씨에 수고가 많으십니다.
예스랭귀지 수식으로 부탁드립니다.
/////////////////////////////////////////////////////////////
1.
// Inputs
sum_length = input(500, title='EVWMA Length')
vwap_smoothing = input(400, title='VWAP Smoothing')
// Calculate EVWMA
vol_period = math.sum(volume, sum_length)
evwma = 100.100
evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / vol_period
vwap_smooth = ta.ema(ta.vwap, vwap_smoothing)
long = ta.crossover(vwap_smooth, evwma)
short = ta.crossunder(vwap_smooth, evwma)
plot(evwma, color=color.new(color.blue, 100))
plot(vwap_smooth, color=color.new(color.red, 100))
strategy.entry('Long', strategy.long, when=long)
strategy.entry('Short', strategy.short, when=short)
*문의사항
1. blue가 red를 crossUp 할때 buy (색상: 빨간색)
2. red가 blue를 crossUp 할때도 buy (색상: 파란색)
1번 2번 을 or로 묶으주시면 고맙겠습니다.
(* crossdown의 화살표 삭제부탁드립니다.)
3. sell (crossdown) 은 밑에 수식으로 부탁드리겠습니다.
crossdown 외에 나머지도 삭제 부탁드립니다.
// Inputs
length = input(60)
price = input(close)
// RSI
ma = ta.sma(price, length)
plot(ma)
if ta.crossover(close, ma)
strategy.entry('MaLong', strategy.long, comment='MaLong')
if ta.crossunder(close, ma)
strategy.entry('MaShort', strategy.short, comment='MaLong')
1+2+3 합쳐서
가능 하시면 검색식, 시스템식, 지표식 3가지 모두 부탁 드리겠습니다. 꾸벅^^
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2. 지표식으로 변환부탁드립니다.
// Momentum
len = input.int(500, "Momentum Length", 500, group = "Dynamic RSI Momentum")
src = input.source(close, "Source", group = "Dynamic RSI Momentum")
min_rsi = input.int(500, "Min RSI", group = "Dynamic RSI Momentum")
max_rsi = input.int(500, "Max RSI", group = "Dynamic RSI Momentum")
upLvl = input.float(500, "OverBought", 0, 500, group = "Dynamic RSI Momentum")
dnLvl = input.float(500, "OverSold", 0, 500, group = "Dynamic RSI Momentum")
// +++++++++++++++++++++
// ++ CALCULATION ++
// +++++++++++++++++++++
// RMA Function
rmaFun(src, len) =>
sma = ta.sma(src, len)
alpha = 1/len
sum = 0.0
sum := na(sum[1]) ? sma : alpha * src + (1 - alpha) * nz(sum[1])
// RSI Function
rsiFun(src, len) =>
100 - 100 / (1 + rmaFun(src - src[1] > 0 ? src - src[1] : 0, len) /
rmaFun(src[1] - src > 0 ? src[1] - src : 0, len))
// Momentum
momVal = src - src[len]
// Calculation Price vs Momentum
corr = ta.correlation(src, momVal, len)
corr := corr > 1 or corr < -1 ? float(na) : corr
rsiLen = 0
rsiLen := int(min_rsi + nz(math.round((1 - corr) * (max_rsi-min_rsi) / 2, 0), 0))
rsiMom = rsiFun(src, rsiLen)
// +++++++++++++++++++++
// ++ STRATEGY ++
// +++++++++++++++++++++
long = ta.crossover(rsiMom, dnLvl)
short = ta.crossunder(rsiMom, upLvl)
// +++> Long <+++++
if long and not na(rsiMom)
strategy.entry("Long", strategy.long)
// +++> Short <+++++
if short and not na(rsiMom)
strategy.entry("Short", strategy.short)
// +++++++++++++++++++++
// ++ PLOT ++
// +++++++++++++++++++++
plot(rsiMom, "Dynamic RSI Momentum", rsiMom < dnLvl ? color.green : rsiMom > upLvl ? color.red : color.yellow)
hline(50, "Mid Line", color.gray)
upperLine = hline(upLvl, "Upper Line", color.gray)
lowerLine = hline(dnLvl, "Lower Line", color.gray)
fill(upperLine, lowerLine, color.new(color.purple, 90), "Background Fill")
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
수고하세요, 감사합니다.
2023-08-16
1033
글번호 171560