커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3665
글번호 230811
답변완료
수식요청
안녕하세요 늘 도움 감사합니다
다음의 조건으로 수식을 부탁드립니다
어떤 분 봉 이든지 가장 최근 봉 에서 양 봉은 (시가) 와 음 봉의 (고가) 에 만
수평선 과 가격이 표시 되도록 수식을 만들어 주시길 부탁드립니다.
2024-12-30
688
글번호 186723
답변완료
수식문의 드립니다.
문의 드립니다.
-아래에서
1.조건을 1번 2번으로 나누어서 진입횟수가 5회까지는 1번조건 금액1만매수
2. 5~10회 까지는 2번조건 금액3만매수
3. 10회 이후는 3번조건으로 금액 5만매수 20회 이내에 매수후
토탈 평균가 a% 이상일때 일괄 시장가 매도수식도 가능할까요?
자꾸 질문드려서 죄송합니다. 잘 부탁드려요.
==올 한해 마무리 잘 하시고 새해 복 마니마니 받으세요! ~~^^==
-아래
Input : Period1(50),Period2(9),period(30),n(30),진입횟수1(5),진입횟수2(10), 진입회수3(20),금액1(0000),금액2(0000),금액3(0000), percent(2);
var :af(0.02), maxAF(0.2),f(0), CCIv(0),CCIsig(0),a(0),b(0),DMIv(0),dp(0),dm(0),DParity(0),DParity1(0),count(0);
CCIv = CCI(Period1);
CCIsig = ema(CCIv,Period2);
var1 = SAR(af,maxAF);
a=ma(c,120);
b=ma(c,5);
f=highest(h,2);
value1 = MACD(12,26);
value2 = ema(value1, 9);
DMIv = DMI(Period);
DP = DIPlus(Period);
DM = DIMinus(Period);
DParity = Disparity(120);
DParity1 = Disparity(240);
if CrossDown(CCIv,100) and CountIf(CCIV > 100,n) >= 1 Then
{
count = 0;
}
1번조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 1.진입횟수*금액1 Then
Buy("b");
}
2번 조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 2.진입횟수*금액2 Then
Buy("b");
}
3번 조건 if cciv<100 and CrossUp(CCIv,CCIsig) Then
{
count = count+1;
if count < 3.진입횟수*금액3 Then
Buy("b");
}
if MarketPosition == 1 Then
{
ExitLong("Bp",AtLimit,AvgEntryPrice*(1+percent/100));
}
2024-12-30
709
글번호 186720
답변완료
질문 드리겠습니다
안녕하세요
몇 가지 질문 좀 부탁드리겠습니다
1. 아래 수식은 현재 만족봉과 이전 만족봉 사이의 평균 구하는 식인데요
var: cnt(0), sum1(0), sumi(0);
if h>l*1.05 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1= Index;
Var2=Index[1];
sum1=0;
sumi=0;
For cnt = 1 to (var1-Var2)-1
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
Plot11(value1);
}
For cnt = 1 to (var1-Var2)-1
이 부분에 따르면 현재 만족봉과 이전만족봉은 포함시키지 않고 평균을 구하는건데
둘 사이에 봉이 없을 경우 0이 출력 되는거죠?.
그리고 만약에 현재 만족봉까지 포함 시키려면
for cnt=0 to (var1-var2)-1 이라고 작성하면 되고
현재봉과 이전봉 모두 포함하려면
for cnt=0 to (var1-var2) 이렇게 작성하는게 맞는지 궁금합니다
2.
수식을 부탁드립니다
아래 평균구하는 수식에서 변형을 하려고 하는데요
(현재봉 , 이전봉 둘다 포함시키려고 for 문에는 0 to (var1-var2) 로 해놨습니다, 틀렸으면 고쳐주세요)
만일 조건만족봉 사이 간격이 5봉 미만이라면 평균을 일단 구하지 않고,
새로운 만족봉이 나왔을때 간격이 5봉 이상이라면 모든 봉들을 이용해서 평균을 구하고 싶습니다
예를들어 a2,a1,a0 가 조건 만족했을때의 봉이라고 했을때
a2 와 a1 사이가 3봉이고 (조건만족봉 a2,a1 까지 포함해서 3개) 새로운 조건봉 a0 가 나타났을때
a1와 a0 사이가 10개봉 (a1,a0 까지 포함해서 10개)이라면 3봉+10봉 해서 13개봉의 평균을 구하고 싶습니다
var: cnt(0), sum1(0), sumi(0);
if h>l*1.05 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1= Index;
Var2=Index[1];
sum1=0;
sumi=0;
For cnt = 0 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
Plot11(value1);
}
3.
아래식을 작성해봤는데 맞는건지 한번 확인해주심 감사하겠습니다
원하는 조건:
만약
aa[2] > aa[1] and aa[1] < aa[0]
이라는 조건이 만족하면,
aa[3]가 시작한 시점부터 aa[0]까지의 모든 봉의 평균을 구하고 싶습니다
var: cnt(0), sum1(0), sumi(0),period(0),sumsqrt(0),stdv(0),stand(0);
var : sum2(0),sumi2(0),avg2(0);
array: aa[50](0);
if h>l*1.06 Then
{
TL_NEW(sDatE,sTimE,h*1.15,sDatE,sTimE,99999);
var1= Index;
Var2=Index[1];
sum1=0;
sumi=0;
For cnt = 0 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi=sumi+1;
}
value1=sum1/sumi;
value12= ma(h,20);
For cnt = 50 DownTo 1
{
aa[cnt]=aa[cnt-1];
}
aa[0]= value1;
if aa[2] > aa[1] and aa[1] < aa[0] Then
{
Var3=Index;
Var4=Index[3];
sum2=0;
sumi2=0;
For cnt = 0 to (var3-Var4)
{
sum2=sum2+h[cnt];
sumi2=sumi2+1;
}
avg2=sum2/sumi2;
}
Plot16(avg2,"aa",Orange,Def,1);
}
2024-12-30
610
글번호 186719
답변완료
검색식 부탁드립니다.
안녕하세요?
다음수식을 검색식으로 변환 부탁드립니다..
항상 답변해주셔서 감사합니다..
------------------------------------
1번
a=avg(c,5);
b=avg(c,20);
d=avg(c,60);
D1=(A+B+D)/3;
A1=(highest(high,9)+lowest(low,9))/2;
B1=(highest(high,26)+lowest(low,26))/2;
B2=(A1+B1)/2;
A3=RSI(9)-50;
B3=CMO(12)*0.5;
B4=A3+B3;
B5=eavg(C,120);
crossup(D1,B5) or crossup(B2,B5))
-------------
2번
A = daylow()+(dayhigh()-daylow())/2;
CrossUp(C,A)
AND
CrossUp(c,BBandsUp(20,2))
2024-12-30
709
글번호 186718
답변완료
예스랭귀지 수식 요청합니다
<1번>
R=RSI(14)>50
S=(highest(high,52)+lowest(low,52));
D=valuewhen(1,R,S);
Z=crossup(C,D) && dayhigh()>daylow();
cnt=countsince(date!=date(1),Z);
cnt==1 && cnt(1)==0
<2번>
A=(highest(high,20)-lowest(low,20));
B=highest(high,20)-(A*0.2);
C>B
<3번>
S=EAVG(C,5);
L=EAVG(C,20);
X=crossup(S,L)
<4번>
X = BBandsup(20,2);
Y = MA(C,20,단순);
IF CROSSUP(C, X),D,0) &&
CROSSUP(C, Y)
<5번>
R=RSI(14);
E=EAVG(RSI(14),9);
D=Crossup(R, E);
sum(if(D, 1, 0), 10) >= 1
안녕하세요
위의 키움수식들을 예스랭귀지 변환 가능할까요?
감사합니다
2024-12-29
682
글번호 186717
답변완료
TradingView 지표인데 예스트레이더 형식으로 바꾸어 주시면...
Box가 나오니 어렵네요. 변환이 가능허면 부탁드릴께요. 미리 감사드립니다.
//@version=6
// ★★★ Range Detector [LuxAlgo] ★★★
indicator('Range Detector [LuxAlgo]', '@Range Detector - LuxAlgo', overlay = true, max_boxes_count = 500, max_lines_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input.int(20, 'Minimum Range Length', minval = 2)
mult = input.float(1., 'Range Width', minval = 0, step = 0.1)
atrLen = input.int(500, 'ATR Length', minval = 1)
//Style
upCss = input(color.fuchsia, 'Broken Upward', group = 'Style')
dnCss = input(color.teal, 'Broken Downward', group = 'Style')
unbrokenCss = input(#5079f3, 'Unbroken', group = 'Style')
//-----------------------------------------------------------------------------}
//Detect and highlight ranges
//-----------------------------------------------------------------------------{
//Ranges drawings
var box bx = na
var line lvl = na
//Extensions
var float max = na
var float min = na
var os = 0
color detect_css = na
n = bar_index
atr = ta.atr(atrLen) * mult
ma = ta.sma(close, length)
count = 0
for i = 0 to length - 1 by 1
count := count + (math.abs(close[i] - ma) > atr ? 1 : 0)
count
if count == 0 and count[1] != count
//Test for overlap and change coordinates
if n[length] <= bx.get_right()
max := math.max(ma + atr, bx.get_top())
min := math.min(ma - atr, bx.get_bottom())
//Box new coordinates
bx.set_top(max)
bx.set_rightbottom(n, min)
bx.set_bgcolor(color.new(unbrokenCss, 80))
//Line new coordinates
avg = math.avg(max, min)
lvl.set_y1(avg)
lvl.set_xy2(n, avg)
lvl.set_color(unbrokenCss)
else
max := ma + atr
min := ma - atr
//Set new box and level
bx := box.new(n[length], ma + atr, n, ma - atr, na, bgcolor = color.new(unbrokenCss, 80))
lvl := line.new(n[length], ma, n, ma, color = unbrokenCss, style = line.style_dotted)
detect_css := color.new(color.gray, 50)
os := 0
os
else if count == 0
bx.set_right(n)
lvl.set_x2(n)
//Set color
if close > bx.get_top()
bx.set_bgcolor(color.new(upCss, 80))
lvl.set_color(upCss)
os := 1
os
else if close < bx.get_bottom()
bx.set_bgcolor(color.new(dnCss, 80))
lvl.set_color(dnCss)
os := -1
os
//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
//Range detection bgcolor
bgcolor(detect_css)
plot(max, 'Range Top', max != max[1] ? na : os == 0 ? unbrokenCss : os == 1 ? upCss : dnCss, 2)
plot(min, 'Range Bottom', min != min[1] ? na : os == 0 ? unbrokenCss : os == 1 ? upCss : dnCss, 2)
//-----------------------------------------------------------------------------}
// my add
longCond = ta.crossover(close, max)
shortCond = ta.crossunder(close, min)
//plot(longCond ? max : na, color=color.yellow, style = plot.style_cross, linewidth = 4, title="Cross+")
//plot(shortCond ? min : na, color=color.yellow, style = plot.style_cross, linewidth = 4, title="Cross-")
plotchar(longCond ? max : na, 'cross Up ↑', '△', location.absolute, #ffff00, size = size.small)
plotchar(shortCond ? min : na, 'cross Dn ↓', '▽', location.absolute, #ffff00, size = size.small)
2024-12-29
850
글번호 186716
답변완료
수식작성 부탁드립니다.
안녕하세요. 운영자님
구현하고자 하는 시스템 수식은,
매수조건 : 주가가 시가보다 아래에서 머물다가 일봉상 시가 또는 30분봉상 이전 직전봉
종가를 상향돌파시 매수진입하고, 손절 30틱, 익절 30틱
매도조건 : 주가가 시가보다 위에서 머물다가 일봉상 시가 또는 30분봉상 이전 직전봉
종가를 하향돌파시 매도진입하고, 손절 30틱, 익절 30틱
새해 복 많이 받으세요..
2024-12-29
652
글번호 186715
답변완료
예스트레이더 언어로 변환해서 검색식 부탁드립니다.
1. 신호수식
최고가=최고값(고가,20);
최저가=최저값(저가,20);
경계=(최고가+최저가)/2-(최고가-최저가)*배분1;
경1=crossup(종가, 경계)&& 종가>시가*배분2;
경2=crossdown(c, 경계);
기준봉=valuewhen(1, 경1 or 경2, 시가);
기봉1=crossup(종가, 기준봉);
기봉2=crossdown(종가, 기준봉);
결준=valuewhen(1, 기봉1 or 기봉2, 시가);
결기1=crossup(종가, 결준);
결기2=crossdown(종가, 결준);
A=valuewhen(1, 결기1 or 결기2, 시가);
M5=eavg(C,5);
M10=eavg(C,10);
M20=eavg(C,20);
M60=eavg(C,60);
M120=eavg(C,120);
M240=eavg(C,240);
M250=eavg(C,250);
M480=eavg(C,480);
BH=BBandsUp(20,2);
BC=BBandsC(20,2);
평균=((M5*2)+(M10*2)+(M20*3)+(M60*2)+(M120*3)+(M240*2)+(M480*2)+(BH*1)+(BC*1)) / 18;
평균라인=Tema(평균, 5, 지수);
B=평균라인 + 20*stdev(평균라인,5);
AA=sar(0.02,0.2);
거래대금=V*C; // 거래대금 계산
C >= A && CROSSUP(C, B) && AA <= C && C >= M250 && 거래대금 >= 6000000&& MACD(shortPeriod,longPeriod)>baseLine
&&MACD(shortPeriod,longPeriod)>= eavg(MACD(shortPeriod,longPeriod),sigPeriod)
2. 지표변수
배분1 0.236
배분2 1.02
shortPeriod 12
longPeriod 26
sigPeriod 9
baseLine 0
sigPeriod 9
이건 키움증권 화살표 수식입니다. 이걸 예스트레이더 언어로 변환해서 검색식으로 만들수 있을까요?
2024-12-29
735
글번호 186714
답변완료
종목 검색 부탁드려요
*문의드립니다
1) 1봉전 캔들은 음봉 , 0봉전 캔들은 양봉인 종목검색식 부탁드립니다.(일봉기준)
2) 2봉전 캔들은 음봉, 1봉전 캔들은 양봉, 0봉전 캔들은 양봉인 종목검색식 부탁드려요.
2) 이격도 보조지표에서 20일 이격도선이 내려가다가 반등할때 ( 전일보다 반등할때-일봉기준)
종목검색식 부탁드립니다.
2024-12-29
605
글번호 186713