커뮤니티
문의드립니다
2013-10-07 07:24:07
137
글번호 68163
항상 친절한 답변 고맙습니다.
ㅇ 렌코챠트의 벽돌크기를 주가변동폭이 2%일때 이를 적용하는 수식을 부탁드립니다.
<참고 하세요>
input:최소변화폭(2),비율여부(1); //1:비율,그외:상수값
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(1),하락(-1),Sum(0),CSum(0);
array:고[10](0),저[10](0),렌코[500](0);
if index == 0 then
{
//벽돌크기 = 최소변화폭;
//벽돌크기 = PriceScale * (1-(최소변화폭/100));
//벽돌크기 = PriceScale * 최소변화폭;
고[0] = C;
저[0] = C;
렌코[0] = C;
If 비율여부 == 1 Then
벽돌크기 = int(((C * 최소변화폭/100)+5)/10)*10; //10원단위로 맞춤
Else
벽돌크기 = 최소변화폭;
}
ㅇ 그리고 일봉에서 30분봉의 CCI(9,10)을 구현하는 방법 부탁드립니다.
수고하세요
답변 1
예스스탁 예스스탁 답변
2013-10-07 16:19:54
안녕하세요
예스스탁입니다.
1.
input:최소변화폭(2);
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(1),하락(-1),Sum(0),CSum(0);
array:고[10](0),저[10](0),렌코[500](0);
if index == 0 then
{
방향 = 0;
고[0] = C;
저[0] = C;
렌코[0] = C;
벽돌크기 = int(((C * 최소변화폭/100)+5)/10)*10; //10원단위로 맞춤
}
#==========================================#
# 렌코 계산
#==========================================#
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] - 벽돌크기;
}
}
}
}
if 방향[1]==하락 and 방향==상승 then
plot1(저[0],"렌코차트",Blue); //선그래프
if 방향[1]==상승 and 방향==하락 then
plot1(고[0],"렌코차트",RED); //선그래프
plot2(렌코[0],"렌코값",iff(방향==상승,RED,BLUE)); //선그래프
2.
차트 주기보다 낮은 주기의 지표값은 수식으로 계산할수 없습니다.
즐거운 하루되세요
> 민기삼촌 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 항상 친절한 답변 고맙습니다.
ㅇ 렌코챠트의 벽돌크기를 주가변동폭이 2%일때 이를 적용하는 수식을 부탁드립니다.
<참고 하세요>
input:최소변화폭(2),비율여부(1); //1:비율,그외:상수값
var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(1),하락(-1),Sum(0),CSum(0);
array:고[10](0),저[10](0),렌코[500](0);
if index == 0 then
{
//벽돌크기 = 최소변화폭;
//벽돌크기 = PriceScale * (1-(최소변화폭/100));
//벽돌크기 = PriceScale * 최소변화폭;
고[0] = C;
저[0] = C;
렌코[0] = C;
If 비율여부 == 1 Then
벽돌크기 = int(((C * 최소변화폭/100)+5)/10)*10; //10원단위로 맞춤
Else
벽돌크기 = 최소변화폭;
}
ㅇ 그리고 일봉에서 30분봉의 CCI(9,10)을 구현하는 방법 부탁드립니다.
수고하세요