커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5448
글번호 230811
답변완료
문의
데이트레이딩084500부터 154500까지 거래아래 수식은 거래횟수 20회까지 허용, 누적패수 3회면 거래중지 수식입니다.연속으로 2패할 경우, "거래횟수" 20회를 3회로 변동하는 수식을 요청드립니다.어제 요청드리고 답변 받은 내용은거래횟수 20회까지 허용, 누적패수 5회면 거래중지 수식이었고 연속으로 3패할 경우 , "누적패수" 5회를 4회로 조정하는 수식을 요청드린 바 있습니다. 위 내용은 "거래횟수" 조정입니다. 어제 것과 다르므로 참고하시라고 적었습니다.항상 고맙습니다.************************************************************************************************************************************************input : 진입시간(084700),진입제한시간(125000);input : 거래횟수(20),누적패수(3);input : b1(54),진입눌림1(6),진입돌파1(4);input : b2(142),진입눌림2(6),진입돌파2(4);input : als(42),atr1(0),atr2(112);input : bls(70),btr1(0),btr2(132);var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);var : Tcond(false);Var : loss(0); if bdate != bdate[1] Then loss = 0; if TotalTrades > TotalTrades[1] and PositionProfit(1) < 0 Then loss = loss+1; if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then{ T1 = TotalTrades; E1 = 0; HH = H; } if stime >= 진입시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C <= HH-PriceScale*B1 Then{ E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림1 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if loss < 누적패수 and E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파1 and Tcond == true Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림2 Then{ E1 = 2; i1 = index; S1 = L1; } } if loss < 누적패수 and E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파2 and Tcond == true Then{ sell("s2"); E1 = 0; } }} if MarketPosition== -1 Then{ if IsEntryName("s1") == true Then { SetStopLoss(PriceScale*als,PointStop); SetStopTrailing(PriceScale*atr2,PriceScale*atr1,PointStop,1); } Else if IsEntryName("s2") == true Then { SetStopLoss(PriceScale*bls,PointStop); SetStopTrailing(PriceScale*btr2,PriceScale*btr1,PointStop,1); } Else { SetStopLoss(0); SetStopTrailing(0,0); }}
2025-10-31
483
글번호 227548
답변완료
227515 재문의
안녕하세요?"data2이면 data2(dayatr(10))와 같이 작성해 사용하시면 됩니다. "라고 답변을 주셨는데, 저는 예컨대, var1 = data2(C) + data3(C) - 3*data4(C);var2 = dayatr(var1, period);등으로 사용할 예정이라서, dayatr 함수의 인풋에input: CC(Numeric), per(Numeric)등으로 인풋값이 하나 더 있는 함수를 원합니다.감사합니다.
2025-10-31
305
글번호 227541
답변완료
문의 드립니다.
안녕하세요항상 도움을 주셔서 감사합니다.아래의 서식에서 추가 조건을 부탁드립니다.*추가조건-단순이동평균 200일선(INPUT) 위에 가격이 있을시 매수 만 진입, 아래에 있을 시 매도 만 진입 (매수 진입 x) **최적화를 위해 INPUT에 넣어주세요Input : shortPeriod(5), longPeriod(23), Period(13);input : 손절(350);value1 = MACD(shortPeriod, longPeriod);value2 = ema(value1, Period);# 매수/매도청산 If CrossUP(value1, value2) Then { Buy(); }# 매도/매수청산If CrossDown(value1, value2) Then { Sell(); }SetStopLoss(손절,PointStop);
2025-10-31
338
글번호 227534
답변완료
아래의 식을 예스 랭귀지로 변환 좀 부탁드립니다.
✅ 현실형 추세추종 + ADX + 변동성 필터 전략 (예스랭귀지)# ==========================================================
# 📊 현실형 나스닥 60분봉 자동매매 전략
# - 추세장만 진입 (ADX 필터)
# - 저변동 횡보장 회피 (이평 간격 필터)
# - 익절/손절 구간 현실 조정 (당일 평균폭 기준)
# ==========================================================
input : maShort(20), maLong(60), adxPeriod(14);
input : adxThreshold(25), maGapLimit(0.5);
input : StopLossP(150), TakeProfitP(280); # ✅ 현실적 익절·손절 설정 (150~300p)
input : tradeSize(1);
var : adxVal(0), maS(0), maL(0), maGap(0);
var : buyCond(False), sellCond(False), trend(0);
# ---- 지표 계산 ----
maS = Average(Close, maShort);
maL = Average(Close, maLong);
adxVal = ADX(adxPeriod);
maGap = Abs(maS - maL) / maL * 100;
# ---- 추세 판단 ----
if maS > maL then trend = 1;
if maS < maL then trend = -1;
# ---- 매수 조건 ----
if trend = 1 and adxVal > adxThreshold and maGap > maGapLimit and Close > maS then
buyCond = True;
else
buyCond = False;
# ---- 매도 조건 ----
if trend = -1 and adxVal > adxThreshold and maGap > maGapLimit and Close < maS then
sellCond = True;
else
sellCond = False;
# ---- 진입 로직 ----
if MarketPosition = 0 and buyCond then
Buy("L-Entry") next bar at market;
if MarketPosition = 0 and sellCond then
SellShort("S-Entry") next bar at market;
# ---- 청산 조건 ----
SetStopLoss(StopLossP);
SetProfitTarget(TakeProfitP);
# ---- 추가조건: 반전 시 즉시 청산 ----
if MarketPosition = 1 and trend = -1 then
ExitLong("TrendRevL") next bar at market;
if MarketPosition = -1 and trend = 1 then
ExitShort("TrendRevS") next bar at market;
📈 이 설정의 핵심 포인트항목값설명익절 목표280p하루 변동폭 평균의 70~80% 수준손절폭150p1:2 손익비 유지ADX 필터25 이상만 거래횡보장 거래 회피이평간격 제한0.5 이상단기/장기 이평이 붙어있으면 진입X추세 반전 시 강제 청산있음속임수 반전(역배열 돌파 등) 차단
2025-10-31
621
글번호 227531
가자아이 님에 의해서 삭제되었습니다.
2025-10-31
5
글번호 227530
답변완료
차트 형태 변경 문의
안녕하세요.예스트레이더에서 제공하는 차트폼은 수직분할 , 수직수평(2X2)등 여러가지가 있는데 차트폼을 사용자가 변경할수 있는 방법이 있습니까?제공되는 형태에서 1~2개 삭제 후 사용하려 하다보니원하는 형태로 구현되지 않아서 문의드립니다.
2025-10-31
617
글번호 227529
답변완료
부탁드립니다
S=sum(1); 최고거래량=highestsince(1,S==1,V); D=valuewhen(1,최고거래량==v,c)D지표값이 N봉전에 10%이상하락 하고 오늘까지 유지중인 종목 검색식 부탁드립니다 N일은 3일로 해주세요 하락한 날이 3일전 입니다
2025-10-31
264
글번호 227524
답변완료
수식 부탁드립니다.
기준선=(highest(high,26)+lowest(low,26))/2; B=BBandsUp(120,2); x=sum(c*v); z=valuewhen(10,date !=date(10),x(10)); x1=sum(v); z1=valuewhen(10,date !=date(10),x1(10)); K= (x-z)/(x1-z1); wma1 = wavg(C, len); // TEMA 계산 ema1_1 = eavg(wma1, len); ema1_2 = eavg(ema1_1, len); ema1_3 = eavg(ema1_2, len); TEWMA1 = 3 * ema1_1 - 3 * ema1_2 + ema1_3; len2 = len * multi; wma2 = wavg(C, len2); ema2_1 = eavg(wma2, len2); ema2_2 = eavg(ema2_1, len2); ema2_3 = eavg(ema2_2, len2); TEWMA2 = 3 * ema2_1 - 3 * ema2_2 + ema2_3; TEWMA = (TEWMA1 + TEWMA2) / 2; CrossUP(K ,TEWMA) && C>B && C>기준선 설정 len 120 multi 3 종목검색식으로 변환 부탁드립니다. 날이 추워지는데 감기조심하세요. 감사드립니다.
2025-10-30
299
글번호 227519
답변완료
안녕하세요 . 키움식을 변환해 주시기를 부탁드립니다.
키움 지표 수식입니다. 부탁드려요.수식1) HMA 상승 A=wavg(2*wavg(scr,len/2) - wavg(scr,len), floor(sqrt(len))); (수식2) HMA 하락 A=wavg(2*wavg(scr,len/2) - wavg(scr,len), floor(sqrt(len))); if(A(1)>A,A,0) (수식3) TEMA 상승 EMA1=eavg(c,50); EMA2=eavg(EMA1,50); EMA3=eavg(EMA2,50); B=3*EMA1-3*EMA2+EMA3; (수식4) TEMA 하락 EMA1=eavg(c,50); EMA2=eavg(EMA1,50); EMA3=eavg(EMA2,50); B=3*EMA1-3*EMA2+EMA3; if(B(1)>B,B,0)
2025-10-30
366
글번호 227518