커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3183
글번호 230811
답변완료
수식 부탁드립니다
수고 하십니다.
아래 일봉 지표식을 분봉에 구현되게 변환 부탁드립니다.
수고 하세요.
############################
input : boxp(35);
var : LL(0),k1(0),k2(0),k3(0),Box1(False);
var : NH(0),idx(0),TopBox(0),BtmBox(0);
LL = lowest(l, boxp);
k1 = highest(h, boxp);
k2 = highest(h, boxp - 1);
k3 = highest(h, boxp - 2);
box1 = k3 < k2;
if H > k1[1] Then
{
NH = H;
idx = 0;
}
Else
{
if NH > 0 Then
{
idx = idx +1;
if idx == boxp-2 and box1 == true Then
{
TopBox = NH;
BtmBox = LL;
}
}
}
input : TOP색상(red);
input : BOT색상(blue);
Plot1(TOPbox,"다바스박스TOP",TOP색상);
Plot2(BTMbox,"다바스박스BTM",BOT색상);
2024-05-18
867
글번호 179672
답변완료
문의 드립니다.
input : StartTime(70000),EndTime(53000);
var : Tcond(False);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if Bdate != Bdate[1] Then
{
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = true;
if Tcond == true Then
{
var1 = DayHigh(1)-DayLow(1);
if MarketPosition <= 0 and CrossDown(c,DayOpen-var1*0.74) Then
Buy();
if MarketPosition >= 0 and CrossUp(c,DayOpen+var1*0.74) Then
Sell();
if MarketPosition == 1 Then
{
ExitLong("bx",AtLimit,DayLow[BarsSinceEntry]+(DayHigh[BarsSinceEntry]-DayLow[BarsSinceEntry])*0.99);
}
if MarketPosition == -1 Then
{
ExitShort("sx",AtLimit,DayHigh[BarsSinceEntry]-(DayHigh[BarsSinceEntry]-DayLow[BarsSinceEntry])*0.99);
}
}
위 수식어를 전체폭 대비로 수정을 부탁드립니다.
2024-05-18
996
글번호 179671
답변완료
검색식 부탁 합니다
ZLSMA고점
A=LinearRegressionvalue(C,기간1,0);
A1=LinearRegressionvalue(A,기간1,0);
eq=A-A1;
zlsma=A+eq;
HH=HighestSince(1,zlsma>zlsma(1),zlsma);
valuewhen(1,zlsma=HH&&zlsma>zlsma(1),HH,0)
지표조건
기간150
ZL선 50
A1= LinearRegressionValue(C,기간1,0);
A2= LinearRegressionValue(A1,기간1,0);
eq=A1-A2;
VL=A1+eq;
지표조건
기간1 50
1번 ZLSMA고점과 ZL선50이 같은 종목검색식 부탁 드립니다
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
지지와저항(트뷰)L
조건=Lowest(L,L기간+R기간+1)==L(R기간);
valuewhen(1,조건,L(R기간),-R기간)
지표조건
L기간 15
R기간 12
2번 1번 조건이만족하고 지지와저항L 돌파하는 종목 검색식도 부탁 드립니다
수식의 의미도 모르는 초자라서 엉뚱한 수식을 변환해 달라고
부탁을 드릴때도 만치만 이해해주세요
그럼 늘 감사한 마음으로 수고하시는 운영자님들의 축복을 기원합니다
2024-05-19
1204
글번호 179670
답변완료
시스템 작성의뢰
Input : Period1(1), Period2(15), Period3(30), Period4(60), Period5(120),period6(240),Period7(480), Period8(960), Period9(1920), Period10(3840),period11(7680);
var : Sma1(0),Sma2(0),Sma3(0),Sma4(0),Sma5(0),sma6(0),Sma7(0),Sma8(0),Sma9(0),Sma10(0),sma11(0),OBVV(0),PositiveVolumeIndex(0),dpo(0);
var:s(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Sma3 = ma(C,Period3);
Sma4 = ma(C,Period4);
Sma5 = ma(C,Period5);
sma6 = ma(c,period6);
Sma7 = ma(C,Period7);
Sma8 = ma(C,Period8);
Sma9 = ma(C,Period9);
Sma10 = ma(C,Period10);
sma11 = ma(c,period11);
수고 하십니다 ! 위수식을 적용해주시고
이동평균선3840 선까지 역배열 하고 240 이평선과 3840 이평선의 간격이 20 틱이상
벌어지고 1 평균거래량이 40 이상 증가하고 slope of volume 이 위아래로 1 이상 움직이고
er bear power 지표가 0.00 이상 올라가고 120 이평선이 240 이평선과 업크로스 할때
매수 하고
이동평균선3840 선까지 정배열 하고 240 이평선과 3840 이평선의 간격이 20 틱이상
벌어지고 1 평균거래량이 40 이상 증가하고 slope of volume 이 위아래로 1 이상 움직이고
er bear power 지표가 -0.00 이상 내려가고 120 이평선이 240 이평선과 다운크로스 할때
매도 하는 시스템을 부탁 합니다 !
2024-05-18
1009
글번호 179668
tjsdud 님에 의해서 삭제되었습니다.
2024-05-17
3
글번호 179667
답변완료
안녕하세요
1. exitlong에 대한 궁금증입니다
저말 자체에 일단 현재 포지션이 매수포지션이라는게 담겨 있는거라고 생각해서
marketposition==1 이나 <>0을 빼먹어도 잘 돌아갈때가 있었는데
가끔은 위의
marketposition==1 이나 <>0 을빼먹으면 이상한대서 청산 손절이 이뤄지더라고요
다시질문드리면
exitlong은 매수포지션이있을때만 작동할텐데 굳이 marketposition을 명시해야하는
이유가 있을까요?
---------------------------
2. 두번째는
exitshort("매도청산",atlimit, entryprice-var1);
exitlong("매수청산",atstop, entryprice+var1);
여기에서 매도청산주문은 잘 걸리는데
매수청산은 계획한것보다 너무 짧게 끝납니다. 보통 1-2봉 이내에서 로직과상관없이
청산되는데요
atstop을 atlimit로 바꿔도 보고, var1을 1.5pt등 다른 수치로 바꿨는데도
같습니다... 보통 이런 오류는 어떤 것때문에 발생하는 걸까요 ㅠㅜ
대충 의심되는 상황이라도 부탁드립니다...
--------------------------
3. 세번째는 분할진입에 대한 시스템 수식형태를 알고 싶습니다
예를들면 시가에서 1.5pt뜨면 1번매수 0.5pt까지 떨어지면 1개 추가매수
이런 수식작성을 부탁드립니다
2024-05-20
1290
글번호 179666
답변완료
안녕하세요 고생하십니다 수식작성 부탁드려요
음봉꼬리에서 매수하는 전략을 만들려고 합니다
변수a : 봉갯수
변수a-1 : 카운트한 봉갯수의 고저차 평균값보다 현재가가 얼마나 더 큰지
변수b : 가격회복의 크기 xx.x%
변수c : 가격회복의 크기 xx.x%
변수 a-1는 기초값을 1.5로 잡고 있구요. 카운트한 봉들의 평균 크기보다 1.5배 크다는 얘기겠죠
직전 봉 갯수 a 개를 고가-저가의 크기를 카운팅하고 (a의 초기값은 24)
변수 a-1을 만족했을때
"현재봉"의 "고가-저가의 크기"/ a봉의 평균 봉크기 > 1.5 라면
1.현재봉의 꼬리를 만들며 가격이 변수 b에 도달했을때나
2.현재봉은 꼬리없이 음봉으로 마무리하고 다음 양봉의 가격이 변수 b를 도달했을때 매수하는 포지션이요 (b초기값은 61.8%)
꼬리의 크기를 구하는 방법은 진입봉의 "시가-저가/종가-저가" 하면 나올까요?
두번째는 변수c로 "진입봉 다음봉의 가격이 진입봉에서 지정된 변수c(회복값 23.6%)에 다시 도달하였을때" 매수청산과 매도진입을 동시에 하게 해주세요.
손익절은
if MarketPosition == 1 Then
{
ExitLong("BL",AtStop,C[BarsSinceEntry+1]-PriceScale*손절틱수);
ExitLong("BP",AtLimit,C[BarsSinceEntry+1]+PriceScale*익절틱수);
}
if MarketPosition == -1 Then
{
ExitShort("SL",AtStop,C[BarsSinceEntry+1]+PriceScale*손절틱수);
ExitShort("SP",AtLimit,C[BarsSinceEntry+1]-PriceScale*익절틱수);
}
이걸로 했을때 종가기준이 아닌 조건만족시 즉시 체결된 상황으로 테스트가 될까요?
월요일부터 고생하십니다 좋은 한주 되십시오 감사합니다.
2024-05-20
1362
글번호 179665
답변완료
문의드립니다.
안녕하세요.
일봉으로 거래 시, 시가 분할 매수 후 매도하는 간단한 수식을 짰는데
생각대로 잘 안되는 것 같아서 조언을 부탁드립니다.
항상 감사드립니다.
즐거운 주말 보내세요.
if marketposition ==0 then
{
 if nextbarsdate !=sdate then
 {
  buy("b1", atstop, nextbaropen);
  buy("b2", atstop, nextbaropen*0.97); 
 }
}
//당일 이후에 분할 매수 들어갈 경우
if marketposition == 1 and maxentries ==1 then
{
  buy("b3", atstop, latestentryprice*0.97); 
}
exitlong("bx", atlimit, entryprice * 1.05); //진입가가 아닌 기준가격(시가)로 매도하고 싶은데 nextbaropen은 안되네요.
exitlong("bx2", atstop, entryprice * 0.95);
//추가문의 : 일봉으로 거래할 때도 시분초 등으로 넣어서 특정 시간 이후에 진입/청산을 할 수 있게 만들 수 있나요???
2024-05-17
1092
글번호 179663
답변완료
같은 로직이 두개의 증권사에서의 성과가 너무나 다르게 나타나는 이유는?
같은 로직으로 두개의 증권사에서 같은 분봉으로 시뮬레이션 챠트를 돌려보니 총손익이 너무나 차이가 나는데 이유가 무엇인지요?
2024-05-15
983
글번호 179660