커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7357
글번호 230811
답변완료
문의 드립니다
input : ntime(70),sig(10);
var1 = Accum(iff(ma(c-c[1],ntime) > 0,1,-1) * pow((ma(pow(c-c[1],2),ntime)+1),0.5)+
pow((pow(c-c[1],2) +1),0.5) * iff(c>c[1],1,-1));
var2 = ma(var1,sig);
if crossup(var1,var2) Then
buy();
if CrossDown(var1,var2) Then
sell();
input : Period1(10),Period2(20),signal(8);
var : SROC(0),SROCsig(0);
SROC = ema(C,Period1)/ema(c,Period1)[Period2]*100;
SROCsig = ema(SROC,signal);
if crossup(SROC,SROCsig) Then
buy();
if CrossDown(SROC,SROCsig) Then
sell();
위 2개의 시스템을 혼합하여 시스템 매매를 만들고자 합니다
예)
input : ntime(70),sig(10),Period1(10),Period2(20),signal(8);
큰 것 : 70,10
작은 것(SROC) : 10,20,8
매수진입
큰 것 CrossUP 상태가 지속 할때 작은 것 CrossUP 매수진입
매수 청산
작은 것 CrossDown 매수 청산
매도진입
큰 것 CrossDown 상태가 지속 할때 작은 것 CrossDown 매수진입
매도청산
작은 것 CrossUP 매수 청산
부탁합니다
2017-01-05
160
글번호 105600
답변완료
7일 간 주봉상 최고 최저 구하는 법 좀 알려주셔요
아래식에서 인풋 변수에 Dayofweek에 bdate가 들어가 있는데요.
숫자를 넣어서 요일을 참조하는 함수로 알고 있습니다.
bdate는 영업일로 알고 있는데 해당 날자의 요일을 반환해주고
어제까지의 요일을 리턴해서 실행문을 돌리면 영업일을 요일로 바꿔서
주중의 최고 최저가를 구하는 식으로 이해가 되는데요.
주봉은 해당주의 종가로 완성되는데
그 주봉끼리 모아놓은게 주봉차트 잖아요...
과거 7개의 주봉의 최고 최저값을 구하는 법을 알고 싶어요ㅠㅠ
예를 들면 if dayofweek(bdate)==dayofweek(5) then{
이러면 영업일이 금요일 일때 까지는 맞는거 같은데
그 금요일의 종가를 표현하는 부분 같은게 막히네요...
더불어 월봉상의 7일 간 최고값과 최저값을 구하는 식도 부탁드립니다...ㅠㅠ
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 7일 간 주봉상 최고 최저 구하는 법 좀 알려주셔요
>
안녕하세요
예스스탁입니다.
N일간 최고가와 최저가를 그리는 수식은 아래와 같습니다.
input : N(7);
var : cnt(0),HH(0),LL(0);
HH = dayhigh;
LL = daylow;
for cnt = 0 to N-1{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
if daylow(cnt) < LL Then
LL = daylow(cnt);
}
plot1(HH,"N일간최고가");
plot2(LL,"N일간최저가");
주봉상 최고가와 최저가가 필요하시면 아래식 이용하시면 됩니다.
input : N(7);
var : cnt(0),HH(0),LL(0);
Array : WH[10](0),WL[10](0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then{
WH[0] = H;
WL[0] = L;
for cnt = 1 to 9{
WH[cnt] = WH[cnt-1][1];
WL[cnt] = WL[cnt-1][1];
}
}
if H > WH[0] Then
WH[0] = H;
if L < WL[0] Then
WL[0] = L;
plot1(WH[0],"이번주최고가");
plot2(WL[0],"이번주최저가");
plot3(WH[1],"전주최고가");
plot4(WL[1],"전주최저가");
즐거운 하루되세요
> 신사동지점장 님이 쓴 글입니다.
> 제목 : 7일 간 주봉상 최고 최저 구하는 법 좀 알려주셔요
> 주봉값으로 최근 7일간 최고가 와 최저가를 어떻게 하는지 좀 부탁드립니다.
2017-01-05
223
글번호 105599
답변완료
간단한 수식부탁드립니다
현재가가 가중이평5일선과 만났을때 매수하는 수식 부탁드립니다
2017-01-05
164
글번호 105590
답변완료
재질문 부탁드립니다.
제가 아직 초보라서 보내주신 답변을 이해 못하겠습니다.
추가해야할 지수는 코스피지수와 코스닥지수인데 보내주신 자료를 지표로
불러오려고 해보니 "수식에서 참조할 첫번째 종목데이터가 없습니다." 라고 뜨네요
어떻게 처리해야 하는지?
도아주세요.
감사합니다.
안녕하세요
예스스탁입니다.
참조데이터로 지수를 추가하고 아래식 적용하시면 됩니다.
참조데이터는 차트왼쪽 상단의 종목선택 버튼 중 오른쪽을 클릭하시면
선택해 추가할 수 있습니다.
input : length(13);
var : ii(0);
var : Rjt(0), Rmt(0);
var : ERj(0), ERm(0);
var : Dtj(0), Dtm(0), Dtc(0), Dtsm(0), Dtsj(0);
var : Dcov(0), Dsig(0), Dfac(0);
Rjt = data1((c - c[1]) / c[1]);
Rmt = data2((c - c[1]) / c[1]);
ERj = data1(ma(Rjt,length));
ERm = data2(ma(Rmt,length));
Dtc = 0;
Dtsm = 0;
Dtsj = 0;
for ii = 0 to length-1 {
Dtj = Rjt[ii] - ERj; //종목편차=가격-평균
Dtm = Rmt[ii] - ERm; //마켓편차=가격-평균
Dtsm= Dtsm + (Dtm ^ 2); //시장편차제곱의합
Dtsj= Dtsj + (Dtj ^ 2); //종목편차제곱의합
Dtc = Dtc + (Dtj * Dtm);
}
Dcov = Dtc / (length-1);
Dsig = Dtsm/ (length-1);
Dfac = Dcov/Dsig;//베타계수
plot1(Dfac,"베타");
plot2(data1(Correlation(data1(c),data2(c),13)),"상관");
즐거운 하루되세요
> 햇살가득 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 일봉 주식차트에서 13일을 기준해서 지수상관계수와 지수 베타계수를 표현하고싶습니다.
도와주세요.
2017-01-05
202
글번호 105589
답변완료
삭5
안녕하세요
이격도 98 기준
아래에서 다이버전스시 매수
이격도 102 기준
위 에서 다이버전스시 매도
감사합니다
2017-01-05
181
글번호 105588
답변완료
수식문의합니다
예전에 만들어 주신 수식인데요
추가를 하고 싶습니다
var1 = ma(c,20);
if O > var1 and C > O Then
buy();
if O < var1 and C < O Then
sell();
추가1
매수,매도 진입 후 수익 청산이 되면 대기 후 반대 신호만 진입
각각 방향당 한번씩만 진입
예) 매수 진입---- 청산----- 매도진입---- 청산----매수 진입
추가2
매매시간 1차 : 10시 10분 부터 11시 30분까지
2차 : 15시 30분 부터 24시 10분까지
추가3
3계약 진입 후 10틱,20틱,30틱 분할청산
추가4
매수,매도 진입 후 최대 수익대비 15틱 감소시 자동청산
2017-01-05
165
글번호 105587
답변완료
진입횟수 제한 수식 부탁드립니다.
항상 도움 주셔서 감사합니다.
문1) 진입횟수 제한에 대한 수식부탁드립니다.
예를 들면 청산시 손실 청산이거나
스탑로스 손실이 3번 이상 일 경우
더 이상 진입하지 않는 수식부탁드립니다.
문2) 진입횟수 제한에 대한 수식부탁드립니다.
예를 들면 청산시 수익 청산이거나
목표수일 달성에 대한 청산이 3번 이상 일 경우
더 이상 진입하지 않는 수식부탁드립니다.
문3) 청산 수익이 10틱이상 이거나 청산 손실이 -10틱 이상인 경우
더이상 매매 하지 않는 수식 부탁드립니다.
문4) TL_NEW 추세선 함수로 추세선을 그릴때
가로선 및 세로선의 추세선은 어떻게 그리나요?
도움 부탁드립니다.
2017-01-05
186
글번호 105586
답변완료
이평 지표 하나 문의 드립니다
보통 20이평은 현재가 기준으로 직전 20개봉의 평균이 그려지는데요
제가 구현하고 싶은건
특정일,특정시간 ,분 ,틱으로 부터 현재봉까지의 이평선....
즉 60분봉을 예를 들면
해외선물 오일을 예를 들어
오후 5시봉 부터 현재시점의 시간봉까지의 이평선을 만들고 싶습니다
여기서 제가 원하는 시점봉을 지정변경만 하면 현재시점봉까지의 이평선을 그을수 있게 말입니다
5분봉에서는
예를 들어
5시20분봉을 기준으로 현제시점(6시정각)봉까지의 이평
이것도 마찬가지로 시작기준봉을 제가 변경할수 있게 지표를 만들고 싶습니다
간단할거 같은데 머리가 모자라네요
좀 부탁드립니다
2017-01-05
186
글번호 105585
답변완료
손절 방법 재질문입니다.
답변해주셔서 감사합니다.
제 질문이 정확치가 않았던 것 같아서, 정확한 수치와 함께 재질문합니다.
제가 상식이 없어서인지 답변 주신것이 잘 이해가 안가서요.
0. 기본전제
- 1분봉 기준
- 모든 주문은 onlcose로
- 모든 진입은 그 날의 첫번째 봉에서만 가능하도록 되어 있음
- 그날의 마지막 봉에서 모든 진입은 반드시 청산됨(단, 스탑로스로 미리 청산되는 경우 예외)
- 즉, 무조건 하루에 하나의 진입만 있고, 진입되는 경우에는 당일날 반드시 청산됨(진입이 안되는 날도 있긴함)
- 따라서 어제 질문에 답변주셨던 스위칭되는 상황은 발생하지 않음
- 스탑로스로 장중에 청산되었다 하더라도 새로운 진입은 없음
[아래에서 부터는 손절 방식에 따른 수익을 의미]
1. 손절 기준 없을 경우
매수: 469.75, 매도 427.97
2. 매수와 매도에 대해 동일한 손절 기준 적용
즉, 아래의 수식 적용
SetStopLoss(기준);
또는 아래의 수식 적용
if MarketPosition == 1 Then SetStopLoss(기준);
else SetStopLoss(기준);
결과는 두 가지 방법 모두 아래와 같이 동일하게 나타남
매수: 469.90, 매도 414.22
(매수의 경우 겨우 0.15 상승하고, 매도는 오히려 떨어지지만, 그냥 실험결과일 뿐이니 숫자만 봐주세요)
3. 다음과 같은 식 적용
if MarketPosition == 1 Then SetStopLoss(기준);
매수: 469.90, 매도 447.87
매수 수익은 동일하지만, 매도 수익은 증가함
4. 다음과 같은 식 적용
if MarketPosition == 0 Then SetStopLoss(기준);
매수: 505.25, 매도 416.82
매수 수익이 증가함, 매도 수익도 약간 달라짐
5. 다음과 같은 식 적용
if MarketPosition == -1 Then SetStopLoss(기준);
매수: 466.10, 매도 414.22
매도수익은 동일, 매수 수익은 약간 감소
[지금부터 질문입니다]
위의 경우를 보면 매수 수익은 4번 경우가, 매도 수익은 3번 경우가 가장 높습니다. 이 두 가지 경우를 동시에 취하기 위해서는 어떻게 수식을 만들어야 할까요?
그리고 아직도 3번과 4번 수익이 의미하는 바를 정확히 이해하기 어렵습니다. 3번의 경우, 첫번째 매수 진입이후로는 모든 거래에서 똑같은 손절 기준이 적용된다는 의미인가요? 그렇다면, 매도 수익이 갑자기 이렇게 증가할 수가 없는 것 아닌가요? 또한, 4번의 경우도 매수 수익이 늘어났는데, 어떤 이유에서 그렇게 될 수 있는지 이해가 잘 안갑니다.
2017-01-05
210
글번호 105584