커뮤니티

수식 문의

프로필 이미지
까냐스키
2022-02-17 17:18:15
807
글번호 156414
답변완료
아래 두 수식은 강조식입니다. 수식 1 : 은 Upvol-DownVol + data2의 양수/음수값을 양봉,음봉으로 수식 2 : 는 하캔아쉬 지표 입니다. 분봉에서 적용시, 직전봉과 비교하되 시초가 첫봉만큼은 전일 마지막봉과 비교되는 오류를 피하기 위해 알맞게 수정되어 있습니다. 수식 문의 1 :: 이 두개의 수식을 섞고 싶은데요, 수식1이 양봉이면서 수식2가 양봉이면 = 양봉 수식1이 음봉이면서 수식2가 음봉이면 = 음봉 위 두 조건이 아니면 직전봉의 색깔을 그대로 이어받아서 칠해줍니다. 수식 문의 2 :: 위의 섞은 강조식을 시스템 식으로 구하고 싶습니다. plot은 여러개 조건을 여러개의 plot으로 뿌리면 되는데 강조식은 짜려니 멘붕 오네요. 부탁 좀 드리겠습니다. 감사합니다. ######### 수식 1 ########## input : starttime(090000),endtime(154500),X(1); var : Tcond(false,data2),idx(0,data2),VV(0,data2); var : diff(0),value(0),color(0); diff = Upvol-DownVol; if data2((sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime)) then { Tcond = true; idx = 0; } if data2((sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime)) then { Tcond = false; VV = 0; } if Tcond == true then { idx = idx+1; if idx == 1 Then vv = data2(DayOpen); Else vv = data2(C-C[1]); if idx == 1 Then { if VV > 0 and diff > 0 Then value = VV+diff; if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then value = VV-abs(diff); if VV <= 0 and diff > 0 and (diff - abs(vv)) > 0 Then value = diff-abs(VV); if VV <= 0 and diff < 0 Then value = VV+diff; if VV <= 0 and diff > 0 and (vv + diff) <= 0 Then value = VV+diff; if VV > 0 and diff < 0 and (diff + vv) <= 0 Then value = diff+VV; if value > 0 Then color = RGB(242,150,97); Else color = RGB(103,153,255); } Else { if VV > 0 and diff > 0 Then value = VV+diff; if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then value = VV-abs(diff); if VV < 0 and diff > 0 and (diff - abs(vv)) > 0 Then value = diff-abs(VV); if VV < 0 and diff < 0 Then value = VV+diff; if VV < 0 and diff > 0 and (vv + diff) < 0 Then value = VV+diff; if VV > 0 and diff < 0 and (diff + vv) < 0 Then value = diff+VV; if abs(value) > abs(value[1])*x Then { if value > 0 Then color = RGB(242,150,97); Else color = RGB(103,153,255); } } PlotPaintBar(H,L,"강조",color); } ############ 수식 2 ############# var : Xclose(0),xOpen(0),Xhigh(0),Xlow(0); xClose = (Open+High+Low+Close)/4; xOpen = (Open[1] + Close[1])/2 ; xHigh = Max(High, xOpen, xClose); xLow = Min(Low, xOpen, xClose) ; if Bdate != Bdate[1] Then { if Xclose > (Open[0] + Close[0])/2 Then PlotPaintBar(H,L,"강조",RGB(255,130,36)); Else PlotPaintBar(H,L,"강조",RGB(126,210,255)); } Else { if Xclose > Xopen Then PlotPaintBar(H,L,"강조",RGB(255,130,36)); Else PlotPaintBar(H,L,"강조",RGB(126,210,255)); }
강조
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-02-18 09:41:01

