커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8141
글번호 230811
답변완료
분봉에서 당일 봉만 계산한 수식
안녕하세요 고생이 많으십니다.
분봉을 이용한 매매시스템을 만들려고하는데, 분봉 중 당일 생성되는 봉만을 고려하여 지표를 활용하여 시스템을 짜고 싶습니다.
그러나 단순이 ma(C,5)를 활용하면, 전일 발생한 신호때문에 당일 시초에 매매가 이루어지는 문제가 있습니다.
전일의 분봉 및 신호를 무시하도록 시스템을 짜고 시뮬레이션 할 수 있는 방법이 있을까요?
오류가 발생한 화면 "첨부파일" 참고 부탁드립니다.
첨부파일 예시1)
5일(5분) 이동평균선이 Demark 기준선을 Crossup할 시 매수하는 로직임.
7/3일 당일은 신호가 발생하지 않지만, 전일 높은 장마감 가격에 의해 5일 이평선이 7/3일 생성된 Demark 기준선을 (7/2 종가 또는 7/3일 시가에) Crossup하게되므로 전일 장마감시 발생한 신호에 의해 7/3일 장개시와 함깨 매수신호가 발생하는 오류.
첨부파일 예시2)
마찬가지로 당일 높은 갭상승에 의해서 5일 이평선이 영향을 받아 Crossup을 만들어내는 오류입니다. 당일 봉의 추이로만 보면 Crossdown이 나와야 하나 전일 봉이 고려되어 Crossup이 나오게되는 오류가 생기는 문제입니다.
문제되는 부분만 코드 발췌하였으니 참조 부탁드립니다.
====================================================================
if stime > 193000 and
marketposition== 0 and
crossup(ma(C,5),value3) and //value3은 Demark 기준선임
count < N Then // N은 당일 매매횟수제한
buy("기준매수",Atmarket,DEF,LBuy);
참고로 Demark 수식도 올립니다.
If DayClose(1) > DayOpen(1) Then
{
value1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayLow(1);
value2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/2-DayHigh(1);
value3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayHigh(1))/4;
}
Else If DayClose(1) < DayOpen(1) Then
{
value1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayLow(1);
value2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/2-DayHigh(1);
value3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayLow(1))/4;
}
Else
{
value1 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayLow(1);
value2 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/2-DayHigh(1);
value3 = (DayHigh(1)+DayLow(1)+DayClose(1)+DayClose(1))/4;
}
항상 도와주셔서 감사드립니다.
2020-04-01
1496
글번호 137450
답변완료
강조식 및 종목검색식 부탁합니다
지표명 : 스톡케스틱(20,9,9)/rsi(14)
1.종목검색식
- 스톡케스틱이 70이상인 상태에서 rsi(14)가 70선을 돌파한 종목
2.강조식
- 스톡케스틱이 70이상인 상태에서 rsi(14)가 70선을 돌파한 캔들에 화살표 표시생기도록
부탁합니다
2020-04-01
719
글번호 137449
답변완료
강조식 작성부탁드립니다
사용지표 : 스톡케스틱 슬로우/rsi
1.강조식
- 스톡케스틱이 30이하 침제구간, 동시에 rsi도 30이하 침체구간상태에서
스톡케스틱 k선이 d선과 골드가 나는 캔들밑에 화살표시 발생하도록 해주세요
2.종목검색식
-스톡케스틱이 30이하 침제구간, 동시에 rsi도 30이하 침체구간상태에서
스톡케스틱 k선이 d선과 골드가 나는 종목 검색식 부탁합니다
2020-04-01
737
글번호 137448
답변완료
지표수정바랍니다
안녕하세요 관리자님!!
자꾸 번거롭게 하는거 같아서 정말 죄송스럽습니다.
아래 수식은 관리자님이 작성해주신 수식인데요
원래 제가 원하던 바를 적용하여
period를 장중에 새롭게 발생되는 (고가+저가)/2을 적용하여 상한,하한선을 구현하고 싶습니다. 가능할런지 모르겠네요 도와주시면 정말 감사드립니니다
- 아 래 -
input : P(20),Dv(6),ntime(60);
var : hh(0),ll(0),S1(0),D1(0),TM(0),ii(0),cnt(0);
var1 = BollBandUp(P,dv);
var2 = BollBandDown(P,dv);
if bdate != bdate[1] Then
{
hh = h;
ll = l;
S1 = TimeToMinutes(stime);
D1 = sdate;
value1 = var1;
value2 = var2;
ii = 0;
}
Else
ii = ii+1;
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
if bdate == bdate[1] then
{
hh = h[1];
ll = l[1];
for cnt = 1 to ii
{
if h[cnt] > hh and TM[cnt] > TM[cnt]-ntime Then
hh = h[cnt];
if l[cnt] < ll and TM[cnt] > TM[cnt]-ntime Then
ll = l[cnt];
if TM[cnt] <= TM[cnt]-ntime Then
cnt = ii+1;
}
if h > hh Then
{
value1 = var1;
value2 = var2;
}
if l < ll Then
{
value1 = var1;
value2 = var2;
}
}
plot1(value1,"상한");
plot2(value2,"하한");
}
2020-04-01
706
글번호 137447
답변완료
함수요청
안녕하세요?
함수요청드립니다.
상품의 주기: 크루드 오일 5분봉
매수: 힘의 균형대 돌파 완성 익봉 시가에 진입
매도: 힘의 균형대 이탈 완성 익봉 시가에 진입
16시(써머타임 해지시 17시)를 기준으로 16시(써머타임 해지시 17시) 이전에 진입기준으로 최대 1번만 생성하고, 다시 16시(써머타임 해지시 17시) 이후에 진입기준으로 최대 1번만 생성하되 3시 30분(써머타임 해지시 4시 30분에 강제청산)
힘의 균형대는 v1~v5까지 변수를 산출하여 내림차순 했을 경우 3번째 값
v1= 당일 시가에 v6을 더한 값
v2= 당일 시가에 v7을 뺀 값
v3= 전일 종가에 v8을 더한 값
v4= 전일 종가에 v9을 뺀 값
v5= 당일 시가 > 전일 종가이면 전일 종가에 v10을 더하고, 당일 시가 < 전일종가이면 전일 종가에 v10을 뺀 값
v6= 과거 12영업일 동안 일별 (고가-시가) 값의 최대값과 최소값을 제외한 10일의 평균값
v7= 과거 12영업일 동안 일별 (시가-저가) 값의 최대값과 최소값을 제외한 10일의 평균값
v8= 과거 12영업일 동안 일별 abs(종가[1]-고가) 값의 최대값과 최소값을 제외한 10일의 평균값
v9= 과거 12영업일 동안 일별 abs(종가[1]-저가) 값의 최대값과 최소값을 제외한 10일의 평균값
v10= 과거 12영업일 동안 일별 (종가[1]-시가) 값의 최대값과 최소값을 제외한 절대값의 10일
의 평균값
2020-04-02
782
글번호 137430
답변완료
문의합니다.
if crossup(C, C[2]*p) and accumn(SecondMakecandle,2) <= 1 then buy("매수1");
위와 같이 하면 신호가 나타났다가 다음봉차트가 새로 생기면서 신호가 사라지는데
신호를 계속 유지하는 방법이 있나요?
2020-04-01
688
글번호 137429
오라클 님에 의해서 삭제되었습니다.
2020-04-01
0
글번호 137423
답변완료
안녕하세요
study(title="Line v2.0",shorttitle="IO")
//---parameters
PriceSmoothing = input(15, title="Price Smoothing")
Filter = input(5, title="Filter")
cHigh = wma(high,PriceSmoothing)
cLow = wma(low,PriceSmoothing)
cOpen = wma(open,PriceSmoothing)
cClose = wma(close,PriceSmoothing)
pClose = cClose[1]
trueRange = max(cHigh,cClose) - min(cLow,pClose)
rrange = cHigh-cLow
vqi=0.0
vqi := (rrange!=0 and trueRange!=0) ? (((cClose-pClose)/trueRange + (cClose-cOpen)/rrange)*0.5) : 0 //vqi[1]
vqi_abs = abs(vqi)*(cClose-pClose+cClose-cOpen)*0.5
//sumVqi = vqi_abs //v1.0
sumVqi = (abs(vqi_abs))>1 ? vqi_abs : ( (abs(vqi_abs)*10)>1 ? vqi_abs*10 : vqi_abs )
vq0_th = input(0.2, title="Threshold")
vq0_mid = 0
secolor= (sumVqi>(vq0_mid+vq0_th)) ? lime : ((sumVqi<(vq0_mid-vq0_th)) ? fuchsia : blue)
plot(sumVqi, color=secolor, title="VQI",linewidth=2)
변환 문의드립니다. 감사합니다.
2020-04-01
893
글번호 137422
답변완료
수식 부탁 드립니다,
안녕하세요
매수 1
1.현재 기준 10시 이전에 최저가가 시가-0.5P에서 발생 하고
2. 현재까지 종가 기준으로 20이평을 하회 한적이 업고
20이평이 60이평 크로스업하면 매수 1
매수2
1. 현재까지 종가 기준으로 20이평 이하로 간적이 있고
2. 종가가 20 이평을 크로스 업 한 후 당일 최고가가 신규로 발생된적이 있고
20이평이 60이평 크로스업하면 매수 2
두가지 매수식 부탁 드립니다,
2020-04-01
689
글번호 137421