예스스탁
예스스탁 답변
2020-03-16 18:39:57
안녕하세요
예스스탁입니다.
input : OverBought(70),OverSold(30);
input : sLines(true),Factor1(1),Factor2(2),Factor3(3);
input : len(14);
var : Pd1(0),Pd2(0),Pd3(0),HLC3(0);
var : up1(0),up2(0),up3(0),dn1(0),dn2(0),dn3(0);
var : x(0);
var : TrendUp1(0),TrendUp2(0),TrendUp3(0);
var : Trenddown1(0),Trenddown2(0),Trenddown3(0);
var : Trend1(0),Trend2(0),Trend3(0);
var : tsl1(0),tsl2(0),tsl3(0);
Var : Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),RSIv(0);
var : linecolor(0);
Pd1=10;
Pd2=10;
Pd3=10;
PlotBaseLine1(70,"Upper Line",red);
PlotBaseLine2(30,"Lower Line",green);
hlc3 = (h+l+c)/3;
// ST1
Up1=hlc3-(Factor1*atr(Pd1));
Up2=hlc3-(Factor2*atr(Pd2));
Up3=hlc3-(Factor3*atr(Pd3));
Dn1=hlc3+(Factor1*atr(Pd1));
Dn2=hlc3+(Factor2*atr(Pd2));
Dn3=hlc3+(Factor3*atr(Pd3));
if CurrentBar >= 1 then
{
TrendUp1=iff(close[1]>TrendUp1[1], max(Up1,TrendUp1[1]) , Up1);
TrendUp2=iff(close[1]>TrendUp2[1], max(Up2,TrendUp2[1]) , Up2);
TrendUp3=iff(close[1]>TrendUp3[1], max(Up3,TrendUp3[1]) , Up3);
TrendDown1=iff(close[1]<TrendDown1[1], min(Dn1,TrendDown1[1]) , Dn1);
TrendDown2=iff(close[1]<TrendDown2[1], min(Dn2,TrendDown2[1]) , Dn2);
TrendDown3=iff(close[1]<TrendDown3[1], min(Dn3,TrendDown3[1]) , Dn3);
Trend1 = iff(close[1] > TrendDown1[1], 1 ,iff(close[1] < TrendUp1[1], -1, Trend1[1]));
Tsl1 = iff(Trend1==1, TrendUp1, TrendDown1);
Trend2 = iff(close[1] > TrendDown2[1], 1,iff(close[1] < TrendUp2[1], -1, Trend2[1]));
Tsl2 = iff(Trend2==1, TrendUp2, TrendDown2);
Trend3 = iff(close[1] > TrendDown3[1], 1,iff(close[1] < TrendUp3[1], -1, Trend3[1]));
Tsl3 = iff(Trend3==1, TrendUp3, TrendDown3);
If CurrentBar == 1 AND len > 0 Then Begin
UpSum = 0;
DownSum = 0;
For Counter = 0 To len - 1 Begin
UpAmt = Tsl2[Counter] - Tsl2[Counter+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / len;
DownAvg = DownSum / len;
End
Else
If CurrentBar > 1 AND len > 0 Then Begin
UpAmt = Tsl2[0] - Tsl2[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (len - 1) + UpAmt) / len;
DownAvg = (DownAvg[1] * (len - 1) + DownAmt) / len;
End;
If UpAvg + DownAvg <> 0 Then
RSIv = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSIv = 0;
x=rsiv;
linecolor = iff(Tsl1 < Tsl2 and Tsl2 < Tsl3 , red ,iff( Tsl1 > Tsl2 and Tsl2 > Tsl3 ,blue,GRAY));
plot1(x,"SuperTrend",linecolor);
}
즐거운 하루되세요
> 이대표 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> 지표전환 부탁드립니다
OverBought = input(70, minval=10)
OverSold = input(30, maxval=70)
band1 = hline(70, title="Upper Line", linestyle=dashed, linewidth=1, color=red)
band0 = hline(30, title="Lower Line", linestyle=dashed, linewidth=1, color=green)
// Super Trend
sLines = input(true, "Show Super-Trend Lines")
Factor1=input(1,type =float, minval=1,maxval = 100)
Factor2=input(2,type =float, minval=1,maxval = 100)
Factor3=input(3,type =float, minval=1,maxval = 100)
Pd1=10 //input(10,minval=1,maxval = 100)
Pd2=10 //input(10,minval=1,maxval = 100)
Pd3=10 //input(10,minval=1,maxval = 100)
// ST1
Up1=hlc3-(Factor1*atr(Pd1))
Up2=hlc3-(Factor2*atr(Pd2))
Up3=hlc3-(Factor3*atr(Pd3))
Dn1=hlc3+(Factor1*atr(Pd1))
Dn2=hlc3+(Factor2*atr(Pd2))
Dn3=hlc3+(Factor3*atr(Pd3))
// ST1.2
TrendUp1=na
TrendUp2=na
TrendUp3=na
TrendUp1:=close[1]>TrendUp1[1]? max(Up1,TrendUp1[1]) : Up1
TrendUp2:=close[1]>TrendUp2[1]? max(Up2,TrendUp2[1]) : Up2
TrendUp3:=close[1]>TrendUp3[1]? max(Up3,TrendUp3[1]) : Up3
TrendDown1=na
TrendDown2=na
TrendDown3=na
TrendDown1:=close[1]<TrendDown1[1]? min(Dn1,TrendDown1[1]) : Dn1
TrendDown2:=close[1]<TrendDown2[1]? min(Dn2,TrendDown2[1]) : Dn2
TrendDown3:=close[1]<TrendDown3[1]? min(Dn3,TrendDown3[1]) : Dn3
Trend1 = na
Tsl1 = na
Trend2 = na
Tsl2 = na
Trend3 = na
Tsl3 = na
Trend1 := close[1] > TrendDown1[1] ? 1: close[1] < TrendUp1[1]? -1: nz(Trend1[1],1)
Tsl1 := Trend1==1 ? TrendUp1: TrendDown1
Trend2 := close[1] > TrendDown2[1] ? 1: close[1] < TrendUp2[1]? -1: nz(Trend2[1],1)
Tsl2 := Trend2==1 ? TrendUp2: TrendDown2
Trend3 := close[1] > TrendDown3[1] ? 1: close[1] < TrendUp3[1]? -1: nz(Trend3[1],1)
Tsl3 := Trend3==1 ? TrendUp3: TrendDown3
len=input(14)
x=rsi(Tsl2,len)
// Plotting
linecolor = Tsl1 < Tsl2 and Tsl2 < Tsl3 ? red : Tsl1 > Tsl2 and Tsl2 > Tsl3 ? lime : orange
plot(x , color = linecolor , style = line , linewidth = 3 ,title = "SuperTrend")
tgreen=crossover(close, Tsl2)
tred=crossunder(close, Tsl2)
plotchar(tgreen, title="buy", char='b', location=location.bottom, color=black, transp=0, offset=0,size=size.tiny)
plotchar(tred, title="sell", char='s', location=location.top, color=black, transp=0, offset=0,size=size.tiny)