커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1311
글번호 230811
답변완료
매수, 매도식 요청
안녕하세요 아래 시스템식을 예트에 반영하면,
"논리값(참/거짓)이나 논리표현식이 와야 합니다.. 팝업이 나타나면서 시스템 반영이 안됩니다.
매매 수식 수정을 부탁드립니다
감사합니다.
input : length(14);
input : k(1);
input : method (1);
input : show(false);
var : upper(0),lower(0),slope_ph(0),slope_pl(0),src(0),n(0);
var : ph(0),pl(0),slope(0),single_upper(0),single_lower(0);
var : upper_breakout(False),lower_breakout(False),tx(0);
var : alpha(0),ATrV(0);
upper = 0;
lower = 0;
slope_ph = 0;
slope_pl = 0;
src = close;
n = index;
ph = SwingHigh(1,H,length,length,length*2+1);
pl = Swinglow(1,L,length,length,length*2+1);
if method == 1 Then
{
alpha = 1 / length ;
ATrV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,length) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1]));
slope = atrv / length * k;
}
if method == 2 Then
slope = std(src, length) / length * k;
if method == 3 Then
slope = abs(ma(src * index, length) - ma(src, length) * ma(index, length)) / variance(n, length,1) / 2 * k;
slope_ph = iff(ph != -1 , slope , slope_ph[1]);
slope_pl = iff(pl != -1 , slope , slope_pl[1]);
upper = IFf(ph != -1 , ph , upper[1] - slope_ph);
lower = iff(pl != -1 , pl , lower[1] + slope_pl);
single_upper = 0;
single_lower = 0;
single_upper = iff(src[length] > upper , 0 , iff(ph != -1 ,1 , single_upper[1]));
single_lower = iff(src[length] < lower , 0 , iff(pl != -1 ,1 , single_lower[1]));
upper_breakout = single_upper[1] != 0 and src[length] > upper and IFF(show , src > src[length] , true);
lower_breakout = single_lower[1] != 0 and src[length] < lower and IFF(show , src < src[length] , true);
if (upper_breakout == True) then
buy("매수", AtMarket);
if (lower_breakout == True) then
sell("매도", AtMarket);
2025-06-12
197
글번호 191662
답변완료
조건검색식 문의드립니다.
T = LinearRegressionValue(C, 1, 0) + LinearRegressionSlope(C, 1);
상승 = T > Ref(T,1);
하락 = T < Ref(T,1);
조건 = Sum(하락, 20) == 20 && Sum(상승, 20) == 20;
TH = ValueWhen(1, 조건, Ref(T,20));
THBreak = T > TH;
// V > Ref(MA(V,20),1) * 2
// C > O
위 수식을 검색식으로 변환 부탁드리겠습니다(__)
감사드립니다 :)
2025-06-12
196
글번호 191649
답변완료
해외선물 거래 문의
항상 감사합니다
시스템식을 해선에서 사용해보고 싶습니다
starttime과 endtime은 22시 30분부터 23시까지를 기준으로 하고
04시부터는 진입하지 않도록 수식 도움 부탁드립니다
input : startTime(90000), endTime(93000), AtrMult(3.0);
Var1 = TimeHigh(startTime,endTime);
Var2 = TimeLow(startTime,endTime);
# 당일 진입횟수 제한
Function EntriesToday Numeric
Var : Count(0);
Count = 0 ;
For Value1 = 0 To 10 {
If EntryDate(Value1) == date Then
Count = Count + 1;
}
EntriesToday = Count;
endFunction
# 진입
if stime < 143000 and sTime > endTime and EntriesToday < 1 then {
if bids > asks * 2 then
Buy("B", AtStop, Var1);
if bids < asks / 2 then
Sell("S", AtStop, Var2);
}
# 추적청산
If marketposition <> 0 Then {
exitlong("EL1",Atstop,Highest(H,BarsSinceEntry+1)-ATR(30)*AtrMult);
exitshort("ES1",Atstop, Lowest(L,BarsSinceEntry+1)+ ATR(30)*AtrMult);
}
# 장후반 청산
If sTime > 142000 Then {
If Ema(C,2) < Ema(C,10) Then
ExitLong("EL2", AtStop, Lowest(L,3));
If Ema(C,2) >= Ema(C,10) Then
ExitShort("ES2", AtStop, Highest(H,3));
}
# 당일청산
SetStopEndofday(1520);
2025-06-12
195
글번호 191648
답변완료
시스템 수식 문의 드립니다.
아래 시스템 수식에서
자동매매시스템 시작후 현재 총수익금이 5000달러이상일때
모든포지션 청산후 자동매매 중지되도록 시스템 수식을 추가작성 부탁드립니다.
(참고로, 하나증권의 시그널메이커 자동매매시스템을 사용중입니다.)
항상 성실히 답변 주셔서 대단히 감사드립니다.
Params : Period(20), cnt(2);
Vars : oMa1(0), TickSize(0),mp(0);
oMa1 = Ma(C, Period);
TickSize = OneTick * PriceScale;
mp = MarketPosition;
If mp = 0 And CrossUp(C, oMa1) Then Buy("B",DEF,DEF,cnt);
If mp = 0 And CrossDown(C, oMa1) Then Sell("S",DEF,DEF,cnt);
///////////////////익절//////////////////////////////////
If mp = 1 And v1 = 0 And CrossUp(C, EntryPrice + 103*TickSize) Then
Begin
v1 = 2;
ExitLong("매수익절",AtLimit,EntryPrice + 103*TickSize,"B",cnt/2);
End;
If mp = -1 And v2 = 0 And CrossDown(C, EntryPrice - 103*TickSize) Then
Begin
v2 = 2;
ExitShort("매도익절",AtLimit,EntryPrice - 103*TickSize,"S",cnt/2);
End;
//////////////////////////////////////////////////////////
If mp<>mp[1] And mp = 0 Then
Begin
v1 = 0;
v2 = 0;
v11 = 0;
v22 = 0;
End;
2025-06-12
236
글번호 191647
답변완료
문의 드립니다.
평소 많은 도움 주셔서 감사합니다.
현재 가격이 아래의 2가지, 신호와 라인을 돌파할 때 검색식 부탁드립니다.
1. 신호
BOpen =LinearRegressionValue(O, LinReg_Length,0);
BHigh = LinearRegressionValue(H, LinReg_Length,0);
BLow =LinearRegressionValue(L, LinReg_Length,0);
BClose =LinearRegressionValue(C, LinReg_Length,0);
A=MA(BClose, Signal_Length);
CROSSUP(BClose,A) && bclose>bopen && C>O
지표변수 : LinReg_Length 11
Signal_Length 7
2. 박스 라인
A=avg(c,2);
B=A+AvgIf(c-A,1,0.0)+1.4*Stdevif(c-A,1,0.0);
D=Bbandsup(9,2);
d1=crossup(D,B);
d2=crossdown(D,B);
valuewhen(1, d1 or d2,o)
감사합니다.
2025-06-11
233
글번호 191646
답변완료
종목검색식 부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목검색식으로 부탁드림니다.
crossup(c,((predayhigh()+
predaylow()+predayclose())/3)
+(predayhigh()-predaylow()));
2025-06-11
221
글번호 191645
답변완료
변환 부탁드립니다
다음 수식에대한 종목 검색식 부탁드립니다
A=V*C;
A >= 10000000
&& highestsince(1, date(1)!=date, A)== A
&& V > V(1)*2
2025-06-11
209
글번호 191644
답변완료
질문 부탁드립니다
답변 감사드립니다
지난 질문에서
아래 첨부한 식과 같이 작성하면
if condition3==false and countif(h>aa[0] and h>aa[1] ...and h>aa[20],50)>1 then 일때인데
만약 and 가 아니라
if condition3==false and countif(h>aa[0] or h>aa[1]or...h>aa[20],50)>1 처럼
or 일때는 어떻게 작성해야 할까요? 반복문으로 가능한가요?~
if Bdate!= Bdate[1] Then
Condition3 = False;
count =0;
for cnt=0to 20
{
if h > aa[cnt] Then
count = count+1;
}
if condition3==False and countif(count ==21,50)>1Then
{
condition3=true;
find(1) }
질문2)
numtostr 을 사용자 함수로 만들고 싶은데요 문자열형 형식인가요?
nt(값1,값2) 형식으로 만들고자 합니다
감사합니다
2025-06-12
253
글번호 191643
답변완료
수식 전환을 부탁드립니다
수고가 많으십니다 아래의 수식은 트레이딩뷰의 QQE 신호 수식입니다. 이것을 예스트레이더 시스템에서 구현 할 수 있도록 전환 해 주시면 감사하겠습니다 늘 건강하시기를 기원합니다.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
//@version=4
study("Quantitative Qualitative Estimation", shorttitle="QQE",precision=4, resolution="")
src=input(close)
length = input(14,"RSI Length", minval=1)
SSF=input(5, "SF RSI SMoothing Factor", minval=1)
showsignals = input(title="Show Crossing Signals?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
RSII=ema(rsi(src,length),SSF)
TR=abs(RSII-RSII[1])
wwalpha = 1/ length
WWMA = 0.0
WWMA := wwalpha*TR + (1-wwalpha)*nz(WWMA[1])
ATRRSI=0.0
ATRRSI := wwalpha*WWMA + (1-wwalpha)*nz(ATRRSI[1])
QQEF=ema(rsi(src,length),SSF)
QUP=QQEF+ATRRSI*4.236
QDN=QQEF-ATRRSI*4.236
QQES=0.0
QQES:=QUP<nz(QQES[1]) ? QUP : QQEF>nz(QQES[1]) and QQEF[1]<nz(QQES[1]) ? QDN : QDN>nz(QQES[1]) ? QDN : QQEF<nz(QQES[1]) and QQEF[1]>nz(QQES[1]) ? QUP : nz(QQES[1])
QQF=plot(QQEF,"FAST",color.maroon,2)
QQS=plot(QQES,"SLOW",color=color.blue, linewidth=1)
plot(50,color=color.gray,style=6)
longFillColor = highlighting ? (QQEF>QQES ? color.green : na) : na
shortFillColor = highlighting ? (QQEF<QQES ? color.red : na) : na
fill(QQF, QQS, title="UpTrend Highligter", color=longFillColor)
fill(QQF, QQS, title="DownTrend Highligter", color=shortFillColor)
buySignalr = crossover(QQEF, QQES)
plotshape(buySignalr and showsignals ? QQES*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
sellSignallr = crossunder(QQEF, QQES)
plotshape(sellSignallr and showsignals ? QQES*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
alertcondition(cross(QQEF, QQES), title="Cross Alert", message="QQE Crossing Signal!")
alertcondition(crossover(QQEF, QQES), title="Crossover Alarm", message="QQE BUY SIGNAL!")
alertcondition(crossunder(QQEF, QQES), title="Crossunder Alarm", message="QQE SELL SIGNAL!")
alertcondition(crossover(QQEF, 50), title="Cross 50 Up Alert", message="QQE FAST Crossing 50 UP!")
alertcondition(crossunder(QQEF, 50), title="Cross 50 Down Alert", message="QQE FAST Crossing 50 DOWN!")
2025-06-11
336
글번호 191642