커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7655
글번호 230811
답변완료
수식좀 부탁드립니다.
귀찮으시겠지만 도무지 진전이 없어 글올립니다.
저는 현물에만 적용하려합니다.
매일14시정각에 일정금액(예:100만원)만큼의 주식을 무조건 1번만 매수하려합니다.
그리고 5% 수익시 청산을하고 로스컷 3% 적용하려 합니다.
위 글이 수식의 전부입니다.
여기서 문제는 매수를 한번만 하는것이 아니라 매일 고정적으로 들어가는데
매일 매수한 것을 일별로 개별적으로 수익관리가 가능한지
가능하지 않다면 매수-청산 후 다시 매수-청산 이런식으로 하려 합니다.
2012-05-15
411
글번호 51012
답변완료
늘 감사드립니다.
수식지왕님의 렌코챠트의 신버젼에 구버젼에 반영한
단순이평과 가중이평을 적용하고 싶습니다.
아래에 최신 버젼과 이평이 반영된 구버젼을 모두 첨부했습니다.
구버젼에 반영된데로 최신 버젼에 이평 반영 부탁드리겠습니다.
감사합니다.
렌코챠트 최신 버젼
===========================================================================
#==========================================#
# 시스템명 : 렌코차트(방향전환)
# 작 성 자 : 수식지왕
# 블 로 그 : http://yahoosir.blog.me
#==========================================#
Input:최소변동(4),
비율여부(1); //1:비율,그외:상수값
Var:j(0),최소변동폭(0),벽돌개수(0),방향(0),상승(100),하락(-100);
Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0);
#==========================================#
# 초기 처리
#==========================================#
If Index == 0 Then
{
고[0] = C;
고Bar[0] = 0;
저[0] = C;
저Bar[0] = 0;
If 비율여부 == 1 Then
최소변동폭 = int(((C * 최소변동/100)+5)/10)*10; //10원단위로 맞춤
Else
최소변동폭 = 최소변동;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 최소변동폭 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/최소변동폭,9));
For j = 0 To 9
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[0] = 저[0] - (최소변동폭 * 벽돌개수);
저Bar[0] = 0;
방향 = 하락;
}
Else If 고[0] + 최소변동폭 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/최소변동폭,9));
For j = 0 To 9
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[0] = 고[0] + (최소변동폭 * 벽돌개수);
고Bar[0] = 0;
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 최소변동폭 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/최소변동폭,9));
For j = 0 To 9
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
저[0] = 저[0] - (최소변동폭 * 벽돌개수);
저Bar[0] = 0;
}
If 저[0] + 2*최소변동폭 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/최소변동폭,9));
For j = 0 To 9
{
고Bar[j] = 고Bar[j] + 벽돌개수 - 1;
저Bar[j] = 저Bar[j] + 벽돌개수 - 1;
}
For j = 8 DownTo 0
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
고[0] = 저[0] + (최소변동폭 * 벽돌개수);
고Bar[0] = 0;
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 최소변동폭 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/최소변동폭,9));
For j = 0 To 9
{
고Bar[j] = 고Bar[j] + 벽돌개수;
저Bar[j] = 저Bar[j] + 벽돌개수;
}
고[0] = 고[0] + (최소변동폭 * 벽돌개수);
고Bar[0] = 0;
}
If 고[0] - 2*최소변동폭 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/최소변동폭,9));
For j = 0 To 9
{
고Bar[j] = 고Bar[j] + 벽돌개수 - 1;
저Bar[j] = 저Bar[j] + 벽돌개수 - 1;
}
For j = 8 DownTo 0
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
저[0] = 고[0] - (최소변동폭 * 벽돌개수);
저Bar[0] = 0;
방향 = 하락;
}
}
#==========================================#
# 시스템식
#==========================================#
If 방향[1] == 하락 && 방향 == 상승 Then Buy("상승전환");
If 방향[1] == 상승 && 방향 == 하락 Then Sell("하락전환");
===========================================================================
기존 단순이평과 가중이평이 반영된 렌코챠트 구버젼
===========================================================================
input:단위호가(5),단기(5),중기(20),장기(60);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0),
상승(1),하락(-1),Sum(0),CSum(0), 장기이평(0), 장기가중이평(0);
array:고[10](0),저[10](0),렌코[500](0);
if index == 0 then
{
방향 = 0;
벽돌크기 = PriceScale * 단위호가;
고[0] = C;
저[0] = C;
렌코[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
if 방향 == 0 then
{
if 저[0] - 벽돌크기 >= C then
{
벽돌개수 = int((저[0]-C)/벽돌크기);
저[0] = 저[0] - 벽돌크기 * 벽돌개수;
방향 = 하락;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] - 벽돌크기;
}
}
else if 고[0] + 벽돌크기 <= C then
{
벽돌개수 = int((C-고[0])/벽돌크기);
고[0] = 고[0] + 벽돌크기 * 벽돌개수;
방향 = 상승;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] + 벽돌크기;
}
}
}
else if 방향 == 하락 then
{
if 저[0] - 벽돌크기 >= C then
{
벽돌개수 = int((저[0]-C)/벽돌크기);
저[0] = 저[0] - 벽돌크기 * 벽돌개수;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] - 벽돌크기;
}
}
if 저[0] + 2*벽돌크기 <= C then
{
for j = 8 downto 0
{
고[j+1] = 고[j];
}
방향 = 상승;
벽돌개수 = int((C-저[0])/벽돌크기);
고[0] = 저[0] + 벽돌크기 * 벽돌개수;
for j = 499 downto (벽돌개수-1)
{
렌코[j] = 렌코[j-(벽돌개수-1)];
}
렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기;
if 벽돌개수 > 2 then
{
for j = 벽돌개수 - 3 downto 0
{
렌코[j] = 렌코[j+1] + 벽돌크기;
}
}
}
}
else if 방향 == 상승 then
{
if 고[0] + 벽돌크기 <= C then
{
벽돌개수 = int((C-고[0])/벽돌크기);
고[0] = 고[0] + 벽돌크기 * 벽돌개수;
for j = 499 downto 벽돌개수
{
렌코[j] = 렌코[j-벽돌개수];
}
for j = 벽돌개수 - 1 downto 0
{
렌코[j] = 렌코[j+1] + 벽돌크기;
}
}
if 고[0] - 2*벽돌크기 >= C then
{
for j = 8 downto 0
{
저[j+1] = 저[j];
}
방향 = 하락;
벽돌개수 = int((고[0]-C)/벽돌크기);
저[0] = 고[0] - 벽돌크기 * 벽돌개수;
for j = 499 downto (벽돌개수-1)
{
렌코[j] = 렌코[j-(벽돌개수-1)];
}
렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기;
if 벽돌개수 > 2 then
{
for j = 벽돌개수 - 3 downto 0
{
렌코[j] = 렌코[j+1] - 벽돌크기;
}
}
}
}
#==========================================#
# 렌코 (가중)이평계산
#==========================================#
Sum = 0;
for j = 0 to (단기-1)
{
Sum = Sum + 렌코[j];
}
단기이평 = Sum / 단기;
Sum = 0;
for j = 0 to (중기-1)
{
Sum = Sum + 렌코[j];
}
중기이평 = Sum / 중기;
Sum = 0;
for j = 0 to (장기-1)
{
Sum = Sum + 렌코[j];
}
장기이평 = Sum / 장기;
Sum = 0;
CSum = 0;
for j = 0 to (단기-1)
{
Sum = Sum + 렌코[j] * (단기 - j);
CSum = CSum + (단기 - j);
}
단기가중이평 = Sum / CSum;
Sum = 0;
CSum = 0;
for j = 0 to (중기-1)
{
Sum = Sum + 렌코[j] * (중기 - j);
CSum = CSum + (중기 - j);
}
중기가중이평 = Sum / CSum;
Sum = 0;
CSum = 0;
for j = 0 to (장기-1)
{
Sum = Sum + 렌코[j] * (장기 - j);
CSum = CSum + (장기 - j);
}
장기가중이평 = Sum / CSum;
/*
#==========================================#
# 지표식 출력
#==========================================#
if 방향[1]==하락 and 방향==상승 then
buy();
if 방향[1]==상승 and 방향==하락 then
sell();
*/
plot1(단기이평);
plot2(중기이평);
plot3(장기이평);
plot4(단기가중이평);
plot5(중기가중이평);
plot6(장기가중이평);
2012-05-15
500
글번호 51006
답변완료
행복; 수식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
조건검색식 작성 바랍니다
< 조건 >
- CO (단기, 중기, 시그널, 기준선) 에서
단기; 10, 중기; 20, 시그널; 30, 기준선; 0 일 때
- CO (10, 20) > 1,000 인 종목을 검색하는 수식 작성 바랍니다
2012-05-15
701
글번호 51005
답변완료
수식문의
늘 감사합니다
선물 총호가매수, 매도 잔량의 봉차트를
참조테이타로 볼 수 있는 방법좀 알려주세요
2012-05-15
398
글번호 51004
여민구 님에 의해서 삭제되었습니다.
2012-05-15
1
글번호 51003
답변완료
문의 드립니다...
분봉에서!
전일의 일봉기준<시가-종가>음봉.양봉의 크기가 2포인트이상이고
전일의 양봉의 중심값을 5지수이평이 하락이탈하고
3봉이상 하락이탈시 매도
전일의 음봉의 중심값을 5지수이평이 상승이탈하고
5봉이상 상승이탈시 매수
당일 매수.매도 각 1회만....
*2포인트*5지수이평*3봉*5봉 외부변수처리 부탁드립니다.....^^
2012-05-15
378
글번호 51002
답변완료
수식 문의
외국인 선물 순매수 금액 (data2)
개인 선물 순매수 금액 (data3)
증권 선물 순매수 금액 (data4)
라고 했을 때,
A지표 :
data2 + data3 + data 4 의 총합을 막대그래프로 표시 합니다.
(단 data2,3,4 의 값이 음수인 경우 모두 양수로 바꾸어 다룹니다. )
========================================
아래의 b,c,d지표를 하나의 지표로 묶어서 표현합니다.
b지표 :
data2를 A지표값 으로 나눈 값을 선차트로 표현합니다.
(단 data2,3,4 의 값이 음수인 경우 모두 양수로 바꾸어 다룹니다. )
c지표 :
data3을 A지표값 으로 나눈 값을 선차트로 표현합니다.
(단 data2,3,4 의 값이 음수인 경우 모두 양수로 바꾸어 다룹니다. )
d지표 :
data4를 A지표값으로 나눈 값을 선차트로 표현합니다.
(단 data2,3,4 의 값이 음수인 경우 모두 양수로 바꾸어 다룹니다. )
-==============================
아래의 ㄱ,ㄴ,ㄷ,ㄹ 지표를 하나의 지표로 묶어서 표현합니다.
ㄱ. 거래량지표.
(해당 거래량의 봉이 양봉이면 **색, 음봉이면 **색으로 설정할 수 있게 해 주세요)
ㄴ. 거래량 * b지표값
ㄷ. 거래량 * c지표값
ㄹ. 거래량 * d지표값
==============================
따사로운 봄입니다.
항상 감사드리고요, 오늘도 즐거운 하루 되세요~
2012-05-15
456
글번호 51001
답변완료
현재 종목검색 조회가 안되는데요..
종목검색 관련한 부분 코딩중에..
while 문을 잘못 사용하여.. 무한루프를 몇번 실행했던것 같은데요..
그이후에.. 모든 종목검색(시장검색, 예스매매신호등) 이 되질 않고 있습니다.
검색중 0% 라고 멈춰있습니다.
재부팅, 재시작 해봐도 계속 검색만 안되네요.. ^^;
조치 방법이 있는지... 아니면.. 내일 이면 다시 정상이 되는것인지 궁금합니다.
2012-05-14
366
글번호 50998
답변완료
문의드립니다.
현물 거래를 시스템으로 작성하려고 합니다.
엔벨로프 기간 20 퍼센트 20으로 잡고
1) 하단을 뚫고 내려갔다가 올라오면 엔벨로프 하단 가격에서 매수
2) 하단 위(2%이내)까지 왔다가 상승하면 매수
3) 매수가 보다 5%오르면 매도
4) 매수가보다 2% 떨어지면 매도
5) 매수 후 고점보다 2% 떨어지면 매도
6) 매수 후 거래일수 10일이 지나면 자동 매도
7) 매수 시 계좌 잔고 Max만큼
이건데 만들어주세요.감사합니다.
2012-05-14
383
글번호 50997