커뮤니티

크루드오일 날짜 변경 관련

프로필 이미지
관람자
2017-11-14 16:29:28
151
글번호 114189
답변완료
한투의 해외선물 예스트레이더를 사용하고 있습니다. 저는 지표중 선형회귀 방정식을 통해 20일동안 시가에서 고가, 저가의 값을 구해서 당일 시가 기준으로 고가 및 저가를 구하고자 다음의 수식을 사용하고 있습니다. 이 수식은 한국 기준으로 작성되어진 것으로 보이는데, 크루드 오일의 경우 장운영 시간이 07:00 ~익일 06:15 으로 알고 있는데, 이 수식을 적용해보니 우리나라 기준으로 새벽0시로 날짜가 변경되어서 차트에 정확하지 않는 지지와 저항이 표시되고 있습니다. 이를 해외 선물에 맞게끔 수정 부탁드립니다. Input:n(20); Var:j(0),고가기울기(0),고가절편(0),고가예상치(0),고가표준오차(0), 저가기울기(0),저가절편(0),저가예상치(0),저가표준오차(0),trend(0), sumOH(0),sumOL(0),sumO(0),sumH(0),sumL(0),sumO²(0),sumH²(0),sumL²(0); if Date[1] < Date then { sumOH = 0; sumOL = 0; sumO = 0; sumH = 0; sumL = 0; sumO² = 0; sumH² = 0; sumL² = 0; for j = 1 to n { sumOH = sumOH + DayOpen(j)*DayHigh(j); sumOL = sumOL + DayOpen(j)*DayLow(j); sumO = sumO + DayOpen(j); sumH = sumH + DayHigh(j); sumL = sumL + DayLow(j); sumO² = sumO² + DayOpen(j)^2; sumH² = sumH² + DayHigh(j)^2; sumL² = sumL² + DayLow(j)^2; } #==========================================================================# # 선형회귀방정식 # #==========================================================================# # nΣxy - (Σx)(Σy) # # 기울기 a = --------------------- # # nΣx²- (Σx)² # # # # = (n*sum(xy) - sum(x)*sum(y)) / (n*sum(x^2) - sum(x)^2) # # # # (Σy)(Σx²)-(Σx)(Σxy) # # 절편 b = --------------------------- # # nΣx²- (Σx)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #==========================================================================# 고가기울기 = (n*sumOH - sumO*sumH) / (n*sumO²- sumO^2); 고가절편 = (sumH*sumO² - sumO*sumOH) / (n*sumO² - sumO^2); 저가기울기 = (n*sumOL - sumO*sumL) / (n*sumO² - sumO^2); 저가절편 = (sumL*sumO² - sumO*sumOL) / (n*sumO² - sumO^2); 고가예상치 = 고가기울기 * DayOpen() + 고가절편; 저가예상치 = 저가기울기 * DayOpen() + 저가절편; #==========================================================================# # 표준오차 공식 # #==========================================================================# # _______________________________________________________ # # / 1 [nΣxy - (Σx)(Σy)]² # # Sxy = / [ ------- ][nΣy²- (Σy)²- ----------------------- ] # # √ n(n-2) nΣx²- (Σx)² # # # # = sqrt((1/(n*(n-2))) * (n*sum(y^2) - sum(y)^2 - # # ((n*sum(x*y) - sum(x)*sum(y))^2 / (n*sum(x^2) - sum(x)^2)))) # #==========================================================================# 고가표준오차 = sqrt((1/(n*(n-2))) * (n*sumH² - sumH^2 - ((n*sumOH - sumO*sumH)^2 / (n*sumO² - sumO^2)))); 저가표준오차 = sqrt((1/(n*(n-2))) * (n*sumL² - sumL^2 - ((n*sumOL - sumO*sumL)^2 / (n*sumO² - sumO^2)))); } var1 = ema(h,50); var2= ema(l,50); var7=var1+(var1-ema(var1,50)); var8=var2+(var2-ema(var2,50)); if var7[2] > var7[1] and var7[1] < var7 then trend=1; if var7[2] < var7[1] and var7[1] > var7 then trend=0; if sdate== CurrentDate then { plot2(round(고가예상치 + 0.5 * 고가표준오차,1),"2차 저항선"); plot3(round(고가예상치 - 0.5 * 고가표준오차,1),"1차 저항선"); plot6(round(저가예상치 + 0.5 * 저가표준오차,1),"1차 지지선"); plot7(round(저가예상치 - 0.5 * 저가표준오차,1),"2차 지지선"); plot8(dayopen,"시가"); Plot13(var7,"이평",iff(trend == 1,green, rgb(0,84,225))); Plot14(var8,"이평",iff(trend == 1,green, rgb(0,84,225)));
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-11-15 11:25:39

안녕하세요 예스스탁입니다. 영업일 기준으로 변경했습니다. Input:n(20); Var:j(0),고가기울기(0),고가절편(0),고가예상치(0),고가표준오차(0), 저가기울기(0),저가절편(0),저가예상치(0),저가표준오차(0),trend(0), sumOH(0),sumOL(0),sumO(0),sumH(0),sumL(0),sumO²(0),sumH²(0),sumL²(0); if bDate[1] < bDate then { sumOH = 0; sumOL = 0; sumO = 0; sumH = 0; sumL = 0; sumO² = 0; sumH² = 0; sumL² = 0; for j = 1 to n { sumOH = sumOH + DayOpen(j)*DayHigh(j); sumOL = sumOL + DayOpen(j)*DayLow(j); sumO = sumO + DayOpen(j); sumH = sumH + DayHigh(j); sumL = sumL + DayLow(j); sumO² = sumO² + DayOpen(j)^2; sumH² = sumH² + DayHigh(j)^2; sumL² = sumL² + DayLow(j)^2; } #==========================================================================# # 선형회귀방정식 # #==========================================================================# # nΣxy - (Σx)(Σy) # # 기울기 a = --------------------- # # nΣx²- (Σx)² # # # # = (n*sum(xy) - sum(x)*sum(y)) / (n*sum(x^2) - sum(x)^2) # # # # (Σy)(Σx²)-(Σx)(Σxy) # # 절편 b = --------------------------- # # nΣx²- (Σx)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #==========================================================================# 고가기울기 = (n*sumOH - sumO*sumH) / (n*sumO²- sumO^2); 고가절편 = (sumH*sumO² - sumO*sumOH) / (n*sumO² - sumO^2); 저가기울기 = (n*sumOL - sumO*sumL) / (n*sumO² - sumO^2); 저가절편 = (sumL*sumO² - sumO*sumOL) / (n*sumO² - sumO^2); 고가예상치 = 고가기울기 * DayOpen() + 고가절편; 저가예상치 = 저가기울기 * DayOpen() + 저가절편; #==========================================================================# # 표준오차 공식 # #==========================================================================# # _______________________________________________________ # # / 1 [nΣxy - (Σx)(Σy)]² # # Sxy = / [ ------- ][nΣy²- (Σy)²- ----------------------- ] # # √ n(n-2) nΣx²- (Σx)² # # # # = sqrt((1/(n*(n-2))) * (n*sum(y^2) - sum(y)^2 - # # ((n*sum(x*y) - sum(x)*sum(y))^2 / (n*sum(x^2) - sum(x)^2)))) # #==========================================================================# 고가표준오차 = sqrt((1/(n*(n-2))) * (n*sumH² - sumH^2 - ((n*sumOH - sumO*sumH)^2 / (n*sumO² - sumO^2)))); 저가표준오차 = sqrt((1/(n*(n-2))) * (n*sumL² - sumL^2 - ((n*sumOL - sumO*sumL)^2 / (n*sumO² - sumO^2)))); } var1 = ema(h,50); var2= ema(l,50); var7=var1+(var1-ema(var1,50)); var8=var2+(var2-ema(var2,50)); if var7[2] > var7[1] and var7[1] < var7 then trend=1; if var7[2] < var7[1] and var7[1] > var7 then trend=0; if bdate == CurrentDate then { plot2(round(고가예상치 + 0.5 * 고가표준오차,1),"2차 저항선"); plot3(round(고가예상치 - 0.5 * 고가표준오차,1),"1차 저항선"); plot6(round(저가예상치 + 0.5 * 저가표준오차,1),"1차 지지선"); plot7(round(저가예상치 - 0.5 * 저가표준오차,1),"2차 지지선"); plot8(dayopen,"시가"); Plot13(var7,"이평",iff(trend == 1,green, rgb(0,84,225))); Plot14(var8,"이평",iff(trend == 1,green, rgb(0,84,225))); } 즐거운 하루되세요 > 관람자 님이 쓴 글입니다. > 제목 : 크루드오일 날짜 변경 관련 > 한투의 해외선물 예스트레이더를 사용하고 있습니다. 저는 지표중 선형회귀 방정식을 통해 20일동안 시가에서 고가, 저가의 값을 구해서 당일 시가 기준으로 고가 및 저가를 구하고자 다음의 수식을 사용하고 있습니다. 이 수식은 한국 기준으로 작성되어진 것으로 보이는데, 크루드 오일의 경우 장운영 시간이 07:00 ~익일 06:15 으로 알고 있는데, 이 수식을 적용해보니 우리나라 기준으로 새벽0시로 날짜가 변경되어서 차트에 정확하지 않는 지지와 저항이 표시되고 있습니다. 이를 해외 선물에 맞게끔 수정 부탁드립니다. Input:n(20); Var:j(0),고가기울기(0),고가절편(0),고가예상치(0),고가표준오차(0), 저가기울기(0),저가절편(0),저가예상치(0),저가표준오차(0),trend(0), sumOH(0),sumOL(0),sumO(0),sumH(0),sumL(0),sumO²(0),sumH²(0),sumL²(0); if Date[1] < Date then { sumOH = 0; sumOL = 0; sumO = 0; sumH = 0; sumL = 0; sumO² = 0; sumH² = 0; sumL² = 0; for j = 1 to n { sumOH = sumOH + DayOpen(j)*DayHigh(j); sumOL = sumOL + DayOpen(j)*DayLow(j); sumO = sumO + DayOpen(j); sumH = sumH + DayHigh(j); sumL = sumL + DayLow(j); sumO² = sumO² + DayOpen(j)^2; sumH² = sumH² + DayHigh(j)^2; sumL² = sumL² + DayLow(j)^2; } #==========================================================================# # 선형회귀방정식 # #==========================================================================# # nΣxy - (Σx)(Σy) # # 기울기 a = --------------------- # # nΣx²- (Σx)² # # # # = (n*sum(xy) - sum(x)*sum(y)) / (n*sum(x^2) - sum(x)^2) # # # # (Σy)(Σx²)-(Σx)(Σxy) # # 절편 b = --------------------------- # # nΣx²- (Σx)² # # # # = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) # #==========================================================================# 고가기울기 = (n*sumOH - sumO*sumH) / (n*sumO²- sumO^2); 고가절편 = (sumH*sumO² - sumO*sumOH) / (n*sumO² - sumO^2); 저가기울기 = (n*sumOL - sumO*sumL) / (n*sumO² - sumO^2); 저가절편 = (sumL*sumO² - sumO*sumOL) / (n*sumO² - sumO^2); 고가예상치 = 고가기울기 * DayOpen() + 고가절편; 저가예상치 = 저가기울기 * DayOpen() + 저가절편; #==========================================================================# # 표준오차 공식 # #==========================================================================# # _______________________________________________________ # # / 1 [nΣxy - (Σx)(Σy)]² # # Sxy = / [ ------- ][nΣy²- (Σy)²- ----------------------- ] # # √ n(n-2) nΣx²- (Σx)² # # # # = sqrt((1/(n*(n-2))) * (n*sum(y^2) - sum(y)^2 - # # ((n*sum(x*y) - sum(x)*sum(y))^2 / (n*sum(x^2) - sum(x)^2)))) # #==========================================================================# 고가표준오차 = sqrt((1/(n*(n-2))) * (n*sumH² - sumH^2 - ((n*sumOH - sumO*sumH)^2 / (n*sumO² - sumO^2)))); 저가표준오차 = sqrt((1/(n*(n-2))) * (n*sumL² - sumL^2 - ((n*sumOL - sumO*sumL)^2 / (n*sumO² - sumO^2)))); } var1 = ema(h,50); var2= ema(l,50); var7=var1+(var1-ema(var1,50)); var8=var2+(var2-ema(var2,50)); if var7[2] > var7[1] and var7[1] < var7 then trend=1; if var7[2] < var7[1] and var7[1] > var7 then trend=0; if sdate== CurrentDate then { plot2(round(고가예상치 + 0.5 * 고가표준오차,1),"2차 저항선"); plot3(round(고가예상치 - 0.5 * 고가표준오차,1),"1차 저항선"); plot6(round(저가예상치 + 0.5 * 저가표준오차,1),"1차 지지선"); plot7(round(저가예상치 - 0.5 * 저가표준오차,1),"2차 지지선"); plot8(dayopen,"시가"); Plot13(var7,"이평",iff(trend == 1,green, rgb(0,84,225))); Plot14(var8,"이평",iff(trend == 1,green, rgb(0,84,225)));