커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7634
글번호 230811
답변완료
문의 드립니다.
안녕하십니까!
분차트에서 틱차트(10틱 등)를 표시할 수 있는 방법이 있나요?
감사합니다.
2012-08-27
289
글번호 54115
답변완료
Marketposition 인식문제
1.
If Marketpositio == 1 then
sell(...............)
하려고 식을 만들었습니다. (현 포지션이 매수인 경우에만 매도, 즉 청산만 한 후 포지션 없으면 진입 안하려합니다.) 그런데 매수 청산이 이루어진 다음 봉에서 매도가 발생합니다. 그래서 살펴보니 다음과 같은 현상이 발생하는군요.
예를 들어서 매수포지션을 유지하다가 10번째봉에서 매수청산이 발생했습니다.
그러면 11번째 봉 진행 중에는 10번 봉의 Marketposition 값은 0이어야 하는데
디버깅을 해보면 그 값이 1이 나오네요. 그래서 원래 의도한 바는 11번째 봉에서는
sell이 안 나와야 하는데 ,,,,sell이 발생되어 의도하지 않은 매도가 발생합니다.
이것(marketposition 값)은 잘못된 것이 아닌가요? 이 경우 해결 방법은 무엇인가요?
2012-08-28
364
글번호 54113
답변완료
배포버전 저장은 어떻게 하는지요?
안녕하세요. 수고가 많으십니다.
배포버전을 아무리 저장해도 저장이 안되어 문의 드립니다.
(암호로 저장된 파일은 생기지만 확장자가 yesr 인 파일은 안생기네요)
같은 질문글 [14943]의 답변을 보면 이전버젼의 옵션같아서
현재 저장하고는 틀리는군요.
배포버젼을 저장하는 방법을 부탁드립니다.
2012-08-27
319
글번호 54110
답변완료
ExitLong후 CurrentContracts 변경 문의
1. 거래 정보는 다음 틱에서만 새로고침 되는 것인지요?
소스 중간에 새로고침 하여 새로운 변수를 받거나 소스 중간에 리턴하여 뒤 명령어들이 작동안되게 하는 방법이 있는지요?
제목을 예로 들면
ExitLong 을 한 뒤에 CurrentContracts는 청산전 값을 유지하던데요
2. vars 에서 정의한 어떤 변수가 시스템 트레이딩 종료 후에 시스템 트레이딩을 다시 넣었을 때에도 변수값이 유지되는지요?
전에 설명이 어디 있었던거 같은데 찾지 못해서 질문드립니다.
2012-08-27
320
글번호 54100
답변완료
문의드림니다
다음수식을 참조데이타(data2)로 변환 부탁드림니다
var : HH(0),Ll(0),MM(0);
var1 = max(c,O);
var2 = min(c,O);
IF Date != Date[1] Then{
HH = var1;
LL = var2; }
if stime < 91000 Then{
if var1 > HH Then
HH = var1;
if var2 < LL Then
LL = var2;
MM = (HH+LL)/2 ; }
2012-08-27
290
글번호 54099
답변완료
문의드립니다
1분봉100봉에서 중심값구하는
수식 가능할까요?
2012-08-27
292
글번호 54098
답변완료
신호구분방법
안녕하세요?
매수신호를 B1, B2, B3, ... 매도신호를 S1, S2, S3, ... 이런 식으로 명칭을 부여하고 특정 신호를 줄경우 이 신호들을 구분할 수 있는 수식이 있는지요?
예를 들어, 현재 시점 기준 과거에 B1, B2, S1, S2 신호가 발생된 상태에서 S3를 주려고 할 때 과거에 B1, S1 이 있는지를 보고 신호를 발생시키려고 합니다.
Marketposition 은 단지 최종 현재 포지션만 알수 있기 때문에 구체적으로 신호명칭을 구분할 수는 없는 것으로 알고 있습니다.
정교한 신호제어를 하기 위해서는 이런 방법이 필요할 것같은데요. 혹시 좋은 방법이 있는지 해서 문의 드립니다.
만약 방법이 없다면 B1, B2, ... S1, S2, ... 신호들을 변수값으로 할당해서 과거 시점에 발생한 적이 있는지 Flag 값을 설정해야 하고 어느 시점에는 설정을 해지해야 하는 등 수식이 조건식과 결합되면서 복잡도가 급상승하게 되는 결과가 나올 것으로 보입니다.
감사합니다.
2012-08-27
326
글번호 54093
답변완료
수식문의
아래 지표수식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
input:n(11);
Var:CC(0),상승(100),하락(-100),추세(0),j(0),상승률(0),하락률(0),
기준고(0),기준저(0),zz(0),파동번호(0),파동1번고점(0),파동1번저점(0),
파동3번고점(0),파동3번저점(0),파동5번고점(0),파동5번저점(0),
파동연장(0),파동변화(0);
Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0);
CC = data1(C);
상승률 = 1 + (n/100);
하락률 = 1 - (n/100);
for j = 1 to 9
{
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
}
#---------------------------------------------------------#
# ZIGZAG 파동 계산
#---------------------------------------------------------#
if 기준고 <= CC or 기준고 == 0 then 기준고 = CC;
if 기준저 >= CC or 기준저 == 0 then 기준저 = CC;
if 기준저[1] * 상승률 > CC[1] and 기준저[1] * 상승률 <= CC then
추세 = 상승;
else if 기준고[1] * 하락률 < CC[1] and 기준고[1] * 하락률 >= CC then
추세 = 하락;
if 추세[1] == 상승 and 추세 == 하락 then
{
for j = 8 downto 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
ZZ = 기준고;
고Bar[1] = 0;
기준고 = CC;
기준저 = CC;
}
else if 추세[1] == 하락 and 추세 == 상승 then
{
for j = 8 downto 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
ZZ = 기준저;
저Bar[1] = 0;
기준저 = CC;
기준고 = CC;
}
else if 추세[1] == 하락 and 추세 == 하락 then
{
if 기준고[1] * 하락률 <= CC[1]
and 기준고[1] * 하락률 > CC
and 고[1] < 기준고 then
{
고[1] = 기준고;
ZZ = 기준고;
고Bar[1] = 0;
기준고 = CC;
}
}
else if 추세[1] == 상승 and 추세 == 상승 then
{
if 기준저[1] * 상승률 >= CC[1]
and 기준저[1] * 상승률 < CC
and 저[1] > 기준저 then
{
저[1] = 기준저;
ZZ = 기준저;
저Bar[1] = 0;
기준저 = CC;
}
}
if ZZ[1] != ZZ then
{
#---------------------------------------------------------#
# 상승전환
#---------------------------------------------------------#
if 추세 == 상승 then
{
if 파동번호 == 0 Then
{
파동번호 = 1;
파동1번저점 = 저[1];
}
if 파동번호 == 2 Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
if 파동번호 == 2.3 Then
{
if 저[2] > 저[1] Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
}
if 파동번호 == 3.2 Then
{
파동번호 = 3.3;
}
if 파동번호 == 3.32 Then
{
파동번호 = 3.33;
}
if 파동번호 == 3.34 Then
{
파동번호 = 3.35;
}
if 파동번호 == 3.4 Then
{
파동번호 = 3.5;
}
if 파동번호 == 4 Then
{
파동번호 = 5;
파동5번저점 = 저[1];
}
if 파동번호 == 5.4 Then
{
파동번호 = 5.5;
}
if 파동번호 == -1 Then
{
파동번호 = -2;
}
if 파동번호 == -3 Then
{
파동번호 = 1;
파동1번저점 = 저[1];
파동연장 = 0;
파동변화 = 0;
}
}
#---------------------------------------------------------#
# 하락전환
#---------------------------------------------------------#
else
{
if 파동번호 == 1 or 파동번호 == 1.5 Then
{
파동번호 = 2;
파동1번고점 = 고[1];
}
if 파동번호 == 3 Then
{
if 파동1번고점 >= 고[1] Then
{
if 파동변화 != 2 then
{
파동번호 = 2.3;
파동변화 = 2;
}
else
{
파동번호 = 3.2;
파동연장 = 3;
}
}
Else
{
파동번호 = 4;
파동3번고점 = 고[1];
}
}
if 파동번호 == 3.3 Then
{
파동번호 = 3.4;
}
if 파동번호 == 3.33 Then
{
파동번호 = 3.34;
}
if 파동번호 == 3.35 Then
{
파동번호 = 3.4;
}
if 파동번호 == 3.5 Then
{
파동번호 = 4;
파동3번고점 = 고[1];
}
if 파동번호 == 5 Then
{
파동번호 = -1;
파동5번고점 = 고[1];
}
if 파동번호 == 5.3 Then
{
파동번호 = 5.4;
}
if 파동번호 == 5.5 Then
{
파동번호 = -1;
파동5번고점 = 고[1];
}
if 파동번호 == -2 Then
{
파동번호 = -3;
}
}
}
#---------------------------------------------------------#
# 진행중
#---------------------------------------------------------#
if 파동번호 == 2 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 2.3 then
{
if 파동1번고점 < CC Then
{
파동번호 = 3;
파동3번저점 = 저[1];
}
else if 파동1번저점 > CC Then
{
파동번호 = -3;
}
}
else if 파동번호 == 3.2 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 저[1] > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
}
}
else if 파동번호 == 3.32 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 저[1] > CC Then
{
파동번호 = 3.2;
}
}
else if 파동번호 == 3.4 Then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 고[2] > CC Then
{
파동번호 = 3.32;
}
}
else if 파동번호 == 4 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 파동1번고점 > CC Then
{
파동번호 = 3.2;
파동연장 = 3;
}
}
else if 파동번호 == 5 Then
{
if (파동1번고점 - 파동1번저점) > (파동3번고점 - 파동3번저점) and
(CC - 파동5번저점) > (파동3번고점 - 파동3번저점) Then
{
파동번호 = 3.3;
파동연장 = 3;
}
}
else if 파동번호 == 5.4 then
{
if 파동1번저점 > CC Then
{
파동번호 = -3;
}
else if 고[2] > CC Then
{
파동번호 = -1;
}
}
else if 파동번호 == -1 then
{
if 파동연장 == 0 and
파동3번저점 > CC Then
{
파동번호 = 2;
파동1번고점 = 고[1];
파동연장 = 1;
}
}
else if 파동번호 == -2 then
{
if 파동연장 == 0 and
고[1] < CC Then
{
파동번호 = 5.3;
파동연장 = 5;
}
}
#---------------------------------------------------------#
# 지표식
#---------------------------------------------------------#
Plot1(파동번호,"파동번호",iff(int(파동번호)==1,RED,
iff(int(파동번호)==2,BLUE,
iff(int(파동번호)==3,MAGENTA,
iff(int(파동번호)==4,LBLUE,
iff(int(파동번호)==5,PINK,
iff(int(파동번호)==-1,CYAN,
iff(int(파동번호)==-2,GREEN,GRAY
)))))))); //막대그래프
식이 맞으면 분봉에서도 가능한가요 정정해주세요 분봉에서도보게끔
2012-08-27
378
글번호 54092
답변완료
행복; 수식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
증권사의 HTS를 보면
오늘이 주말이 아니고 수요일이어서 주봉이 완성되지 않았어도 오늘(수요일)까지를
계산한 주봉관련 지표가 일봉 차트에 겹쳐서 그려지고 있습니다
예를 들면
수요일까지를 계산한
기준봉이 주봉인
볼린저밴드(12. 2)의 지표를 일봉차트에 겹쳐서 그려주고 있습니다
수식 작성 바랍니다
< 지표식 1 >
일봉차트를 data1로 하고
주봉차트를 data2로 한 후
오늘이 주말이 아니고 수요일이어서 주봉이 완성되지 않았어도
오늘(수요일)까지를 계산한
기준봉이 주봉인
볼린저밴드(12, 2) 의 지표 A 그리기
지표 A 가 그려지면 Drag 하여 일봉차트와 겹치도록 할 것입니다
< 지표식 2 >
일봉차트를 data1로 하고
월봉차트를 data3로 한 후
오늘이 월말이 아니고 20일이어서 월봉이 완성되지 않았어도
오늘(20일)까지를 계산한
기준봉이 월봉인
볼린저밴드(12, 2) 의 지표 B
지표 B 가 그려지면 Drag 하여 일봉차트와 겹치도록 할 것입니다
< 시스템식1 >
기준봉이 일봉인
주가가 종가 기준으로
상기의 지표 A(주봉 볼린저)의 하한선을 상향돌파하면 매수하고
10% 하락하거나 10% 상승하면 매도
< 시스템식2 >
기준봉이 일봉인
주가가 종가 기준으로
상기의 지표 B(월봉 볼린저)의 하한선을 상향돌파하면 매수하고
10% 하락하거나 10% 상승하면 매도
수고하십시요
2012-08-27
423
글번호 54091