커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1326
글번호 230811
답변완료
수식 수정 의뢰 드립니다.
안녕하세요!
아래 수식은 지난번에 만들어 주셔서 잘 사용하고 있습니다.
아래 수식에 전일 고가, 저가, 종가, 시가를 선으로 나타나도록 수식을 수정해 주시길 요청드립니다.
또한 당일 진폭값을 수치로 우측 하단쪽에 나타나도록 수정해 주시길 요청드립니다.
감사합니다.
var : v1(0),v2(0),atm(0),cnt(0),value(0);
Array : TL[20](0),TX[20](0);
if NextBarBdate != Bdate Then
{
v1 = Floor(NextBarOpen/2.5)*2.5;
v2 = C-v1;
if v2 > 2.5/2 Then
atm = v1+2.5;
Else
atm = v1;
value = ATM-2.5*5;
For cnt = 0 to 20
{
TL_Delete(TL[cnt]);
TL[cnt] = TL_New(sDate,sTime,value+1.25*cnt,NextBarSdate,NextBarStime,value+1.25*cnt);
TL_SetExtLeft(TL[cnt],true);
TL_SetExtRight(TL[cnt],true);
TL_SetColor(TL[cnt],IFf(cnt%2==0,Black,Gray));
TL_SetSize(TL[cnt],IFf(cnt%2==0,1,0));
TL_SetStyle(TL[cnt],IFf(cnt%2==0,1,3));
Text_Delete(TX[cnt]);
TX[cnt] = Text_New(NextBarSdate,NextBarStime,value+1.25*cnt," "+NumToStr(value+1.25*cnt,2));
Text_SetStyle(TX[cnt],0,1);
}
}
Else
{
For cnt = 0 to 20
{
Text_SetLocation(TX[cnt],NextBarSdate,NextBarStime,value+1.25*cnt);
}
}
2025-03-27
341
글번호 189621
답변완료
검색식 부탁드립니다
1) 캔들의 몸통 길이가, 전체길이의 절반이상 인 음봉 종목검색식
부탁드립니다.
2) 지수이평 60을 돌파 또는 돌파후 떨어지는(꼬리,음봉 몸통) 모든 종목검색식
(단, 음봉, 양봉, 꼬리까지 모두포함-터치하면 포함)
2025-03-27
352
글번호 189620
답변완료
지표식 부탁합니다
안녕하십니까
분봉에서 첫봉의 종가를 선으로 만들고 싶습니다 도와주세요
2025-03-27
340
글번호 189619
qormswhd 님에 의해서 삭제되었습니다.
2025-03-27
22
글번호 189615
답변완료
수식 부탁드립니다
안녕하세요 현재 사용하고있는 파이썬트레이딩을 예트를옮기는 코딩을 하고싶어서 글을 남깁니다.
1. 파이썬 매매신호를 TXT파일로 익스포트
2. 예스랭귀지 TXT파일을 불러와서 매수, 매도, 청산 신호로 변경적용 (백테스트 및 실전)
이게 가능한가요?? 가능하다면 TXT를 읽어와서 하는 방법을 작성 부탁드립니다.
2025-03-27
298
글번호 189614
답변완료
문의
아래 청산수식을 검토해주십시요.
문제점은 inactivity 청산에서 확인됩니다.
(손절,추적스탑,익절은 구별이 힘든데 최소가격변화는 빈도가 적어서 문제를 발견했습니다)
청산수식 전체에 문제가 있을 거 같습니다.
첨부파일은 inactivity 청산내역입니다.(별첨1,2)
inactivity 수식은 b1과 s1에는 없고 b2,b3와 s2,s3 수식에만 있는데
b1과 s1 청산결과에 나타납니다.(별첨1)
s3를 시뮬레이션하면 값들이 나오는데 inactivity 청산결과는 없습니다.(별첨2)
*진입내용
b1과 s1은 리버스 거래
b2는 고점돌파(직전 포지션 매수)
b3는 고점돌파(직전 포지션 매도)
s2는 저점돌파(직전 포지션 매수)
s3는 저점돌파(직전 포지션 매도)
*진입순서(b1,s1 신호가 모두 나온 후 고점이나 저점을 돌파할 때)
b1-s1-b3 1차 매수 / 2차 매도 / 3차 고점돌파
b1-s1-s3 1차 매수 / 2차 매도 / 3차 저점돌파
s1-b1-b2 1차 매도 / 2차 매수 / 3차 고점돌파
s1-b1-s2 1차 매도 / 2차 매수 / 3차 저점돌파
항상 고맙습니다.
*******************************************************************************
input : ls1(2.75),gl1(8.75),tr1(2.75); // 1차 b1진입
input : ls4(1.75),gl4(6.75),tr4(1.75); // 2차 s1진입
input : ls2(1),gl2(7.75),tr2(2.5); // 1차 s1진입
input : ls3(1.75),gl3(999999),tr3(1.75); // 2차 b1진입
input : bbls(1),bbgl(999999),bbtr(1.75),b2mi(999999),b2bg(999999); // 3차 "b2"진입
input : bsls(1.75),bsgl(999999),bstr(3.25),b3mi(999999),b3bg(999999);// 3차 "b3"진입
input : sbls(3),sbgl(999999),sbtr(3),s2mi(4.5),s2bg(1200); // 3차 "s2"진입
input : ssls(1.5),ssgl(1.25),sstr(2.25),s3mi(7),s3bg(2000); // 3차 "s3"진입
var : entry(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if MarketPosition == 1 and IsEntryName("b1") == true Then
{
//매수진입이 첫진입일때
if entry == 1 Then
{
SetStopLoss(ls1,PointStop);
SetStopProfittarget(gl1,PointStop);
SetStopTrailing(tr1,0,PointStop);
}
Else //매수진입이 두번째진입일때
{
SetStopLoss(ls3,PointStop);
SetStopProfittarget(gl3,PointStop);
SetStopTrailing(tr3,0,PointStop);
}
}
Else if MarketPosition == -1 and IsEntryName("s1") == true Then
{
//매도진입이 첫진입일때
if entry == 1 Then
{
SetStopLoss(ls2,PointStop);
SetStopProfittarget(gl2,PointStop);
SetStopTrailing(tr2,0,PointStop);
}
Else //매도진입이 두번째진입일때
{
SetStopLoss(ls4,PointStop);
SetStopProfittarget(gl4,PointStop);
SetStopTrailing(tr4,0,PointStop);
}
}
if MarketPosition== 1 Then //고점돌파시
{
if IsEntryName("b2") == true Then //직전 포지션 매수
{
SetStopLoss(bbls,PointStop);
SetStopProfittarget(bbgl,PointStop);
SetStopTrailing(bbtr,0,PointStop,1);
SetStopInactivity(b2mi,b2bg,PointStop);
}
Else if IsEntryName("b3") == true Then //직전 포지션 매도
{
SetStopLoss(bsls,PointStop);
SetStopProfittarget(bsgl,PointStop);
SetStopTrailing(bstr,0,PointStop,1);
SetStopInactivity(b3mi,b3bg,PointStop);
}
}
if MarketPosition== -1 Then //저점돌파시
{
if IsEntryName("s2") == true Then //직전 포지션 매수
{
SetStopLoss(sbls,PointStop);
SetStopProfittarget(sbgl,PointStop);
SetStopTrailing(sbtr,0,PointStop,1);
SetStopInactivity(s2mi,s2bg,PointStop);
}
Else if IsEntryName("s3") == true Then //직전 포지션 매도
{
SetStopLoss(ssls,PointStop);
SetStopProfittarget(ssgl,PointStop);
SetStopTrailing(sstr,0,PointStop,1);
SetStopInactivity(s3mi,s3bg,PointStop);
}
}
2025-03-27
346
글번호 189613
qormswhd 님에 의해서 삭제되었습니다.
2025-03-27
13
글번호 189607
답변완료
수식 부탁드립니다
다음 수식의 변환을 부탁드립니다.
T=Ttsf(C,50);
H=shift((highest(high,midPeriod)+lowest(low,midPeriod))/2,midperiod-26);
TTD=eavg(T,100);
TT=(highest(TTD,shortPeriod)+lowest(TTD,shortPeriod)+highest(TTD,midPeriod)+lowest(TTD,midPeriod))/4;
TT;
TTT=TEMA(T,240);
TT2=(highest(TTT,longPeriod)+lowest(TTT,longPeriod))/2;
TT2;
CrossUp(C,TT) and CrossUp(C,TT2)
shortperiod 9
midperiod 26
longperiod 52
감사드립니다.
2025-03-27
287
글번호 189606
2wnwn 님에 의해서 삭제되었습니다.
2025-03-27
26
글번호 189605