커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6035
글번호 230811
답변완료
시스템
안녕하세요 새해복많이받으세요
예스함수로렌코차트을 함수식으로 구현되는걸로 알고있습니다
아래식에서 DMI관련식을 제외한 렌코와 파라만 함수식을 수정부탁드립니디
input:renkoSize(0.2), //렌코 크기
af(0.02), maxAF(0.2),
Period(14);
var:j(0),k(0),renkoCnt(0),gubun(0),
printOK(false), //데이터 출력/미출력(True/False)
filename("renko.txt"), //데이터 출력 생성 위치(C:₩예스트레이더₩YesLang₩)
value(0);
array:OO[50](0),HH[50](0),LL[50](0),CC[50](0),gubunSave[5](0);
If DayIndex == 0 Then { //break on session에 일자 계산 초기화
gubun = 0; //렌코 방향 초기화
For j = 49 DownTo 1 { //금일 시가봉을 신규 추가
OO[j] = OO[j-1];
HH[j] = HH[j-1];
LL[j] = LL[j-1];
CC[j] = CC[j-1];
}
OO[0] = C; //분봉의 종가를 기반으로 계산하기 때문에 당일 시초가 아니다
HH[0] = C;
LL[0] = C;
CC[0] = C;
}
Else {
If gubun == 0 and CC[0] > 0 Then { //일 첫봉이 완성되지 않으면
If OO[0] - renkoSize >= C Then { //상방향 렌코인지 확인
gubun = -1; //상방향 결정
CC[0] = OO[0] - renkoSize;
HH[0] = OO[0];
LL[0] = CC[0];
j = 0; //마지막 1봉만 출력
if printOK then print(filename,"1=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",
j,gubun,OO[j],HH[j],LL[j],CC[j]);
}
Else If OO[0] + renkoSize <= C Then { //하방향 렌코인지 확인
gubun = 1; //하방향 결정
CC[0] = OO[0] + renkoSize;
HH[0] = CC[0];
LL[0] = OO[0];
j = 0;
if printOK then print(filename,"2=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",
j,gubun,OO[j],HH[j],LL[j],CC[j]);
}
}
If LL[0] - renkoSize >= C Then { //아래 방향으로 렌코 형성
gubun = -1;
renkoCnt = Int(Round((LL[0]-C)/renkoSize,9)); //추가될 렌코 개수
if renkoCnt > 49 then renkoCnt = 49; //오류방지를 위한 방어코드
For j = 49 DownTo renkoCnt {
OO[j] = OO[j-renkoCnt];
HH[j] = HH[j-renkoCnt];
LL[j] = LL[j-renkoCnt];
CC[j] = CC[j-renkoCnt];
}
For j = renkoCnt-1 DownTo 0 {
OO[j] = LL[j+1];
CC[j] = LL[j+1] - renkoSize;
HH[j] = OO[j];
LL[j] = CC[j];
if printOK then print(filename,"3=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",
j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력
}
}
Else If HH[0] + renkoSize <= C Then { //위 방향으로 렌코 형성
gubun = 1;
renkoCnt = Int(Round((C-HH[0])/renkoSize,9));
if renkoCnt > 49 then renkoCnt = 49;
For j = 49 DownTo renkoCnt {
OO[j] = OO[j-renkoCnt];
HH[j] = HH[j-renkoCnt];
LL[j] = LL[j-renkoCnt];
CC[j] = CC[j-renkoCnt];
}
For j = renkoCnt-1 DownTo 0 {
OO[j] = HH[j+1];
CC[j] = HH[j+1] + renkoSize;
HH[j] = CC[j];
LL[j] = OO[j];
if printOK then print(filename,"4=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",
j,gubun,OO[j],HH[j],LL[j],CC[j]); //봉이 생길 때마다 출력
}
}
Else If Time >= 151500 Then { //당일 종가봉에서,
For j = 49 DownTo 1 {
OO[j] = OO[j-1];
HH[j] = HH[j-1];
LL[j] = LL[j-1];
CC[j] = CC[j-1];
}
If LL[1] > C Then { //종가가 이전 봉보다 아래 형성
OO[0] = LL[1];
CC[0] = C;
HH[0] = OO[0];
LL[0] = CC[0];
} Else If HH[1] < C Then { //종가가 이전 봉보다 위에 형성
OO[0] = HH[1];
CC[0] = C;
HH[0] = CC[0];
LL[0] = OO[0];
} Else { //종가가 이전 봉의 중간에 형성
OO[0] = C;
CC[0] = C;
HH[0] = C;
LL[0] = C;
}
j = 0; //마지막 1봉만 출력
if printOK then print(filename,"5=>,%.0f,%.0f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f",
j,gubun,OO[j],HH[j],LL[j],CC[j]);
}
}
//If OO[0] > 0 Then Plot1(OO[0],"OO");
//If CC[0] > 0 Then Plot2(CC[0],"CC");
for j= 4 downTo 1{
gubunSave[j] = gubunSave[j-1];
}
gubunSave[0] = gubun;
value = sar(af,maxAF);
value1 = DIPlus(Period);
value2 = DIMinus(Period);
# 매수/매도청산
If CrossUP(value1, value2) and (C > value) and (/*(gubunSave[2] = -1) and (gubunSave[1] = 1) and*/ (gubun = 1) or ((gubun = -1) and (gubunSave[1] = 1))) Then
{
buy();
}
# 매도/매수청산
If CrossDown(value1, value2) and (C < value) and (/*(gubunSave[2] = 1) and (gubunSave[1] = -1) and*/ (gubun = -1) or ((gubun = 1) and (gubunSave[1] = -1))) Then
{
Sell();
}
감사합니다
2019-02-08
198
글번호 125986
답변완료
문의드립니다
점 그래프가 아닌 수치만 점으로 표현하고 싶은데 이부분은 안되는건가요?
예를 들면 시가에 점으로 표시하는 것입니다.
그리고 3프로 양봉에 강세표시를 하고싶습니다.윗꼬리와 아래꼬리부분에요
2019-02-08
169
글번호 125984
답변완료
수식부탁합니다
수고하십니다
TSI 지표 사용시 첨부파일에 저가 B > A 시점에서 종가 D < C 발생시에 검색식을 부탁합니다.
2019-02-08
182
글번호 125980
답변완료
문의드립니다
문의드립니다
시가중심을 가공하려합니다
예로
1일부터~ 5일까지 시가가 각각있다고치고요
1일시가가250.00 이고
2일시가가 250.50이면 중심가는 250.25 이잔아요
3일 시가가 256.00이면
중심가는 256.00와 250.25의 중심값을표시하는것입니다 이런식입니다
부탁드립니다 감사합니다
2019-02-08
174
글번호 125973
답변완료
박스권식을 지표로 하나 부탁합니다
안녕하세요
박스권식으로 하나 부탁합니다
틱차트를 사요합니다
3봉전기준 고가 저가 가격안에서 현재까지 봉이 가격안에 있으면 네모 박스를 나오게 하고 싶습니다
단 추후에 4봉 5봉으로 변할수 있습니다
2019-02-08
249
글번호 125972
답변완료
ma3정배열 역배열
관리자님의 수식을 복사한겁니다
기간 5 10 20 설정
모든신호허용
뭐가 문제인가요
2019-02-08
269
글번호 125968
2wnwn 님에 의해서 삭제되었습니다.
2019-02-08
36
글번호 125967
답변완료
문의드립니다
1분봉 차트에서, 타분봉 5분,10분,30분,60분 지수이동평균(20선)값을 나타내는
지표를 부탁드립니다
2019-02-08
225
글번호 125966
답변완료
수식문의 드립니다.
항상 신속한 답변에 감사 드립니다.
1. 60분봉에 주봉/월봉의 시가,중심가, 저가, 고가의 기준선 표시 하고 싶습니다.
2. 추가적으로 이러한 값을 우측 상단에 모아 두고 텍스트 형태로 표기 하고 싶습니다.
3. 한 주의 시작(월요일) 과 매월의 시작(1일)을 세로선으로 표기
확인 부탁드립니다.
# 항셍 같은 경우는 시작 시간이 저녁 시간대로 시작이 되니 우리 나라 기준으로 10시 10분으로 표시 되게 해주시기 바랍니다.
2019-02-08
262
글번호 125965