커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1327
글번호 230811
답변완료
변환 부탁드립니다
종목 검색식으로 변환 부탁드립니다.
A = ma(C, 5);
B = ma(C, 60,);
조건1 = A(2)>B(2) && A(1) < B(1) && A > B
조건2 = Countsince(date!=date(1), 조건1) == 1;
조건3 = Sum(if(조건2, 1, 0), 20) <= 1;
조건2 && 조건3
2025-03-19
385
글번호 189350
답변완료
수식 수정 부탁드립니다.
안녕하세요.
수식오류 수정 부탁드립니다.
Input : term1(5),term2(9),term3(14),term4(20),Period1(9), Period2(13), Period3(2), Period4(3);
Var : X1(0),X2(0),X3(0),X4(0),S1(0),S2(0),S3(0),S4(0),XS(0),value1(0),Value2(0),SToR(0) ;
X1=Trix(term1)-Trix(term1)[1];
X2=Trix(term2)-Trix(term2)[1];
X3=Trix(term3)-Trix(term3)[1];
X4=Trix(term4)-Trix(term4)[1];
S1 = Ema(X1,9);
S2 = Ema(X2,9);
S3 = Ema(X3,9);
S4 = Ema(X4,9);
XS = X1<0 and X2<0 and X3<0 and X4<0 && S1<0 and S2<0 and S3<0 and S4<0 ;
value1 = ((RSI(Period1)- lowest(RSI(Period1),Period2))
/ (highest(RSI(Period1),Period2)-(lowest(RSI(Period1),Period2))))*100;
Value2 = ma(Value1,Period3);
SToR = ma(Value2,Period4);
if XS && SToR[2]>SToR[1] && SToR[1]< SToR[0] && H[1]<H[0] Then
Find(1);
2025-03-19
383
글번호 189348
새론날 님에 의해서 삭제되었습니다.
2025-03-19
3
글번호 189341
답변완료
청산관련하여 질문 드립니다.
////////////////////////////////////////////////////////////////////
// 개선된 Stochastic Slow(이중바닥) + 5/10일선 + 일봉기반 청산 + 7%익절/5%손절
////////////////////////////////////////////////////////////////////
Inputs:
Period(7), // 일봉 평균 계산 기간
Day5(5), // 단기 이동평균
Day10(10); // 장기 이동평균
Vars:
// 스윙포인트 관련
SLV1(0), SLV2(0),
// 스토캐스틱 (두 가지 주기)
stoK(0), stoD(0),
stoK1(0), stoD1(0),
// 5일/10일 이동평균
var1(0), var2(0),
// 일봉 평균 계산용
Sum(0), Sum1(0), cnt(0),
DayMa(0), DayMa2(0), // DayMa2는 Sum1 활용 예시
// 기타
swingBar1(0), swingBar2(0); // 스윙로우 발생 봉 인덱스(20봉 이내인지 체크용)
//------------------------------------------------------------------//
// (1) 이동평균 및 스토캐스틱 계산
//------------------------------------------------------------------//
// --> 입력값 Day5, Day10 활용
var1 = MA(C, Day5); // 5일 이동평균
var2 = MA(C, Day10); // 10일 이동평균
// Stochastic(20,12)와 SlowD(20,12,12)
stoK = StochasticsK(20, 12);
stoD = StochasticsD(20, 12, 12);
// Stochastic(10,6)와 SlowD(10,6,6)
stoK1 = StochasticsK(10, 6);
stoD1 = StochasticsD(10, 6, 6);
//------------------------------------------------------------------//
// (2) 스윙 저점(이중바닥) 탐색
//------------------------------------------------------------------//
// SwingLow(N, 데이터, LeftStrength, RightStrength, 최대바 수)
// N=1 → 가장 최근 스윙 저점 값, N=2 → 이전 스윙 저점 값
SLV1 = SwingLow(1, stoK, 3, 2, 100);
SLV2 = SwingLow(2, stoK, 3, 2, 100);
// 봉 인덱스도 얻을 수 있다면(환경에 따라 다름)
// SwingLowBar(N, 데이터, LeftStr, RightStr, 최대바수)
swingBar1 = SwingLowBar(1, stoK, 3, 2, 100);
swingBar2 = SwingLowBar(2, stoK, 3, 2, 100);
//------------------------------------------------------------------//
// (3) 일봉 평균(DayClose) 계산
//------------------------------------------------------------------//
// 7일간(DayClose) 합산 → DayMa
// Sum1도 함께 구해, 필요시 다른 로직에 활용 (DayMa2)
Sum = 0;
Sum1 = 0;
For cnt = 0 to Period - 1
Begin
Sum = Sum + DayClose(cnt);
Sum1 = Sum1 + DayClose(cnt + 1);
End;
DayMa = Sum / Period;
DayMa2 = Sum1 / Period; // 이 값(DayMa2)은 필요시 다른 조건에 활용 가능
//------------------------------------------------------------------//
// (4) 매수 조건:
// - 스윙저점 SLV1 >= SLV2 (최근 저점이 이전 저점 이상)
// - (var1 > var2) → 5일선이 10일선 위
// - (stoK > stoD) 또는 (stoK1 > stoD1) 중 하나라도 골든크로스
// - (swingBar1 - swingBar2 <= 20) → 최근 두 스윙저점이 20봉 이내(옵션)
//------------------------------------------------------------------//
If MarketPosition == 0 Then
Begin
// “스윙 저점이 20봉 이내”를 확인하고 싶다면 아래 조건 사용:
// (AbsValue(swingBar1 - swingBar2) <= 20)
// 환경마다 swingBar1,2가 큰 값(과거)부터 작은 값(최근) 순으로 나오므로
// 실제 동작을 확인해봐야 합니다.
If (SLV1 >= SLV2) and
(var1 > var2) and
( (stoK > stoD) or (stoK1 > stoD1) )
// and (AbsValue(swingBar1 - swingBar2) <= 20) // 옵션
Then
Begin
// 중복 매수를 막기 위해 한 봉에 단 한 번의 매수만 발생
Buy("이중바닥매수");
End;
End;
//------------------------------------------------------------------//
// (5) 청산 조건:
// (A) 현재 종가가 DayMa(7일 평균) 아래로 하락(CrossDown) 시 청산
// (B) 추가로 7%익절 / 5%손절(PercentStop) 사용
//------------------------------------------------------------------//
If MarketPosition == 1 Then
{
if CrossDown(c,DayMa) Then
ExitLong();
}
// (A) SetStopProfitTarget(7, PercentStop) → +7% 익절
// (B) SetStopLoss(5, PercentStop) → -5% 손절
SetStopProfitTarget(7, PercentStop);
SetStopLoss(5, PercentStop);
7%익절 -5%손절 부분을
* 7%익절
* -7%하락시 보유수량의 2배만큼 추가매수
* 추가매수된 상태에서는 +3%익절, -5%손절
* 청산 후 3개봉까지는 신호가 발생해도 매수하지 않도록
위와같이 수정하고 싶은데 코드가 잘 만들어지지 않습니다. 도움주시면 감사하겠습니다.
2025-03-19
364
글번호 189335
답변완료
수식수정
input : 기간(15),간격(3);
var : 다(0),바(0),스(0),bs(-1);
다=Lowest(L[1],기간);
바=Highest(H[1],기간);
if L < 다[1] Then
bs = 0;
Else
{
if bs >= 0 Then
{
bs = bs+1;
if bs == 기간-간격 then
스 = 바;
}
}
var1 = ma(C,60);
if 스 > 0 and CrossUp(C,스) and CrossUp(C,var1) and max(스,var1) <= min(스,var1)*1.01 Then
Find(1);
====================================================================
위 수식은
종가가 다바스상단과 60단순이평을 저이격(1%이하)으로 돌파하는 종목검색용으로 작성해주신 것입니다.
실제 대입해 종목검색해보니 예를들면 오늘 DB손해,롯데칠성같이 해당않되는게 검색되고
픽셀플러스같이 해당되는건 검색되어서....
롯데칠성 DB손해보험 픽셀플러스
전일 종가 108,100 97,100 6,650
다박스상단 107,900 102,500 6,700
60이평 107,960 98,510.000 6,743.167
금일 종가 109,200 98,600 7,330
다박스상단 107,900 102,500 6,700
60이평 107,766.667 98,341.667 6,765.500
제 의도는 어제 종가는 다바스상단과 60단순이평아래였다가 금일 종가는 둘다 돌파하되 둘의 이격은 1%이하로 된 종목을 검색코저 하는 것입니다.
혹시 수식 끝부분 max(스,var1) <= min(스,var1)*1.01은 문제없는지, 뜻은?
검토요청드립니다.
2025-03-19
501
글번호 189334
답변완료
종목검색식 부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목검색식으로 부탁드림니다.
A=LinearRegressionvalue(C,period,0)
+
LinearRegressionSlope(C,period);
B=A/A(n)*100;
CROSSUP(B,100)
지표변수
Period 20
n 5
2025-03-19
362
글번호 189324
요타 님에 의해서 삭제되었습니다.
2025-03-19
13
글번호 189323
답변완료
문의드립니다.
진입제한 수식을 따로 만들고 싶습니다.
5, 20 이평선 골든/데드 국내선물 매매에 있어
매수 진입조건을 만족해도 해당봉 기준 직전 3개봉을 합쳐 총 60틱 이상 상승했다면 이 조건에 해당하는 동안은 신호가 안나오게 하고 싶습니다.
이 때 개장 직후 매수 진입 조건을 만족했는데 당일 직전 3개봉이 안되는 상태라면 전일 종가무렵 봉까지 포함해 직전 3개봉 합쳐 총 75틱 이상 상승했다면 적용되게도 가능할지 궁금합니다.
매도진입은 그 반대입니다.
노고에 미리 감사드립니다~
2025-03-19
281
글번호 189321
우유 님에 의해서 삭제되었습니다.
2025-03-19
15
글번호 189320