커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7487
글번호 230811
답변완료
문의드립니다.
안녕하세요. 일봉볼리져를 분봉에 나타나게 아래와 같이 만들어 주셨는데요,,,
변수를 하나 더 넣고 싶은데요,,,
1일 볼린져, 2일 볼린져, 3일 볼린져식으로,,,, "일"을 변수로 넣어주실수 있나요?
그러니깐 변수가 (____일, 20,2) 이렇게 3가지로 부탁드립니다.
#####################################################################
# 분봉에서 일봉 볼린져밴드 계산 시작
input : dayPeriod(2),dayDv(2),aa(0);
var : daysum(0),daycnt(0),dayma(0),daySumSqrt(0),dayStdv(0);
var : dayBBup(0),dayBBdn(0),dayCounter(0);
#일봉 이동평균 계산
daysum = 0;
for daycnt = 0 to dayPeriod-1{
daysum = daysum + DayClose(daycnt);
}
dayma = daysum/dayPeriod;
#표준편차 계산
If DayClose(dayPeriod) != 0 Then {
daySumSqrt = 0;
For dayCounter = 0 To dayPeriod - 1 {
daySumSqrt = daySumSqrt + (DayClose(dayCounter) - dayma)^2;
}
dayStdv = SquareRoot(daySumSqrt / dayPeriod);
}
Else
dayStdv = 0;
# 일봉 볼린져밴드 계산
dayBBup = dayma + (dayDv * dayStdv);
dayBBdn = dayma - (dayDv * dayStdv);
plot1(dayBBup ,"상단");
plot2(dayma,"중단");
plot3(dayBBdn,"하단");
2014-10-10
152
글번호 79225
답변완료
질의한 답변에 이해가 안되는 것 재 문의합니다!!
1. 변수 선언의 차이점이 무엇인지요?
가. var : diff(0,data2),HH(0,data2);
나. var : diff(0), HH(0);
위 가의 경우 data2을 추가한 것과 나의 경우 생략한 것의 차이점이 궁금합니다!!!
2. 앞전에 질의한 2의 답변 수식에서 아래의 경우
if data2(crossup(data2(c),data3(c)) or CrossDown(data2(c),data3(c))) Then{
HH = diff;
}
식은 상향돌파 혹은 하향돌파할 경우 diff값을 구하는 식으로 이해가 됩니다!!!
그러나 제가 질의한 것은 data2와 data3이 가장 크게 벌어질 때의 HH값을 구하고 이 HH값의 50%이하 수준으로 좁혀지는 시점에서 진입할려고 하는 의도입니다!!!
또한 if식에서 data2을 처음에 정의하지 않고
if crossup(data2(c),data3(c)) or CrossDown(data2(c),data3(c)) Then{
HH = diff;
}
위 식처럼 data2를 빼면 어떤 차이점이 있는지요???
결론)
1. 변수선언과 if식에서 data2를 첨부한 이유는 무엇인지요???
2. 상향돌파 혹은 하향돌파가 아니라 이격의 최대값에서 50% 이하 하향할 때 진입할려는 수식 부탁드립니다!!!
감사드립니다!!!
====================================================================================
안녕하세요
예스스탁입니다.
1-1 과거 영업일까지 120봉을 적용하는 경우
#data2 KP 선물매수호가총건수
#data3 KP 선물매도호가총건수
if data2(crossup(data2(c),data3(c)) and countif(crossUP(data2(c),data3(c)),120) >= 3) then
buy();
if data2(CrossDown(data2(c),data3(c)) and countif(CrossDown(data2(c),data3(c)),120) >= 3) then
sell();
1-2
if data2(date != date[1]) Then{
upcnt = 0;
dncnt = 0;
}
if data2(dayindex < 120) Then{
if data2(crossup(data2(c),data3(c))) Then
upcnt = upcnt+1;
if data2(crossup(data2(c),data3(c))) Then
upcnt = upcnt+1;
}
Else{
upcnt = data2(countif(CrossUp(data2(c),data3(c)),120));
dncnt = data2(countif(CrossDown(data2(c),data3(c)),120));
}
if data2(crossup(data2(c),data3(c)) and upcnt >= 3) then
buy();
if data2(CrossDown(data2(c),data3(c)) and dncnt >= 3) then
sell();
2.
var : diff(0,data2),HH(0,data2);
diff = Abs(data2(c)-data3(c));
if data2(crossup(data2(c),data3(c)) or CrossDown(data2(c),data3(c))) Then{
HH = diff;
}
if diff > HH Then
HH = diff;
if HH <= diff*0.5 Then{
if data2(c) > data3(c) Then
sell();
if data2(c) < data3(c) Then
buy();
}
즐거운 하루되세요
> HI_jj***** 님이 쓴 글입니다.
> 제목 : 수식부탁드립니다
> 매번 감사드립니다!!!
1. 참조지표 중에서 KP 선물매수호가 총건수가 KP 선물매도호가 총건수를 직전 120봉 중에서 상향돌파한 횟수가 3회 이상일 경우 매수 진입하고 반대로 하향돌파하는 경우에 매도 진입하는 시스템식 부탁드립니다!!!
- 당일 시가 이후에만 120봉을 적용하는 경우
- 과거 영업일까지 120봉을 적용하는 경우
2. KP 선물매수호가 총건수와 KP 선물매도호가의 총건수의 갭 차이가 가장 클때보다 50% 감소할 때 KP 선물매수호가 총건수가 양수이면 매도 진입하고 반대로 KP 선물매수호가 총건수가 음수이면 매수진입 시스템식 부탁드립니다!!!
2014-10-10
199
글번호 79224
답변완료
청산 적략 부탁드립니다.
1
전략 청산 부탁 드립니다.
12틱 상승 이후 현재가와 매수가가 같으면 본정
20틱 상승 이후 현재가 매수가 + 3틱 이면 청산
25틱 상승 이후 현재가 매수가 + 5틱 이면 청산
2
전략 청산 이후 15개봉 이내에 진입금지
목표가 SetStopProfittarget 이후 15개봉 이내에 진입금지
손절후 15개봉 이내에 재매수 금지 또는 15분 이내 매수 금지
3
하루 수익 50틱 이상인경우 매매종료
하루 손해 30틱 이상인경우 매매 종료
하루 5번 이상 진입금지.
4
특정 요일/시간때 무포지션 및 진입 금지
ex) 2014/10/18 02시20분 ~ 40분 무포지션 및 진입 금지
부탁드립니다.
2014-10-10
202
글번호 79223
답변완료
문의
예전 문의한 것 중 답변 안 주신게 있어서 다시 문의 합니다.
시스템 매도 매수 신호 진입 후에.. 연속2개의 양봉이 발생한 횟수, 연속2개 음봉이 발생한 횟수를 구하는 식도 부탁드립니다.
진입한 시점부터 횟수를 계산하고.. 20개 봉이 넘어가면..
현재봉에서 앞전 20개봉의 횟수만 비교해서 양봉 음봉의 비율을 비교해서 ...
시간이 지나 매수일때 음봉의 비율이 양봉의 비율을 넘어서면 청산 후 매도진입..
매도일때 양봉의 비율이 음봉 비율을 넘어서면 청산후 매수진입 시스템 식 부탁드립니다.
38382 번 추가 문의입니다.
답변 감사드립니다.
1틱 차트에서 50틱 차트를 참조하지 못하면... 예스스팟에서..
1틱차트와 50틱 차트의 신호를 복합해서.. 신호를 낼수 있는걸로 알고있습니다.
혹시 신호를 낸다면... 예스스팟에서 나오는 신호도.. 차트에 별도로 표시할수있나요?
그리고..2번 답변에서요..
1틱차트를 중간에 실행시키면차트의 시작점이 07시를 훌쩍 넘어서.... 신호가 나오지 않아서 그러는데.. 그거는
실행할때마다.. 차트가 언제 시간대에서 시작했는지 보고.. 항상 초기화의 시작점을 별도로 지정해 줘야한다는 거죠? 이런 답변이 맞는거죠?
stime을 쓰는 의미는 시스템 트레이딩을 시작하는 첫 시작 봉을 정해준다. 라는 의미도 있는건 아닌가요?..
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의
> 안녕하세요
예스스탁입니다.
1.
수식은 참조데이터(data2)를 이용하는 식으로 변경해 드립니다.
다만 차트에서 참조데이터는 10틱이상일때만 적용가능합니다,
1틱차트에서는 참조데이터 사용하실수 없습니다.
//////////////////////////// 초기화 /////////////////////////////
if stime == 070500 or (stime > 070500 and stime[1] < 070500) Then {
daycnt = daycnt + 1;
T = 0;
}
2.
해당 부분은 방법이 없습니다.
전략실행차트는 최대 봉조회갯수가 5000개입니다.
또한 현재봉으로부터 3시간전 4시간전은 수식에서 지정해서 신호를 발생할수 없습니다.
모든 수식은 과거에서 현재봉쪽으로만 계산이 됩니다.
현재봉에서 3시간전은 현재봉까지 와서 시간을 확인해야 하는데
현재봉까지 오면 과거로 돌아가서 신호를 발생해야 하는데
과거로 다시 역행하는 내용은 수식에서 구현이 되지 않습니다.
즐거운 하루되세요
2. 초기화 부분에서요..
현재 이렇게 되어 있습니다.
if stime == 070500 or (stime > 070500 and stime[1] < 070500) Then
daycnt = daycnt + 1;
첫봉의 시작시간이 오전 07:05분에 시작될때 부터 신호가 발생하게 되어 있는데요..
기존에 50틱 차트에서는 아무 문제없었는데요. 1틱차트에서는 아침에는 아무문제없지만..
오후에 다시 HTS를 시작하게 되면 1틱차트의 첫봉이 아침 07시가 아닌... 3~4시간전 부터 봉이 시작합니다.(현재 5,000개 봉 조회) 이때는 신호가 발생하지 않습니다.
그걸 이렇게 바꿔 봤는데..
// 현재시간에서 3시간 전부터 신호 발생하고 싶습니다.
// 우리선물1틱데이타 너무 안보여줍니다.
if stime == (CurrentTime-30000) or (stime > (CurrentTime-30000) and stime[1] < (CurrentTime-030000)) Then
역시 신호가 나오지 않네요.. 도움 부탁드립니다.
2014-10-10
182
글번호 79222
답변완료
지난 20년간 코스피 200 선물 분봉 데이터를 얻을 수 있을까요?
지난 20년간 코스피 200 선물 분봉 데이터를 얻을 수 있을까요?
대신 cybos 사용하는데
과거 몇달치 밖에 얻을수가 없네요
혹시 얻을수 있나요?
2014-10-09
187
글번호 79221
답변완료
질문하나 드립니다
시고저종 바차트에다 지표식으로 색깔을 입힐수 있나요??
예를들어
20이평이 어제보다 오늘 상승하고 macd오실레이터가 상승하면 녹색
20이평이 어제보다 오늘 하락하고 macd오실레이터가 하락하면 빨강
위 두사항에 해당없으면 파랑...
이런식으로요...
가능하다면 부탁드려요~
수고하세요 ^^
2014-10-09
158
글번호 79220
답변완료
수식문의
1.최고거래량체결될때의 현재 C값을 수식부탁합니다
2.아래의수식을 반대로(역수식) 나오게해주세요
3.아래의수식을 데이타2의표식의로 바꾸어주세요 감사합니다
Input : shortPeriod(5), longPeriod(20), Period(4),중심(10);
Var : value(0) , macdosc(0) ;
value = MACD(shortPeriod, longPeriod);
macdosc = value-ema(value,Period);
PlotBaseLine1(0, "중심");
Plot1(ema(value,Period), "1차상승");
Plot2(ema(value,중심), "2차상승");
if value > 0 Then
Plot3(value, "현재가",RED);
Else
Plot3(value, "현재가",GREEN);
3
2014-10-09
166
글번호 79219
답변완료
문의드립니다.
안녕하세요
참조데이타 사용시 문의 드립니다.
참조데이타의 가격을 지정해서 매매를 하려하는데 특정 가격 입력라인을 변수로 처리해서 바꿀수 있을까요?
예를들면 참조데이타2 가격이 10만원이라 할때
if crossdown(data2(c),1.0) then
buy();
이러면 참조데이타 가격이 10만원 이탈시 매수가 되죠?
이때 가격을 변수처리하여 수시로 바굴수 있도록 하려 합니다.
가능하다면 수식 부탁 드립니다.
2) 주차트와 참조데이타를 사용해서
주 차트 에서 가격이 하락하여 저점을 찍고 참조데이타에서 가격이 하락하여 저점을 찍었을때 를 횡선으로 표시하려 합니다.
예를들어서 주차트 가격이 시가가 저가이거나 또는 10만원에서 하락하여 9만원이 되었고 더이상하락하지 않아 저점이탈이 없는데 참조데이타도 9만5천원에서 하락하여 9만원이 되었다면 주차트의 저점 9만원과 참조데이타의 저점 9만원이 만나는 그 가격에 횡선으로 표시하려 합니다.
감사합니다.
2014-10-09
190
글번호 79218
답변완료
문의드립니다..
분봉으로(예를 들어 5분봉이든, 10분봉이든) 당일거래를 하고 싶은데요...
피봇으로 해서...
피봇 = (DayHigh(1)+daylow(1)+dayclose(1))/3 ;
저항1 = 2 * 피봇 - daylow(1);
저항2 = 피봇 + DayHigh(1)-DayLow(1);
지지1 = 2 * 피봇 - DayHigh(1);
지지2 = 피봇 - DayHigh(1) + DayLow(1);
장중에 지지2를 현재가가 하락 돌파하면 매도집입을 하고 싶은데요..
단, data2에 코스피지수를 참조해서 분봉이 아닌 일봉기준으로,
코스피지수의 볼린저밴드의 하단 밑에 있지않아야 합니다..
제가 실력이 모자라서요..부탁드립니다...
2014-10-09
187
글번호 79217