커뮤니티

수식 부탁드립니다.

프로필 이미지
가자치타
2025-06-19 16:28:37
248
글번호 191938
답변완료
아래 수식1 수식2에 23.6 38.2 61.8 76.4% 라인 추가로 부탁 드립니다. 수식1 input : length(50),hh(8),mult(3); var : k(2),src(0),n(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0); Var : tx1(0), tx2(0); src = Close; n = barindex; //if IsLastBar업데이트 and barindex>length then //y = 0 sume = 0; for i = 0 to length-1 { sum = 0; sumw = 0; for j = 0 to length-1 { w = exp(-(pow(i-j,2)/(hh*hh*2))); sum = sum+src[j]*w; sumw = sumw+w; } y2 = sum/sumw; sume = sume+abs(src[i] - y2); } mae = sume/length*mult; if CrossDown(src,y2+mae) then { tx1 = Text_New_Self(sdate,stime,H,"▼"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,Blue); Text_setsize(Tx1,30); } if CrossUp(src,y2-mae) then { tx2 = Text_New_Self(sdate,stime,L,"▲"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,Red); Text_setsize(Tx2,30); } Plot1(y2); Plot2(y2+mae); Plot3(y2-mae); 수식2 input : length(130); input : extend(30); input : t_col(Magenta); input : b_col(lime); var : i(0),max_(0),min_(0),mid_(0),index_of_min(0),index_of_max(0); var : alpha(0),ATRV(0); var : TL1(0),TL2(0),TL3(0); var : TX1(0),TX2(0),TX3(0),TX4(0),TX5(0),TX6(0),TX7(0); var : box1(0),box2(0); Array : mx[500](0),mn[500](0); Array : TX[100](0); alpha = 1 / 200 ; ATRV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1])); for i = 0 to length - 1 { mx[i] = high[i]; mn[i] = low[i]; } var1 = NthHighestArray(mx, length, 1, max_, index_of_max); var2 = NthLowestArray(mn, length, 1, min_, index_of_min); mid_ = avg(max_, min_); #d.res_area := box.new(bar_index-length, max_+atr, bar_index+extend, max-atr, na, bgcolor = color.new(t_col, 80)) #d.sup_area := box.new(bar_index-length, min_+atr, bar_index+extend, min-atr, na, bgcolor = color.new(b_col, 80)) TL_Delete(TL1); TL1 = TL_New(sDate[length],sTime[length],max_+ATRV*0.5,sDate,sTime,max_+ATRV*0.5); TL_SetColor(TL1,t_col); TL_Delete(TL2); TL2 = TL_New(sDate[length],sTime[length],mid_,sDate,sTime,mid_); TL_SetColor(TL2,Gray); TL_SetStyle(TL2,3); TL_Delete(TL3); TL3 = TL_New(sDate[length],sTime[length],min_-ATRV*0.5,sDate,sTime,min_-ATRV*0.5); TL_SetColor(TL3,t_col); Text_Delete(TX1); TX1 = Text_New(NextBarSdate,NextBarStime,max_,"▲"+NumToStr(max_,2)); Text_SetStyle(TX1,0,2); Text_Delete(TX2); TX2 = Text_New(NextBarSdate,NextBarStime,mid_,"▶"+NumToStr(mid_,2)); Text_SetStyle(TX2,0,2); Text_Delete(TX3); TX3 = Text_New(NextBarSdate,NextBarStime,min_,"▼"+NumToStr(min_,2)); Text_SetStyle(TX3,0,2); Text_Delete(TX4); TX4 = Text_New(sDate[length],sTime[length],max_,"Buy Power:"+NumToStr(CountIf(C>O,length),0)); Text_SetStyle(TX4,0,1); Text_Delete(TX5); TX5 = Text_New(sDate[length],sTime[length],min_,"Sell Power:"+NumToStr(CountIf(C<O,length),0)); Text_SetStyle(TX5,0,0); Text_Delete(TX6); TX6 = Text_New(sDate[index_of_max],sTime[index_of_max],max_,"X"); Text_SetStyle(TX6,2,1); Text_Delete(TX7); TX7 = Text_New(sDate[index_of_min],sTime[index_of_min],min_,"X"); Text_SetStyle(TX7,2,0); Box_Delete(box1); box1 = Box_New(sDate[length],sTime[length],max_+ATRV*0.5,sDate,sTime,max_-ATRV*0.5); Box_SetColor(box1,t_col); Box_SetFill(box1,true); Box_Delete(box2); box2 = Box_New(sDate[length],sTime[length],min_+ATRV*0.5,sDate,sTime,min_-ATRV*0.5); Box_SetColor(box2,b_col); Box_SetFill(box2,true); var : low_1(0),low_2(0),high_1(0),high_2(0); var : ii(0),top(0),bot(0); top = min_+ATRV*0.5; bot = max_-ATRV*0.5; ii = 0; for i = 0 to length -1 { Text_Delete(TX[i]); low_1 = low[i]; low_2 = low[iff(i>0 , i+1 , i)]; high_1 = high[i]; high_2 = high[iff(i>0 , i+1 , i)]; if low_1 > top and low_2 <= top Then { ii = ii+1; TX[ii] = text_new(sdate[i],sTime[i],low_2, "◈"); Text_SetStyle(TX[ii],2,0); } if high_1 < bot and high_2 >= bot Then { ii = ii+1; TX[ii] = text_new(sdate[i],sTime[i],high_2, "◈"); Text_SetStyle(TX[ii],2,1); } } 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-06-20 12:43:09

