HPotter

Accumulation Swing Index

The Accumulation Swing Index is a cumulative total of the Swing Index.
The Accumulation Swing Index was developed by Welles Wilder.
The SwingIndex function was developed to help cut through the maze of
Open, High, Low and Close prices to indicate the real strength and direction
of the market. The Swing Index function looks at the Open, High, Low and
Close values for a two-bar period. The theory is that there are four cross-bar
and one intra-bar comparisons that are strong indicators of an up or down day.
The Swing Index returns a number between -100 and 100. If the factors point toward
an up day, then the function value will be positive and vice versa. In this way,
the Swing Index gives us definite short-term swing points, and it can be used to
supplement other methods as a breakout indicator. A breakout is indicated when the
value of the Accumulation Swing Index (ASI) exceeds the ASI value on the day when a
previous significant High Swing Point was made. A downside breakout is indicated when
the value of the ASI drops below the ASI value on a day when a previous significant
low swing point was made.
Since only futures have a relative daily limit value, this function only makes sense
when applied to a futures contract. If you use this function and it only plots a zero
flat line, check the Daily Limit value.

Skrypt open-source

Zgodnie z prawdziwym duchem TradingView, autor tego skryptu opublikował go jako open-source, aby traderzy mogli go zrozumieć i zweryfikować. Brawo dla autora! Możesz używać go za darmo, ale ponowne wykorzystanie tego kodu w publikacji jest regulowane przez Dobre Praktyki. Możesz go oznaczyć jako ulubione, aby użyć go na wykresie.

Wyłączenie odpowiedzialności

Informacje i publikacje przygotowane przez TradingView lub jego użytkowników, prezentowane na tej stronie, nie stanowią rekomendacji ani porad handlowych, inwestycyjnych i finansowych i nie powinny być w ten sposób traktowane ani wykorzystywane. Więcej informacji na ten temat znajdziesz w naszym Regulaminie.

Chcesz użyć tego skryptu na wykresie?
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 26/05/2014
// The Accumulation Swing Index is a cumulative total of the Swing Index. 
// The Accumulation Swing Index was developed by Welles Wilder.
// The SwingIndex function was developed to help cut through the maze of 
// Open, High, Low and Close prices to indicate the real strength and direction 
// of the market. The Swing Index function looks at the Open, High, Low and 
// Close values for a two-bar period. The theory is that there are four cross-bar 
// and one intra-bar comparisons that are strong indicators of an up or down day.
// The Swing Index returns a number between -100 and 100. If the factors point toward 
// an up day, then the function value will be positive and vice versa. In this way, 
// the Swing Index gives us definite short-term swing points, and it can be used to 
// supplement other methods as a breakout indicator. A breakout is indicated when the 
// value of the Accumulation Swing Index (ASI) exceeds the ASI value on the day when a 
// previous significant High Swing Point was made. A downside breakout is indicated when 
// the value of the ASI drops below the ASI value on a day when a previous significant 
// low swing point was made.
// Since only futures have a relative daily limit value, this function only makes sense 
// when applied to a futures contract. If you use this function and it only plots a zero 
// flat line, check the Daily Limit value. 
////////////////////////////////////////////////////////////
study(title="Accumulation Swing Index (ASI)", shorttitle="ASI")
DailyLimit = input(10000, minval=1)
AbsHighClose = abs(high - close[1])
AbsLowClose = abs(low - close[1])
AbsCloseOpen = abs(close[1] - open[1])
K = iff(AbsHighClose >= AbsLowClose, AbsHighClose, AbsLowClose)
R = iff(AbsHighClose >= AbsLowClose, 
        iff(AbsHighClose >= (high - low), AbsHighClose - 0.5 * AbsLowClose + 0.25 * AbsCloseOpen, (high - low) + 0.25 * AbsCloseOpen),
        iff(AbsLowClose >= (high - low),  AbsLowClose - 0.5 * AbsHighClose + 0.25 * AbsCloseOpen, (high - low) + 0.25 * AbsCloseOpen))
nRes = iff(R != 0, 
            (50 * (((close - close[1]) + 0.50 * (close - open) + 0.25 * (close[1] - open[1])) / R ) * K / DailyLimit) + nz(nRes[1], 0), 
            0 + nz(nRes[1], 0))
plot(nRes, color=blue, title="ASI")