예스스탁
예스스탁 답변
2024-01-10 17:11:57
안녕하세요
예스스탁입니다.
input : Periods(20);
input : Multiplier(3.0);
input : changeATR(true);
input : showsignals(true);
input : highlighting(true);
var : src(0),alpha(0),atr1(0),atr2(0),atrv(0);
var : up(0),up1(0),dn(0),dn1(0);
var : trend(0),tx(0);
var : sumTR(0),TH(0),TL(0),cnt(0),A(0),TR(0);
var : preATR1(0),preup(0),predn(0),pretrend(0);
alpha = 1/Periods;
src = (DayHigh+DayLow)/2;
sumTR = 0;
for cnt = 0 to Periods-1
{
If DayClose(cnt+1) > DayHigh(cnt) then
TH = DayClose(cnt+1);
else
TH = DayHigh(cnt);
If DayClose(cnt+1) < daylow(cnt) then
TL = DayClose(cnt+1);
else
TL = daylow(cnt);
sumTR = sumTR + (TH-TL);
if cnt == 0 Then
TR = TH-TL;
}
A = sumTR/Periods;
if Bdate != Bdate[1] Then
{
preATR1 = ATR1[1];
preup = up[1];
predn = dn[1];
pretrend = trend[1];
}
atr1 = iff(preATR1 == 0,A, alpha * TR + (1 - alpha) * iff(preATR1 == 0,0,preATR1));
atr2 = A;
atrv = iff(changeATR ==true,atr1, atr2);
up = src-(Multiplier*atrv);
up1 = iff(preup==0,up,preup);
up = iff(DayClose(1) > up1 , max(up,up1), up);
dn = src+(Multiplier*atrv);
dn1 = iff(predn==0,dn,predn);
dn = iff(DayClose(1) < dn1 , min(dn, dn1) , dn);
trend = 1;
trend = iff(pretrend==0,trend,pretrend);
trend = iff(trend == -1 and close > dn1 , 1 , iff(trend == 1 and close < up1 , -1 , trend));
if trend == 1 Then
{
plot1(up,"Up Trend",Red);
NoPlot(2);
}
Else
{
NoPlot(1);
plot2(dn,"Down Trend",Blue);
}
if NextBarSdate != sDate and trend == 1 and pretrend == -1 Then
{
tx = Text_New(sDate,sTime,up,"●");
Text_SetColor(tx,Red);
Text_SetStyle(tx,2,2);
}
if NextBarSdate != sDate and trend == -1 and pretrend == 1 Then
{
tx = Text_New(sDate,sTime,dn,"●");
Text_SetColor(tx,Blue);
Text_SetStyle(tx,2,2);
}
즐거운 하루되세요
> 박두희 님이 쓴 글입니다.
> 제목 : 85294 지표 문의
> 안녕하세요
항상 도움 주셔서 감사합니다.
아래의 일봉 지표를 분봉에 나타내려고 합니다.가능할까요?
분봉에서 일봉지표와 같이 표현 하고 싶어서 입니다.
감사합니다.
input : Periods(20);
input : Multiplier(3.0);
input : changeATR(true);
input : showsignals(true);
input : highlighting(true);
var : src(0),alpha(0),atr1(0),atr2(0),atrv(0);
var : up(0),up1(0),dn(0),dn1(0);
var : trend(0),tx(0);
src = (h+l)/2;
alpha = 1/Periods;
atr1 = iff(IsNan(atr1[1]) == true,ma(TrueRange, Periods), alpha * TrueRange + (1 - alpha) * iff(IsNan(atr1[1])==true,0,atr1[1]));
atr2 = ma(TrueRange, Periods);
atrv = iff(changeATR ==true,atr1, atr2);
up = src-(Multiplier*atrv);
up1 = iff(isnan(up[1])==true,up,up[1]);
up = iff(close[1] > up1 , max(up,up1), up);
dn = src+(Multiplier*atrv);
dn1 = iff(isnan(dn[1])==true,dn,dn[1]);
dn = iff(close[1] < dn1 , min(dn, dn1) , dn);
trend = 1;
trend = iff(isnan(trend[1])==true,trend,trend[1]);
trend = iff(trend == -1 and close > dn1 , 1 , iff(trend == 1 and close < up1 , -1 , trend));
if trend == 1 Then
{
plot1(up,"Up Trend",Red);
NoPlot(2);
}
Else
{
NoPlot(1);
plot2(dn,"Down Trend",Blue);
}
if trend == 1 and trend[1] == -1 Then
{
tx = Text_New(sDate,sTime,up,"●");
Text_SetColor(tx,Red);
Text_SetStyle(tx,2,2);
}
if trend == -1 and trend[1] == 1 Then
{
tx = Text_New(sDate,sTime,dn,"●");
Text_SetColor(tx,Blue);
Text_SetStyle(tx,2,2);
}