안녕하세요 예스스탁입니다. 1 input : length(50),hh(8),mult(3); var : k(2),src(0),n(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0); Var : tx1(0), tx2(0); src = Close; n = barindex; //if IsLastBar업데이트 and barindex>length then //y = 0 sume = 0; for i = 0 to length-1 { sum = 0; sumw = 0; for j = 0 to length-1 { w = exp(-(pow(i-j,2)/(hh*hh*2))); sum = sum+src[j]*w; sumw = sumw+w; } y2 = sum/sumw; sume = sume+abs(src[i] - y2); } mae = sume/length*mult; if CrossDown(src,y2+mae) then { tx1 = Text_New_Self(sdate,stime,H,"▼"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,Blue); Text_setsize(Tx1,30); } if CrossUp(src,y2-mae) then { tx2 = Text_New_Self(sdate,stime,L,"▲"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,Red); Text_setsize(Tx2,30); } var1 = y2+mae; var2 = y2-mae; Plot1(y2); Plot2(var1); Plot3(var2); Plot4(var1-(var1-var2)*0.236); Plot5(var1-(var1-var2)*0.382); Plot6(var1-(var1-var2)*0.618); Plot7(var1-(var1-var2)*0.764); 2 input : length(130); input : extend(30); input : t_col(Magenta); input : b_col(lime); var : i(0),max_(0),min_(0),mid_(0),index_of_min(0),index_of_max(0); var : alpha(0),ATRV(0); var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0); var : TX1(0),TX2(0),TX3(0),TX4(0),TX5(0),TX6(0),TX7(0); var : box1(0),box2(0); Array : mx[500](0),mn[500](0); Array : TX[100](0); alpha = 1 / 200 ; ATRV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1])); for i = 0 to length - 1 { mx[i] = high[i]; mn[i] = low[i]; } var1 = NthHighestArray(mx, length, 1, max_, index_of_max); var2 = NthLowestArray(mn, length, 1, min_, index_of_min); mid_ = avg(max_, min_); var : low_1(0),low_2(0),high_1(0),high_2(0); var : ii(0),top(0),bot(0); value1 = max_; value2 = min_; Value3 = value1-Value2; #d.res_area := box.new(bar_index-length, max_+atr, bar_index+extend, max-atr, na, bgcolor = color.new(t_col, 80)) #d.sup_area := box.new(bar_index-length, min_+atr, bar_index+extend, min-atr, na, bgcolor = color.new(b_col, 80)) TL_Delete(TL1); TL1 = TL_New(sDate[length],sTime[length],max_+ATRV*0.5,sDate,sTime,max_+ATRV*0.5); TL_SetColor(TL1,t_col); TL_Delete(TL2); TL2 = TL_New(sDate[length],sTime[length],mid_,sDate,sTime,mid_); TL_SetColor(TL2,Gray); TL_SetStyle(TL2,3); TL_Delete(TL3); TL3 = TL_New(sDate[length],sTime[length],min_-ATRV*0.5,sDate,sTime,min_-ATRV*0.5); TL_SetColor(TL3,t_col); TL_Delete(TL4); TL4 = TL_New(sDate[length],sTime[length],value1-Value3*0.236,sDate,sTime,value1-Value3*0.236); TL_SetColor(TL4,t_col); TL_Delete(TL5); TL5 = TL_New(sDate[length],sTime[length],value1-Value3*0.382,sDate,sTime,value1-Value3*0.382); TL_SetColor(TL5,t_col); TL_Delete(TL6); TL6 = TL_New(sDate[length],sTime[length],value1-Value3*0.618,sDate,sTime,value1-Value3*0.618); TL_SetColor(TL6,t_col); TL_Delete(TL7); TL7 = TL_New(sDate[length],sTime[length],value1-Value3*0.764,sDate,sTime,value1-Value3*0.764); TL_SetColor(TL7,t_col); Text_Delete(TX1); TX1 = Text_New(NextBarSdate,NextBarStime,max_,"▲"+NumToStr(max_,2)); Text_SetStyle(TX1,0,2); Text_Delete(TX2); TX2 = Text_New(NextBarSdate,NextBarStime,mid_,"▶"+NumToStr(mid_,2)); Text_SetStyle(TX2,0,2); Text_Delete(TX3); TX3 = Text_New(NextBarSdate,NextBarStime,min_,"▼"+NumToStr(min_,2)); Text_SetStyle(TX3,0,2); Text_Delete(TX4); TX4 = Text_New(sDate[length],sTime[length],max_,"Buy Power:"+NumToStr(CountIf(C>O,length),0)); Text_SetStyle(TX4,0,1); Text_Delete(TX5); TX5 = Text_New(sDate[length],sTime[length],min_,"Sell Power:"+NumToStr(CountIf(C<O,length),0)); Text_SetStyle(TX5,0,0); Text_Delete(TX6); TX6 = Text_New(sDate[index_of_max],sTime[index_of_max],max_,"X"); Text_SetStyle(TX6,2,1); Text_Delete(TX7); TX7 = Text_New(sDate[index_of_min],sTime[index_of_min],min_,"X"); Text_SetStyle(TX7,2,0); Box_Delete(box1); box1 = Box_New(sDate[length],sTime[length],max_+ATRV*0.5,sDate,sTime,max_-ATRV*0.5); Box_SetColor(box1,t_col); Box_SetFill(box1,true); Box_Delete(box2); box2 = Box_New(sDate[length],sTime[length],min_+ATRV*0.5,sDate,sTime,min_-ATRV*0.5); Box_SetColor(box2,b_col); Box_SetFill(box2,true); ii = 0; for i = 0 to length -1 { Text_Delete(TX[i]); low_1 = low[i]; low_2 = low[iff(i>0 , i+1 , i)]; high_1 = high[i]; high_2 = high[iff(i>0 , i+1 , i)]; if low_1 > top and low_2 <= top Then { ii = ii+1; TX[ii] = text_new(sdate[i],sTime[i],low_2, "◈"); Text_SetStyle(TX[ii],2,0); } if high_1 < bot and high_2 >= bot Then { ii = ii+1; TX[ii] = text_new(sdate[i],sTime[i],high_2, "◈"); Text_SetStyle(TX[ii],2,1); } } 즐거운 하루되세요 > 가자치타 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 아래 수식1 수식2에 23.6 38.2 61.8 76.4% 라인 추가로 부탁 드립니다. 수식1 input : length(50),hh(8),mult(3); var : k(2),src(0),n(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0); Var : tx1(0), tx2(0); src = Close; n = barindex; //if IsLastBar업데이트 and barindex>length then //y = 0 sume = 0; for i = 0 to length-1 { sum = 0; sumw = 0; for j = 0 to length-1 { w = exp(-(pow(i-j,2)/(hh*hh*2))); sum = sum+src[j]*w; sumw = sumw+w; } y2 = sum/sumw; sume = sume+abs(src[i] - y2); } mae = sume/length*mult; if CrossDown(src,y2+mae) then { tx1 = Text_New_Self(sdate,stime,H,"▼"); Text_SetStyle(tx1,2,1); Text_SetColor(tx1,Blue); Text_setsize(Tx1,30); } if CrossUp(src,y2-mae) then { tx2 = Text_New_Self(sdate,stime,L,"▲"); Text_SetStyle(tx2,2,0); Text_SetColor(tx2,Red); Text_setsize(Tx2,30); } Plot1(y2); Plot2(y2+mae); Plot3(y2-mae); 수식2 input : length(130); input : extend(30); input : t_col(Magenta); input : b_col(lime); var : i(0),max_(0),min_(0),mid_(0),index_of_min(0),index_of_max(0); var : alpha(0),ATRV(0); var : TL1(0),TL2(0),TL3(0); var : TX1(0),TX2(0),TX3(0),TX4(0),TX5(0),TX6(0),TX7(0); var : box1(0),box2(0); Array : mx[500](0),mn[500](0); Array : TX[100](0); alpha = 1 / 200 ; ATRV = IFf(IsNan(ATrV[1]) == true, ma(TrueRange,200) , alpha * TrueRange + (1 - alpha) * IFf(isnan(ATrV[1])==true,0,ATrV[1])); for i = 0 to length - 1 { mx[i] = high[i]; mn[i] = low[i]; } var1 = NthHighestArray(mx, length, 1, max_, index_of_max); var2 = NthLowestArray(mn, length, 1, min_, index_of_min); mid_ = avg(max_, min_); #d.res_area := box.new(bar_index-length, max_+atr, bar_index+extend, max-atr, na, bgcolor = color.new(t_col, 80)) #d.sup_area := box.new(bar_index-length, min_+atr, bar_index+extend, min-atr, na, bgcolor = color.new(b_col, 80)) TL_Delete(TL1); TL1 = TL_New(sDate[length],sTime[length],max_+ATRV*0.5,sDate,sTime,max_+ATRV*0.5); TL_SetColor(TL1,t_col); TL_Delete(TL2); TL2 = TL_New(sDate[length],sTime[length],mid_,sDate,sTime,mid_); TL_SetColor(TL2,Gray); TL_SetStyle(TL2,3); TL_Delete(TL3); TL3 = TL_New(sDate[length],sTime[length],min_-ATRV*0.5,sDate,sTime,min_-ATRV*0.5); TL_SetColor(TL3,t_col); Text_Delete(TX1); TX1 = Text_New(NextBarSdate,NextBarStime,max_,"▲"+NumToStr(max_,2)); Text_SetStyle(TX1,0,2); Text_Delete(TX2); TX2 = Text_New(NextBarSdate,NextBarStime,mid_,"▶"+NumToStr(mid_,2)); Text_SetStyle(TX2,0,2); Text_Delete(TX3); TX3 = Text_New(NextBarSdate,NextBarStime,min_,"▼"+NumToStr(min_,2)); Text_SetStyle(TX3,0,2); Text_Delete(TX4); TX4 = Text_New(sDate[length],sTime[length],max_,"Buy Power:"+NumToStr(CountIf(C>O,length),0)); Text_SetStyle(TX4,0,1); Text_Delete(TX5); TX5 = Text_New(sDate[length],sTime[length],min_,"Sell Power:"+NumToStr(CountIf(C<O,length),0)); Text_SetStyle(TX5,0,0); Text_Delete(TX6); TX6 = Text_New(sDate[index_of_max],sTime[index_of_max],max_,"X"); Text_SetStyle(TX6,2,1); Text_Delete(TX7); TX7 = Text_New(sDate[index_of_min],sTime[index_of_min],min_,"X"); Text_SetStyle(TX7,2,0); Box_Delete(box1); box1 = Box_New(sDate[length],sTime[length],max_+ATRV*0.5,sDate,sTime,max_-ATRV*0.5); Box_SetColor(box1,t_col); Box_SetFill(box1,true); Box_Delete(box2); box2 = Box_New(sDate[length],sTime[length],min_+ATRV*0.5,sDate,sTime,min_-ATRV*0.5); Box_SetColor(box2,b_col); Box_SetFill(box2,true); var : low_1(0),low_2(0),high_1(0),high_2(0); var : ii(0),top(0),bot(0); top = min_+ATRV*0.5; bot = max_-ATRV*0.5; ii = 0; for i = 0 to length -1 { Text_Delete(TX[i]); low_1 = low[i]; low_2 = low[iff(i>0 , i+1 , i)]; high_1 = high[i]; high_2 = high[iff(i>0 , i+1 , i)]; if low_1 > top and low_2 <= top Then { ii = ii+1; TX[ii] = text_new(sdate[i],sTime[i],low_2, "◈"); Text_SetStyle(TX[ii],2,0); } if high_1 < bot and high_2 >= bot Then { ii = ii+1; TX[ii] = text_new(sdate[i],sTime[i],high_2, "◈"); Text_SetStyle(TX[ii],2,1); } } 감사합니다.