Search
Duplicate
📝

최근 골드구간과 데드구간에 박스그리기

#공통, 지표
[설명]
최근 골드구간은 최고가와 최저가를 기준으로 빨간색으로 채워진 박스를 그리고
최근 데드구간은 최고가와 최저가를 기준으로 파란색으로 채워진 박스를 그리는 식입니다.
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
복사