예스스탁
예스스탁 답변
2020-05-25 10:51:11
안녕하세요
예스스탁입니다.
1 지표
input : st_mult(2),st_period(14),len(20);
var : price(0),up_lev(0),dn_lev(0),upz(0),downv(0);
var : trur(0),plus(0),minus(0),sum(0),adxv(0);
var : di(0),x(0),zz(0);
// CALCULATIONS //
price = (H+L)/2;
up_lev = price - (st_mult * atr(st_period));
dn_lev = price + (st_mult * atr(st_period));
if CurrentBar >= 1 then
{
//DI+ and DI-
upz = up_lev-up_lev[1];
downv = -(dn_lev-dn_lev[1]);
trur = (TrueRange + (len - 1) * trur) / len;
var1 = iff(upz > downv and upz > 0 , upz , 0);
var11 = (var1 + (len - 1) * var11) / len;
plus = var11/trur;
var2 = iff(downv > upz and downv > 0 , downv , 0);
var22 = (var2 + (len - 1) * var22) / len;
minus = var22/trur;
sum = plus + minus;
var3 = abs(plus - minus) / iff(sum == 0 , 1 , sum);
adxv = (var3 + (len - 1) * adxv) / len;
di = plus - minus;
x=adxv-di*100;
zz=x/-1;
plot1(zz);
plot2(0);
}
2 강조
input : st_mult(2),st_period(14),len(20),showZones(true);
var : price(0),up_lev(0),dn_lev(0),upz(0),downv(0);
var : trur(0),plus(0),minus(0),sum(0),adxv(0);
var : di(0),x(0),zz(0);
var : bullishRule(false),bearishRule(false),ruleState(0);
// CALCULATIONS //
price = (H+L)/2;
up_lev = price - (st_mult * atr(st_period));
dn_lev = price + (st_mult * atr(st_period));
if CurrentBar >= 1 then
{
//DI+ and DI-
upz = up_lev-up_lev[1];
downv = -(dn_lev-dn_lev[1]);
trur = (TrueRange + (len - 1) * trur) / len;
var1 = iff(upz > downv and upz > 0 , upz , 0);
var11 = (var1 + (len - 1) * var11) / len;
plus = var11/trur;
var2 = iff(downv > upz and downv > 0 , downv , 0);
var22 = (var2 + (len - 1) * var22) / len;
minus = var22/trur;
sum = plus + minus;
var3 = abs(plus - minus) / iff(sum == 0 , 1 , sum);
adxv = (var3 + (len - 1) * adxv) / len;
di = plus - minus;
x=adxv-di*100;
zz=x/-1;
bullishRule = zz > 0;
bearishRule = zz <= 0;
ruleState = iff(bullishRule , 1 , iff(bearishRule , -1 , ruleState));
PlotPaintBar(H,L,"강조",iff(showZones , iff(ruleState == 1 , blue ,iff(ruleState == -1 ,red ,gray)),BLACK));
}
즐거운 하루되세요
> 물고기 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> // INPUTS //
st_mult = input(2, title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(14, title = 'SuperTrend Period', minval = 1)
// CALCULATIONS //
up_lev = hl2 - (st_mult * atr(st_period))
dn_lev = hl2 + (st_mult * atr(st_period))
len = input(20)
//DI+ and DI-
upz = change(up_lev)
down = -change(dn_lev )
trur = rma(tr, len)
plus = fixnan(rma(upz > down and upz > 0 ? upz : 0, len) / trur)
minus = fixnan(rma(down > upz and down > 0 ? down : 0, len) / trur)
sum = plus + minus
adx = rma(abs(plus - minus) / (sum == 0 ? 1 : sum), len)
di = plus - minus
x=adx-di*100
zz=x/-1
plot(zz, linewidth=2)
plot(0,color=color.black)
//
showZones = input(true, title="Show Bullish/Bearish Zones")
// bullish signal rule:
bullishRule = zz > 0
// bearish signal rule:
bearishRule = zz <= 0
// current trading State
ruleState = 0
ruleState := bullishRule ? 1 : bearishRule ? -1 : nz(ruleState[1])
bgcolor(showZones ? ruleState == 1 ? color.blue : ruleState == -1 ? color.red : color.gray : na, title=" Bullish/Bearish Zones", transp=90)
도움주셔서 감사드립니다.
좋은 하루되세요