커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3138
글번호 230811
답변완료
문의 드립니다.
안녕하세요. 평소 좋은 정보 주심에 너무나 감사 드립니다. 잘문1. RSI(5)가 70 이상일떄, 현재가격이 아래의 1라인을 돌파하는 종목의 검색식을 부탁 드립니다. 1라인.(highest(high,9)+lowest(low,9))/2질문2. 위의 1라인이 아래의 2라인을 돌파하는 종목의 검색식을 부탁 드립니다. 2라인. A=avg(c,17);ATR=avg(max(max(h-L,abs(c(1)-h)),abs(c(1)-L)),17);B=ATR*2;D=A+B;E=Bbandsup(17,2);e1=crossup(E,D);e2=crossdown(E,D);e3=crossdown(c,E);valuewhen(1,e1 or e2 or e3,o)감사합니다. 좋은 하루 되세요~
2026-04-02
46
글번호 231378
답변완료
부탁드립니다
파라볼릭의 하나의 이평으로 표시좀 부탁드립니다
2026-04-02
46
글번호 231377
답변완료
부탁드립니다
20, 60 이평간의 이격도좀 부탁들립니다
2026-04-02
48
글번호 231376
답변완료
수식 문의 드립니다.
안녕하세요. 예스랭귀지 종목검색에서당일 누적 거래량/거래대금이 아니라1분봉(1분차트) 기준거래량 5만주 이상 "또는" 거래대금 2억 이상수식을 적용하고 싶습니다.부탁드리겠습니다. 감사합니다.
2026-04-01
64
글번호 231375
답변완료
진입 주문 지연 설정문의 드립니다
진입 주문 지연 설정문의 드립니다설정시 신규진입(buy/sell) 과 청산(Exit) 모두 설정이 되는건가요?혹시 신규진입과 청산을 따로 설정하는 기능이 있는지 알고 싶습니다
2026-03-31
64
글번호 231370
답변완료
수식작성 부탁드립니다
아래의 Data1 수식 매수 기준 CrossUP(value1, value2) 에 If lma < data2(C) and lma2 < data2(C) and CrossUP(value1, value2) Then Buy(); 와같이 2가지를 추가 data2( input : n(60),Period(30); input : n(100),Period(90); ) 수식을 작성 부탁 드립니다.# Data1 Input : shortPeriod(5), longPeriod(20); value1 = ema(C, shortPeriod); value2 = ema(C, longPeriod); # Data2 input : n(60),Period(30);var : stm(0),d1(0),etm(0),ss(0),et(0),ets(0),ts(0),second(0),tf(0);var : i(0),lma(0);var : CWSum1(0),WSum1(0),WMAV1(0);var : CWSum2(0),WSum2(0),WMAV2(0);var : CWSum(0),WSum(0);Array : CC[100](0),value[100](0);if Bdate != Bdate[1] Then{ stm = TimeToMinutes(stime); D1 = Bdate;}if D1 > 0 then{ if date == D1 Then eTM = TimeToMinutes(time)-stm; Else eTM = TimeToMinutes(time)+1440-stm; ets = FracPortion(time/100)*100; Second = (etm*60)+ets; TF = second%n; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { For i = 99 DownTo 1 { CC[i] = CC[i-1]; value[i] = value[i-1]; } } CC[0] = C;}if CC[int(Period/2)-1] > 0 Then{ CWSum1 = 0; WSum1 = 0; For i = 0 To int(Period/2) - 1 { CWSum1 = CWSum1 + CC[i] * (int(Period/2) - i); WSum1 = WSum1 + (int(Period/2) - i); } WMAV1 = CWSum1/WSum1;}if CC[Period-1] > 0 Then{ CWSum2 = 0; WSum2 = 0; For i = 0 To Period - 1 { CWSum2 = CWSum2 + CC[i] * (Period - i); WSum2 = WSum2 + (Period - i); } WMAV2 = CWSum2/WSum2;}if WMAV1 > 0 and WMAV2 > 0 Then value[0] = 2*WMAV1-WMAV2;if value[int(sqrt(Period))-1] > 0 Then{ CWSum = 0; WSum = 0; For i = 0 To int(sqrt(Period)) - 1 { CWSum = CWSum + value[i] * (int(sqrt(Period)) - i); WSum = WSum + (int(sqrt(Period)) - i); } lma = CWSum/WSum;}
2026-03-31
104
글번호 231369
답변완료
문의 드립니다
input : starttime(90000),Endtime(154500);var : Tcond(False);if (sdate != sDate[1] and sTime >= starttime) or (sdate == sDate[1] and sTime >= starttime and sTime[1] < starttime) Then{ Tcond = true; var1 = 0; var2 = 0; var3 = 0;}if (sdate != sDate[1] and sTime >= Endtime) or (sdate == sDate[1] and sTime >= Endtime and sTime[1] < Endtime) Then Tcond = False;if Tcond == true Then{ var1 = var1+1; var2 = var2+1; var3 = var3+1; Var4 = Var2 - Var3;------------------------------위식에서 var4가 최고일때 & 최저일때의 가격을 차트에 표시하고 싶습니다a= var4 가 최고일때 가격b= var4 가 최저일때 가격감사합니다
2026-03-31
88
글번호 231349
답변완료
수식 요청드립니다.
안녕하세요.나스닥 선물 거래하고자 합니다.피라미딩으로 누적 10계약까지 매수 또는 매도 진입한다고 하였을때, 아래 조건을 만족할 경우 청산되도록 하는 수식을 부탁드립니다.* 첫번째 계약의 진입시간으로부터 100분이 경과하면 그때까지 진입된 계약들을 모두 청산항상 감사합니다.
2026-03-31
59
글번호 231348
답변완료
시스템 매매 관련 수정문의 합니다...
아래수식은 ai 기반으로 작성된 수식입니다...시작시간하고 종료시간이 조금 이상해서 수정부탁합니다..시작시간은 91500종료시간은 151500입니다..그리고 손절은 없고 익절만 가능하도록 수정부탁드립니다..// FLI Force Index 기반 역전 스탑앤리버스 전략 (비용 및 수량 변수 지정 포함)Input : FIPeriod(13), FISmooth(13), ATRPeriod(14), StopATR(3.0), ProfitATR(6.0);Input : ScaleParts(20), ScaleIntervalMin(15), TotalQty(20);// 거래 허용 기간 입력 (YYYYMMDD 형식 날짜, 분 단위 시간)Input : StartDate(20260101), StartTimeMin(930), EndDate(20261231), EndTimeMin(1530);// 비용 및 수량 변수Input : CommissionPerUnit(0.0), SlippagePerUnit(0.0);Var : FI(0), FIs(0), tr(0), atr(0), longStop(0), longProfit(0), shortStop(0), shortProfit(0);Var : partsDoneLong(0), partsDoneShort(0), lastScaleTime(0);Var : totalAllocatedLong(0), totalAllocatedShort(0), targetCumulative(0), nextPartQty(0), partIndex(0);Var : curMin(0), curDate(0), allowTrade(false);Var : estCost(0), executedQty(0);FI = (C - C[1]) * V;FIs = EMA(FI, FISmooth);tr = TrueRange;atr = EMA(tr, ATRPeriod);longStop = Close - StopATR * atr;longProfit = Close + ProfitATR * atr;shortStop = Close + StopATR * atr;shortProfit = Close - ProfitATR * atr;// 현재 날짜/시간curMin = TimeToMinutes(sTime);curDate = Bdate; // 봉의 거래일(YYYYMMDD)// 거래 허용 여부 판단allowTrade = (curDate >= StartDate) And (curDate <= EndDate) And (curMin >= StartTimeMin) And (curMin <= EndTimeMin);If CrossUp(FIs, 0) Then{ partsDoneLong = 0; partsDoneShort = 0; lastScaleTime = 0; totalAllocatedLong = 0; totalAllocatedShort = 0;}//If CrossDown(FIs, 0) Then{ // partsDoneShort = 0; // partsDoneLong = 0; // lastScaleTime = 0; // totalAllocatedLong = 0; // totalAllocatedShort = 0;}// 롱 분할 진입 (총수량 대비 비율 방식) - 시간/날짜 필터 적용If allowTrade And FIs > 0 And partsDoneLong < ScaleParts Then{ partIndex = partsDoneLong + 1; // 1-based targetCumulative = Ceiling(TotalQty * partIndex / ScaleParts); nextPartQty = targetCumulative - totalAllocatedLong; If nextPartQty < 0 Then nextPartQty = 0; If nextPartQty > 0 And (lastScaleTime == 0 Or (curMin - lastScaleTime) >= ScaleIntervalMin) Then { // 예상 비용 계산(간단): (수량 * (Commission + Slippage)) estCost = nextPartQty * (CommissionPerUnit + SlippagePerUnit); Buy("FLI_Long_Part", onclose, Def, nextPartQty); partsDoneLong = partsDoneLong + 1; totalAllocatedLong = totalAllocatedLong + nextPartQty; lastScaleTime = curMin; // 추적용: 실행 누적 수량(실제 체결은 플랫폼에서 결정되므로 근사값) executedQty = executedQty + nextPartQty; }}// 숏 분할 진입 (총수량 대비 비율 방식) - 시간/날짜 필터 적용If allowTrade And FIs < 0 And partsDoneShort < ScaleParts Then{ partIndex = partsDoneShort + 1; targetCumulative = Ceiling(TotalQty * partIndex / ScaleParts); nextPartQty = targetCumulative - totalAllocatedShort; If nextPartQty < 0 Then nextPartQty = 0; If nextPartQty > 0 And (lastScaleTime == 0 Or (curMin - lastScaleTime) >= ScaleIntervalMin) Then { estCost = nextPartQty * (CommissionPerUnit + SlippagePerUnit); Sell("FLI_Short_Part", onclose, Def, nextPartQty); partsDoneShort = partsDoneShort + 1; totalAllocatedShort = totalAllocatedShort + nextPartQty; lastScaleTime = curMin; executedQty = executedQty + nextPartQty; }}// 손절/익절 로직 유지 (청산 주문은 거래허용시간 외에도 실행될 수 있도록 허용)If MarketPosition == 1 Then{ If High < longStop And NextBarBdate == Bdate Then ExitLong("FLI_L_Stop", AtStop, longStop); If High < longProfit And NextBarBdate == Bdate Then ExitLong("FLI_L_Profit", AtLimit, longProfit);}If MarketPosition == -1 Then{ If Low > shortStop And NextBarBdate == Bdate Then ExitShort("FLI_S_Stop", AtStop, shortStop); If Low > shortProfit And NextBarBdate == Bdate Then ExitShort("FLI_S_Profit", AtLimit, shortProfit);}// 참고 출력용: 실행 누적 수량 및 예상 비용을 내장 변수에 저장 (플랫폼에서 확인 가능)Var : reportedExecutedQty(0), reportedEstCost(0);reportedExecutedQty = executedQty;reportedEstCost = executedQty * (CommissionPerUnit + SlippagePerUnit);
2026-03-30
245
글번호 231347