예스스탁
예스스탁 답변
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);
}
}
감사합니다.