커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7703
글번호 230811
답변완료
파라볼릭
아래식은 예스스탁에서 제공한 파라볼릭식을 그대로 복사한 것입니다.
그런데 수식의 에러는 안나오는데 실행을 하니 아무 그림도 안나오네요..
뭐가 잘못된 건가요?
Input : Af(0.02), MaxAf(0.2);
Var : direction(0), sar1(0), afval(0), ep(0),lowval(0),highval(0),count(0);
if count == 0 then //변수들의 초기화
{
highval = High;
lowval = Low;
direction = 0;
sar1 = 0;
afval = 0;
ep = 0;
count = 1;
}
if(ep != 0 ) then // 추세가 진행중
{
if(direction == 1) then // 상승추세이면
{
ep = highval;
sar1 = sar1 + afval*(ep-sar1); // 상승추세에서 SAR값 계산
if(high > highval) then // 신고가 발생
{
highval = high;
afval = afval+Af; // 상승추세에서 신고가가 발생했으므로 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
if( low < sar1) then // 추세변경(상승->하락)
{ // 다음 SAR값을 계산할 때 필요한 전SAR값은 하락추세로 전환되기 직전의
direction = -1; // 최고가를 사용하므로 sar1 = ep (ep에는 highval 들어있다)
sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화
afval = 0;
ep = 0;
lowval = low;
}
}
else // 하락 추세
{
ep = lowval; // 하락추세에서는 EP로 저가 사용
sar1 = sar1 + afval*(ep-sar1);
if(low < lowval) then // 신저가 발생
{
lowval = low;
afval = afval + Af;
if( afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
if(high > sar1) then // 추세 변경(하락->상승)
{ // 다음 SAR 값을 계산할 때 필요한 전SAR값은 상승추세로 전환되기 직전의
direction = 1; // 최저가를 사용하므로 sar1 = ep (ep에는 lowval값이 들어있다)
sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화
afval = 0;
ep = 0;
highval = high;
}
}
}
else if(sar1 != 0 && ep == 0) then //추세가 변경된후 첫번째 SAR계산
{
if(direction == 1) then // 상승 추세
{
ep = highval; // 상승추세에서는 신고가를 EP로 사용하므로
afval = Af; // 가속변수의 초기값인 AF(0.02) 적용
sar1 = sar1 + afval*(ep-sar1);
if ( high > highval) then // 신고가가 발생
{
Highval = high;
afval = afval + Af; // 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
}
else // 하락추세
{
ep = lowval;
afval = Af; // 가속변수의 초기값인 AF(0.02) 적용
sar1 = sar1 + afval*(ep-sar1);// 하락추세에서 SAR 계산
if(low < lowval) then // 신저가 발생
{
lowval = low;
afval = afval + Af; // 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
}
}
else // SAR 첨 시작
{
if direction == 0 then // 추세가 없으므로
{
if(c > c[1]) then // 상승추세로 시작
direction = 1;
else if( c < c[1]) then // 하락추세로 시작
direction = -1;
}
else if direction == 1 then // 상승추세(추세변경이 일어날 경우 SAR 계산하기 시작)
{
if(c < c[1]) then // 추세 변경 (상승->하락) SAR 계산하기 시작
{
direction = -1;
sar1 = highval; // 하락추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최고가를 사용하므로
}
}
else if direction == -1 then // 하락추세(추세변경이 일어날 경우 SAR 계산하기 시작)
{
if( c > c[1]) then // 추세 변경 (하락->상승) SAR 계산하기 시작
{
direction = 1;
sar1 = lowval; // 상승추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최저가를 사용하므로
}
}
lowval = min(low, lowval); // 추세 변경시 전 SAR값으로 최고가나 최저가가 필요하므로
highval = max(high,highval); // low, high를 전의 최고가, 최저가와 비교하여 최고가, 최저가를 저장
}
//처음 시작할 때 다음 추세 변경이 일어날 때까지 SAR는 invalid
#if(sar1 != 0) then
# User_Func_Sar = sar1;
2011-09-28
646
글번호 43145
답변완료
주문설정
주문설정에 보면
현재가 +-1호가와 상대1호가 그리고 사용자 가격설정에서 현재가 증감(틱)이 있습니다.
3가지 주문의 차이점이 헷갈립니다.
1. 현재가 +-1호가는 signal이 발생된 그 시점에서의 현재가를 확인하고 주문(신호가격 무관)
2. 상대1호가는 신호가격의 상대호가로 주문(buy 222.00 limit 이면 222.05 주문)을 한다는 건지.. 아니면 무조건 매도1호가에 주문을 한다는건지..만약, 호가 공백이 있을 경우 어떻게 되는건지...
3. 사용자 가격설정 현재가에 증감 -1로 셋팅을 하면 현재가가 222.05 이라면
222.00으로 주문되는건지... 222.10으로 주문되는건지 모르겠네요.
Buy limit의 경우 3가지가 어떤 주문의 차이가 있는지 정리 좀 부탁드립니다.
2011-09-28
515
글번호 43144
답변완료
시스템식 다시문의 드림
빠른 질문에 감사드립니다
질문 20684번과 20683번이
붙임 그림과 같이 전일 18시이후 신호가 나오는 것이 아니고 익일0시(24시)에 신호가 나오고(그림중 B로표시) 또 같은봉에서 매수매도신호가 나오는 경우(A로표시)가 있네요 어덯게 해야 될 까요
질문 20683번은 18시이후와 22시이후 두번 신호가나올수 있습니다
두 질문에 대해 각번호에 수정해 주시면 감사하겠습니다
참 그리고 야간선물은 시물레이션차트에서 불러올 수 없나요 시물레이션챠트에서
종목코드를 찾을 수 없어서요
미리 답변에 감사드립니다
2011-09-28
537
글번호 43143
답변완료
질문올립니다.
1.
매수진입했을시 진입봉의 고점+0.5피를 10분안에 갱신을 하지 못하고
진입봉의 저점보다 현재가가 아래에 있을경우 양봉에 매도전환하는 식을 구현하고
싶습니다.
2.단순이평 20 이평과 가중이평 50 이평을 사용하는데요.
20이평이 50 이평을 3번째 크로스업을 할때에 매도청산식을 구하고 싶습니다.
3. 당일시가가 전일보다 -2% 안에 있을때 첫봉이 음봉이면 매도하는 식을 구현하고
싶습니다.
2011-09-28
478
글번호 43142
답변완료
문의 드립니다.
시스템 선물 거래를 하고 있는데요..
시스템 신호에 의한 자동매매로 진입(Buy) 이후, 시스템 신호에 의해 청산(Exitlong)하도록 되어 있는데, 그러기 전에, 제가 임의적으로 선물종합주문에서 청산을 했습니다.
그랬더니, 나중에 시스템 청산(Exitlong) 신호에 의해 exitlong이 실행되었을 때, 오히려 매도 포지션으로 주문이 들어가 매도 계약이 체결되어 버립니다.
Sell 이후, Exitshort도 마찬가지 입니다.
중간에 임의적으로 청산하더라도, 시스템 청산 주문에서 이와 같은 현상이 발생하지 않으려면 어떻게 해야 하나요?
진입명으로 관리해야 하나요? 저는 참고로 청산 함수에 진입명을 쓰지 않고 있습니다.
2011-09-28
476
글번호 43140
러블리 님에 의해서 삭제되었습니다.
2011-09-28
176
글번호 43135
답변완료
이평선 이동
Input : Period1(5),Period2(10);
Plot1(ma(C,Period1), "이동평균1");
Plot2(ma(C,Period2), "이동평균2");
상기 식에서 5이평선을 좌측으로 3봉 이동하여 그리고 싶읍니다.지표식 부탁합니다.
2011-09-28
563
글번호 43134
답변완료
문의요~~
수고하십니다~~
문의
1. 챠트에 월종가 선긋기공식 부탁드립니다~~
2011-09-28
524
글번호 43127
답변완료
문의드립니다.
정확하게 배수가 안되어 수식으로는 작성을 못한다고 하니
그럼 6분 차트에서 어제 분을 제외한 오늘 첫봉 부터 계산해서
중간값 5이평 ma((h+l)/2,5)을 2분 챠트에 띄우고 싶습니다.
6분 챠트 첫봉은 중간값 1이평,두번째봉은 중간값 2이평,
세번째 봉은 중간값 3이평, 네번째 봉은 중간값 4이평,
5봉 이후부터 중간값 5이평이 계산되는 식으로 하여
이것을 2분챠트에 띄우고 싶습니다.
부탁드립니다
좋은 하루 되세요
2011-09-28
551
글번호 43126