커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1509
글번호 230811
답변완료
수식문의
안녕하세요?
수식 부탁드립니다.
감사합니다.
2023-09-01
961
글번호 172005
답변완료
nthhighestbar 이거 함수 정상작동 하도록 구현 요청드립니다.
83573 번 문의한 내용답변 잘봤씁니다 그럼 궁금한게 검색식에서 nthhighestbar와 동일한 기능을 하도록 구현하고싶은데 어떻게 구현해야되는지궁금합니다.
작성해주신 내용은 nthhighestbar(1,h,48) 에서만 작동하는데
예를들어 nthhighestbar(3,h,48) 혹은 nthhighestbar(5,c,48) 이런것도
작동하도록 검색식에서 구현하고싶은데 어떻게할지궁금합니다.
안녕하세요
예스스탁입니다.
수식은 계산에 필요한 최소봉수(MaxBarsBack) 이후에 계산을 하게 됩니다.
수식에 NthHighestBar(1,h,period)가 있기 때문에
내부적으로 MaxBarsBack이 48로 고정으로 잡히게 됩어
48개 이상 봉이 없는 종목은 검색되지 못합니다.
아래와 같이 작성하시면 MaxBarsBack를 1로 잡히게 할수 있습니다.
루프로 현재봉에서 첫봉까지 가면서 최고가를 계산하고
이전봉이 48개봉 이전이면 루프를 멈추게 됩니다.
input : period(48);
var : hh(0),cnt(0);
hh = 0;
For cnt = 0 to Index
{
if (hh == 0 or (hh > 0 and h[cnt] > hh)) and cnt < period Then
hh = h[cnt];
#for문 빠져나감
if cnt >= period Then
cnt = Index+1;
}
if h == hh Then
Find(1);
즐거운 하루되세요
> 여유로운투자 님이 쓴 글입니다.
> 제목 : 검색함수가 정상작동하지않습니다.
> input : period(48);
var : nflagh(0),nflagCnt(0);
if nflagcnt!= 0 Then
nflagcnt = nflagcnt + 1;
var1 = BarIndex;
if BarIndex+1 >= period Then
{
if NthHighestBar(1,h,period)==0
//&& NthHighestBar(1,h,period)[1]!=0
Then
{
Find(1);
}
}
Else
{
if nflagh < h Then
{
nflagh = h;
nflagcnt = 1;
}
if LastBarOnChart==1 Then
if nflagcnt==1
//&& nflagcnt[1] != 1
Then
Find(1);
}
48봉중 최고가인 검색식을작성했습니다.
신규주나 생긴지 얼마안되는 것은 즉 48봉 미만인경우는 아래 else를타고 48봉 이상이 존재하는 주식은 if 문을 타도록 구현했는데요 지표에서는 잘 작동하는데 검색식으로는
위에 해당하는종목이 검색이안됩니다. 예를들어 오늘 뷰노같은 경우는 아에 검색식에 뜨지 않습니다.
디버깅해보니 NthHighestBar 함수 존재 유무에따라 검색이 되고 안되는 거같은데
이거 NthHighestBar 함수가 파라미터에 들어오는수만큼 없는경우는 검색식인경우 정상작동하지 않는 거같은데요 확인 요청드립니다.
아 해당검색식은 월봉에서 찾는걸로 수행했습니다 월봉상 48벙미만인정목은 해당함수때문에아에검색동닥이안하네요 ㅠㅜ
그리고해당함수에문제가있다면 우회해서 제가짜고싶은로직은 어떻게구현해야하나요?
2023-08-30
1283
글번호 172004
답변완료
부탁드립니다
1. 2개 이상 연속된 양봉이 발생한 후 음봉이 하나 발생하면 해당 봉에 파란색으로, 2개 이상 연속된 음봉이 발생한 후 양봉이 하나 발생하면 해당봉에 빨강색으로 구현해 주세요
2. 종가가 2개 이상 연속된 양봉이고, 가장 최근의 2개 이상 연속된 음봉을 합한 최고가 이상으로 올라가면 파란색으로, 종가가 2개 이상 연속된 음봉이고, 가장 최근의 2개 이상 연속된 양봉을 합한 최저가 이하로 내려가면 빨강색으로 구현해 주세요
고맙습니다.
2023-08-30
1223
글번호 172003
답변완료
키움 수식 예스랭귀지 구현 문의합니다.
안녕하세요.
아래 키움 수식을 예스랭귀지로 구현하고 싶습니다.
Period 10
span 10
종목 검색과
검색된 봉의 고가를 돌파하는 양봉을 검색하고 싶습니다.
감사합니다.
AA=crossup(C,
max((highest(high(25),9)+
lowest(low(25),9)+
highest(high(25),26)+
lowest(low(25),26))/4 ,
(highest(high(25),52)+
lowest(low(25),52))/2));
VV=V>highest(V(1), Period);
a60 = avg(c,60);
b60 = (a60(0)/c) - (a60(1)/c);
BB=crossup(b60,0);
CC=barssince(crossdown(b60,0));
AA and BB and VV and (CC>span)
2023-08-30
1216
글번호 172002
회원 님에 의해서 삭제되었습니다.
2023-08-30
35
글번호 172001
답변완료
83515 답변 주신 것에 추가 문의. 진입, 청산 조건 질문입니다.
도움을 주신것에 항상 감사드립니다.
첨부된 이미지에서
각각의 빨강, 검정, 파랑 구간에서 매매 진입하는 코드를
지난번에 알려주셨는데요.
코드는 아래와 같습니다.
=======================================================
input : ntime(100000), xtime(230000);
var : Tcond(False), oo(0), k(0), j(0);
array : flag[3](0);
array : up[2](0), middle[2](0), down[2](0);
array : up_TL[2](0), middle_TL[2](0), down_TL[2](0);
array : up_cnt[2](0), middle_cnt[2](0), down_cnt[2](0);
array : up_text[2](0), middle_text[2](0), down_text[2](0);
// 중간 수식 생략...
var : t(0);
if (sdate != sdate[1] and stime >= ntime) or
(sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then
{
T = 0;
}
if Tcond == true Then
{
if T == 0 Then
{
if up_cnt[1] >= 6 or up_cnt[2] >= 6 Then
T = 1;
if middle_cnt[1] >= 6 or middle_cnt[2] >= 6 Then
T = 2;
if down_cnt[1] >= 6 or down_cnt[2] >= 6 Then
T = 3;
}
if T == 1 Then
{
if MarketPosition <= 0 and CrossUp(C,up[2]) Then
Buy("b1");
if MarketPosition >= 0 and CrossDown(C,up[1]) Then
Sell("s1");
if MarketPosition == 1 Then
ExitLong("Bp1",AtLimit,up[2]+(up[2]-up[1])*3);
if MarketPosition == -1 Then
ExitShort("sp1",AtLimit,up[1]-(up[2]-up[1])*3);
}
if T == 2 Then
{
if MarketPosition <= 0 and CrossUp(C,middle[2]) Then
Buy("b2");
if MarketPosition >= 0 and CrossDown(C,middle[1]) Then
Sell("s2");
if MarketPosition == 1 Then
ExitLong("Bp2",AtLimit,middle[2]+(middle[2]-middle[1])*3);
if MarketPosition == -1 Then
ExitShort("sp2",AtLimit,middle[1]-(middle[2]-middle[1])*3);
}
if T == 3 Then
{
if MarketPosition <= 0 and CrossUp(C,down[2]) Then
Buy("b3");
if MarketPosition >= 0 and CrossDown(C,down[1]) Then
Sell("s3");
if MarketPosition == 1 Then
ExitLong("Bp3",AtLimit,down[2]+(down[2]-down[1])*3);
if MarketPosition == -1 Then
ExitShort("sp3",AtLimit,down[1]-(down[2]-down[1])*3);
}
}
=========================================================================
T = 1,2,3 중에서 먼저 6번 이상 터치한 곳에서
진입을 시작하는데요.
진입한 이후에 손절될 경우
다시 가격을 터치하면 재진입을 하는데,
그때마다 손실 금액에 따라 진입 수량을 변형하는 수식을 짜고 싶습니다.
예를 들면)
현재는
빨강 박스에서 먼저 6번 이상 터치되면
빨간선 상단 터치시 매수
빨간선 하단 터치시 매수 청산 후 매도.
다시
빨간선 상단 터치시 매도 청산 후 매수....
이런식으로 반복하다가
빨간선 상단과 하단 폭의 3배 구간에서 익절로
거래가 마무리 되는 수식인데요.
이것을
빨간선 상단 , 하단 폭이 10틱이면(익절은 30틱이됨)
빨간선 상단 터치시 매수 진입 1계약 (이후에 만약 익절되면 거래종료)
빨간선 하단 터치시 매수 청산 후 매도 1계약.(누적손실 : -10틱)(이후에 만약 익절되면 거래종료)
빨간선 상단 터치시 매도 청산 후 매수 1계약.(누적손실 : -20틱)(이후에 만약 익절되면 거래종료)
빨간선 하단 터치시 매수 청산 후 매도는 2계약.(누적손실 : -30틱)(이후에 만약 익절되면 거래종료)
빨간선 상단 터치시 매도 청산 후 매수 2계약.(누적손실 : -50틱)(이후에 만약 익절되면 거래종료)
.........
위와 같이 빨간 박스 구간 안에서 생긴 누적된 손실을 익절 한번으로 수익
청산하고 거래 종료하는 수식을 작성하고 싶습니다.
거래시마다 수수료 포함하여 누적되는 손실을 체크해
단 한번의 익절로 수익으로 거래가 마감되도록 수량을 조절하는 수식입니다.
제 머리로는 어떻게 해야할지 감이 안오네요ㅠ
부탁드립니다.
2023-08-30
858
글번호 172000
회원 님에 의해서 삭제되었습니다.
2023-08-30
29
글번호 171999
회원 님에 의해서 삭제되었습니다.
2023-08-30
27
글번호 171998
답변완료
문의드립니다.
수고많으십니다.
시가매매를 할려고 하는데
당일 시가보다 40틱이상 올라간 적이 있고
고점찍고 하락하다 시가에서 10틱 위에 왔을때부터 그 이하로 내려간 후 시가기준 시가에서 20틱 위로 다시 올라가면 매수, 만일 계속 내려가 시가 아래로 15틱 이상 밑으로 가면 매도 신호가 나오는 식을 만들고 싶습니다.
즉 시가위 11틱까지 내려오고 올라가도 매수신호가 작동하지 않습니다. 오직 시가위 10틱이하를 찍고 시가기준 20틱 위로갈 때만 매수신호입니다.
선물이라 꺼꾸로된 식도 부탁 드리겠습니다.
미리 감사드립니다.
2023-08-30
1090
글번호 171997