안녕하세요 예스스탁입니다. input : starttime(090000),endtime(154500),X(1); var : Tcond(false,data2),idx(0,data2),VV(0,data2); var : diff(0),value(0),color(0),T(0); diff = Upvol-DownVol; if data2((sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime)) then { Tcond = true; idx = 0; } if data2((sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime)) then { Tcond = false; VV = 0; } if Tcond == true then { idx = idx+1; if idx == 1 Then vv = data2(DayOpen); Else vv = data2(C-C[1]); if idx == 1 Then { if VV > 0 and diff > 0 Then value = VV+diff; if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then value = VV-abs(diff); if VV <= 0 and diff > 0 and (diff - abs(vv)) > 0 Then value = diff-abs(VV); if VV <= 0 and diff < 0 Then value = VV+diff; if VV <= 0 and diff > 0 and (vv + diff) <= 0 Then value = VV+diff; if VV > 0 and diff < 0 and (diff + vv) <= 0 Then value = diff+VV; if value > 0 Then color = RGB(242,150,97); Else color = RGB(103,153,255); } Else { if VV > 0 and diff > 0 Then value = VV+diff; if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then value = VV-abs(diff); if VV < 0 and diff > 0 and (diff - abs(vv)) > 0 Then value = diff-abs(VV); if VV < 0 and diff < 0 Then value = VV+diff; if VV < 0 and diff > 0 and (vv + diff) < 0 Then value = VV+diff; if VV > 0 and diff < 0 and (diff + vv) < 0 Then value = diff+VV; if abs(value) > abs(value[1])*x Then { if value > 0 Then T = 1; Else T = -1; } } } var : Xclose(0,Data1),xOpen(0,Data1),Xhigh(0,Data1),Xlow(0,Data1),S(0,Data1); xClose = (Open+High+Low+Close)/4; xOpen = (Open[1] + Close[1])/2 ; xHigh = Max(High, xOpen, xClose); xLow = Min(Low, xOpen, xClose) ; if Bdate != Bdate[1] Then { if Xclose > (Open[0] + Close[0])/2 Then S = 1; Else S = -1; } Else { if Xclose > Xopen Then S = 1; Else S = -1; } if T == 1 and S == 1 Then color = RED; if T == -1 and S == -1 Then color = RED; PlotPaintBar(H,L,"강조",color); 즐거운 하루 되세요 > 까냐스키 님이 쓴 글입니다. > 제목 : 수식 문의 > 아래 두 수식은 강조식입니다. 수식 1 : 은 Upvol-DownVol + data2의 양수/음수값을 양봉,음봉으로 수식 2 : 는 하캔아쉬 지표 입니다. 분봉에서 적용시, 직전봉과 비교하되 시초가 첫봉만큼은 전일 마지막봉과 비교되는 오류를 피하기 위해 알맞게 수정되어 있습니다. 수식 문의 1 :: 이 두개의 수식을 섞고 싶은데요, 수식1이 양봉이면서 수식2가 양봉이면 = 양봉 수식1이 음봉이면서 수식2가 음봉이면 = 음봉 위 두 조건이 아니면 직전봉의 색깔을 그대로 이어받아서 칠해줍니다. 수식 문의 2 :: 위의 섞은 강조식을 시스템 식으로 구하고 싶습니다. plot은 여러개 조건을 여러개의 plot으로 뿌리면 되는데 강조식은 짜려니 멘붕 오네요. 부탁 좀 드리겠습니다. 감사합니다. ######### 수식 1 ########## input : starttime(090000),endtime(154500),X(1); var : Tcond(false,data2),idx(0,data2),VV(0,data2); var : diff(0),value(0),color(0); diff = Upvol-DownVol; if data2((sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime)) then { Tcond = true; idx = 0; } if data2((sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime)) then { Tcond = false; VV = 0; } if Tcond == true then { idx = idx+1; if idx == 1 Then vv = data2(DayOpen); Else vv = data2(C-C[1]); if idx == 1 Then { if VV > 0 and diff > 0 Then value = VV+diff; if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then value = VV-abs(diff); if VV <= 0 and diff > 0 and (diff - abs(vv)) > 0 Then value = diff-abs(VV); if VV <= 0 and diff < 0 Then value = VV+diff; if VV <= 0 and diff > 0 and (vv + diff) <= 0 Then value = VV+diff; if VV > 0 and diff < 0 and (diff + vv) <= 0 Then value = diff+VV; if value > 0 Then color = RGB(242,150,97); Else color = RGB(103,153,255); } Else { if VV > 0 and diff > 0 Then value = VV+diff; if VV > 0 and diff < 0 and (vv - abs(diff)) > 0 Then value = VV-abs(diff); if VV < 0 and diff > 0 and (diff - abs(vv)) > 0 Then value = diff-abs(VV); if VV < 0 and diff < 0 Then value = VV+diff; if VV < 0 and diff > 0 and (vv + diff) < 0 Then value = VV+diff; if VV > 0 and diff < 0 and (diff + vv) < 0 Then value = diff+VV; if abs(value) > abs(value[1])*x Then { if value > 0 Then color = RGB(242,150,97); Else color = RGB(103,153,255); } } PlotPaintBar(H,L,"강조",color); } ############ 수식 2 ############# var : Xclose(0),xOpen(0),Xhigh(0),Xlow(0); xClose = (Open+High+Low+Close)/4; xOpen = (Open[1] + Close[1])/2 ; xHigh = Max(High, xOpen, xClose); xLow = Min(Low, xOpen, xClose) ; if Bdate != Bdate[1] Then { if Xclose > (Open[0] + Close[0])/2 Then PlotPaintBar(H,L,"강조",RGB(255,130,36)); Else PlotPaintBar(H,L,"강조",RGB(126,210,255)); } Else { if Xclose > Xopen Then PlotPaintBar(H,L,"강조",RGB(255,130,36)); Else PlotPaintBar(H,L,"강조",RGB(126,210,255)); }