#공통, 지표
[설명]
최근 골드구간은 최고가와 최저가를 기준으로 빨간색으로 채워진 박스를 그리고
최근 데드구간은 최고가와 최저가를 기준으로 파란색으로 채워진 박스를 그리는 식입니다.
input : short(20),long(60);
var : mav1(0),mav2(0),T(0),box(0);
var : GoldD1(0),GoldT1(0),GoldH(0),GoldL(0);
var : DeadD1(0),DeadT1(0),DeadH(0),DeadL(0);
//단기이평
mav1 = ma(C,short);
//장기이평
mav2 = ma(C,long);
Plot1(mav1);
plot2(mav2);
//골드발생
if CrossUp(mav1,mav2) Then
{
//골드가 발생하면 1이고 다음 데드가 발생할때까지 유지
T = 1;
//골드봉의 날짜, 시간
GoldD1 = sDate;
GoldT1 = sTime;
//골드구간 최고가 저장할 변수, 초기값은 골드봉 고가
GoldH = H;
//골드구간 최저가 저장할 변수, 초기값은 골드봉 저가
GoldL = L;
//봉완성시 현재봉과 다음봉에 걸려처 첫 박스를 그림
box = Box_New(GoldD1,GoldT1,GoldH,NextBarSdate,NextBarStime,GoldL);
//박스색상은 빨강
Box_SetColor(box,Red);
//박스내부 채움
Box_SetFill(box,true);
}
else if CrossDown(mav1,mav2) Then //데드발생
{
//데드가 발생하면 -1이고 다음 골드가 발생할때까지 유지
T = -1;
//드드봉의 날짜, 시간
DeadD1 = sDate;
DeadT1 = sTime;
//데드구간 최고가 저장할 변수, 초기값은 데드봉 고가
DeadH = h;
//데드구간 최저가 저장할 변수, 초기값은 데드봉 저가
DeadL = l;
//봉완성시 현재봉과 다음봉에 걸려처 첫 박스를 그림
box = Box_New(DeadD1,DeadT1,DeadH,NextBarSdate,NextBarStime,DeadL);
//박스색상은 파랑
Box_SetColor(box,Blue);
//박스내부 채움
Box_SetFill(box,true);
}
Else
{
//골드구간
if T == 1 Then
{
//골드구간 최고가 계산
//현재고가가 GoldH에 저장된 값보다 크면 GoldH값을 현재고가로 변경
if H > GoldH Then
GoldH = H;
//골드구간 최저가 계산
//현재저가가 GoldL에 저장된 값보다 작으면 GoldL값을 현재저가로 변경
if L < GoldL Then
GoldL = L;
//박스 시작점을 변경(날짜와 시간은 골드 첫봉의 날짜와 시간이고 골드이후 최고가로 변경)
Box_SetBegin(Box,GoldD1,GoldT1,GoldH);
//박스 끝점을 변경(다음봉시가의 날짜와 시간을 지정하고 골드이후 최저가로 변경)
Box_SetEnd(Box,NextBarSdate,NextBarStime,GoldL);
}
//데드구간
if T == -1 Then
{
//데드구간 최고가 계산
//현재고가가 DeadH에 저장된 값보다 크면 DeadH값을 현재고가로 변경
if H > DeadH Then
DeadH = H;
//데드구간 최저가 계산
//현재저가가 DeadL에 저장된 값보다 작으면 Dead값을 현재저가로 변경
if L < DeadL Then
DeadL = L;
//박스 시작점을 변경(날짜와 시간은 데드 첫봉의 날짜와 시간이고 데드이후 최고가로 변경)
Box_SetBegin(Box,DeadD1,DeadT1,DeadH);
//박스 끝점을 변경(다음봉시가의 날짜와 시간을 지정하고 데드이후 최저가로 변경)
Box_SetEnd(Box,NextBarSdate,NextBarStime,DeadL);
}
}
JavaScript
복사
